Update strace to 4.23.
Noteworthy changes in release 4.23 (2018-06-14)
===============================================
* Changes in behaviour
* On x32 personality, 64-bit syscalls (such as readv) are now shown with "#64"
suffix instead of "64:" prefix. Unlike the old names, these new names
can be used in syscall qualification expressions.
* Changed error number output format: error numbers are consistently
printed as "-1 ECONST (Error description)"
for known errors and as "-1 (errno 123)" for unknown errors,
regardless of -e raw qualification settings. One can specify
-X raw for displaying raw error numbers unconditionally.
* Unfetchable addresses inside arrays are now printed as comments.
* Obsolete IA-32 mode syscall names are no longer printed on ia64.
* Improvements
* Implemented libdw backend for -k option, configured at build time
using --with-libdw option.
Whether -k option is compiled is now configured at build time
using --enable-stacktrace option.
* Added -X option for configuring xlat output formatting (addresses
Debian bug #692915).
* Added support for personality designation ("64", "32", or "x32") to syscall
qualifications in -e trace expressions.
* Implemented injection of syscalls with no side effects as an alternative
to injection of an invalid syscall (-e inject=SET:syscall= expression).
* Improved support for reproducible builds (addresses Debian bug #896016).
* Implemented decoding of BPF_PROG_QUERY and BPF_RAW_TRACEPOINT_OPEN bpf
syscall commands.
* Implemented decoding of INOTIFY_IOC_SETNEXTWD and PERF_EVENT_IOC_* ioctl
commands.
* Implemented decoding of PR_GET_SPECULATION_CTRL and PR_SET_SPECULATION_CTRL
prctl syscall options.
* Enhanced decoding of bpf, getsockopt, setsockopt, and socket syscalls.
* Enhanced decoding of NETLINK_KOBJECT_UEVENT and NETLINK_ROUTE protocols.
* Enhanced decoding of *_DIAG_MEMINFO netlink attributes.
* Enhanced decoding of BTRFS_*, FS_IOC_*, SIOCGIFHWADDR, and SIOCSIFHWADDR
ioctl commands.
* Enhanced decoding of AF_BLUETOOTH socket addresses.
* Implemented decoding of io_pgetevent syscall.
* Wired up rseq syscall.
* Updated lists of ADJ_*, BPF_*, BPF_F_*, BPF_PROG_TYPE_*, ETH_P_*, FPE_*,
IFF_*, IPPROTO_*, MAP_*, MS_*, MSG_*, NETLINK_*, PACKET_*, PROT_*, SCTP_*,
SECCOMP_FILTER_FLAG_*, SEGV_*, SEM_*, SHM_*, SW_*, V4L2_CID_*,
V4L2_CTRL_CLASS_*, and V4L2_PIX_FMT_* constants.
* Updated lists of ioctl commands from Linux 4.17.
* Bug fixes
* Fixed decoding of msgtyp argument of msgrcv syscall.
* Fixed fallback definitions for F_*, MCL_*, MSG_ZEROCOPY, SI_*,
and SOL_SOCKET constants.
* Fixed -e trace=%pure expression on mips.
Bug: N/A
Test: strace -f date
Change-Id: I9eff306cca99b239815284a366315fb04686667a
diff --git a/Android.bp b/Android.bp
index 149757c..f3ac00e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -78,6 +78,7 @@
"hdio.c",
"hostname.c",
"inotify.c",
+ "inotify_ioctl.c",
"io.c",
"ioctl.c",
"ioperm.c",
@@ -104,6 +105,7 @@
"memfd_create.c",
"mknod.c",
"mmap_cache.c",
+ "mmap_notify.c",
"mmsghdr.c",
"mount.c",
"mq.c",
@@ -113,6 +115,7 @@
"netlink.c",
"netlink_crypto.c",
"netlink_inet_diag.c",
+ "netlink_kobject_uevent.c",
"netlink_netfilter.c",
"netlink_netlink_diag.c",
"netlink_packet_diag.c",
@@ -129,13 +132,16 @@
"open.c",
"pathtrace.c",
"perf.c",
+ "perf_ioctl.c",
"personality.c",
"pkeys.c",
"poll.c",
"prctl.c",
+ "print_aio_sigset.c",
"print_dev_t.c",
"print_group_req.c",
"print_ifindex.c",
+ "print_mac.c",
"print_mq_attr.c",
"print_msgbuf.c",
"print_sigevent.c",
@@ -239,6 +245,7 @@
] + [
"-Wall",
"-Werror",
+ "-Wno-initializer-overrides",
"-Wno-missing-field-initializers",
"-Wno-pointer-arith",
"-Wno-unused-parameter",
diff --git a/CREDITS b/CREDITS
index 94cecfe..9ef85d1 100644
--- a/CREDITS
+++ b/CREDITS
@@ -43,6 +43,7 @@
Chen Jingpiao <[email protected]>
Cheolung Lee <[email protected]>
Chris Dearman <[email protected]>
+ Chris Lamb <[email protected]>
Chris Metcalf <[email protected]>
Chris Zankel <[email protected]>
Christian Neukirchen <[email protected]>
@@ -232,5 +233,6 @@
Zach Brown <[email protected]>
Zev Weiss <[email protected]>
Zhang Le <[email protected]>
+ Zhibin Li <[email protected]>
Zubin Mithra <[email protected]>
Марк Коренберг <[email protected]>
diff --git a/ChangeLog b/ChangeLog
index 6efa3a2..2787131 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,4031 @@
+2018-06-14 Dmitry V. Levin <[email protected]>
+
+ Prepare for 4.23 release.
+ * NEWS: Update for 4.23 release.
+
+ Update copyright headers.
+ Headers updated automatically using maint/update_copyright_years.sh
+ script.
+
+ tests: add missing copyright headers.
+ * tests/prctl-spec-inject.test: Add copyright header.
+ * tests/qualify_personality.sh: Likewise.
+
+ maint: document release procedure.
+ * maint/README-release: New file.
+ * maint/gen-release-notes.sh: Likewise.
+ * maint/gen-release-github.sh: Likewise.
+ * maint/gen-release-gitlab.sh: Likewise.
+
+ maint: prepend contributor names in tag messages with an asterisk.
+ * maint/gen-tag-message.sh: Prepend every line of
+ gen-contributors-list.sh output with an asterisk.
+
+2018-06-14 Eugene Syromyatnikov <[email protected]>
+
+ Update NEWS.
+
+2018-06-13 Dmitry V. Levin <[email protected]>
+
+ Wire up rseq syscall.
+ This new syscall was introduced by Linux commit v4.17-1308-gd7822b1.
+
+ * linux/dummy.h (sys_rseq): New macro.
+ * linux/arm/syscallent.h (398): Add rseq entry.
+ * linux/i386/syscallent.h (386): Likewise.
+ * linux/powerpc/syscallent.h (387): Likewise.
+ * linux/powerpc64/syscallent.h (387): Likewise.
+ * linux/x32/syscallent.h (334): Likewise.
+ * linux/x86_64/syscallent.h (334): Likewise.
+
+2018-06-13 Eugene Syromyatnikov <[email protected]>
+
+ tests: check decoding of io_pgetevents syscall.
+ * configure.ac (AC_CHECK_TYPES): Check for struct __aio_sigset
+ in <linux/aio_abi.h>.
+ * tests/aio_pgetevents.c: New file.
+ * tests/.gitignore: Add aio_pgetevents.
+ * tests/pure_executables.list: Likewise.
+ * tests/gen_tests.in (aio_pgetevents): New test.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-13 Eugene Syromyatnikov <[email protected]>
+
+ Implement io_pgetevents syscall decoding.
+ Introduced by Linux commit v4.17-rc3-7-g7a074e9.
+
+ * print_aio_sigset.c: New file.
+ * Makefile.am (strace_SOURCES): Add it.
+ * aio.c (print_io_getevents): Rename from SYS_FUNC(io_getevents), add
+ has_usig flag, print user sigset on exiting if has_usig is set to true.
+ (SYS_FUNC(io_getevents), SYS_FUNC(io_pgetevents)): New functions,
+ wrappers for print_io_getevents.
+ * linux/32/syscallent.h ([292]): Wire up io_pgetevents.
+ * linux/64/syscallent.h ([292]): Likewise.
+ * linux/i386/syscallent.h ([385]): Likewise.
+ * linux/x32/syscallent.h ([333]): Likewise.
+ * linux/x86_64/syscallent.h ([333]): Likewise.
+ * NEWS: Mention this improvement.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-13 Dmitry V. Levin <[email protected]>
+
+ travis: re-enable testing with the latest mainline kernel headers.
+ As <linux/signal.h> is out of the game now, the Linux commit
+ v4.17-rc3-7-g7a074e9 should not cause harm anymore, so let's enable
+ testing with the latest mainline kernel headers again.
+
+ * .travis.yml (matrix): Do not specify KBRANCH for KHEADERS=torvalds/linux.
+
+2018-06-13 Dmitry V. Levin <[email protected]>
+
+ Workaround incompatibility between <linux/signal.h> and libc headers.
+ Override <linux/signal.h> with <signal.h> so that those few linux
+ headers that include <linux/signal.h> could be included along with libc
+ headers.
+
+ * linux/linux/signal.h: New file.
+ * Makefile.am (strace_SOURCES): Add it.
+
+2018-06-13 Eugene Syromyatnikov <[email protected]>
+
+ tests: add personality specification syntax checks.
+ * tests/options-syntax.test: Add personality specification syntax
+ checks.
+
+ tests: add basic checks for personality designation support.
+ * tests/qualify_personality.sh: New file.
+ * tests/qualify_personality_empty.in: Likewise.
+ * tests/trace_personality_32.in: Likewise.
+ * tests/trace_personality_64.in: Likewise.
+ * tests/trace_personality_regex_32.in: Likewise.
+ * tests/trace_personality_regex_64.in: Likewise.
+ * tests/trace_personality_regex_x32.in: Likewise.
+ * tests/trace_personality_x32.in: Likewise.
+ * tests/Makefile.am (EXTRA_DIST): Add them.
+ * tests/gen_tests.in (trace_personality_32, trace_personality_64,
+ trace_personality_x32, trace_personality_regex_32,
+ trace_personality_regex_64, trace_personality_regex_x32): New tests.
+
+2018-06-13 Eugene Syromyatnikov <[email protected]>
+
+ Add support for personality designation in regex qualifications.
+ * basic_filters.c (qualify_syscall_regex): Copy syscall name
+ to a temporary buffer, append the personality designation to it,
+ and check it against regular expression if the syscall name
+ hasn't been matched already.
+
+ References: https://github.com/strace/strace/issues/35
+
+2018-06-13 Eugene Syromyatnikov <[email protected]>
+
+ Add support for personality designation in syscall qualifications.
+ * syscall.c (personality_designators): New array.
+ * defs.h (personality_designators): New declaration.
+ * basic_filters.c (qualify_syscall_separate_personality,
+ qualify_syscall_number_personality): New functions.
+ (qualify_syscall_number): Use qualify_syscall_separate_personality for
+ checking for a personality specification, call
+ qualify_syscall_number_personality for setting number set for specific
+ personality.
+ (qualify_syscall_name_personality): New function.
+ (qualify_syscall_name): Use qualify_syscall_separate_personality for
+ checking for a personality specification, call
+ qualify_syscall_name_personality for setting number set for specific
+ personality.
+ * strace.1.in (.SS Filtering): Document it.
+ * NEWS: Mention it.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+ Closes: https://github.com/strace/strace/issues/35
+
+2018-06-13 Eugene Syromyatnikov <[email protected]>
+
+ tests: add basic checks for inject=SET:syscall= expression syntax.
+ * tests/qual_fault-syscall.test: New test.
+ * tests/qual_inject-error-signal-syscall.test: Likewise.
+ * tests/qual_inject-retval-syscall.test: Likewise.
+ * tests/qual_inject-signal-syscall.test: Likewise.
+ * tests/Makefile.am (MISC_TESTS): Add them.
+ * tests/qual_fault-syntax.test: Add checks for inject=SET:syscall=
+ expression syntax.
+ * tests/qual_inject-syntax.test: Likewise.
+ * tests/qual_fault.test: Append $suffix to -e fault arguments, override
+ $NAME with $name_override if the latter is set.
+ * tests/qual_inject-error-signal.test: Append $suffix to -e inject
+ arguments, override $NAME with $name_override if the latter is set.
+ * tests/qual_inject-retval.test: Likewise.
+ * tests/qual_inject-signal.test: Likewise.
+
+2018-06-13 Eugene Syromyatnikov <[email protected]>
+
+ Implement injection of syscalls with no side effects as an alternative to -1
+ * defs.h (INJECT_F_SYSCALL, INJECT_ACTION_FLAGS, TCB_TAMPERED_NO_FAIL,
+ syscall_tampered_nofail): New macros.
+ (inject_data): Add scno field.
+ * filter_qualify.c (struct inject_personality_data): New type.
+ (parse_inject_token): Add "pdata" argument, parse "syscall=" option.
+ (parse_inject_expression): Add "pdata" argument, forward it to
+ parse_inject_token.
+ (qualify_inject_common) <pdata>: New variable array, pass it to
+ parse_inject_expression, copy it into inject_vec.
+ * syscall.c (tamper_with_syscall_entering): Inject the specified syscall
+ if INJECT_F_SYSCALL is set.
+ (tamper_with_syscall_exiting): Update the check for a failed syscall
+ injection.
+ (get_syscall_result): Update get_error invocation.
+ * strace.1.in: Document new syscall injection expression.
+ * NEWS: Mention it.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+ Closes: https://github.com/strace/strace/issues/26
+
+2018-06-13 Dmitry V. Levin <[email protected]>
+
+ ia64: remove legacy i386 entries from the syscall entry table.
+ Remove the last piece of IA-32 mode support. Besides being obsolete,
+ these bogus syscall entries cause problems with syscall name resolution.
+
+ * linux/ia64/syscallent.h [CST > 0]: Remove.
+
+ Complements: v4.21~17 "linux/ia64: remove IA-32 mode support"
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ linux: set error flags in arch_set_error on POWER and Alpha.
+ * alpha/set_error.c (arch_set_error): Set alpha_r3 to 1, update tracee's
+ REG_A3.
+ * powerpc/set_error.c (arch_set_error): Set bit 28 in CCR register,
+ update tracee's PT_CCR.
+
+ Fixes: v4.15~126 "Implement arch specific methods of changing syscall number and error code"
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ tests: check decoding of IFLA_LINKINFO netlink attribute.
+ * tests/nlattr_ifla_linkinfo.c: New file.
+ * tests/pure_executables.list: Add nlattr_ifla_linkinfo.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (nlattr_ifla_linkinfo): New test.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ tests: add print_quoted_stringn to print string with a size limit.
+ This is similar to print_quoted_cstring, but not quite the same.
+
+ * tests/print_quoted_string.c (print_quoted_stringn): New function.
+ * tests/tests.h (print_quoted_stringn): New declaration.
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ tests: add fallback_func argument to TEST_NESTED_NLATTR_OBJECT_EX_
+ * tests/test_nlattr.h (TEST_NESTED_NLATTR_OBJECT_EX_): Add fallback_func
+ argument, call it instead of print_quoted_hex.
+ (TEST_NESTED_NLATTR_OBJECT_EX, TEST_NESTED_NLATTR_OBJECT): Specify
+ print_quoted_hex as a fallback_func.
+ * tests/nlattr_ifla_af_spec.c: Specify print_quoted_hex as
+ a fallback_func in TEST_NESTED_NLATTR_OBJECT_EX_ calls.
+
+ tests/test_nlattr.h: add ability to provide additional nlattr payload.
+ * tests/test_nlattr.h (print_nlattr): Add add_data argument, print
+ opening square bracket if add_data is set to true.
+ (TEST_NLATTR_EX_): Rename from TEST_NLATTR_, add nla_total_len_
+ argument, use it for msg_len calculation, print square brackets
+ if nla_total_len_ is greater than nla_data_len_.
+ (TEST_NLATTR_): New macro, a wrapper for TEST_NLATTR_EX_.
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_link: decode struct ifla_bridge_id unconditionally.
+ Since it is relatively simple.
+
+ * rtnl_link.c (decode_ifla_bridge_id): Provide struct definition for
+ the id variable.
+ [!HAVE_STRUCT_IFLA_BRIDGE_ID] (decode_ifla_bridge_id): Decode struct
+ ifla_bridge_id.
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: specify size for ethernet protocol.
+ Otherwise it tries to decode payload of size 1, which makes little
+ sense.
+
+ * nlattr.c (decode_nla_ether_proto) <opts>: Specify size field.
+
+ Fixes: v4.22-321-gfd0cd65 "nlattr: add ethernet protocol decoder"
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_link: use ARRSZ_PAIR where appropriate.
+ It reduces code duplication somewhat and allows avoiding errors like
+ the one fixed in the previous commit.
+
+ * rtnl_link.c (decode_ifla_protinfo, decode_nla_linkinfo_data_bridge,
+ decode_nla_linkinfo_data_tun, decode_ifla_linkinfo, decode_ifla_port,
+ decode_ifla_vf_ports, decode_ifla_xdp,
+ DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg)): Use ARRSZ_PAIR in
+ decode_nlattr call arguments.
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_link: fix incorrect variable names in ARRAY_SIZE arguments.
+ * rtnl_link.c (decode_nla_linkinfo_data_bridge): Change
+ rtnl_ifla_info_data_bridge_attrs to ifla_info_data_bridge_nla_decoders
+ in ARRAY_SIZE call.
+ (decode_nla_linkinfo_data_tun): Change rtnl_ifla_info_data_tun_attrs
+ to ifla_info_data_tun_nla_decoders in ARRAY_SIZE call.
+
+ Fixes: v4.22-328-g1e6d5a8 "rtnl_link: implement IFLA_INFO_DATA for bridges"
+ Fixes: v4.22-329-g4eab3a4 "rtnl_link: implement IFLA_INFO_DATA for tun devices"
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ mips: add missing pure flag to syscall entries.
+ * linux/mips/syscallent-n32.h ([6038], [6100], [6102], [6105], [6106],
+ [6108], [6109], [6178]): Add pure flag to getpid, getuid, getgid, geteuid,
+ getegid, getpgid, getpgrp, and gttid syscall descriptors.
+ * linux/mips/syscallent-n64.h ([5038], [5100], [5102], [5105], [5106],
+ [5108], [5109], [5178]): Likewise.
+ * linux/mips/syscallent-o32.h ([4020], [4024], [4047], [4049], [4050],
+ [4064], [4065], [4222]): Likewise.
+
+ Complements: v4.21~29 "Add pure syscall flag"
+
+2018-06-11 Eugene Syromyatnikov <[email protected]>
+
+ mips: add missing "never fails" flag to getpgrp syscall entries.
+ * linux/mips/syscallent-n32.h ([6109]): Add NF flag.
+ * linux/mips/syscallent-n64.h ([5109]): Likewise.
+ * linux/mips/syscallent-o32.h ([4065]): Likewise.
+
+ Complements: v4.21~46 "Add SYSCALL_NEVER_FAILS flag to getpgrp"
+
+2018-06-07 Eugene Syromyatnikov <[email protected]>
+
+ Update NEWS.
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+ xlat: describe IPV4_DEVCONF_* weirdness.
+ * xlat/inet_devconf_indices.in: Add a comment about fallback definitions.
+
+2018-06-07 Dmitry V. Levin <[email protected]>
+
+ configure.ac: fix the check for struct tc_sizespec on old kernel headers
+ * configure.ac (AC_CHECK_TYPES): Include <linux/types.h> before
+ <linux/pkt_sched.h> to check for struct tc_sizespec on linux kernel
+ headers without v2.6.29-rc4~77^2~26 fix.
+
+2018-06-06 Dmitry V. Levin <[email protected]>
+
+ travis: use kernel headers from v4.17.
+ There is too much noise when using unreleased kernel uapi.
+
+ * ci/install-dependencies.sh (clone_repo): Add optional "branch"
+ argument, pass it to "git clone".
+ ($KHEADERS): Pass $KBRANCH as branch argument of clone_repo.
+ * .travis.yml (matrix): Specify KBRANCH=v4.17 for
+ KHEADERS=torvalds/linux.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ tests: check decoding of IFLA_AF_SPEC netlink attribute.
+ * configure.ac (AC_CHECK_TYPES): Check for struct ifla_cacheinfo in
+ <linux/rtnetlink.h>
+ (AC_CHECK_DECLS): Check for IFLA_AF_SPEC in <linux/rtnetlink.h>.
+ * tests/nlattr_ifla_af_spec.c: New file.
+ * tests/pure_executables.list: Add nlattr_ifla_af_spec.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (nlattr_ifla_af_spec): New test.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ tests: add TEST_NESTED_NLATTR_ARRAY_EX to test_nlattr.h.
+ An ability to specify custom depth is going to be needed later to check
+ IFLA_AF_SPEC decoding.
+
+ * configure.ac (AC_CHECK_DECLS): Check for TCA_STAB_DATA in
+ <linux/pkt_sched.h>.
+ * tests/test_nlattr.h (TEST_NESTED_NLATTR_ARRAY_EX): Rename from
+ TEST_NESTED_NLATTR_ARRAY, add depth_ argument, perform padding and
+ output accordingly.
+ (TEST_NESTED_NLATTR_ARRAY): New macro, a thin wrapper around
+ TEST_NESTED_NLATTR_ARRAY_EX.
+ * tests/nlattr_tca_stab.c [!HAVE_DECL_TCA_STAB_DATA] (TCA_STAB_DATA):
+ New enumeration declaration.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ tests: pass index to print_elem_ callback in TEST_NLATTR_NESTED_ARRAY.
+ * tests/test_nlattr.h (TEST_NLATTR_NESTED_ARRAY): Pass array index
+ to the print_elem_ callback.
+ * tests/nlattr_tca_stab.c (print_uint16): Add index argument.
+
+ tests: move common ifinfomsg boilerplate into a separate header.
+ * configure.ac (AC_CHECK_DECLS): Check for IFLA_PORT_SELF, IFLA_PROTINFO, and
+ IFLA_XDP in <linux/rtnetlink.h>.
+ * tests/nlattr_ifla.h: New file.
+ * tests/Makefile.am (EXTRA_DIST): Add it.
+ * tests/nlattr_ifla_brport.c [!HAVE_DECL_IFLA_PROTINFO] (IFLA_PROTINFO):
+ New declaration.
+ (hdrlen, init_ifinfomsg, print_ifinfomsg): Remove.
+ (IFLA_ATTR): Define to IFLA_PROTINFO.
+ Include nlattr_ifla.h.
+ * tests/nlattr_ifla_port.c [!HAVE_DECL_IFLA_PORT_SELF] (IFLA_PORT_SELF):
+ New declaration.
+ (hdrlen, init_ifinfomsg, print_ifinfomsg): Remove.
+ (IFLA_ATTR): Define to IFLA_PORT_SELF.
+ Include nlattr_ifla.h.
+ * tests/nlattr_ifla_xdp.c
+ * tests/nlattr_ifla_xdp.c [!HAVE_DECL_IFLA_XDP] (IFLA_XDP): New
+ declaration.
+ (hdrlen, init_ifinfomsg, print_ifinfomsg): Remove.
+ (IFLA_ATTR): Define to IFLA_XDP.
+ Include nlattr_ifla.h.
+
+ rtnl_link: implement IFLA_INFO_DATA for tun devices.
+ * xlat/rtnl_ifla_info_data_tun_attrs.in: New file.
+ * xlat/tun_device_types.in: Likewise.
+ * rtnl_link.c: Include xlat/rtnl_ifla_info_data_tun_attrs.h and
+ xlat/tun_device_types.h.
+ (decode_nla_tun_type, decode_nla_linkinfo_data_tun): New functions.
+ (ifla_info_data_tun_nla_decoders): New decoder dispatcher table.
+ (decode_nla_linkinfo_data): Use decode_nla_linkinfo_data_tun if kind
+ is
+ "tun".
+
+ rtnl_link: implement IFLA_INFO_DATA for bridges.
+ * xlat/rtnl_ifla_info_data_bridge_attrs.in: New file.
+ * rtnl_link.c: Include xlat/rtnl_ifla_info_data_bridge_attrs.h.
+ (ifla_info_data_bridge_nla_decoders): New decoder dispatcher table.
+ (decode_nla_linkinfo_data_bridge, decode_nla_linkinfo_data): New
+ functions.
+ (ifla_linkinfo_nla_decoders) <IFLA_INFO_DATA>: Use
+ decode_nla_linkinfo_data as a decoder.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_link: implement IFLA_INFO_XSTATS decoding.
+ So far, only CAN provides it.
+
+ * rtnl_link.c (decode_nla_linkinfo_xstats_can,
+ decode_nla_linkinfo_xstats): New function.
+ (ifla_linkinfo_nla_decoders) <IFLA_INFO_XSTATS>: Use
+ decode_nla_linkinfo_xstats as a decoder.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_link: add basic IFLA_INFO_* handling.
+ Dispatch for IFLA_INFO_* attributes should be performed based on the
+ string provided in a IFLA_INFO_KIND attribute.
+
+ * nlattr.h (struct ifla_linkinfo_ctx): New type definition.
+ * rtnl_link.c (decode_nla_linkinfo_kind): New function.
+ (ifla_linkinfo_nla_decoders) <IFLA_INFO_KIND>: Use
+ decode_nla_linkinfo_kind as decoder.
+ (decode_ifla_linkinfo): Add struct ifla_linkinfo_ctx context, pass it to
+ the decode_nlattr call as opaque data.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_link: decode IFLA_AF_SPEC.
+ * xlat/in6_addr_gen_mode.in: New file.
+ * xlat/inet6_devconf_indices.in: Likewise.
+ * xlat/inet6_if_flags.in: Likewise.
+ * xlat/inet_devconf_indices.in: Likewise.
+ * xlat/rtnl_ifla_af_spec_inet6_attrs.in: Likewise.
+ * xlat/rtnl_ifla_af_spec_inet_attrs.in: Likewise.
+ * xlat/snmp_icmp6_stats.in: Likewise.
+ * xlat/snmp_ip_stats.in: Likewise.
+ * rtnl_link.c: Include netinet/in.h, xlat/in6_addr_gen_mode.h,
+ xlat/inet_devconf_indices.h, xlat/inet6_devconf_indices.h,
+ xlat/inet6_if_flags.h, xlat/rtnl_ifla_af_spec_inet_attrs.h,
+ xlat/rtnl_ifla_af_spec_inet6_attrs.h, xlat/snmp_icmp6_stats.h,
+ and xlat/snmp_ip_stats.h.
+ (decode_ifla_inet_conf, decode_ifla_inet6_flags,
+ decode_ifla_inet6_conf, decode_ifla_inet6_stats,
+ decode_ifla_inet6_cacheinfo, decode_ifla_inet6_icmp6_stats,
+ decode_ifla_inet6_token, decode_ifla_inet6_agm, decode_ifla_af,
+ decode_ifla_af_spec): New functions.
+ (ifla_inet_nla_decoders, ifla_inet6_nla_decoders,
+ nla_decoder_table_desc): New static constant variables.
+ (ifinfomsg_nla_decoders) <[IFLA_AF_SPEC]>: Change value from NULL to
+ decode_ifla_af_spec.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: add size check to decode_nla_xval and decode_nla_flags.
+ If the field size is known, do not print as valid numbers those
+ attributes that are too short, and ignore extra data.
+
+ This change puts xval/flags printing in line with the reset of attribute
+ decoders.
+
+ * nlattr.h (struct decode_nla_xlat_opts): Add size field.
+ * nlattr.c (decode_nla_xval, decode_nla_flags): Check that len is at
+ least opts->size, limit len to opts->size.
+ (decode_nla_ip_proto): Specify size of 1.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: add UID/GID netlink attribute decoders.
+ * nlattr.h (DECL_NLA(uid), DECL_NLA(gid)): New declarations.
+ * nlattr.c (decode_nla_uid, decode_nla_gid): New functions.
+
+ nlattr: add unsigned int decoders that print in hex form.
+ * nlattr.h (DECL_NLA(x8), DECL_NLA(x16), DECL_NLA(x32), DECL_NLA(x64)):
+ New declarations.
+ * nlattr.c (DECODE_NLA_INTEGER(x8, uint8_t, "%#" PRIx8),
+ DECODE_NLA_INTEGER(x16, uint16_t, "%#" PRIx16),
+ DECODE_NLA_INTEGER(x32, uint32_t, "%#" PRIx32),
+ DECODE_NLA_INTEGER(x64, uint64_t, "%#" PRIx64)): New decoders.
+
+ nlattr: add ethernet protocol decoder.
+ * nlattr.h (DECL_NLA(ether_proto)): New declaration.
+ * nlattr.c (process_host_order, decode_nla_ether_proto): New functions.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: add value processing support for xlat/flags nlattr decoders.
+ Needed for upcoming decoder of ethernet proto which is stored in the
+ host order and has to be converted to the network order before printing
+ as an xval constant. This change also adds ability to provide
+ prefix/suffix in order to enclose the printed value in something that
+ describes the performed conversion.
+
+ * nlattr.h (struct decode_nla_xlat_opts): Add prefix, suffix, and
+ process_fn fields.
+ * nlattr.c (decode_nla_xval, decode_nla_flags): Handle process_fn,
+ prefix, snd uffix parameters.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: introduce decode_nla_flags.
+ Similar to decode_nla_xval.
+
+ * nlattr.c (decode_nla_flags): New function.
+ * nlattr.h: (DECL_NLA(flags)): New declaration.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: add ability to pass nla_type to decoder in decode_nlattr.
+ As of now, it's impossible to introduce a dispatching nlattr decoder
+ that performs actions based on the type of the message, so let's use
+ a combination of zero decoder list size and non-zero decoder pointer
+ for this.
+
+ This is going to be used later in IFLA_AF_SPEC decoding.
+
+ * nlattr.c (decode_nlattr_with_data): Handle zero size and non-NULL
+ decoders in a special way.
+ (decode_nlattr): Add an error message about ignoring of opaque_data
+ argument when zero size and non-NULL decoders are provided.
+ * nlattr.h (decode_nlattr): Add a comment about the new special case.
+
+2018-06-06 Dmitry V. Levin <[email protected]>
+
+ tests: use STRINGIFY instead of _STR.
+ Remove _STR which is essentially the same as STRINGIFY but from
+ the namespace where we should not introduce new identifiers.
+
+ * tests/tests.h (_STR): Remove.
+ * tests/add_key.c (main): Replace _STR with STRINGIFY.
+ * tests/keyctl.c (XARG_STR): Likewise.
+ * tests/request_key.c (main): Likewise.
+
+2018-06-06 Eugene Syromyatnikov <[email protected]>
+
+ tests: check decoding of IFLA_EVENT netlink attribute.
+ * tests/nlattr_ifinfomsg.c (main): Add a check for IFLA_EVENT attribute
+ decoding.
+
+2018-06-05 Dmitry V. Levin <[email protected]>
+
+ xlat: handle xlat constants that are not identifiers.
+ Extend xlat generator to support such input lines as
+ IPV4_DEVCONF_FORWARDING-1 0
+
+ This is going to be used later in IFLA_AF_SPEC decoding.
+
+ * xlat/gen.sh (cond_def): If the xlat value is not an identifier name,
+ extract an identifier name from the beginning of xlat value.
+
+2018-06-05 Eugene Syromyatnikov <[email protected]>
+
+ xlat.c: handle NULL xlat in lookup routines as incremental search.
+ This is going to be used later in IFLA_AF_SPEC decoding.
+
+ * xlat.c (xlookup): Add static variable pos, store xlat there when it is
+ non-NULL, use pos for lookup.
+ (xlat_search, xlat_idx): Add static variables pos and memb_left, store
+ xlat and nmemb there when xlat is non-NULL, use them for lookup.
+ (printxvals_ex): Store the last non-NULL xlat in static variable "last".
+ If the first xlat argument is NULL, use "last" instead.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-05 Eugene Syromyatnikov <[email protected]>
+
+ xlat.c: cleanup printxvals_ex a bit.
+ * xlat.c (printxvals_ex): Change "str" variable visibility to the whole
+ function, jump to va_end instead of duplicating call and return, return
+ !!str.
+
+ Leverage the fact that inet_protocols xlat is sorted.
+ * defs.h (inet_protocols): Move up, add description.
+ (inet_protocols_size): New declaration.
+ * net.c (inet_protocols_size): New constant variable.
+ * nlattr.c (decode_nla_ip_proto): Specify xlat_size, set xt to XT_SORTED.
+
+2018-06-04 Eugene Syromyatnikov <[email protected]>
+
+ Print arp_hardware_types as a sorted xlat.
+ * rtnl_link.c (DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg)): Use
+ PRINT_FIELD_XVAL_SORTED_SIZED instead of PRINT_FIELD_XVAL for
+ arp_hardware_types.
+ * sock.c (print_ifreq): Likewise.
+
+ Provide a value for arp_hardware_types_size array.
+ * defs.h (arp_hardware_types_size): New declaration.
+ * sockaddr.c (arp_hardware_types_size): New variable.
+
+2018-06-04 Eugene Syromyatnikov <[email protected]>
+
+ print_fields.h: introduce PRINT_FIELD_XVAL_SORTED_SIZED.
+ For those cases when array definition is not readily available
+ and should be provided separately.
+
+ * print_fields.h (PRINT_FIELD_XVAL_SORTED_SIZED): New macro.
+
+2018-06-04 Eugene Syromyatnikov <[email protected]>
+
+ tests/opipe.test: remove unneeded run_prog call.
+ There is no need to invoke grep using run_prog.
+
+ * tests/opipe.test: Remove run_prog decoration for the grep invocation.
+
+2018-06-04 Eugene Syromyatnikov <[email protected]>
+
+ tests: check BPF_OBJ_GET_INFO_BY_FD decoding.
+ * tests/bpf-obj_get_info_by_fd-prog-v.c: New file.
+ * tests/bpf-obj_get_info_by_fd-prog.c: Likewise.
+ * tests/bpf-obj_get_info_by_fd-v.c: Likewise.
+ * tests/bpf-obj_get_info_by_fd.c: Likewise.
+ * configure.ac (AC_CHECK_HEADERS): Check for struct bpf_insn,
+ struct bpf_map_info, and struct bpf_prog_info.
+ * tests/pure_executables.list: Add bpf-obj_get_info_by_fd,
+ bpf-obj_get_info_by_fd-v, bpf-obj_get_info_by_fd-prog, and
+ bpf-obj_get_info_by_fd-prog-v.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (bpf-obj_get_info_by_fd,
+ bpf-obj_get_info_by_fd-v, bpf-obj_get_info_by_fd-prog,
+ bpf-obj_get_info_by_fd-prog-v): New tests.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-04 Dmitry V. Levin <[email protected]>
+
+ bpf: enhance BPF_OBJ_GET_INFO_BY_FD decoder further.
+ * bpf.c (print_ebpf_prog): Remove "decode" argument, all users updated.
+ (print_bpf_prog_info): Use the minimum of xlated_prog_len values on
+ entering and exiting syscall as the size of xlated_prog_insns array
+ to be decoded. Likewise, use the minimum of nr_map_ids values on entering
+ and exiting syscall as the size of map_ids array to be decoded.
+
+2018-06-02 Eugene Syromyatnikov <[email protected]>
+
+ bpf: enhance BPF_OBJ_GET_INFO_BY_FD decoder.
+ * bpf.c (print_bpf_map_info): Print only those fields that are
+ present in the structure, as it has been growing over time.
+ (print_bpf_prog_info): Likewise. Print map_ids field as an array
+ of uint32_t instead of uint64_t; print "name" field.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-02 Eugene Syromyatnikov <[email protected]>
+
+ bpf: move handling of the saved state to BPF_OBJ_GET_INFO_BY_FD decoder.
+ As it is needed for proper info_len printing on exiting.
+
+ * bpf.c (print_bpf_obj_info_fn): Change return type to void, add "saved"
+ argument.
+ (struct obj_get_info_saved): New type definition.
+ (print_bpf_map_info, print_bpf_prog_info): Change return type to void,
+ add "saved" argument, do not handle private tcb data allocation and
+ obtainment.
+ (print_bpf_obj_info_addr): Change return type to void, add tcb argument,
+ print the address only on exiting.
+ (print_bpf_obj_info): Change return type to void, add "saved" argument.
+ (BEGIN_BPF_CMD_DECODER(BPF_OBJ_GET_INFO_BY_FD)): Handle private data
+ allocation/saving/restoring, use it for storing/printing info_len field.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-02 Eugene Syromyatnikov <[email protected]>
+
+ bpf: print log_buf field as a string.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)): Print log_buf field
+ as a string.
+ * tests/bpf.c: Update expected output.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-02 Eugene Syromyatnikov <[email protected]>
+
+ bpf: print xlated_prog_insns only when xlated_prog_len had not been 0.
+ If xlated_prog_len is zero on entering syscall and non-zero on exiting,
+ the program itself is not written into xlated_prog_insns.
+
+ * bpf.c (print_ebpf_prog): Add decode argument, print the address only
+ if decode is false.
+ (BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)): Specify decode == true argument
+ to print_ebpf_prog.
+ (print_bpf_prog_info): Specify saved xlated_prog_len as decode argument
+ to print_ebpf_prog.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-02 Eugene Syromyatnikov <[email protected]>
+
+ bpf: move print_big_u64_addr inside print_ebpf_prog.
+ * bpf.c (print_ebpf_prog): Add static qualifier. Change the type
+ of "addr" argument from kernel_ulong_t to uint64_t, print it using
+ print_big_u64_addr.
+ (BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD), print_bpf_prog_info): Do not call
+ print_big_u64_addr before print_ebpf_prog.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-06-02 Dmitry V. Levin <[email protected]>
+
+ bpf_attr.h: add ATTRIBUTE_ALIGNED(8) to all fields of type uint64_t.
+ Our policy is that all fields of type uint64_t in this header file
+ must have this attribute.
+
+ This shouldn't cause any contradictions with <linux/bpf.h>
+ unless the latter is buggy.
+
+ By word "buggy" I mean containing such changes as Linux kernel commit
+ v4.16-rc1~123^2~109^2~5^2~4.
+
+ * bpf_attr.h (struct BPF_MAP_UPDATE_ELEM_struct): Add
+ ATTRIBUTE_ALIGNED(8) to "flags" field.
+ (struct bpf_prog_info_struct): Add ATTRIBUTE_ALIGNED(8) to "load_time"
+ field.
+
+2018-06-02 Eugene Syromyatnikov <[email protected]>
+
+ tests: cast printf arguments to short when %h format qualifier is used.
+ Reported by clang.
+
+ * tests/mknod.c (main): Cast printf argument for %#03ho format to short.
+ * tests/mknodat.c (main): Likewise.
+ * tests/net-sockaddr.c (main): Cast printf argument for %hu format
+ to short.
+ * tests/semop.c (main): Likewise.
+
+2018-06-02 Eugene Syromyatnikov <[email protected]>
+
+ xlat/evdev_keycode.in: remove constants with duplicating values.
+ Those are used for describing input device category and not specific
+ button.
+
+ Reported by clang.
+
+ * xlat/evdev_keycode.in (BTN_MOUSE, BTN_JOYSTICK, BTN_GAMEPAD, BTN_DIGI,
+ BTN_WHEEL, BTN_TRIGGER_HAPPY): Remove.
+
+2018-06-01 Eugene Syromyatnikov <[email protected]>
+
+ configure.ac: include <sys/socket.h> before <linux/rtnetlink.h>
+ This is needed for old Linux UAPI headers that do no contain commit
+ v3.1-rc2~19^2~29.
+
+ * configure.ac: Include <sys/socket.h> before <linux/rtnetlink.h>
+ in AC_CHECK_* invocations.
+
+2018-06-01 Eugene Syromyatnikov <[email protected]>
+
+ configure.ac: check for linux/rtnetlink.h instead of linux/if_link.h for declarations
+ Historically, type definitions and declarations related to netlink route
+ interface attributes were in linux/rtnetlink.h, later they were moved
+ elsewhere (first linux/if.h, then linux/if_link.h) with the inclusion
+ of the corresponding header file in linux/rtnetlink.h.
+
+ * configure.ac: Use <linux/rtnetlink.h> instead of <linux/if_link.h>
+ in checks for interface netlink attributes-related declarations
+ and definitions.
+
+2018-06-01 Eugene Syromyatnikov <[email protected]>
+
+ m4: move the gawk script from m4/gen_bpf_attr_m4.sh into a separate file
+ As it turns out, old versions of gawk do not support -e option.
+
+ * m4/gen_bpf_attr_m4.sh: Move the gawk script ...
+ * m4/gen_bpf_attr_m4.awk: ... here.
+
+2018-06-01 Eugene Syromyatnikov <[email protected]>
+
+ s390: wire up kexec_file_load syscall.
+ * linux/s390/syscallent.h ([381]): Add kexec_file_load syscall.
+ * linux/s390/syscallent.h ([381]): Likewise.
+
+2018-06-01 Zhibin Li <[email protected]>
+
+ tests: check short read of struct flock/flock64.
+ * tests/fcntl-common.c (test_flock_einval): Check short read
+ of struct flock.
+ (test_flock64_einval): Check short read of struct flock64.
+
+2018-06-01 Dmitry V. Levin <[email protected]>
+
+ tests: extend struct flock/flock64 decoding checks.
+ * tests/fcntl-common.c (test_flock_einval, test_flock): Create
+ struct_kernel_flock object using tail_alloc.
+ (test_flock64_einval): Create struct_kernel_flock64 object using
+ tail_alloc.
+ * tests/fcntl64.c (test_flock64_lk64): Likewise.
+
+2018-06-01 Dmitry V. Levin <[email protected]>
+
+ tests: extend F_OFD_* decoding checks.
+ Check that non-faulty F_OFD_* fcntl operations are decoded properly.
+
+ * tests/fcntl-common.c: Include <string.h>.
+ (test_flock64_ofd): New function.
+ (test_flock64): Invoke it, remove [F_OFD_SETLK].
+
+2018-06-01 Dmitry V. Levin <[email protected]>
+
+ tests/fcntl-common.c: define and initialize errstr.
+ Initialize errstr inside invoke_test_syscall so that its users
+ won't have to go into trouble of caring about clobbering errno.
+
+ * tests/fcntl-common.c (errstr): New variable.
+ (invoke_test_syscall): Initialize it.
+ (test_flock_einval, test_flock64_einval, test_flock,
+ test_f_owner_ex_type_pid): Use it.
+ * tests/fcntl.c (test_flock64_undecoded): Likewise.
+ * tests/fcntl64.c (test_flock64_lk64): Likewise.
+
+2018-06-01 Dmitry V. Levin <[email protected]>
+
+ tests/fcntl-common.c: add fd argument to invoke_test_syscall.
+ Extend invoke_test_syscall for later use with different file
+ descriptors.
+
+ * tests/fcntl-common.c (invoke_test_syscall): Add fd argument, pass it
+ to TEST_SYSCALL_NR syscall. All users updated.
+
+2018-06-01 Dmitry V. Levin <[email protected]>
+
+ tests: move F_OFD_SETLK* checks from fcntl64.c to fcntl-common.c.
+ This change enables F_OFD_SETLK* tests for fcntl as well.
+
+ * tests/fcntl64.c (test_flock64): Rename to test_flock64_lk64.
+ [F_OFD_SETLK]: Remove.
+ (test_flock64_einval): Move ...
+ * tests/fcntl-common.c: ... here.
+ (test_flock64_lk64): New protype.
+ (test_flock64_einval, test_flock64): New functions.
+ * tests/fcntl.c (test_flock64_einval): Rename to test_flock64_undecoded.
+ (TEST_FLOCK64_UNDECODED): New macro.
+ (test_flock64): Rename to test_flock64_lk64, replace TEST_FLOCK64_EINVAL
+ with TEST_FLOCK64_UNDECODED.
+
+2018-06-01 Dmitry V. Levin <[email protected]>
+
+ tests: move F_OWNER_* tests to fcntl-common.c.
+ This change enables F_OWNER_* tests for fcntl64 as well.
+
+ * tests/fcntl.c: Move main, [TEST_FLOCK64_EINVAL],
+ and [TEST_F_OWNER_EX] ...
+ * tests/fcntl-common.c: ... here.
+ (test_flock64): New prototype.
+ * tests/fcntl64.c (main): Remove.
+
+2018-06-01 Dmitry V. Levin <[email protected]>
+
+ tests: rename struct_flock.c to fcntl-common.c.
+ It is not limited to struct flock, more fcntl tests are going to land
+ in this file.
+
+ * tests/struct_flock.c: Rename to fcntl-common.c.
+ * tests/Makefile.am (EXTRA_DIST): Rename struct_flock.c
+ to fcntl-common.c.
+ * tests/fcntl.c: Likewise.
+ * tests/fcntl64.c: Likewise.
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ tests: check decoding of new FRA_* netlink attributes.
+ * configure.ac (AC_CHECK_TYPES): Check for struct fib_rule_port_range
+ in <linux/fib_rules.h>.
+ * tests/nlattr_fib_rule_hdr.c: Include <linux/in.h>.
+ (FRA_PROTOCOL, FRA_IP_PROTO, FRA_SPORT_RANGE, FRA_DPORT_RANGE): New
+ macro constants.
+ [!HAVE_STRUCT_FIB_RULE_PORT_RANGE] (struct fib_rule_port_range): New
+ type.
+ (main): Check decoding of new FRA_* netlink attributes.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_rule: decode new FRA_* attributes.
+ * nlattr.h (DECL_NLA(ip_proto), DECL_NLA(rt_proto)): New declarations.
+ * nlattr.c (decode_nla_ip_proto): New function.
+ * rtnl_route.c (decode_nla_rt_proto): Likewise.
+ * rtnl_rule.c (decode_rule_port_rang): Likewise.
+ (fib_rule_hdr_nla_decoders) <[FRA_PROTOCOL]>: New attribute, introduced
+ by Linux commit v4.17-rc1~148^2~371.
+ (fib_rule_hdr_nla_decoders) <[FRA_IP_PROTO], [FRA_SPORT_RANGE],
+ [FRA_DPORT_RANGE]>: New attributes, introduced by Linux commit
+ v4.17-rc1~148^2~328^2~4.
+ * xlat/rtnl_rule_attrs.in (FRA_PROTOCOL, FRA_IP_PROTO, FRA_SPORT_RANGE,
+ FRA_DPORT_RANGE): New constants.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: introduce decode_nla_xval helper.
+ * nlattr.c (decode_nla_xval): New function.
+ * nlattr.h: Include "xlat.h".
+ (struct decode_nla_xlat_opts): New type.
+ (DECL_NLA(xval)): New declaration.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-30 Dmitry V. Levin <[email protected]>
+
+ Move definitions of xlat_type and xlat_style from defs.h to xlat.h.
+ * defs.h (enum xlat_type, enum xlat_style, XLAT_STYLE_FORMAT_SHIFT,
+ XLAT_STYLE_VERBOSITY_MASK, XLAT_STYLE_FORMAT_MASK, XLAT_STYLE_SPEC_BITS,
+ XLAT_STYLE_MASK): Move ...
+ * xlat.h: ... here.
+
+ travis: switch from gcc-7 to gcc-8.
+ * .travis.yml (matrix): Change gcc-7 to gcc-8.
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ tests: use syscall() for ioctl() calls with oversized arguments.
+ * tests/ioctl_inotify.c (sys_ioctl): New function.
+ (main): Use sys_ioctl for ioctl calls with oversized arguments.
+ * tests/ioctl_loop.c: Likewise.
+ * tests/ioctl_perf.c: Likewise.
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ print_ifindex: respect xlat style settings.
+ Print interface indices according to the preferred xlat style settings.
+
+ * print_ifindex.c (INI_PFX, INI_SFX): New helper macros.
+ [HAVE_IF_INDEXTONAME] (get_ifname): New function.
+ [HAVE_IF_INDEXTONAME] (print_ifindex): Implement as a wrapper around
+ get_ifname and print_xlat_ex.
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ tests/test_nlattr.h: fix pointer calculation in TEST_NLATTR_ARRAY, take 2
+ The old code works only when an array contains exactly two items.
+
+ * tests/test_nlattr.h (TEST_NLATTR_ARRAY): Fix pointer address
+ for the case of incomplete read.
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: print index names in netlink meminfo array.
+ * xlat/netlink_sk_meminfo_indices.in: New file.
+ * nlattr.c: Include xlat/netlink_sk_meminfo_indices.h.
+ (decode_nla_meminfo): Use print_array_ex, pass
+ netlink_sk_meminfo_indices as index xlat table.
+ * tests/nlattr_inet_diag_msg.c: Update expected output.
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ Introduce ARRSZ_PAIR macro.
+ A shorthand similar to ARG_STR in its purpose: it provides and ability
+ to pass an array an its size without variable name duplication.
+
+ * macros.h (ARRSZ_PAIR): New macro.
+
+2018-05-30 Eugene Syromyatnikov <[email protected]>
+
+ print_array: add support for printing array indices.
+ * defs.h (XLAT_STYLE_SPEC_BITS, XLAT_STYLE_MASK): New macro constants.
+ (tfetch_mem_fn, print_fn): New typedefs.
+ (enum print_array_flag_bits, enum print_array_flags): New enumerations.
+ (print_array_ex): Rename from print_array, add flags, index_xlat,
+ index_xlat_size, and index_dflt arguments.
+ (print_array): New static inline function, a thin wrapper around
+ print_array_ex.
+ util.c: Include "xlat.h".
+ (print_array): Rename to print_array_ex, add flags, index_xlat,
+ index_xlat_size, and index_dflt arguments. Print array indices
+ according to the style settings specified by flags if PAF_PRINT_INDICES
+ is set.
+
+2018-05-29 Dmitry V. Levin <[email protected]>
+
+ Enhance printing of unfetchable object addresses in sequences and arrays
+ * btrfs.c (btrfs_print_tree_search): Print the address of unfetchable
+ object inside the sequence using printaddr_comment.
+ * msghdr.c (decode_msg_control): Likewise.
+ * execve.c (printargv): Print the address of unfetchable object inside
+ the array using printaddr_comment.
+ * netlink.c (fetch_nlmsghdr): Add in_array argument. When in_array
+ is true, print the address of unfetchable object using
+ printaddr_comment.
+ * nlattr.c (fetch_nlattr): Likewise.
+ * tests/execve.c (main): Update expected output.
+ * tests/execveat.c (main): Likewise.
+ * tests/msg_control.c (test_scm_rights1, test_scm_rights2,
+ test_scm_security): Likewise.
+ * tests/netlink_protocol.c (send_query): Likewise.
+ * tests/nlattr.c (test_nlattr): Likewise.
+
+2018-05-29 Dmitry V. Levin <[email protected]>
+
+ print_array: enhance printing of unfetchable object addresses.
+ When umoven_func invocation fails to fetch data, it prints the faulty
+ address. If this happens to a subsequent umoven_func invocation,
+ the printed address may be undistinguishable from a valid data printed
+ by print_func, e.g. when the data is printed in a numeric form like
+ [0x1, 0x2, 0x3, 0xdefaced].
+
+ Fix this source of confusion by moving the printing of the faulty
+ address from umoven_func to print_array itself. This change renames
+ umoven_func to tfetch_mem_func and changes its semantics, so that
+ - tfetch_mem_func never prints anything;
+ - tfetch_mem_func returns true if the fetch succeeded,
+ and false otherwise.
+
+ * defs.h (print_array): Replace umoven_func argument with
+ tfetch_mem_func.
+ * util.c (print_array): Replace umoven_func argument with
+ tfetch_mem_func, document expected tfetch_mem_func return value
+ semantics. When tfetch_mem_func returns false, print either addr
+ or "... /* addr */" depending on the context (inside the array or not).
+ * bpf.c (print_ebpf_prog, print_bpf_prog_info,
+ BEGIN_BPF_CMD_DECODER(BPF_PROG_QUERY)): Replace umoven_or_printaddr
+ argument of print_array with tfetch_mem.
+ * bpf_filter.c (print_bpf_fprog): Likewise.
+ * btrfs.c (btrfs_print_logical_ino_container,
+ btrfs_print_ino_path_container, btrfs_print_qgroup_inherit,
+ btrfs_ioctl): Likewise.
+ * dm.c (dm_decode_dm_target_deps): Likewise.
+ * epoll.c (epoll_wait_common): Likewise.
+ * file_ioctl.c (file_ioctl): Likewise.
+ * ipc_sem.c (tprint_sembuf_array): Likewise.
+ * kexec.c (print_kexec_segments): Likewise.
+ * mem.c (SYS_FUNC(subpage_prot)): Likewise.
+ * net.c (print_getsockopt): Likewise.
+ * netlink.c (decode_nlmsgerr_attr_cookie): Likewise.
+ * netlink_netlink_diag.c (decode_netlink_diag_groups): Likewise.
+ * netlink_packet_diag.c (decode_packet_diag_mclist): Likewise.
+ * netlink_unix_diag.c (decode_unix_diag_inode): Likewise.
+ * nlattr.c (decode_nla_meminfo): Likewise.
+ * numa.c (print_nodemask, SYS_FUNC(move_pages),
+ * perf_ioctl.c (perf_ioctl_query_bpf): Likewise.
+ * poll.c (decode_poll_entering): Likewise.
+ * printsiginfo.c (print_siginfo_array): Likewise.
+ * rtnl_tc.c (decode_tca_stab_data): Likewise.
+ * sock.c (decode_ifconf): Likewise.
+ * uid.c (print_groups): Likewise.
+ * io.c (SYS_FUNC(io_submit), SYS_FUNC(io_getevents)): Replace
+ umoven_or_printaddr argument of print_array with tfetch_mem.
+ (tprint_iov_upto): Replace umoven_or_printaddr_ignore_syserror
+ with tfetch_mem_ignore_syserror.
+ * v4l2.c (print_v4l2_format_fmt): Replace umoven_or_printaddr argument
+ of print_array with tfetch_mem.
+ (print_v4l2_ext_controls): Replace umoven_or_printaddr_ignore_syserror
+ with tfetch_mem_ignore_syserror.
+ * mmsghdr.c (fetch_struct_mmsghdr_or_printaddr): Rename
+ to fetch_struct_mmsghdr_for_print, do not print address, return bool.
+ (decode_mmsgvec): Replace fetch_struct_mmsghdr_or_printaddr
+ with fetch_struct_mmsghdr_for_print.
+ * tests/aio.c (main): Update expected output.
+ * tests/bpf.c (print_BPF_PROG_QUERY_attr5): Likewise.
+ * tests/ioctl_perf-success.c (main): Likewise.
+ * tests/ioctl_v4l2.c (main): Update expected output.
+ * tests/kexec_load.c (main): Likewise.
+ * tests/mmsg_name.c (test_mmsg_name): Update expected output.
+ * tests/move_pages.c (print_page_array, print_node_array): Likewise.
+ * tests/poll.c (print_pollfd_array_entering): Likewise.
+ * tests/preadv-pwritev.c (main): Likewise.
+ * tests/preadv2-pwritev2.c (dumpio): Likewise.
+ * tests/process_vm_readv_writev.c (print_iov): Likewise.
+ * tests/pwritev.c (print_iovec): Likewise.
+ * tests/readv.c (main): Likewise.
+ * tests/seccomp-filter-v.c
+ * tests/semop.c (main): Likewise.
+ * tests/set_mempolicy.c (print_nodes): Likewise.
+ * tests/setgroups.c (main): Likewise.
+ * tests/test_nlattr.h (print_nlattr) Likewise.
+
+ Co-Authored-by: Eugene Syromyatnikov <[email protected]>
+
+2018-05-29 Dmitry V. Levin <[email protected]>
+
+ Introduce tfetch_* family of functions and macros.
+ These new functions are going to be used instead of umove_or_printaddr*
+ as umoven_func argument of print_array.
+
+ * defs.h (tfetch_mem64, tfetch_mem64_ignore_syserror): New
+ function prototypes.
+ (tfetch_mem, tfetch_mem_ignore_syserror): New static inline
+ wrappers.
+ (tfetch_obj): New macro wrapper around tfetch_mem.
+ * util.c (tfetch_mem64, tfetch_mem64_ignore_syserror): New
+ functions.
+ (umoven_or_printaddr64, umoven_or_printaddr64_ignore_syserror): Use
+ them.
+
+2018-05-29 Dmitry V. Levin <[email protected]>
+
+ Introduce printaddr_comment.
+ * defs.h (printaddr_comment): New static inline wrapper around
+ tprintf_comment.
+
+ Turn printaddr into a thin wrapper around printaddr64.
+ * util.c (printaddr): Move ...
+ * defs.h: ... here, add "static inline" qualifiers.
+
+2018-05-29 Eugene Syromyatnikov <[email protected]>
+
+ defs.h: add comments about umove* return values.
+ * defs.h (umoven, umoven_or_printaddr64,
+ umoven_or_printaddr64_ignore_syserror, umovestr): Add comments about
+ return values.
+
+2018-05-28 Dmitry V. Levin <[email protected]>
+
+ tests: use TAIL_ALLOC_OBJECT_CONST_PTR where appropriate.
+ * tests/kcmp.c (main): Use TAIL_ALLOC_OBJECT_CONST_PTR.
+ * tests/modify_ldt.c (main): Likewise.
+ * tests/netlink_protocol.c (send_query): Likewise.
+ * tests/ptrace.c (test_peeksiginfo, main): Likewise.
+ * tests/s390_guarded_storage.c (main): Likewise.
+ * tests/s390_sthyi.c (main): Likewise.
+ * tests/xet_thread_area_x86.c (main): Likewise.
+
+2018-05-28 Eugene Syromyatnikov <[email protected]>
+
+ bpf: decode bpf_attr.info field used by BPF_OBJ_GET_INFO_BY_FD command.
+ * bpf_attr.h [!BPF_TAG_SIZE] (BPF_TAG_SIZE): Define.
+ [BPF_TAG_SIZE]: Check that BPF_TAG_SIZE is 8.
+ (struct bpf_map_info_struct, struct bpf_prog_info_struct): New
+ structures.
+ (bpf_map_info_struct_size, expected_bpf_map_info_struct_size,
+ bpf_prog_info_struct_size, expected_bpf_prog_info_struct_size): New
+ macro constants.
+ * bpf.c (print_bpf_obj_info_fn): New type.
+ (print_bpf_map_info, print_bpf_prog_info, fetch_bpf_obj_info,
+ print_bpf_obj_info_addr, print_bpf_obj_info): New functions.
+ (BEGIN_BPF_CMD_DECODER(BPF_OBJ_GET_INFO_BY_FD)): Print bpf_fd and info_len
+ fields only on entering, call print_bpf_obj_info for printing info field.
+ * tests/bpf.c (BPF_OBJ_GET_INFO_BY_FD_checks): Print info field
+ as a pointer.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-28 Eugene Syromyatnikov <[email protected]>
+
+ bpf: add support for checking structures outside union bpf_attr.
+ struct bpf_prog_info and bpf_map_info need essentially the same handling
+ as union bpf_attr.
+
+ * gen_bpf_attr_check.sh: Derive type_name from $struct if it doesn't
+ start with "BPF_", derive TYPE_NAME from type_name, use them in code
+ generation.
+ * m4/gen_bpf_attr_m4.sh: Rewrite parsing/generation code into awk,
+ add support for structures outside union bpf_attr.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-28 Dmitry V. Levin <[email protected]>
+
+ bpf: remove bpf_priv_data.
+ As various bpf commands need different data to save between entering
+ and exiting of the syscall, do not emulate union bpf_attr approach.
+
+ * bpf.c (struct bpf_priv_data): Remove.
+ (DECL_BPF_CMD_DECODER): Remove "struct bpf_priv_data *" argument.
+ (BEGIN_BPF_CMD_DECODER(BPF_PROG_QUERY)): Use set_tcb_priv_ulong
+ and get_tcb_priv_ulong to keep bpf_attr.query.prog_cnt field.
+ (SYS_FUNC(bpf)): Remove priv variable, do not initialize it,
+ and do not pass it to bpf_cmd_decoders.
+
+2018-05-28 Eugene Syromyatnikov <[email protected]>
+
+ tests: add union bpf_attr.query.prog_ids field decoding checks.
+ * tests/bpf-success-v.c: New file.
+ * tests/bpf-success.c: Likewise.
+ * tests/bpf-success-v.test: New test.
+ * tests/bpf-success.test: Likewise.
+ * tests/.gitignore: Add bpf-success and bpf-success-v.
+ * tests/Makefile.am (check_PROGRAMS): Likewise.
+ (DECODER_TESTS): Add bpf-success.test and bpf-success-v.test.
+ * tests/bpf.c [INJECT_RETVAL] (sys_bpf): Check that retuned value
+ is equivalent to the injected one; append "(INJECTED)" string to errstr.
+ (prog_load_ids, prog_load_ids_ptr): New variables.
+ (init_BPF_PROG_QUERY_attr4, print_BPF_PROG_QUERY_attr4,
+ init_BPF_PROG_QUERY_attr5, print_BPF_PROG_QUERY_attr5): New functions.
+ (BPF_PROG_QUERY_checks): Drop "const" qualifier, add new checks.
+
+ bpf: BPF_PROG_QUERY bpf_attr.query.prog_ids printing fixes.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_QUERY)): Use
+ print_uint32_array_member instead of print_uint64_array_member for
+ printing prog_ids elements (and change the type of prog_id_buf from
+ uint64_t to uint32_t), as they are 32-bit; use common trick with
+ print_big_u64_addr for handling possible ambiguity with prog_ids
+ address.
+ * tests/bpf.c (BIG_ADDR_MAYBE): New macro.
+ (BPF_PROG_QUERY_checks): Update expected output.
+
+ bpf: add support for instruction decoding.
+ * xlat/ebpf_regs.in: New file.
+ * bpf.c (struct ebpf_insn, struct ebpf_insns_data): New type definitions.
+ (print_ebpf_insn, print_ebpf_prog): New functions.
+ (DEF_BPF_CMD_DECODER(BPF_PROG_LOAD)): Use them.
+
+2018-05-28 Eugene Syromyatnikov <[email protected]>
+
+ tests: check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls
+ As these have some argument output on the exit path.
+
+ * tests/ioctl_perf-success.c: New file.
+ * tests/ioctl_perf-success.test: New test.
+ * tests/Makefile.am (DECODER_TESTS): Add it.
+ (check_PROGRAMS): Add ioctl_perf-success.
+ * tests/.gitignore: Likewise.
+ * tests/ioctl_perf.c: Remove TODO.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-28 Eugene Syromyatnikov <[email protected]>
+
+ Implement PERF_EVENT_IOC_* decoding.
+ * perf.c (fetch_perf_event_attr, print_perf_event_attr): Remove "static"
+ qualifier.
+ * defs.h (fetch_perf_event_attr, print_perf_event_attr): New
+ declarations.
+ * perf_event_struct.h (struct perf_event_query_bpf): New type
+ definition.
+ * perf_ioctl.c: New file.
+ * Makefile.am (strace_SOURCES): Add it.
+ * xlat/perf_ioctl_cmds.in: New file.
+ * xlat/perf_ioctl_flags.in: Likewise.
+ * ioctl.c (ioctl_decode) <case '$'>: Call perf_ioctl.
+ * tests/gen_tests.in (ioctl_perf): New test.
+ * tests/ioctl_perf.c: New file.
+ * tests/pure_executables.list: ioctl_perf.
+ * tests/.gitignore: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-28 Dmitry V. Levin <[email protected]>
+
+ tests: fix ipc_msgbuf.test.
+ * tests/ipc_msgbuf.test: Fix -a argument.
+
+2018-05-25 Eugene Syromyatnikov <[email protected]>
+
+ xlat: update IPPROTO_* constants.
+ * xlat/inet_protocols.in (IPPROTO_GGP, IPPROTO_HELLO, IPPROTO_ND):
+ Remove, not defined in Linux.
+ (IPPROTO_BEETPH): New constant, introduced by Linux commit
+ v2.6.19-rc1~33^2.
+ (IPPROTO_L2TP): New constant, introduced by Linux commit
+ v2.6.35-rc1~473^2~594.
+ (IPPROTO_MH): New constant, introduced by Linux commit
+ v2.6.19-rc1~1272^2~157.
+ Add default values to constants, sort the file.
+
+ xlat: add fallback definitions to RTPROT_* constants.
+ * xlat/routing_protocols.in: Add default values to constants.
+
+ xlat: add SECCOMP_FILTER_FLAG_SPEC_ALLOW.
+ * xlat/seccomp_filter_flags.in (SECCOMP_FILTER_FLAG_SPEC_ALLOW): New
+ constant, introduced by Linux commit v4.17-rc3-24-g00a02d0.
+ * tests/seccomp-filter.c: Update expected output.
+ * tests/seccomp-filter-v.c: Likewise.
+
+ prctl: add PR_GET_SPECULATION_CTRL/PR_SET_SPECULATION_CTRL decoding.
+ * xlat/pr_spec_cmds.in: New fille.
+ * xlat/pr_spec_get_store_bypass_flags.in: Likewise.
+ * xlat/pr_spec_set_store_bypass_flags.in: Likewise.
+ * xlat/prctl_options.in (PR_GET_SPECULATION_CTRL,
+ PR_SET_SPECULATION_CTRL): New constants, introduced by Linux commit
+ v4.17-rc3-15-gb617cfc.
+ * prctl.c (SYS_FUNC(prctl)) <case PR_GET_SPECULATION_CTRL,
+ case PR_SET_SPECULATION_CTRL>: Implement decoding of new prctl options.
+ * tests/Makefile.am (check_PROGRAMS): Add prctl-spec-inject.
+ (DECODER_TESTS): Add prctl-spec-inject.test.
+ * tests/prctl-spec-inject.c: New file.
+ * tests/prctl-spec-inject.test: New test.
+ * tests/.gitignore: Add prctl-spec-inject.
+
+ tests: add keyctl variants with different xlat verbosity levels.
+ * tests/keyctl-Xabbrev.c: New file.
+ * tests/keyctl-Xraw.c: Likewise.
+ * tests/keyctl-Xverbose.c: Likewise.
+ * tests/keyctl.c (XARG_STR): New macro.
+ (do_keyctl): Print command in accordance with XLAT_RAW/XLAT_VERBOSE settings.
+ (main): Update expected output.
+ * tests/pure_executables.list: Add keyctl-Xabbrev, keyctl-Xraw,
+ and keyctl-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (keyctl-Xabbrev, keyctl-Xraw, keyctl-Xverbose): New
+ tests.
+
+ keyctl: print KEYCTL_SET_REQKEY_KEYRING argument as an integer.
+ * xlat/key_reqkeys.in: Add #val_type int.
+ * keyctl.c (SYS_FUNC(keyctl)) <case KEYCTL_SET_REQKEY_KEYRING>: Print
+ arg2 as an integer.
+ * tests/keyctl.c: Update expected output.
+
+ keyctl: respect xlat style when printing errno.
+ * keyctl.c (keyctl_reject_key): Use print_xlat_ex for printing error
+ argument.
+
+2018-05-25 Eugene Syromyatnikov <[email protected]>
+
+ syscall.c: unify error value printing.
+ There's little reason not to decode error code for syscalls printed in
+ raw; moreover, it creates inconsistencies for unknown syscall printing.
+
+ Another issue was with error numbers unknown to strace: previously, they
+ were printed as "... = -1 1234 (Unknown error 1234)" which looked kinda
+ weird.
+
+ * syscall.c (print_err_ret): New function.
+ (syscall_exiting_trace): Remove u_error variable, use tcp->u_error
+ instead. Remove u_error_str variable.
+ (syscall_exiting_trace) <if (raw(tcp))>: Call print_err_ret if u_error
+ is non-zero.
+ (syscall_exiting_trace) <if (!(sys_res & RVAL_NONE) && tcp->u_error)>:
+ Use print_err_ret for default error printing.
+ * tests/nsyscalls.c [!LINUX_MIPSO32] (test_syscall): Update expected
+ output.
+ * tests/qual_fault.c (invoke) <if (is_raw)>: Likewise.
+ * strace.1.in (.SH DESCIPTION): Update unknown syscall example.
+
+2018-05-25 Eugene Syromyatnikov <[email protected]>
+
+ ioctl: implement INOTIFY_IOC_SETNEXTWD decoding.
+ * inotify_ioctl.c: New file.
+ * Makefile.am (strace_SOURCES): Add it.
+ * defs.h (DECL_IOCTL(inotify)): New declaration.
+ * ioctl.c (ioctl_decode) <case 'I'>: Call inotify_ioctl.
+ * tests/ioctl_inotify.c: New file.
+ * tests/.gitignore: Add ioctl_inotify.
+ * tests/pure_executables.list: Likewise.
+ * tests/gen_tests.in (ioctl_inotify): New test.
+
+ tests/test_nlattr.h: avoid testing cropped objects of size 1.
+ * tests/test_nlattr.h (TEST_NLATTR_OBJECT_EX_): Check
+ "len < sizeof(obj_)" case only if "sizeof(obj_) > 1".
+
+ tests: pass index to print_elem_ callback in TEST_NLATTR_ARRAY.
+ * tests/test_nlattr.h (TEST_NLATTR_ARRAY): Pass array index to the
+ print_elem_ callback.
+ * tests/nlattr_inet_diag_msg.c (print_uint): Add index argument.
+ * tests/nlattr_netlink_diag_msg.c (print_xlong): Likewise.
+ * tests/nlattr_packet_diag_msg.c (print_packet_diag_mclist,
+ print_sock_filter): Likewise.
+ * tests/nlattr_unix_diag_msg.c (print_uint): Likewise.
+
+2018-05-24 Dmitry V. Levin <[email protected]>
+
+ tests: further cleanup bpf big address checks.
+ Replace BIG_ADDR_IS_64BIT and BIG_ADDR_IS_32BIT with BIG_ADDR().
+
+ * tests/bpf.c (BIG_ADDR): New macro.
+ (BIG_ADDR_IS_64BIT, BIG_ADDR_IS_32BIT): Remove.
+ (BPF_PROG_LOAD_checks, BPF_OBJ_PIN_checks,
+ BPF_RAW_TRACEPOINT_OPEN_checks): Use BIG_ADDR() instead of
+ BIG_ADDR_IS_64BIT and BIG_ADDR_IS_32BIT.
+
+2018-05-23 Dmitry V. Levin <[email protected]>
+
+ tests: cleanup bpf big address checks.
+ Introduce BIG_ADDR_IS_64BIT and BIG_ADDR_IS_32BIT to reduce redundancy.
+
+ * tests/bpf.c (BIG_ADDR_IS_64BIT, BIG_ADDR_IS_32BIT): New macros.
+ (BPF_PROG_LOAD_checks, BPF_OBJ_PIN_checks,
+ BPF_RAW_TRACEPOINT_OPEN_checks): Use them.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ bpf: add support for BPF_RAW_TRACEPOINT_OPEN command decoding.
+ * bpf_attr.h (struct BPF_RAW_TRACEPOINT_OPEN_struct): New type
+ definition.
+ (BPF_RAW_TRACEPOINT_OPEN_struct_size,
+ expected_BPF_RAW_TRACEPOINT_OPEN_struct_size): New macros.
+ * xlat/bpf_commands.in (BPF_RAW_TRACEPOINT_OPEN): New constant,
+ introduced by Linux commit v4.17-rc1~148^2~19^2~4^2~3.
+ * xlat/bpf_prog_types.in (BPF_PROG_TYPE_RAW_TRACEPOINT): Likewise.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_RAW_TRACEPOINT_OPEN)): New bpf
+ command decoder.
+ (SYS_FUNC(bpf)) <bpf_cmd_decoders[]>: Add
+ BPF_CMD_ENTRY(BPF_RAW_TRACEPOINT_OPEN).
+ * tests/bpf.c (union bpf_attr_data): Add
+ BPF_ATTR_DATA_FIELD(BPF_RAW_TRACEPOINT_OPEN).
+ (BPF_PROG_LOAD_checks): Update.
+ (init_BPF_RAW_TRACEPOINT_attr2): New function.
+ (BPF_RAW_TRACEPOINT_OPEN_checks): New checks array.
+ (main) <checks>: Add CHK(BPF_RAW_TRACEPOINT_OPEN).
+
+ bpf: add support for decoding struct bpf_attr.expected_attach_type field
+ * bpf_attr.h (struct BPF_PROG_LOAD_struct): Add expected_attach_type
+ field.
+ (BPF_PROG_LOAD_struct_size): Update to offsetofend of
+ expected_attach_type field.
+ (expected_BPF_PROG_LOAD_struct_size): Update to 72.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)): Decode
+ expected_attach_type field.
+ * tests/bpf.c: Update expected output.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: do not assume that SK_MEMINFO_VARS is constant.
+ SK_MEMINFO_VARS changes over time (as it was in Linux commit
+ v4.7-rc1~154^2~354^2~4, for example), so we cannot use it
+ for sanity checks.
+
+ * nlattr.c (print_meminfo): Remove.
+ (decode_nla_meminfo): Use generic print_uint32_array_member element
+ printer callback.
+ * tests/nlattr_inet_diag_msg.c (main): Update expected output.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ Introduce print_uint32_array_member helper function.
+ Analogous to print_int32_array_member, this helper is going to be used
+ in various decoders, including BPF_PROG_QUERY, PERF_EVENT_IOC_*,
+ and netlink meminfo.
+
+ * defs.h (print_uint32_array_member): New declaration.
+ * util.c (print_uint32_array_member): New function.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ Introduce print_int32_array_member helper function.
+ Analogous to print_uint64_array_member, this helper is going to be used
+ for IFLA_AF_SPEC decoding.
+
+ * defs.h (print_int32_array_member): New declaration.
+ * util.c (print_int32_array_member): New function.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ defs.h: move print_uint64_array_member and print_array declarations down
+ In preparation for the forthcoming changes.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ tests/test_nlattr.h: fix pointer calculation in TEST_NLATTR_ARRAY.
+ The old code works only when an array contains exactly two items.
+
+ * tests/test_nlattr.h (TEST_NLATTR_ARRAY): Fix pointer address
+ for the case of incomplete read.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ sockaddr: add support for sockaddr_l2 without l2_bdaddr_type.
+ Apparently, struct sockaddr_l2 changed over time: the l2_bdaddr_type
+ field was added only by commit v3.5-rc1~35^2~3^2~18^2^2~39.
+
+ * configure.ac (AC_CHECK_HEADERS): Move bluetooth/bluetooth.h check into
+ a separate check.
+ (AC_CHECK_HEADERS([bluetooth/bluetooth.h])): New check, also checks for
+ struct sockaddr_l2.l2_bdaddr_type member in case of success.
+ * sockaddr.c (print_sockaddr_data_bt) <case offsetof(struct sockaddr_l2,
+ l2_bdaddr_type)>: Add to sizeof(struct sockaddr_l2) case. Print
+ l2_bdaddr_type field only if the provided sockaddr is big enough.
+ * tests/net-sockaddr.c (check_l2): Put l2_bdaddr_type usage/printing
+ under HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE ifdef, add a check for the
+ sockaddr_l2 structure without the l2_bdaddr_type field.
+
+2018-05-23 Eugene Syromyatnikov <[email protected]>
+
+ sock: guess ifr_hwaddr size in SIOCSIFHWADDR/SIOCGIFHWADDR.
+ And make the output more structured.
+
+ * sock.c: Include xlat/arp_hardware_types.h in XLAT_MACROS_ONLY mode.
+ (print_ifreq) <case SIOCSIFHWADDR, case SIOCGIFHWADDR>: Introduce
+ hwaddr_sizes array, print ifr_hwaddr.sa_family, print ifr_hwaddr.sa_data
+ using hwaddr_sizes and PRINT_FIELD_MAC_SZ.
+
+2018-05-22 Dmitry V. Levin <[email protected]>
+
+ Simplify errnoent and signalent.
+ Remove personality support for errnoent and signalent as
+ there is nothing personality-specific in these files.
+
+ * linux/aarch64/errnoent1.h: Remove.
+ * linux/aarch64/signalent1.h: Likewise.
+ * linux/powerpc64/errnoent1.h: Likewise.
+ * linux/powerpc64/signalent1.h: Likewise.
+ * linux/riscv/errnoent1.h: Likewise.
+ * linux/riscv/signalent1.h: Likewise.
+ * linux/s390x/errnoent1.h: Likewise.
+ * linux/s390x/signalent1.h: Likewise.
+ * linux/sparc64/errnoent1.h: Likewise.
+ * linux/sparc64/signalent1.h: Likewise.
+ * linux/tile/errnoent1.h: Likewise.
+ * linux/tile/signalent1.h: Likewise.
+ * linux/x32/errnoent1.h: Likewise.
+ * linux/x32/signalent1.h: Likewise.
+ * linux/x86_64/errnoent1.h: Likewise.
+ * linux/x86_64/errnoent2.h: Likewise.
+ * linux/x86_64/signalent1.h: Likewise.
+ * linux/x86_64/signalent2.h: Likewise.
+ * Makefile.am (EXTRA_DIST): Remove them.
+ * defs.h (errnoent0): Rename to errnoent.
+ (signalent0): Rename signalent.
+ (nerrnos, nsignals): Change to const variables unconditionally.
+ * syscall.c (errnoent0): Rename to errnoent.
+ (signalent0): Rename signalent.
+ (nerrnos, nsignals): Change to const variables unconditionally.
+ (nerrnos0, nsignals0): Remove.
+ [SUPPORTED_PERSONALITIES > 1] (errnoent1, signalent1, nerrnos1,
+ nsignals1): Remove.
+ [SUPPORTED_PERSONALITIES > 2] (errnoent2, signalent2, nerrnos2,
+ nsignals2): Likewise.
+ (set_personality): Do not assign errnoent, signalent, nerrnos,
+ and nsignals.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ strace.1.in: mention -Xraw in -eraw description.
+ * strace.1.in (\fB\-e\ raw\fR=\,\fIset\fR): Mention -X raw.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ strace.1.in: display -k option description only if it is enabled.
+ Leverage the fact that manpage is generated and add condition statements
+ around mentions of -k option.
+
+ * strace.1.in (.SH SYNOPSIS): Put option list inside an
+ ".if '@ENABLE_STACKTRACE_TRUE@'#' .ig end_unwind_opt ... .end_unwind_opt"
+ condition; add a second list of options without -k and put it inside
+ ".if '@ENABLE_STACKTRACE_FALSE@'#' .ig end_no_unwind_opt ... .end_no_unwind_opt"
+ condition.
+ (.SS Output format) <-k>: Put it inside
+ ".if '@ENABLE_STACKTRACE_TRUE@'#' .ig end_unwind ... .end_unwind"
+ condition, remove the mention of --enable-stacktrace configuration
+ option requirement.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ strace.1.in: format a reference to "open" syscall using bold font.
+ * strace.1.in (.SH DESCRIPTION): Format a reference to "open" syscall
+ using bold font.
+
+ tests/qual_fault.test: add -efu arguments to the interpreter.
+ * tests/qual_fault.test (#!/bin/sh): Add -efu arguments.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ tests/qual_fault.test: swap expected/output files in match_diff calls.
+ match_diff expects the first argument as strace output and the second
+ argument as expected output.
+
+ * tests/qual_fault.test (check_fault_injection): Swap arguments
+ in match_diff calls.
+
+2018-05-21 Dmitry V. Levin <[email protected]>
+
+ defs.h: convert some macro wrappers into static inline functions.
+ * defs.h (pathtrace_select, pathtrace_match, printxval_searchn,
+ printxval_indexn, sprintxval, sprintflags, printnum_slong,
+ printnum_ulong, printnum_ptr, printnum_kptr): Convert macro wrappers
+ into static inline functions.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add support for xlat_styles in printxval_dispatch.
+ * defs.h (printxval_dispatch_ex): Rename from printxval_dispatch, add
+ style argument.
+ (printxval_dispatch): New static inline function, a thin wrapper around
+ printxval_dispatch_ex.
+ * xlat.c (printxval_dispatch): Rename to printxval_dispatch_ex, add
+ style argument, handle it.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ Make printxval_dispatch publicly available.
+ * evdev.c (enum xlat_type, printxval_dispatch): Move elsewhere.
+ * defs.h (enum_xlat_type): Move from evdev.c.
+ (printxval_dispatch): New declaration.
+ * xlat.c (printxval_dispatch): Move from evdev.c, drop static qualifier.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ Revert "evdev: remove XT_NORMAL"
+ This reverts commit cc52da10c6f13feba577a83088f34916c6350165
+ in preparation for printxval_dispatch generalisation.
+
+ * evdev.c (enum xlat_type): Add XT_NORMAL back.
+ (printxval_dispatch): Handle XT_NORMAL again.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ defs.h: introduce is_bigendian macro.
+ This macro is going to be used in inline checks.
+
+ * defs.h (is_bigendian): New macro constant.
+
+2018-05-21 Eugene Syromyatnikov <[email protected]>
+
+ util.c: make memory allocation error messages more informative.
+ As those are pretty unusual, let's add some additional information
+ that can be reported by users.
+
+ * util.c (print_quoted_string_ex, dumpstr): Add reasons for memory
+ allocation errors.
+ (sizeof_iov): Change type from size_t to unsigned int.
+ (dumpiov_upto): Rewrite size initialisation similarly to the way it's
+ done in print_quoted_string_ex, add reasons for memory allocation errors.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-19 Eugene Syromyatnikov <[email protected]>
+
+ strace.1.in: fix -A description.
+ * strace.1.in (.SS Output format) <-A>: Add missing .B.
+
+ strace.1.in: document x32 64-bit syscall peculiarity.
+ * strace.1.in (.SH NOTES): Document "#64" suffix for 64-bit syscalls on
+ x32.
+
+2018-05-19 Eugene Syromyatnikov <[email protected]>
+
+ linux/x32/syscallent.h: change 64-bit syscall designation.
+ The current way of designation of 64-bit specific syscalls in x32
+ personality not only conflicts with fault injection specification
+ syntax, but also makes it impossible to specify such syscalls at all
+ (since everything that starts from a digit is considered a syscall
+ number specification). So, let's change prefix to suffix and use
+ octothorpe instead of colon as a separator.
+
+ * linux/x32/syscallent.h (13, 15, 16, 19, 20, 45, 46, 47, 54, 55, 59,
+ 101, 127, 128. 129, 131, 134, 156, 174, 177, 178, 180, 205, 206, 209,
+ 211, 214, 215, 222, 236, 244, 246, 247, 273, 274, 278, 279, 295, 296,
+ 297, 299, 307, 310, 311, 32, 327, 328): Change "64:" prefix to "#64"
+ suffix in syscall name.
+
+ Closes: https://github.com/strace/strace/issues/36
+
+2018-05-19 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add BPF_PROG_TYPE_SK_MSG.
+ * xlat/bpf_prog_types.in (BPF_PROG_TYPE_SK_MSG): New constant,
+ introduced by Linux commit v4.17-rc1~148^2~156^2~1^2~13.
+ * tests/bpf.c (BPF_PROG_LOAD_checks): Update expected output.
+
+ xlat: update bpf_attach_type constants.
+ * xlat/bpf_attach_type.in (BPF_SK_MSG_VERDICT): New constant,
+ introduced by Linux commit v4.17-rc1~148^2~156^2~1^2~13.
+ (BPF_CGROUP_INET4_BIND, BPF_CGROUP_INET6_BIND): New constants,
+ introduced by Linux commit v4.17-rc1~148^2~19^2^2~6.
+ (BPF_CGROUP_INET4_CONNECT, BPF_CGROUP_INET6_CONNECT): New constants,
+ introduced by Linux commit v4.17-rc1~148^2~19^2^2~3.
+ (BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_POST_BIND): New constants,
+ introduced by Linux commit v4.17-rc1~148^2~19^2^2~1.
+ * tests/bpf.c (BPF_PROG_QUERY_checks): Update expected output.
+
+2018-05-19 Eugene Syromyatnikov <[email protected]>
+
+ xlat/sock_rds_options.in: make it sorted.
+ Define SO_TIMESTAMP twice, for PA-RISC and all the other architectures.
+
+ * xlat/sock_rds_options.in [!__hppa__] (SO_TIMESTAMP): Define to 29.
+ [__hppa__] (SO_TIMESTAMP): Define to 0x4012.
+ * net.c (print_sockopt_fd_level_name) <case SOL_RDS>: Use
+ printxval_search instead of printxval.
+
+2018-05-17 Gleb Fotengauer-Malinovskiy <[email protected]>
+
+ Update ioctl entries from linux v4.17.
+ * linux/32/ioctls_inc_align16.h: Update from linux v4.17-rc5
+ 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/x86_64/ioctls_arch0.h: Likewise.
+ * NEWS: Mention this.
+
+ maint: update for linux 4.17-rc5.
+ * maint/ioctls_sym.sh: (x86_list): Add KVM_HYPERV_EVENTFD.
+
+2018-05-16 Dmitry V. Levin <[email protected]>
+
+ bpf: use indexed lookups where appropriate.
+ * xlat/bpf_attach_type.in: Add "#value_indexed" directive.
+ * xlat/bpf_class.in: Likewise.
+ * xlat/bpf_map_types.in: Likewise.
+ * xlat/bpf_map_update_elem_flags.in: Likewise.
+ * xlat/bpf_prog_types.in: Likewise.
+ * xlat/ebpf_class.in: Likewise.
+ * bpf_filter.c (print_bpf_filter_code): Use printxval_index
+ instead of printxval for decoding bpf_class and ebpf_class.
+ * print_fields.h (PRINT_FIELD_XVAL_INDEX): New macro.
+ * bpf.c: Use it instead of PRINT_FIELD_XVAL for decoding bpf_attach_type,
+ bpf_map_types, bpf_map_update_elem_flags, and bpf_prog_types.
+
+2018-05-15 Dmitry V. Levin <[email protected]>
+
+ bpf: use printxval_index lookup instead of printxval.
+ * xlat/bpf_commands.in: Add "#value_indexed" directive.
+ * bpf.c (SYS_FUNC(bpf)): Use printxval_index instead of printxval.
+
+ time: use indexed lookups.
+ * defs.h (xlat_idx): New prototype.
+ * xlat.c (xlat_idx): Remove static qualifier.
+ * time.c (do_adjtimex): Use xlat_idx instead of xlookup.
+ (SYS_FUNC(getitimer), SYS_FUNC(setitimer)): Use printxval_index
+ instead of printxval.
+ [ALPHA] (SYS_FUNC(osf_getitimer), SYS_FUNC(osf_setitimer)): Likewise.
+ (printclockname) [CLOCKID_TO_FD]: Likewise.
+ * xlat/adjtimex_state.in: Add "#value_indexed" directive.
+ * xlat/clocknames.in: Likewise.
+ * xlat/cpuclocknames.in: Add "#value_indexed" directive, add default
+ values to constants.
+ * xlat/itimer_which.in: Likewise.
+
+2018-05-15 Andre McCurdy <[email protected]>
+
+ linux/arm/raw_syscall.h: avoid r7 specified register variables with Thumb
+ If Thumb code is being generated and frame pointers are enabled, the
+ Thumb frame pointer in r7 clashes with any local variable which may
+ need to be assigned to r7 (e.g. the syscall NR when making a raw
+ syscall).
+
+ With gcc, the double use of r7 results in a build error, e.g.
+
+ strace-4.22/tests/inject-nf.c:86:1: error: r7 cannot be used in asm here
+
+ With clang, the double use of r7 can result in the compiler silently
+ generating broken code which crashes at run time due to frame pointer
+ corruption:
+
+ https://bugs.llvm.org/show_bug.cgi?id=34165
+
+ In most cases the problem isn't visible as frame pointers will be
+ disabled automatically due to optimisation level. However to handle
+ cases where frame pointers are enabled (e.g. when CFLAGS etc are set
+ to support a debug build, etc) provide a version of raw_syscall_0
+ which manually saves and restores the frame pointer value in r7
+ to a temporary register before setting up the syscall NR in r7
+ and invoking the syscall.
+
+ * linux/arm/raw_syscall.h (raw_syscall_0) [__thumb__]: Provide
+ an alternative version.
+
+2018-05-15 Dmitry V. Levin <[email protected]>
+
+ sockaddr: use printxval_index lookup instead of printxval.
+ * xlat/addrfams.in: Add "#value_indexed" directive.
+ * xlat/af_packet_types.in: Likewise.
+ * xlat/hci_channels.in: Likewise.
+ * sockaddr.c (print_sockaddr_data_bt, print_sockaddr,
+ * print_sockaddr_data_ll): Use printxval_index instead of printxval.
+
+2018-05-15 Eugene Syromyatnikov <[email protected]>
+
+ sockaddr: use printxval_search for ARPHRD_* constants.
+ This xlat table is quite big.
+
+ * sockaddr.c (print_sockaddr_data_ll): Replace printxval call with
+ printxval_search for printing of struct sockaddr_ll.sll_hatype field.
+
+2018-05-15 Eugene Syromyatnikov <[email protected]>
+
+ Add a common MAC address printing routine.
+ * print_mac.c: New file.
+ * Makefile.am (strace_SOURCES): Add it.
+ * defs.h (sprint_mac_addr): New declaration.
+ (print_mac_addr): New function, a thin wrapper around sprint_mac_addr.
+ * print_fields.h (PRINT_FIELD_MAC, PRINT_FIELD_MAC_SZ): New macros.
+ * rtnl_link.c (decode_ifla_bridge_id): Use PRINT_FIELD_MAC for bridge
+ address printing.
+ * sock.c (print_ifreq) <case SIOCGIFHWADDR>: Use print_mac_addr for
+ ifr_hwaddr printing.
+ * sockaddr.c (print_sockaddr_data_bt): Use print_mac_addr for
+ {sco,rc,l2}_bdaddr field printing.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-15 Eugene Syromyatnikov <[email protected]>
+
+ sockaddr: decode Bluetooth L2 CID values.
+ * xlat/bluetooth_l2_cid.in: New file.
+ * sockaddr.c: Include xlat/bluetooth_l2_cid.h.
+ (print_bluetooth_l2_cid): New function.
+ (print_sockaddr_data_bt): Use it to decode struct sockaddr_l2.l2_cid
+ field.
+ * tests/net-sockaddr.c (check_l2): Update expected output.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-15 Eugene Syromyatnikov <[email protected]>
+
+ sockaddr: decode Bluetooth L2 PSM values.
+ * xlat/bluetooth_l2_psm.in: New file.
+ * sockaddr.c: Include xlat/bluetooth_l2_psm.h.
+ (print_bluetooth_l2_psm): New function.
+ (print_sockaddr_data_bt): Use it to decode struct sockaddr_l2.l2_psm
+ field.
+ * tests/net-sockaddr.c (check_l2): Update expected output.
+
+ sockaddr: decode bluetooth address type names.
+ * xlat/bdaddr_types.in: New file.
+ * sockaddr.c: Include xlat/bdaddr_types.h.
+ (print_sockaddr_data_bt): Decode struct sockaddr_l2.l2_bdaddr_type field
+ using constants from bdaddr_types xlat.
+ * tests/net-sockaddr.c (check_l2): Check decoding
+ of struct sockaddr_l2.l2_bdaddr_type field.
+
+2018-05-15 Eugene Syromyatnikov <[email protected]>
+
+ sockaddr: decode Bluetooth socket address unconditionally.
+ * sockaddr.c [HAVE_BLUETOOTH_BLUETOOTH_H]: Do not include
+ bluetooth/bluetooth.h, bluetooth/hci.h, bluetooth/l2cap.h,
+ bluetooth/rfcomm.h, and bluetooth/sco.h.
+ [!HAVE_BLUETOOTH_BLUETOOTH_H]: Include xlat/hci_channels.h.
+ (btohs): New function.
+ (print_sockaddr_data_bt): Define unconditionally, add definitions
+ of struct sockaddr_hci, struct bdaddr, struct sockaddr_sco,
+ struct sockaddr_rc, and struct sockaddr_l2.
+ (sa_printers) <AF_BLUETOOTH>: Define unconditionally.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-15 Eugene Syromyatnikov <[email protected]>
+
+ Avoid using print_array as a local variable name.
+ We have a function with the same name.
+
+ * netlink.c (decode_netlink) <print_array>: Rename to is_array, all
+ users updated.
+ * nlattr.c (decode_nlattr) <print_array>: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-15 Eugene Syromyatnikov <[email protected]>
+
+ xlat: update MSG_* constants.
+ Sync them with kernel's include/linux/socket.h, since syscalls perform
+ almost no checks for incorrect flags.
+
+ * xlat/msg_flags.in (MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_CTRUNC,
+ MSG_PROBE, MSG_TRUNC, MSG_DONTWAIT, MSG_EOR, MSG_WAITALL, MSG_FIN,
+ MSG_SYN, MSG_CONFIRM, MSG_RST, MSG_ERRQUEUE, MSG_NOSIGNAL, MSG_MORE,
+ MSG_WAITFORONE, MSG_FASTOPEN, MSG_CMSG_CLOEXEC): Add default values
+ to all constants.
+ (MSG_SENDPAGE_NOTLAST, MSG_NO_SHARED_FRAGS): New constants. It is
+ an internal one, but, apparently, nothing prohibits passing it
+ to the kernel.
+ (MSG_CMSG_COMPAT): New constant. Override the value provided
+ by system headers.
+ (MSG_EOF): Commented out, as it is a synonym for MSG_FIN.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-14 Dmitry V. Levin <[email protected]>
+
+ socketutils: use exact match of unix domain sockets on fresh kernels.
+ * socketutils.c (unix_send_query): Do not add NLM_F_DUMP to nlmsg_flags
+ when kernel version is 4.4.4 or later, initialize udiag_cookie
+ unconditionally.
+
+ Complements: v4.12~536 ("Change unix_diag requests back to use full dump instead of exact match")
+
+2018-05-14 Eugene Syromyatnikov <[email protected]>
+
+ socketutils: do not request NDIAG_SHOW_MEMINFO.
+ This information is not used and it looks like it negatively affects
+ ability to find the socket under high load.
+
+ * socketutils.c (netlink_send_query) <req>: Remove NDIAG_SHOW_MEMINFO
+ flag from netlink_diag_req.ndiag_show field.
+ * tests/netlink_netlink_diag.c (send_query) <req>: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ tests: introduce midtail_alloc and use it in netlink tests.
+ netlink tests happen to access memory located before the tail_malloc'ed
+ pointers, a practice that doesn't go well with the latest compilers
+ because tail_malloc is marked with ATTRIBUTE_MALLOC.
+ For example, glibc in -D_FORTIFY_SOURCE=2 mode and gcc 8 with
+ -Warray-bounds enabled complain about negative offsets out of bounds.
+ Fix this issue by introducing midtail_alloc.
+
+ * tests/tests.h (midtail_alloc): New macro.
+ * tests/netlink_crypto.c: Use it instead of tail_malloc for nlh0 allocation.
+ * tests/netlink_netfilter.c: Likewise.
+ * tests/netlink_protocol.c: Likewise.
+ * tests/netlink_route.c: Likewise.
+ * tests/netlink_selinux.c: Likewise.
+ * tests/netlink_sock_diag.c: Likewise.
+ * tests/nlattr_br_port_msg.c: Likewise.
+ * tests/nlattr_crypto_user_alg.c: Likewise.
+ * tests/nlattr_dcbmsg.c: Likewise.
+ * tests/nlattr_fib_rule_hdr.c: Likewise.
+ * tests/nlattr_ifaddrlblmsg.c: Likewise.
+ * tests/nlattr_ifaddrmsg.c: Likewise.
+ * tests/nlattr_ifinfomsg.c: Likewise.
+ * tests/nlattr_ifla_brport.c: Likewise.
+ * tests/nlattr_ifla_port.c: Likewise.
+ * tests/nlattr_ifla_xdp.c: Likewise.
+ * tests/nlattr_inet_diag_msg.c: Likewise.
+ * tests/nlattr_inet_diag_req_compat.c: Likewise.
+ * tests/nlattr_inet_diag_req_v2.c: Likewise.
+ * tests/nlattr_mdba_mdb_entry.c: Likewise.
+ * tests/nlattr_mdba_router_port.c: Likewise.
+ * tests/nlattr_ndmsg.c: Likewise.
+ * tests/nlattr_ndtmsg.c: Likewise.
+ * tests/nlattr_netconfmsg.c: Likewise.
+ * tests/nlattr_netlink_diag_msg.c: Likewise.
+ * tests/nlattr_nlmsgerr.c: Likewise.
+ * tests/nlattr_packet_diag_msg.c: Likewise.
+ * tests/nlattr_rtgenmsg.c: Likewise.
+ * tests/nlattr_rtmsg.c: Likewise.
+ * tests/nlattr_smc_diag_msg.c: Likewise.
+ * tests/nlattr_tc_stats.c: Likewise.
+ * tests/nlattr_tca_stab.c: Likewise.
+ * tests/nlattr_tcamsg.c: Likewise.
+ * tests/nlattr_tcmsg.c: Likewise.
+ * tests/nlattr_unix_diag_msg.c: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ Use MIN where appropriate.
+ * netlink.c (decode_nlmsghdr_with_payload): Use MIN.
+ * netlink_packet_diag.c (print_packet_diag_mclist): Likewise.
+ * nlattr.c (decode_nlattr_with_data): Likewise.
+ * rtnl_route.c (decode_rta_multipath): Likewise.
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add fallback definitions to {msg,sem,shm}ctl command constants.
+ * xlat/msgctl_flags.in: Add default values to all constants, reorder
+ to make them sorted by value.
+ * xlat/semctl_flags.in: Likewise.
+ * xlat/shmctl_flags.in: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add MSG_STAT_ANY.
+ * xlat/msgctl_flags.in (MSG_STAT_ANY): New constant, introduced
+ by Linux commit v4.17-rc1~52^2~21.
+ * tests/ipc_msg.c: Check it.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add SEM_STAT_ANY.
+ * xlat/semctl_flags.in (SEM_STAT_ANY): New constant, introduced
+ by Linux commit v4.17-rc1~52^2~22.
+ * tests/ipc_sem.c: Check it.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add SHM_STAT_ANY.
+ * xlat/shmctl_flags.in (SHM_STAT_ANY): New constant, introduced
+ by Linux commit v4.17-rc1~52^2~23.
+ * tests/ipc_shm.c: Check it.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ net: print SO_GET_FILTER in getsockopt.
+ SO_ATTACH_FILTER and SO_GET_FILTER have the same value; the former
+ constant is intended for use in setsockopt, and the latter is for
+ getsockopt. Handle that the same way as similar SOL_IP/SOL_IPV6 socket
+ options are handled.
+
+ * xlat/getsock_options.in: New file.
+ * xlat/setsock_options.in: Likewise.
+ * xlat/sockoptions.in (SO_ATTACH_FILTER): Move to
+ xlat/setsock_options.in.
+ * net.c: Include "xlat/setsock_options.h" and "xlat/getsock_options.h".
+ (print_sockopt_fd_level_name) <case SOL_SOCKET>: Use
+ getsock_options or setsock_options as auxiliary xlats based on the value
+ of is_getsockopt flag.
+ * tests/sock_filter-v.c: Update expected output.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-09 Eugene Syromyatnikov <[email protected]>
+
+ tests: add sock_filtrer-v variants with different xlat verbosity levels.
+ * tests/sock_filter-v-Xabbrev.c: New file.
+ * tests/sock_filter-v-Xraw.c: Likewise.
+ * tests/sock_filter-v-Xverbose.c: Likewise.
+ * tests/sock_filter-v.c (PRINT_STMT_SYM, PRINT_STMT_SYM_,
+ PRINT_STMT_VAL, PRINT_STMT_VAL_, PRINT_JUMP_): Remove.
+ (HEX_FMT, XLAT_FMT, XLAT_ARGS, PRINT_STMT): New macros.
+ (PRINT_JUMP): Rewrite.
+ (print_filter): Rewrite using PRINT_STMT and new PRINT_JUMP.
+ (main): Print SOL_SOCKET, SO_ATTACH_FILTER, and SO_ATTACH_REUSEPORT_CBPF
+ using XLAT_FMT/XLAT_ARGS macros.
+ * tests/pure_executables.list: Add sock_filter-v-Xabbrev,
+ sock_filter-v-Xraw, and sock_filter-v-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (sock_filter-v-Xabbrev, sock_filter-v-Xraw,
+ sock_filter-v-Xverbose): New tests.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ defs.h: fix ethernet_protocols comment.
+ Starting with commit v4.22~109, sorted xlat tables are terminated
+ with XLAT_END.
+
+ * defs.h (ethernet_protocols): Remove the "unterminated" part from
+ description.
+
+2018-05-08 Dmitry V. Levin <[email protected]>
+
+ xlat: rename *sock*options xlat tables.
+ Such names as sockrxrpcoptions are incomprehensible.
+
+ * xlat/getsockipoptions.in: Rename to xlat/getsock_ip_options.in.
+ * xlat/getsockipv6options.in: Rename to xlat/getsock_ipv6_options.in.
+ * xlat/setsockipoptions.in: Rename to xlat/setsock_ip_options.in.
+ * xlat/setsockipv6options.in: Rename to xlat/setsock_ipv6_options.in.
+ * xlat/sockalgoptions.in: Rename to xlat/sock_alg_options.in.
+ * xlat/sockbluetoothoptions.in: Rename to xlat/sock_bluetooth_options.in.
+ * xlat/sockcaifoptions.in: Rename to xlat/sock_caif_options.in.
+ * xlat/sockdccpoptions.in: Rename to xlat/sock_dccp_options.in.
+ * xlat/sockipoptions.in: Rename to xlat/sock_ip_options.in.
+ * xlat/sockipv6options.in: Rename to xlat/sock_ipv6_options.in.
+ * xlat/sockipxoptions.in: Rename to xlat/sock_ipx_options.in.
+ * xlat/sockirdaoptions.in: Rename to xlat/sock_irda_options.in.
+ * xlat/sockiucvoptions.in: Rename to xlat/sock_iucv_options.in.
+ * xlat/sockkcmoptions.in: Rename to xlat/sock_kcm_options.in.
+ * xlat/sockllcoptions.in: Rename to xlat/sock_llc_options.in.
+ * xlat/socknetlinkoptions.in: Rename to xlat/sock_netlink_options.in.
+ * xlat/socknfcllcpoptions.in: Rename to xlat/sock_nfcllcp_options.in.
+ * xlat/sockoptions.in: Rename to xlat/sock_options.in.
+ * xlat/sockpacketoptions.in: Rename to xlat/sock_packet_options.in.
+ * xlat/sockpnpoptions.in: Rename to xlat/sock_pnp_options.in.
+ * xlat/sockpppol2tpoptions.in: Rename to xlat/sock_pppol2tp_options.in.
+ * xlat/sockrawoptions.in: Rename to xlat/sock_raw_options.in.
+ * xlat/sockrdsoptions.in: Rename to xlat/sock_rds_options.in.
+ * xlat/sockrxrpcoptions.in: Rename to xlat/sock_rxrpc_options.in.
+ * xlat/socksctpoptions.in: Rename to xlat/sock_sctp_options.in.
+ * xlat/socktcpoptions.in: Rename to xlat/sock_tcp_options.in.
+ * xlat/socktipcoptions.in: Rename to xlat/sock_tipc_options.in.
+ * xlat/socktlsoptions.in: Rename to xlat/sock_tls_options.in.
+ * xlat/sockudpoptions.in: Rename to xlat/sock_udp_options.in.
+ * net.c: Update.
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ net: decode more SOL_* socket options.
+ * xlat/sockalgoptions.in: New file.
+ * xlat/sockbluetoothoptions.in: Likewise.
+ * xlat/sockcaifoptions.in: Likewise.
+ * xlat/sockdccpoptions.in: Likewise.
+ * xlat/sockiucvoptions.in: Likewise.
+ * xlat/sockkcmoptions.in: Likewise.
+ * xlat/sockllcoptions.in: Likewise.
+ * xlat/socknfcllcpoptions.in: Likewise.
+ * xlat/sockpnpoptions.in: Likewise.
+ * xlat/sockpppol2tpoptions.in: Likewise.
+ * xlat/sockrdsoptions.in: Likewises.
+ * xlat/sockrxrpcoptions.in: Likewise.
+ * xlat/socktipcoptions.in: Likewise.
+ * xlat/socktlsoptions.in: Likewise.
+ * xlat/sockudpoptions.in: Likewise.
+ * net.c: Include "xlat/sockalgoptions.h", "xlat/sockbluetoothoptions.h",
+ "xlat/sockcaifoptions.h", "xlat/sockdccpoptions.h",
+ "xlat/sockiucvoptions.h", "xlat/sockkcmoptions.h",
+ "xlat/sockllcoptions.h", "xlat/socknfcllcpoptions.h",
+ "xlat/sockpnpoptions.h", "xlat/sockpppol2tpoptions.h",
+ "xlat/sockrdsoptions.h", "xlat/sockrxrpcoptions.h",
+ "xlat/socktipcoptions.h", "xlat/socktlsoptions.h",
+ and "xlat/sockudpoptions.h".
+ (print_sockopt_fd_level_name): Decode SOL_UDP, SOL_IRDA, SOL_LLC,
+ SOL_DCCP, SOL_TIPC, SOL_RXRPC, SOL_PPPOL2TP, SOL_BLUETOOTH, SOL_PNPIPE,
+ SOL_RDS, SOL_IUCV, SOL_CAIF, SOL_ALG, SOL_NFC, SOL_KCM, and SOL_TLS
+ socket option names.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ net: decode more AF_* protocol names.
+ * xlat/caif_protocols.in: New file.
+ * xlat/can_protocols.in: Likewise.
+ * xlat/irda_protocols.in: Likewise.
+ * xlat/isdn_protocols.in: Likewise.
+ * xlat/kcm_protocols.in: Likewise.
+ * xlat/nfc_protocols.in: Likewise.
+ * xlat/phonet_protocols.in: Likewise.
+ * xlat/smc_protocols.in: Likewise.
+ * net.c: Include "xlat/irda_protocols.h", "xlat/can_protocols.h",
+ "xlat/isdn_protocols.h", "xlat/phonet_protocols.h",
+ "xlat/caif_protocols.h", "xlat/nfc_protocols.h",
+ "xlat/kcm_protocols.h", and "xlat/smc_protocols.h".
+ (SYS_FUNC(socket)): Decode AF_IRDA, AF_CAN, AF_RXRPC, AF_ISDN,
+ AF_PHONET, AF_CAIF, AF_NFC, AF_KCM, and AF_SMC protocol names.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ Remove some duplicate fallback definitions.
+ There is no need to provide duplicate fallback definitions anymore,
+ inclusion of the appropriate xlat header in XLAT_MACROS_ONLY mode
+ does the right thing.
+
+ * btrfs.c [!BTRFS_FIRST_FREE_OBJECTID] (BTRFS_FIRST_FREE_OBJECTID):
+ Remove, a fallback definition is already provided by included
+ "xlat/btrfs_tree_objectids.h".
+ * net.c: Include "xlat/addrfams.h" in XLAT_MACROS_ONLY mode.
+ [!AF_BLUETOOTH] (AF_BLUETOOTH): Remove.
+ * syscall.c: Include "xlat/nt_descriptor_types.h" in XLAT_MACROS_ONLY
+ mode.
+ [!NT_PRSTATUS] (NT_PRSTATUS): Remove.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ xlat/gen.sh: introduce XLAT_MACROS_ONLY macro.
+ Sometimes we need just fallback definitions and nothing else.
+ This change adds an interface of skipping xlat table prototypes
+ and definitions.
+
+ * xlat/gen.sh (gen_header): Place xlat table prototype or definition
+ under "#ifndef XLAT_MACROS_ONLY" guard.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ rtnl_link: print IFLA_NEW_IFINDEX using decode_nla_ifindex.
+ As it is an interface index.
+
+ * rtnl_link.c (ifinfomsg_nla_decoders) <[IFLA_NEW_IFINDEX]>: Change
+ the value from decode_nla_s32 to decode_nla_ifindex.
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ ci: install libbluetooth-dev.
+ * ci/install-dependencies.sh (common_packages): Add libbluetooth-dev.
+
+ xlat: provide fallback definitions for HCI_CHANNEL_* constants.
+ * xlat/hci_channels.in: Provide fallback definitions.
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ s390: simplify s390_runtime_instr command printing.
+ As the header with command definitions is now a part of UAPI (since
+ Linux commit v4.16-rc1~21^2~11), there's no need for a very special
+ printing routine for command names.
+
+ * s390.c (SYS_FUNC(s390_runtime_instr)): Use printxval_d to print
+ the command argument.
+ * tests/s390_runtime_instr.c: Update expected output.
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ tests/init.sh: add run_prog_match_grep.
+ * tests/init.sh (run_prog_match_grep): New function, similar
+ to run_prog_match_diff.
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ tests: add so_peercred variants with different xlat verbosity levels.
+ * tests/so_peercred-Xabbrev.c: New file.
+ * tests/so_peercred-Xraw.c: Likewise.
+ * tests/so_peercred-Xverbose.c: Likewise.
+ * tests/pure_executables.list: Add so_peercred-Xabbrev,
+ so_peercred-Xraw, and so_peercred-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/so_peercred.c: Add handling of XLAT_RAW and XLAT_VERBOSE flags.
+ * tests/gen_tests.in (so_peercred-Xabbrev, so_peercred-Xraw,
+ so_peercred-Xverbose): New tests.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-08 Eugene Syromyatnikov <[email protected]>
+
+ tests: add personality variants with different xlat verbosity levels.
+ * tests/personality-Xabbrev.c: New file.
+ * tests/personality-Xraw.c: Likewise.
+ * tests/personality-Xverbose.c: Likewise.
+ * tests/pure_executables.list: Add personality-Xabbrev,
+ personality-Xraw, and personality-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/personality.c: Add handling of XLAT_RAW and XLAT_VERBOSE flags.
+ * tests/personality.test: Add support for accepting test arguments.
+ * tests/gen_tests.in (personality-Xabbrev, personality-Xraw,
+ personality-Xverbose): New tests.
+
+ tests: add fanotify_mark variants with different xlat verbosity levels.
+ * tests/fanotify_mark-Xabbrev.c: New file.
+ * tests/fanotify_mark-Xraw.c: Likewise.
+ * tests/fanotify_mark-Xverbose.c: Likewise.
+ * tests/pure_executables.list: Add fanotify_mark-Xabbev,
+ fanotify_mark-Xraw, and fanotify_mark-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/fanotify_mark.c: Add handling of XLAT_RAW and XLAT_VERBOSE
+ flags.
+ * tests/gen_tests.in (fanotify_mark-Xabbev, fanotify_mark-Xraw,
+ fanotify_mark-Xverbose): New tests.
+
+2018-05-07 Eugene Syromyatnikov <[email protected]>
+
+ xlat: provide fallback definitions for IFF_* constants.
+ * xlat/iffflags.in: Provide fallback definitions. Mention that
+ the array is sorted.
+
+ xlat: update IFF_* constants.
+ * xlat/iffflags.in (IFF_DYNAMIC): New constant, had been introduced
+ before the current git repository was conceived.
+ (IFF_LOWER_UP, IFF_DORMANT): New constants, introduced by Linux commit
+ v2.6.17-rc1~1175^2~206.
+ (IFF_ECHO): New constant, introduced by Linux commit
+ v2.6.25-rc1~1162^2~1415.
+
+ xlat: provide fallback definitions for ARPHRD_* constants.
+ * xlat/arp_hardware_types.in: Provide fallback definitions, sort.
+
+ tests: add more v4l2 checks.
+ * tests/ioctl_v4l2.c (main): Add more VIDIOC_S_EXT_CTRLS checks.
+
+ tests: add variants of IPC tests with different xlat verbosity levels.
+ * tests/.gitignore: Add ipc_msg-Xabbrev, ipc_msg-Xraw, ipc_msg-Xverbose,
+ ipc_msgbuf-Xabbrev, ipc_msgbuf-Xraw, ipc_msgbuf-Xverbose,
+ ipc_sem-Xabbrev, ipc_sem-Xraw, ipc_sem-Xverbose, ipc_shm-Xabbrev,
+ ipc_shm-Xraw, and ipc_shm-Xverbose.
+ * tests/pure_executables.list: Likewise.
+ * tests/gen_tests.in (ipc_msg-Xabbrev, ipc_msg-Xraw, ipc_msg-Xverbose,
+ ipc_msgbuf-Xabbrev, ipc_msgbuf-Xraw, ipc_msgbuf-Xverbose,
+ ipc_sem-Xabbrev, ipc_sem-Xraw, ipc_sem-Xverbose, ipc_shm-Xabbrev,
+ ipc_shm-Xraw, ipc_shm-Xverbose): New tests.
+ * tests/ipc_msg-Xabbrev.c: New file.
+ * tests/ipc_msg-Xraw.c: Likewise.
+ * tests/ipc_msg-Xverbose.c: Likewise.
+ * tests/ipc_msgbuf-Xabbrev.c: Likewise.
+ * tests/ipc_msgbuf-Xraw.c: Likewise.
+ * tests/ipc_msgbuf-Xverbose.c: Likewise.
+ * tests/ipc_sem-Xabbrev.c: Likewise.
+ * tests/ipc_sem-Xraw.c: Likewise.
+ * tests/ipc_sem-Xverbose.c: Likewise.
+ * tests/ipc_shm-Xabbrev.c: Likewise.
+ * tests/ipc_shm-Xraw.c: Likewise.
+ * tests/ipc_shm-Xverbose.c: Likewise.
+ * tests/ipc.sh: Add support for accepting test arguments.
+ * tests/ipc_msgbuf.test: Likewise.
+ * tests/ipc_msg.c: Add handling of XLAT_RAW and XLAT_VERBOSE flags.
+ * tests/ipc_msgbuf.c: Likewise.
+ * tests/ipc_sem.c: Likewise.
+ * tests/ipc_shm.c: Likewise.
+
+ tests: make ipc tests a bit more strict.
+ * tests/gen_tests.in (ipc_msg, ipc_sem, ipc_shm): Add -a option.
+ * tests/ipc_msg.c: Replace " +" with " " in expected output.
+ * tests/ipc_sem.c: Likewise.
+ * tests/ipc_shm.c: Likewise.
+
+ ipc_shm: print SHM_HUGE_SHIFT using print_xlat_u.
+ * ipc_shm.c (SYS_FUNC(shmget)): Print SHM_HUGE_SHIFT using print_xlat_u.
+
+ tests: check all bits of mtype in ipc_msgbuf test.
+ * tests/ipc_msgbuf.c: Include <unistd.h> and <asm/unistd.h>.
+ (sys_msgrcv): New function.
+ (msgrcv): Use it instead of msgrcv. Add bits to mtype,
+ check for -mtype in msgrcv.
+
+ tests: print expected output by ipc_msgbuf test itself.
+ * tests/ipc_msgbuf.expected: Remove.
+ * tests/Makefile.am (EXTRA_DIST): Remove tests/ipc_msgbuf.expected.
+ * tests/ipc_msgbuf.c: Add expected output.
+ * tests/ipc_msgbuf.test: Add -a31. Redirect output to $EXP. Call
+ match_grep with $LOG and $EXP arguments.
+
+2018-05-07 Dmitry V. Levin <[email protected]>
+
+ xlat: provide fallback definitions for SKF_*_OFF constants.
+ * xlat/skf_off.in: New file.
+ * bpf_sock_filter.c: Include "xlat/skf_off.h".
+
+ xlat: provide fallback definitions for BPF_* constants.
+ * xlat/bpf_class.in: Add default values for constants.
+ * xlat/bpf_miscop.in: Likewise.
+ * xlat/bpf_mode.in: Likewise.
+ * xlat/bpf_op_alu.in: Likewise.
+ * xlat/bpf_op_jmp.in: Likewise.
+ * xlat/bpf_rval.in: Likewise.
+ * xlat/bpf_size.in: Likewise.
+ * xlat/bpf_src.in: Likewise.
+
+2018-05-06 Dmitry V. Levin <[email protected]>
+
+ xlat: fix F_* fallback definitions on mips64.
+ * xlat/fcntlcmds.in (F_GETLK64, F_SETLK64, F_SETLKW64) [__mips64]: Fix
+ default values.
+
+ Fixes: v4.22-122-gfa8f486 ("xlat: fix F_* fallback definitions on alpha, hppa, mips, and sparc")
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add fallback definitions to SO_* constants.
+ Regenerate xlat/sockoptions.in using the following script:
+
+ sed -n 's/^\(SO_[^[:space:]]*\).*/\1/p' xlat/sockoptions.in |
+ uniq |
+ while read name; do
+ sed -rn 's/#define[[:space:]]+('"$name"')[[:space:]]+([[:digit:]]+)$/\2\t\1/p' \
+ /path/to/linux/include/uapi/asm-generic/socket.h
+ done |
+ sort -n |
+ while read def name; do
+ grep -EH '#define[[:space:]]+'"$name"'[[:space:]]+(0x[[:xdigit:]]+|[[:digit:]]+)' \
+ /path/to/linux/arch/*/include/uapi/asm/socket.h |
+ sed -rn 's|^[^#]*/arch/([^/]+)/include/uapi/asm/socket\.h:#define[[:space:]]+'"$name"'[[:space:]]+([^[:space:]]+)([[:space:]].*)?$|\1\t\2|p' |
+ sed s/parisc/hppa/ |sort |
+ awk -vname="$name" -vdef="$def" '
+ {
+ i=strtonum($2)
+ if (i == def) next
+ if (a[i])
+ a[i]=a[i] " || defined __" $1 "__"
+ else
+ a[i]="defined __" $1 "__"
+ }
+ END {
+ iftext="#if"
+ for (i in a) {
+ printf("%s %s\n%s %u\n",iftext,a[i],name,i)
+ iftext="#elif"
+ }
+ if (iftext != "#if")
+ print "#else"
+ printf("%s %s\n", name, def)
+ if (iftext == "#if")
+ print ""
+ else
+ print "#endif\n"
+ }'
+ done
+
+ * xlat/sockoptions.in: Add fallback definitions.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: remove socket options with duplicate names.
+ * xlat/sockoptions.in (SO_GET_FILTER): Remove as it is defined
+ to SO_ATTACH_FILTER.
+ (SO_DETACH_BPF): Remove as it is defined to SO_DETACH_FILTER.
+
+ xlat: remove socket options that do not exist in Linux.
+ * xlat/sockoptions.in (SO_ALLRAW, SO_ICS, SO_IMASOCKET, SO_LISTENING,
+ SO_MGMT, SO_ORDREL, SO_PARALLELSVR, SO_PROTOTYPE, SO_RDWRSO_SEMA,
+ SO_USELOOPBACK): Remove.
+
+ xlat: treat socketlayers as a sorted array.
+ * xlat/socketlayers.in: Add a comment that the xlat is sorted.
+ * net.c (print_sockopt_fd_level_name): Use printxval_search
+ instead of printxval for decoding socket layer name.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ net: decode Bluetooth protocol names unconditionally.
+ As we have all BTPROTO_* constant definitions now, there is no need
+ to rely on bluetooth.h header anymore.
+
+ * net.c (AF_BLUETOOTH): Provide a fallback definition.
+ [HAVE_BLUETOOTH_BLUETOOTH_H]: Do not include <bluetooth/bluetooth.h>.
+ [!HAVE_BLUETOOTH_BLUETOOTH_H]: Include "xlat/bt_protocols.h".
+ [!HAVE_BLUETOOTH_BLUETOOTH_H] (decode_sockbuf): Decode AF_BLUETOOTH.
+ (decode_sockbuf) <case AF_BLUETOOTH>: Use printxval_index.
+ * xlat/bt_protocols.in: Add "#value_indexed" directive.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat/gen.sh: invoke the shell interpreter with -e -u options.
+ * xlat/gen.sh: Change interpreter from "/bin/sh" to "/bin/sh -eu".
+
+ xlat: update FPE_* constants.
+ * xlat/sigfpe_codes.in (FPE_FLTUNK): New constant, introduced by Linux
+ commit v4.17-rc1~107^2~2.
+ (FPE_CONDTRAP): New constant, introduced by Linux commit
+ v4.17-rc1~31^2~3.
+
+ xlat: add MAP_FIXED_NOREPLACE.
+ * xlat/mmap_flags.in (MAP_FIXED_NOREPLACE): New constant, introduced
+ by Linux commit v4.17-rc1~52^2~14.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: provide fallback definitions for BTPROTO_* constants.
+ As they are architecture-independent.
+
+ * xlat/bt_protocols.in: Add values to constants.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add NETLINK_SMC.
+ * xlat/netlink_protocols.in (NETLINK_SMC): New constant, introduced
+ by Linux commit v4.11-rc1~94^2~43^2.
+
+ xlat: provide fallback definitions for V4L2_CID_* constants.
+ * xlat/v4l2_control_id_bases.in: New file with fallback definitions.
+ * xlat/v4l2_control_ids.in: Add fallback definitions.
+ * v4l2.c: Reorder includes, include "xlat/v4l2_control_id_bases.h",
+ remove legacy V4L2_CID_* constant definitions.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: update V4L2_CID_* constants.
+ Synchronise v4l2_control_ids list with the one provided by kernel's
+ include/uapi/linux/v4l2-controls.h. A few notes:
+ - V4L2_CID_CHROMA_GAIN and V4L2_CID_COLORFX_CBCR moved in accordance
+ with their position/values.
+ - V4L2_CID_WHITENESS is removed as it has the same value as
+ V4L2_CID_GAMMA.
+ - V4L2_CID_PRIVATE_BASE is removed.
+ - V4L2_CID_HCENTER and V4L2_CID_VCENTER that were removed by Linux
+ commit v3.9-rc1~93^2~237, are retained for historical reasons.
+
+ * xlat/v4l2_control_ids.in: Update.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: provide fallback definitions for V4L2_CTRL_CLASS_* constants.
+ As those are architecture-independant. Also note that the xlat
+ is sorted.
+
+ * xlat/v4l2_control_classes.in: Add values.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: update V4L2_CTRL_CLASS_* constants.
+ * xlat/v4l2_control_classes.in (V4L2_CTRL_CLASS_DV): New constant,
+ introduced by Linux commit v3.7-rc1~101^2^2~322.
+ (V4L2_CTRL_CLASS_RF_TUNER): New constant, introduced by Linux commit
+ v3.15-rc1~85^2~192.
+ (V4L2_CTRL_CLASS_DETECT): New constant, introduced by Linux commit
+ v3.17-rc1~112^2~340.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: update BPF_F_* constants.
+ Apparently, BPF_F_RDONLY and BPF_F_WRONLY are also used in map_flags.
+ Moreover, set of flags depends on the type of map, but let's leave that
+ for another day.
+
+ * xlat/bpf_map_flags.in (BPF_F_RDONLY, BPF_F_WRONLY): New constants.
+ (BPF_F_STACK_BUILD_ID): New constant, introduced by Linux commit
+ v4.17-rc1~148^2~156^2~3^2~1.
+ * xlat/bpf_map_flags.in: Update expected output.
+
+2018-05-06 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add V4L2_PIX_FMT_HEVC.
+ * xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_HEVC): New constant, introduced
+ by Linux commit v4.17-rc1~143^2~60.
+
+ xlat: add ETH_P_PREAUTH.
+ * xlat/ethernet_protocols.in (ETH_P_PREAUTH): New constant, introduced
+ by Linux commit v4.17-rc1~148^2~379^2~3.
+
+ xlat: update SCTP_* constants.
+ * xlat/socksctpoptions.in (SCTP_AUTH_DEACTIVATE_KEY): New constant,
+ introduced by Linux commit v4.17-rc1~148^2~191^2~2.
+ (SCTP_SENDMSG_CONNECT): New constant, introduced by Linux commit
+ v4.17-rc1~96^2~9.
+
+ xlat: add SPARC ADI-related SIGSEGV codes.
+ * xlat/sigsegv_codes.in (SEGV_ACCADI, SEGV_ADIDERR, SEGV_ADIPERR): New
+ constants, introduced by Linux commit v4.17-rc1~147^2~4^2~10.
+
+ xlat: add PROT_ADI.
+ * xlat/mmap_prot.in (PROT_ADI): New constant, introduced by Linux commit
+ v4.17-rc1~147^2~4^2~1.
+
+2018-05-05 Dmitry V. Levin <[email protected]>
+
+ build: rewrite libdw detection without pkg-config.
+ pkg-config expected to be more convenient way to configure libdw,
+ but in practice it appeared to be less portable than good old
+ AC_CHECK_HEADERS and AC_CHECK_LIB.
+
+ * ci/install-dependencies.sh (common_packages): Remove pkg-config.
+ (STACKTRACE == "libdw"): Do not install libz-dev and liblzma-dev.
+ * debian/control (Build-Depends): Remove pkg-config.
+ * m4/st_libdw.m4 (st_ARG_LIBDW, st_LIBDW): Rewrite without pkg-config.
+
+2018-05-04 Dmitry V. Levin <[email protected]>
+
+ ci: add more variants of unwinder to test matrices.
+ Check x86_64 builds with libdw, with libunwind, and without stacktrace.
+ As Travis CI doesn't provide a suitable libdw, do not test libdw there.
+
+ * ci/install-dependencies.sh (common_packages): Remove libdw-dev.
+ Install libdw-dev or libunwind8-dev depending on $STACKTRACE.
+ * ci/run-build-and-tests.sh: Specify --with-libdw=yes,
+ --with-libunwind=yes, or --without-stacktrace depending on $STACKTRACE.
+ * .gitlab-ci.yml (gcc-x86_64): Rename to gcc-x86_64-libdw,
+ add STACKTRACE=libdw.
+ (gcc-x86): Rename to gcc-x86-nounwind, add STACKTRACE=no.
+ (clang-x86_64): Rename to clang-x86_64-libdw, add STACKTRACE=libdw.
+ (clang-x86): Rename to clang-x86-nounwind, add STACKTRACE=no.
+ (gcc-x86_64-libunwind, gcc-x86_64-nounwind, gcc-x86-nounwind,
+ clang-x86_64-libunwind, clang-x86_64-nounwind, clang-x86-nounwind):
+ New test matrix entries.
+ * .travis.yml: Add STACKTRACE=libunwind to all x86_64 test matrix
+ entries except musl-gcc, add STACKTRACE=no to other matrix entries,
+ add test matrix entries with STACKTRACE=no variants on x86_64.
+
+2018-05-04 Eugene Syromyatnikov <[email protected]>
+
+ xlat: update af_packet_types.
+ * xlat/af_packet_types.in: Add values.
+ (PACKET_USER, PACKET_KERNEL): New constants, introduced by Linux commit
+ v3.14-rc1~94^2~349.
+
+ xlat: add values to adjtimex_state, adjtimex_status, advise xlats.
+ * xlat/adjtimex_state.in: Add values.
+ * xlat/adjtimex_status.in: Likewise.
+ * xlat/advise.in: Likewise.
+
+ xlat: update adjtimex_modes.
+ * xlat/adjtimex_modes.in: Add values to constants.
+ (0): Remove.
+ (ADJ_OFFSET_SS_READ): Move to the first place.
+ (ADJ_OFFSET_SINGLESHOT): Move to the second place.
+
+2018-05-04 Dmitry V. Levin <[email protected]>
+
+ mmap_cache: do not activate unless requested.
+ Do not call mmap_cache functions until mmap_cache_enable is invoked.
+ Change struct mmap_cache_t into a proxy structure, move all mmap_cache
+ data from struct tcb inside this new structure.
+
+ * Makefile.am (strace_SOURCES): Move mmap_cache.c and mmap_cache.h
+ to libstrace_a_SOURCES.
+ * defs.h (struct tcb): Remove mmap_cache_size and mmap_cache_generation
+ * fields.
+ * mmap_cache.h (struct mmap_cache_t): Rename
+ to struct mmap_cache_entry_t, create a new struct mmap_cache_t,
+ all users updated.
+ (mmap_cache_delete): Remove.
+ * mmap_cache.c (mmap_cache_delete): Rename to delete_mmap_cache,
+ add static qualifier.
+ (build_mmap_cache): Merge into mmap_cache_rebuild_if_invalid.
+ * strace.c (droptcb): Replace mmap_cache_delete invocation
+ with tcp->mmap_cache->free_fn.
+
+2018-05-03 Dmitry V. Levin <[email protected]>
+
+ mmap_cache: remove mmap_cache_is_enabled.
+ This function is no longer used and could be removed.
+
+ * mmap_cache.c (mmap_cache_is_enabled): Remove.
+ * mmap_cache.h: Likewise.
+
+2018-05-03 Masatake YAMATO <[email protected]>
+
+ unwind-libdw: use the mmap_notify subsystem.
+ The unwind subsystem uses the mmap_cache subsystem even it uses
+ unwind-libdw as backend. unwind-libdw doesn't need the full set of the
+ mmap_cache subsystem; libdw has a feature for caching a memory
+ mapping.
+
+ This commit does three things.
+
+ (1) Make the unwind subsystem not use the mmap_cache subsystem.
+ The unwind subsystem never concern the memory mapping of the target.
+ It becomes a thin layer.
+
+ (2) Make unwind-libunwind use the mmap_cache subsystem directly.
+
+ (3) Make unwind-libdw use the mmap_notify subsystem to know when it
+ should call dwfl_linux_proc_report/dwfl_report_end for updating the
+ cache.
+
+ Here is a subsystem structure that this patch
+ introduces:
+
+ +-------------------------------------+
+ | unwind subsys |
+ +------------------+------------------+
+ | unwind-libunwind | unwind-libdw |
+ +------------------+------------------+
+ | mmap_cache | |
+ +------------------+ |
+ | mmap_notify |
+ +-------------------------------------+
+ | syscall |
+ +-------------------------------------+
+ mmap/munmap/mprotect/brk...
+
+ * unwind.c: Don't include "mmap_cache.h".
+ (unwind_init): Don't call mmap_cache_enable.
+ (unwind_tcb_print, unwind_tcb_capture): Don't call mmap_cache related
+ functions, just invoke unwinder.tcb_walk.
+ * unwind.h (struct unwind_unwinder_t): Remove tcb_flush_cache field.
+
+ * unwind-libdw.c: Include "mmap_notify.h" instead of "mmap_cache.h".
+ (struct ctx): Add last_proc_updating field to record the generation
+ of memory mapping that is cached by dwfl_linux_proc_report
+ and dwfl_report_end.
+ (mapping_generation): A variable counting how many times the memory
+ mapping of targets has been changed.
+ (updating_mapping_generation): New utility function for updating
+ mapping_generation.
+ (init): New function for registering updating_mapping_generation
+ in the mmap_notify subsystem as a callback function.
+ (tcb_init): Initialize ctx::last_proc_updating.
+ (tcb_flush_cache): Rename to flush_cache_maybe. Rebuild the cache data
+ only if the data is stale.
+ (tcb_walk): Call flush_cache_maybe for avoiding referring staled cache data.
+ (unwinder): Set init function, remove tcb_flush_cache field.
+ * unwind-libunwind.c (init): Enable the mmap_cache subsystem.
+ (tcb_walk): Call mmap_cache_rebuild_if_invalid and unw_flush_cache for
+ updating the cache of the memory mapping before walking the stack.
+ (tcb_walk): Rename to walk.
+ (unwinder): Remove tcb_flush_cache field.
+
+2018-05-03 Masatake YAMATO <[email protected]>
+
+ unwind-libdw: introduce indirect data structure for storing unwinding context
+ unwind-libdw uses Dwfl as the data structure for storing unwinding
+ context. It is raw data that come from libdw.
+
+ This commit introduces "struct ctx" file local data type for allowing
+ unwind-libdw to attach strace side data to the unwinding context.
+
+ * unwind-libdw.c (struct ctx): New struct definition.
+ (tcb_init, tcb_fin, tcb_walk, tcb_flush_cache): Use struct ctx instead
+ of Dwfl directly.
+
+2018-05-03 Masatake YAMATO <[email protected]>
+
+ mmap_notify: rename the macro for tracking memory mapping.
+ * sysent.h (STACKTRACE_INVALIDATE_CACHE): Rename to
+ MEMORY_MAPPING_CHANGE. All users updated.
+
+ mmap_cache: use the mmap_notify subsystem.
+ * mmap_cache.c: Include mmap_notify.h.
+ (mmap_cache_enable): Call mmap_notify_register_client to use
+ the mmap_notify subsystem, mmap_cache_invalidate is specified
+ to handle the change of memory mapping.
+ (mmap_cache_invalidate): Add static qualifier.
+ * mmap_cache.h (mmap_cache_invalidate): Remove.
+ * syscall.c: Include mmap_notify.h instead of mmap_cache.h.
+ (syscall_exiting_decode): Call mmap_notify_report instead
+ of mmap_cache_invalidate.
+
+2018-05-03 Masatake YAMATO <[email protected]>
+
+ mmap_notify: new subsystem for tracking the changes of memory mappings.
+ This subsystem is a spin-off of the mmap_cache subsystem.
+
+ The mmap_cache subsystem had two features: (1) tracking the change
+ of memory mapping, and (2) maintaining the cache of memory mapping.
+
+ mmap_notify is a subsystem specialized to provide feature (2).
+ unwind-libdw itself has the feature (1). It needs only (2).
+
+ * mmap_notify.h: New file.
+ * mmap_notify.c: Likewise.
+ * Makefile.am (strace_SOURCES): Add them.
+
+2018-05-03 Eugene Syromyatnikov <[email protected]>
+
+ btrfs: add missing braces.
+ Reported by Coverity.
+
+ * btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case
+ BTRFS_IOC_TREE_SEARCH_V2>: Add missing braces.
+
+ Fixes: v4.22-76-gf766447 "btrfs: use PRINT_FIELD_*"
+
+2018-05-03 Eugene Syromyatnikov <[email protected]>
+
+ strace.c: check return code of never failing fcntl call.
+ Because the kernel cannot be trusted.
+
+ * strace.c (set_cloexec_flag): Call perror_msg_and_die if fcntl(F_SETFD)
+ has failed.
+
+2018-05-03 Eugene Syromyatnikov <[email protected]>
+
+ sock: use error_func_msg for printing function name.
+ * sock.c (decode_ifconf): Use error_func_msg instead of error_msg with
+ manual function name printing.
+
+2018-05-03 Eugene Syromyatnikov <[email protected]>
+
+ util.c: add len sanity checks to dumpstr.
+ Reported by clang.
+
+ * util.c (dumpstr): Check that len is sane.
+
+2018-05-03 Eugene Syromyatnikov <[email protected]>
+
+ mmap_cache: fool-proofing build_mmap_cache.
+ Let's try to handle better the situation when build_mmap_cache is called
+ without mmap_cache/mmap_cache_size being reset prior to the call.
+
+ Reported by Coverity scan.
+
+ * mmap_cache.c (build_mmap_cache): Set cache_head to tcp->mmap_cache.
+ Reset tcp->mmap_cache_size to 0.
+
+2018-05-03 Eugene Syromyatnikov <[email protected]>
+
+ error_prints: add missing va_end() calls.
+ These missing va_end() calls are followed by die() calls that never
+ return, so the only practical effect of this change is appeasement
+ of code checking tools.
+
+ Reported by cppcheck.
+
+ * error_prints.c (error_msg_and_die, error_msg_and_help,
+ perror_msg_and_die): Add va_end().
+
+2018-05-03 Eugene Syromyatnikov <[email protected]>
+
+ mem: handle potential error from sysconf(_SC_PAGESIZE)
+ Reported by Coverity scan.
+
+ * mem.c (get_pagesize): Handle the case when sysconf(_SC_PAGESIZE)
+ returns an error.
+
+2018-05-03 Dmitry V. Levin <[email protected]>
+
+ xlat: merge fcntl64cmds into fcntlcmds.
+ Since we don't have to workaround old F_[GS]ETOWN_EX == F_[SG]ETLK64
+ kernel bug any longer, there is a room for cleanup.
+
+ * xlat/fcntlcmds.in (F_GETLK64, F_SETLK64, F_SETLKW64): Add from
+ xlat/fcntl64cmds.in.
+ * xlat/fcntl64cmds.in: Remove.
+ * fcntl.c: Do not include "xlat/fcntl64cmds.h".
+ (SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): Do not use fcntl64cmds, call
+ printxval instead of printxvals.
+
+2018-05-03 Zhibin Li <[email protected]>
+
+ tests: check decoding of F_GETOWN_EX and F_SETOWN_EX fcntl commands.
+ * tests/fcntl.c (TEST_F_OWNER_EX): New macro.
+ [TEST_F_OWNER_EX]: Include "f_owner_ex.h".
+ [TEST_F_OWNER_EX] (test_f_owner_ex_type_pid,
+ test_f_owner_ex_umove_or_printaddr, test_f_owner_ex): New functions.
+ (main) [TEST_F_OWNER_EX]: Use test_f_owner_ex.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-05-03 Dmitry V. Levin <[email protected]>
+
+ Introduce f_owner_ex.h.
+ Some headers define struct f_owner_ex, some struct __kernel_f_owner_ex,
+ we have to support both variants.
+
+ * configure.ac (AC_CHECK_TYPES): Check for "struct f_owner_ex"
+ and "struct __kernel_f_owner_ex" in <linux/fcntl.h>.
+ * f_owner_ex.h: New file.
+ * Makefile.am (strace_SOURCES): Add it.
+
+2018-05-02 Masatake YAMATO <[email protected]>
+
+ tests/ioctl_kvm_run.c: handle cpuid at the end of vcpu dentry.
+ Since Linux 4.16, kernel appends the cpuid as suffix to the entry
+ for a kvm vcpu in /proc/$pid/fd like:
+
+ anon_inode:kvm-vcpu:0
+
+ That was
+
+ anon_inode:kvm-vcpu
+
+ This kernel change causes the test case failure on newer kernels.
+ Update the test to deal with the new name as well as the old one.
+
+ * tests/ioctl_kvm_run.c: Include unistd.h for using readlink(2).
+ (vcpu_dev_should_have_cpuid): New function for detecting whether
+ a proc entry for given fd has the cpuid suffix or not.
+ (main): Trim vcpu_dev to remove the cpuid suffix if needed.
+ (vcpu_dev): Remove const modifier.
+
+2018-04-29 Dmitry V. Levin <[email protected]>
+
+ xlat: check that system definitions match fallback definitions.
+ For each constant that is accompanied by a fallback definition,
+ generate a sanity check that the definition provided by system headers
+ matches the fallback definition.
+
+ * gcc_compat.h (DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE,
+ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE): New macros.
+ * xlat/gen.sh (cond_def): Generate a code that checks the system
+ definition against the default.
+ (gen_header): Generate a code that includes "gcc_compat.h" and
+ "static_assert.h".
+
+ Co-Authored-by: Eugene Syromyatnikov <[email protected]>
+
+2018-04-29 Dmitry V. Levin <[email protected]>
+
+ xlat: override values of F_SETOWN_EX and F_GETOWN_EX constants.
+ Linux kernel commit v2.6.32-rc7~23 has changed values of F_SETOWN_EX
+ and F_GETOWN_EX constants introduced by commit v2.6.32-rc1~96 to fix
+ the conflict with F_GETLK64 and F_SETLK64 constants.
+
+ Looks like the best way to handle this situation is to pretend that
+ old values of F_SETOWN_EX and F_GETOWN_EX didn't exist.
+
+ * xlat/fcntlcmds.in (F_SETOWN_EX, F_GETOWN_EX): Undefine.
+
+2018-04-29 Dmitry V. Levin <[email protected]>
+
+ xlat: fix F_* fallback definitions on alpha, hppa, mips, and sparc.
+ * xlat/fcntlcmds.in (F_GETLK, F_SETLK, F_SETLKW, F_SETOWN, F_GETOWN,
+ F_SETSIG, F_GETSIG) [alpha || hppa || mips || sparc]: Fix definitions.
+ * xlat/fcntl64cmds.in (F_GETLK64, F_SETLK64, F_SETLKW64) [hppa || mips]:
+ Likewise.
+
+ xlat: fix SI_* fallback definitions on mips.
+ * xlat/siginfo_codes.in [mips] (SI_ASYNCIO, SI_TIMER, SI_MESGQ): Define
+ to -2, -3, and -4, respectively.
+
+2018-04-29 Dmitry V. Levin <[email protected]>
+
+ xlat: override values of KEY_RFKILL and KEY_BRIGHTNESS_MIN constants.
+ KEY_RFKILL and KEY_NUMERIC_A constants were introduced by Linux kernel
+ commits v2.6.33~17^2~2 and v4.1-rc1~150^2~1^10~6, respectively.
+ Apparently, RHEL6 introduced an alternative KEY_RFKILL constant
+ with the same value as upstream KEY_NUMERIC_A.
+
+ KEY_BRIGHTNESS_MIN and KEY_BRIGHTNESS_MAX constants were introduced
+ by Linux kernel commit v3.16-rc1~30^2~6^2~1^2~7.
+ Apparently, RHEL7 introduced an alternative KEY_BRIGHTNESS_MIN constant
+ with the same value as upstream KEY_BRIGHTNESS_MAX.
+
+ Downstream vendors are *not* allowed to do this.
+ Ignore the system value of KEY_RFKILL and KEY_BRIGHTNESS_MIN.
+
+ * xlat/evdev_keycode.in (KEY_RFKILL, KEY_BRIGHTNESS_MIN): Undefine.
+
+2018-04-29 Dmitry V. Levin <[email protected]>
+
+ xlat: override the value of KEY_DATA constant.
+ Linux kernel commit v4.9-rc8~12^2 has changed the value of KEY_DATA
+ constant introduced by commit v4.7-rc6~32^2~6^2 because the old value
+ was already used by KEY_FASTREVERSE.
+
+ Looks like the best way to handle this situation is to pretend that
+ the old value of KEY_DATA didn't exist.
+
+ * xlat/evdev_keycode.in (KEY_DATA): Undefine.
+
+2018-04-29 Dmitry V. Levin <[email protected]>
+
+ xlat: override the value of AUDIT_FEATURE_CHANGE constant.
+ Linux kernel commit v3.15-rc1~18^2~1 has changed the value
+ of AUDIT_FEATURE_CHANGE constant introduced by commit v3.13-rc1~19^2~20
+ which is of course an ABI breakage that affected 3.13 and 3.14 kernel
+ releases as well as their LTS derivatives.
+
+ Linux kernel commit v3.15-rc1~18^2~1 also claims that the old value
+ of AUDIT_FEATURE_CHANGE was ignored by userspace because of the
+ established convention how netlink messages for the audit system
+ are divided into blocks.
+
+ Looks like the best way to handle this situation is to pretend that
+ the old value of AUDIT_FEATURE_CHANGE didn't exist.
+
+ * xlat/nl_audit_types.in (AUDIT_FEATURE_CHANGE): Undefine.
+
+ Co-Authored-by: Eugene Syromyatnikov <[email protected]>
+
+2018-04-29 Dmitry V. Levin <[email protected]>
+
+ xlat: fix MCL_* fallback definitions on alpha, ppc, ppc64, and sparc.
+ On these architectures, MCL_* constants are different.
+
+ * xlat/socketlayers.in [__alpha__ || __powerpc__ || __powerpc64__
+ || __sparc__] (MCL_CURRENT, MCL_FUTURE, MCL_ONFAULT): Define to 0x2000,
+ 0x4000, and 0x8000, respectively.
+
+2018-04-28 Eugene Syromyatnikov <[email protected]>
+
+ xlat: fix SOL_SOCKET fallback definition on alpha, hppa, mips, and sparc
+ On these architectures, SOL_SOCKET is 0xffff and not 1.
+
+ * xlat/socketlayers.in [__alpha__ || __hppa__ || __mips__ || __sparc__]
+ (SOL_SOCKET): Define to 0xffff.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-28 Eugene Syromyatnikov <[email protected]>
+
+ tests: add more mount checks.
+ * tests/gen_tests.in (mount, mount-Xabbrev, mount-Xraw, mount-Xverbose):
+ Add -a33 option.
+ * tests/mount.c: Check printing of flags and pointers.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-28 Dmitry V. Levin <[email protected]>
+
+ tests: use sprintrc in mount test.
+ * tests/mount.c (main): Use sprintrc.
+
+2018-04-28 Eugene Syromyatnikov <[email protected]>
+
+ tests: add mount variants with different xlat verbosity levels.
+ * tests/mount-Xabbrev.c: New file.
+ * tests/mount-Xraw.c: Likewise.
+ * tests/mount-Xverbose.c: Likewise.
+ * tests/mount.c: Add handling of XLAT_RAW and XLAT_VERBOSE macros.
+ * tests/pure_executables.list: Add mount-Xabbrev, mount-Xraw,
+ and mount-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (mount-Xabbrev, mount-Xraw, mount-Xverbose): New
+ tests.
+
+ tests: add old_mmap variants with different xlat verbosity levels.
+ * tests/old_mmap-Xabbrev.c: New file.
+ * tests/old_mmap-Xraw.c: Likewise.
+ * tests/old_mmap-Xverbose.c: Likewise.
+ * tests/old_mmap.c (main): Add handling of XLAT_RAW and XLAT_VERBOSE
+ macros.
+ * tests/pure_executables.list: Add old_mmap-Xabbrev, old_mmap-Xraw,
+ and old_mmap-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (old_mmap-Xabbrev, old_mmap-Xraw,
+ old_mmap-Xverbose): New tests.
+
+2018-04-28 Eugene Syromyatnikov <[email protected]>
+
+ tests: add mmap/mmap64 variants different xlat verbosity levels.
+ * tests/tests.h [!XLAT_RAW] (XLAT_RAW): Define.
+ [!XLAT_VERBOSE] (XLAT_VERBOSE): Likewise.
+ * tests/mmap-Xabbrev.c: New file.
+ * tests/mmap-Xraw.c: Likewise.
+ * tests/mmap-Xverbose.c: Likewise.
+ * tests/mmap64-Xabbrev.c: Likewise.
+ * tests/mmap64-Xraw.c: Likewise.
+ * tests/mmap64-Xverbose.c: Likewise.
+ * tests/mmap.c (main): Add handling of XLAT_RAW and XLAT_VERBOSE macros.
+ * tests/mmap.test: Add handling of optional test arguments that set
+ alignment and xlat verbosity options.
+ * tests/Makefile.am (mmap64_Xabbrev_CPPFLAGS, mmap64_Xraw_CPPFLAGS,
+ mmap64_Xverbose_CPPFLAGS): New variables, analogous to mmap64_CPPFLAGS.
+ * tests/pure_executables.list: Add mmap-Xabbrev, mmap-Xraw,
+ mmap-Xverbose, mmap64-Xabbrev, mmap64-Xraw, and mmap64-Xverbose.
+ * tests/.gitignore: Likewise.
+ * tests/gen_tests.in (mmap-Xabbrev, mmap-Xraw, mmap-Xverbose,
+ mmap64-Xabbrev, mmap64-Xraw, mmap64-Xverbose): New tests.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-27 Dmitry V. Levin <[email protected]>
+
+ Fix fallback definition of MSG_ZEROCOPY.
+ * xlat/msg_flags.in (MSG_ZEROCOPY): Set fallback definition to 0x4000000.
+
+ Fixes: v4.21~316 ("Update MSG_* constants")
+
+2018-04-27 Dmitry V. Levin <[email protected]>
+
+ build: try to use _Static_assert if static_assert is not available.
+ * configure.ac: Check for _Static_assert if static_assert
+ is not available.
+ * static_assert.h [!HAVE_STATIC_ASSERT && HAVE__STATIC_ASSERT]
+ (static_assert): Define to _Static_assert.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ printmode: add xlat style support to print_symbolic_mode_t.
+ * printmode.c (print_symbolic_mode_t): Set ifmt to an empty string,
+ print raw and decoded values based on current xlat_verbosity setting.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ evdev: remove XT_NORMAL.
+ It is no longer used.
+
+ * evdev.c (enum xlat_type) <XT_NORMAL>: Remove.
+ (printxval_dispatch) <case XT_NORMAL>: Remove.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ Switch to use of value-indexed xlats for evdev constants.
+ * xlat/evdev_abs.in: Add "#value_indexed" directive.
+ * xlat/evdev_autorepeat.in: Likewise.
+ * xlat/evdev_ff_status.in: Likewise.
+ * xlat/evdev_keycode.in: Likewise.
+ * xlat/evdev_leds.in: Likewise.
+ * xlat/evdev_misc.in: Likewise.
+ * xlat/evdev_prop.in: Likewise.
+ * xlat/evdev_relative_axes.in: Likewise.
+ * xlat/evdev_snd.in: Likewise.
+ * xlat/evdev_switch.in: Likewise.
+ * xlat/evdev_sync.in: Likewise.
+ * xlat/evdev_ff_types.in: Add a comment about sorting.
+ * evdev.c (keycode_ioctl, keycode_V2_ioctl): Use printxval_index
+ instead of printxval.
+ (bit_ioctl): Use XT_SORTED for evdev_ff_types, use XT_INDEXED
+ for other xlats.
+ (evdev_read_ioctl): Use XT_INDEXED for all xlats.
+ * ioctl.c (evdev_decode_number): Use printxval_indexn instead of
+ printxval for evdev_abs.
+
+ evdev: support various types of xlats in decode_bitset.
+ * evdev.c (enum xlat_type): New enumeration.
+ (printxval_dispatch): New function.
+ (decode_bitset_): Rename from decode_bitset, add decode_nr_size
+ and xt arguments, call printxval_dispatch instead of printxval.
+ (decode_bitset): Add a decode_bitset_ wrapper that derives
+ decode_nr_size from the ARRAY_SIZE of decode_nr.
+ (bit_ioctl, evdev_read_ioctl): Update decode_bitset calls.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ Move xlat/evdev_abs.h inclusion from ioctl.c to evdev.c.
+ Also introduce evdev_abs_size constant, which will be needed later.
+
+ * defs.h (evdev_abs_size): New declaration.
+ * ioctl.c: Move xlat/evdev_abs.h inclusion ...
+ * evdev.c: ... here.
+ (evdev_abs_size): New constant variable.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ Add support for value-indexed xlats.
+ There are quite a few xlats that start from 0 and not too sparse,
+ we can push the search time for them down to O(1).
+
+ * defs.h (printxval_indexn_ex): New declaration.
+ (printxval_indexn, printxval_index, printxval_index_ex): New macros.
+ * xlat.c (printxval_sized): Rename from printxval_searchn_ex,
+ add fn argument, call it instead of xlat_search.
+ (printxval_searchn_ex): Implement as a thin wrapper around
+ printxval_sized using xlat_search as a search function.
+ (xlat_idx): New function.
+ (printxval_indexn_ex): New function, a thin wrapper around
+ printxval_sized using xlat_idx as a search function.
+ * xlat/gen.sh: Add support for "#value_indexed" directive.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ socketcall: use printxval_d for printing call argument.
+ * socketcall.c (SYS_FUNC(socketcall)): Use printxval_d instead of manual
+ call argument decoding.
+
+ signal: use print_xlat_ex in print_sa_handler.
+ * signal.c (print_sa_handler): Call print_xlat_ex instead of tprints
+ in order to respect current xlat style setting.
+
+ s390: use printxvals_ex for command printing in s390_runtime_instr.
+ * s390.c (SYS_FUNC(s390_runtime_instr)): Replace manual command argument
+ decoding with a printxvals_ex call.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ printsiginfo: use print_xlat_ex in print_si_code.
+ In order to respect current xlat style setting.
+
+ * printsiginfo.c (print_si_code): Use print_xlat_ex instead of manual
+ string/value printing.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ open: use print_xlat_ex for printing open modes.
+ In order to respect xlat style setting.
+
+ * open.c (tprint_open_modes): Use print_xlat_ex instead of
+ tprint_open_modes.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ netlink: use print_xlat_ex in decode_nlmsg_type_netfilter.
+ In order to respect current xlat style setting.
+
+ * netlink.c (decode_nlmsg_type_netfilter): Use print_xlat_ex
+ instead of tprints.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ net: use print_xlat_ex in tprint_sock_type.
+ In order to respect current xlat style setting.
+
+ * next.c (tprint_sock_type): Use print_xlat_ex instead of tprints
+ for socket type printing.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ keyctl: use printxval_d for printing keyring serial number.
+ * keyctl.c (print_keyring_serial_number): Use printxval_d instead of
+ looking up and printing xlat value manually.
+ * xlat/key_spec.in: Add "#val_type int" so the xlat values have sign
+ bit propagated.
+
+ ipc: use printxval_u instead of manual xlat value printing.
+ * ipc.c (SYS_FUNC(ipc)): Decode call argument using printxval_u.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ ioprio: use sprintxval instead of xlookup and string/value printing.
+ In order to respect current xlat style.
+
+ * ioprio.c (sprint_ioprio): Use sprintxval for producing string
+ representation of ioprio class, use the produced string representation
+ in resulting xsprintf.
+
+2018-04-27 Eugene Syromyatnikov <[email protected]>
+
+ xlat: handle NULL str in print_xlat_ex.
+ It allows to use the following code pattern:
+
+ print_xlat_ex(val, xlookup(xlat, val), XLAT_STYLE_FMT_D);
+
+ * xlat.c (print_xlat_ex): Handle str being NULL: print val instead.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-26 Eugene Syromyatnikov <[email protected]>
+
+ strace.1.in: fix typo (Ronald -> Roland)
+ A very unfortunate one, though.
+
+ NEWS: mention that -X option addresses Debian bug #692915.
+
+2018-04-25 Eugene Syromyatnikov <[email protected]>
+
+ ioctl: do not include linux/input.h.
+ All the ABS_* and EV_* values are now available internally,
+ there's no need to include the header.
+
+ * ioctl.c [HAVE_LINUX_INPUT_H]: Do not include linux/input.h.
+
+2018-04-25 Eugene Syromyatnikov <[email protected]>
+
+ tests: add more evdev ioctl checks.
+ tests/ioctl_evdev.c (TEST_NULL_ARG_EX): Rename from TEST_NULL_ARG, add
+ str argument, print it instead of #cmd.
+ (TEST_NULL_ARG): Implement as a TEST_NULL_ARG_EX wrapper.
+ (main): Add checks for EVIOCSABS and EVIOCGBIT ioctls.
+
+ evdev: decode EV_SW unconditionally.
+ * evdev.c (bit_ioctl): Remove [EV_SW] check.
+ * tests/ioctl_evdev.c [!EV_SW] (EV_SW): Define.
+ (main): Remove [EV_SW] check.
+
+2018-04-25 Eugene Syromyatnikov <[email protected]>
+
+ xlat: provide fallback definitions for arch-independent evdev constants.
+ * xlat/evdev_abs.in: Add constant values.
+ * xlat/evdev_autorepeat.in: Likewise.
+ * xlat/evdev_ev.in: Likewise.
+ * xlat/evdev_ff_status.in: Likewise.
+ * xlat/evdev_ff_types.in: Likewise.
+ * xlat/evdev_leds.in: Likewise.
+ * xlat/evdev_misc.in: Likewise.
+ * xlat/evdev_prop.in: Likewise.
+ * xlat/evdev_relative_axes.in: Likewise.
+ * xlat/evdev_snd.in: Likewise.
+ * xlat/evdev_switch.in: Likewise.
+ * xlat/evdev_sync.in: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-25 Eugene Syromyatnikov <[email protected]>
+
+ xlat/evdev_switch.in: update.
+ * xlat/evdev_switch.in (SW_RADIO): Remove, as it was renamed to
+ SW_RFKILL_ALL and marked as deprecated by Linux commit v2.6.26-rc5~32^2.
+ (SW_PEN_INSERTED): New constant, was added by Linux commit v4.7~11^2~7.
+
+2018-04-24 Eugene Syromyatnikov <[email protected]>
+
+ util.c: make "Out of memory" messages a bit more informative.
+ Since these are emitted in multiple places and are not expected during
+ any normal operation, it makes sense to report the caller name.
+
+ * util.c (print_quoted_string_ex, print_quoted_string_ex, dumpiov_upto,
+ dumpstr): Replace error_msg with error_func_msg.
+
+2018-04-24 Eugene Syromyatnikov <[email protected]>
+
+ ci: reorder travis jobs.
+ Run coverage check first as it is the longest one.
+
+ * .travis.yml (matrix): Reorder.
+
+2018-04-24 Eugene Syromyatnikov <[email protected]>
+
+ xlat: add MS_SUBMOUNT constant.
+ * xlat/mount_flags.in (MS_SUBMOUNT): New constant, introduced
+ by Linux commit v4.11-rc1~82^2~7.
+
+2018-04-24 Eugene Syromyatnikov <[email protected]>
+
+ fcntl: replace combinations of xlookup and printxval with printxvals.
+ After all, that's what printxvals for.
+
+ * fcntl.c (SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): Use printxvals for
+ printing value with multiple xlat tables as constant sources.
+
+2018-04-24 Eugene Syromyatnikov <[email protected]>
+
+ Move xlat_verbose and xlat_format from xlat.c to defs.h.
+ As it will be used elsewhere.
+
+ * xlat.c (xlat_verbose, xlat_format): Move...
+ * defs.h: ...here.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ btrfs: use printxval_u for error types printing.
+ * btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case
+ BTRFS_IOC_GET_DEV_STATS>: Use printxval_u for error type printing.
+ * tests/btrfs.c (btrfs_test_get_dev_stats_ioctl): Update expected output.
+
+ btrfs: print device IDs using PRINT_FIELD_DEV.
+ * btrfs.c (btrfs_print_balance_args): Print devid field using
+ PRINT_FIELD_DEV.
+ (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_DEV_INFO,
+ case BTRFS_IOC_GET_DEV_STATS, case BTRFS_IOC_SCRUB,
+ case BTRFS_IOC_SCRUB_PROGRESS>: Likewise.
+ (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_DEV_REPLACE>: Print
+ start.srcdevid field using PRINT_FIELD_DEV.
+ * tests/btrfs.c: Update expected output.
+
+ btrfs: print cont_reading_from_srcdev_mode as xlat.
+ * xlat/btrfs_cont_reading_from_srcdev_mode.in: New file.
+ * btrfs.c: Include "xlat/btrfs_cont_reading_from_srcdev_mode.h".
+ (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_DEV_REPLACE>: Print
+ named values for the
+ struct btrfs_ioctl_dev_replace_args.start.cont_reading_from_srcdev_mode
+ field.
+ * tests/btrfs.c: Include "xlat/btrfs_cont_reading_from_srcdev_mode.h".
+ (btrfs_test_dev_replace_ioctl): Update expected output.
+
+ btrfs: use PRINT_FIELD_*
+ * btrfs.c (btrfs_print_balance_args, btrfs_print_balance,
+ btrfs_print_features, btrfs_print_qgroup_limit,
+ btrfs_print_data_container_header,
+ print_btrfs_data_container_logical_ino, btrfs_print_qgroup_inherit,
+ btrfs_print_tree_search, print_btrfs_ioctl_space_info, btrfs_ioctl):
+ Use PRINT_FIELD_* macros for printing structure fields.
+
+ btrfs: make BTRFS_IOC_GET_DEV_STATS error statistics output more structured
+ * btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case
+ BTRFS_IOC_GET_DEV_STATS>: Print array index in square brackets before
+ the value in order to avoid confusion.
+ * tests/btrfs.c (btrfs_test_get_dev_stats_ioctl): Update expected output.
+
+ ioctl: print ioctl number in accordance with xlat verbosity setting.
+ * ioctl.c (SYS_FUNC(ioctl)): Print ioctl command name in accordance
+ with the current xlat_verbosity setting.
+ * tests/btrfs.c (sprint_xlat_): New function.
+ (ioc): New macro, a wrapper for sprint_xlat_.
+ Update expected output.
+
+ file_ioctl: make abbreviated output more structured.
+ * file_ioctl.c (file_ioctl): Print fm_extents field name only in case
+ of non-abbreviated output.
+ * tests/btrfs.c (btrfs_test_ino_path_ioctls): Update expected output.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ btrfs: fix printing of struct btrfs_ioctl_quota_ctl_args.
+ For some reason, he decoder of BTRFS_IOC_QUOTA_CTL command didn't print
+ opening curly brace and field name, only the closing curly brace.
+
+ * btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_QUOTA_CTL>:
+ Print "{cmd=".
+ * tests/btrfs.c (btrfs_test_quota_ctl_ioctl): Update expected output.
+
+ Fixes: v4.12~100 "ioctl: add decoding support for btrfs ioctls"
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ btrfs: consistently use PRINT_FIELD_U64.
+ * btrfs.c (print_u64, print_member_u64, print_key_value_internal,
+ print_key_value): Remove.
+ (btrfs_print_balance_args): Use PRINT_FIELD_U64 instead of
+ print_member_u64.
+ (btrfs_print_tree_search): Use PRINT_FIELD_U64 instead of
+ print_key_value.
+ (MPERS_PRINTER_DECL(btrfs_ioctl)): Use PRINT_FIELD_U64 instead of manual
+ UINT64_MAX printing.
+ * tests/btrfs.c: Update expected output in order to account fields that
+ are now affected by xlat_verbosity setting.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ btrfs: print {min,max}_{offset,transid} unconditionally.
+ As it looks like there's no reason to skip their printing.
+
+ * btrfs.c (print_key_value_internal): Do not check value argument
+ for holding non-zero value.
+ * tests/btrfs.c (btrfs_print_search_key): Update expected output.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ tests/btrfs.c: accept possible failure of BTRFS_IOC_BALANCE_V2.
+ BTRFS_IOC_BALANCE_V2 ioctl might fail sometimes (for example, if it
+ decides that it doesn't have enough free space).
+
+ * tests/btrfs.c (btrfs_test_balance_ioctls): Print expected output for
+ the BTRFS_IOC_BALANCE_V2 call based on its return code.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ tests/btrfs.c: support volumes with mixed data/metadata in BTRFS_IOC_BALANCE_V2
+ For these volumes, pend/vend should be the same for data and meta.
+
+ * tests/btrfs.c (btrfs_test_balance_ioctls): Set args.meta.pend and
+ args.meta.vend to the same values as args.data.pend and args.data.vend,
+ respectively.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ tests/btrfs.c: check BTRFS_IOC_SUBVOL_CREATE_V2 result.
+ Otherwise the subsequent openat call fails with a cryptic message.
+
+ * tests/btrfs.c (btrfs_test_subvol_ioctls): Check return code of the
+ BTRFS_IOC_SUBVOL_CREATE_V2 ioctl call that is supposed to be successful.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ tests/btrfs.c: add pid suffix to the created directory, remove it on exit
+ If multiple tests are running simultaneously in the same directory,
+ conflicts (and test failures) may happen.
+
+ * tests/btrfs.c (path, dir_name_fmt, dir_name): New variables.
+ (btrfs_test_ino_path_ioctls): Use dir_name for printing directory name.
+ (rm_test_dir): New function.
+ (main): Generate dir_name, use it instead of fixed name, add rm_test_dir
+ as an atexit handler.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ btrfs: duplicate printing of opening braces on entering/exiting.
+ * btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)): Print opening bracket
+ on entering and exiting separately.
+
+ btrfs: refactor timespec printing into print_btrfs_timespec.
+ * btrfs.c (print_btrfs_timespec): New function.
+ (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_SET_RECEIVED_SUBVOL>:
+ Use print_btrfs_timespec for printing stime and rtime fields.
+ * tests/btrfs.c (btrfs_test_set_received_subvol_ioctl): Update expected
+ output.
+
+ btrfs: print abbreviations and field names more consistently.
+ * btrfs.c (btrfs_print_data_container_header): Do not print ", val=".
+ (btrfs_print_ino_path_container): Print val field name only in case
+ of non-abbreviated output.
+ (btrfs_print_qgroup_inherit): Print qgroups field name only in case
+ of non-abbreviated output.
+ (btrfs_print_tree_search): Print buf field name only in case
+ of non-abbreviated output.
+ (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_SEND>: Print
+ clone_sources field name only in case of non-abbreviated output.
+ (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_SPACE_INFO>: Print
+ spaces field name only in case of non-abbreviated output.
+ * tests/btrfs.c: Update expected output.
+
+ btrfs: move printing of the field name inside btrfs_print_qgroup_limit.
+ * btrfs.c (btrfs_print_qgroup_limit): Print ", lim=".
+ (btrfs_print_qgroup_inherit, MPERS_PRINTER_DECL(btrfs_ioctl)): Do not
+ print ", lim=" before btrfs_print_qgroup_limit call.
+
+ btrfs: convert btrfs_print_{objectid,key_type} to PRINT_FIELD_XVAL_U.
+ * btrfs.c (btrfs_print_key_type, btrfs_print_objectid): Convert into
+ thin wrappers around PRINT_FIELD_XVAL_U.
+ (btrfs_print_data_container_header, btrfs_print_tree_search,
+ MPERS_PRINTER_DECL(btrfs_ioctl)): Update calls to btrfs_print_key_type
+ and btrfs_print_objectid in accordance with the new calling convention.
+ (print_objectid_callback): Use printxvals_ex directly instead of
+ btrfs_print_objectid call.
+ * tests/btrfs.c (btrfs_print_objectid, btrfs_print_key_type): Update
+ expected output.
+
+ tests: add btrfs tests with verbose xlat decoding.
+ * tests/btrfs-X.test: New test.
+ * tests/btrfs-vX.test: Likewise.
+ * tests/btrfs-vwX.test: Likewise.
+ * tests/btrfs-wX.test: Likewise.
+ * tests/Makefile.am (DECODER_TESTS): Add them.
+ * tests/btrfs.c (verbose_xlat): New static variable.
+ (prfl_btrfs, prxval_btrfs): New function.
+ (btrfs_print_qgroup_inherit, btrfs_print_vol_args_v2,
+ btrfs_print_balance_args, btrfs_test_balance_ioctls,
+ btrfs_test_clone_ioctls, btrfs_test_defrag_ioctls,
+ btrfs_test_space_info_ioctl, btrfs_print_defrag_range_args,
+ btrfs_test_scrub_ioctls, btrfs_test_ino_path_ioctls,
+ btrfs_test_send_ioctl, btrfs_test_send_ioctl,
+ btrfs_test_quota_ctl_ioctl, btrfs_test_get_dev_stats_ioctl,
+ btrfs_test_get_dev_stats_ioctl, btrfs_test_dev_replace_ioctl,
+ btrfs_test_dev_replace_ioctl, btrfs_print_features): Use prfl_btrfs and
+ prxval_btrfs instead of printflags and printxval, respectively.
+ (btrfs_test_balance_ioctls, btrfs_test_ino_path_ioctls,
+ btrfs_test_quota_ctl_ioctl, btrfs_test_dev_replace_ioctl,
+ btrfs_test_dev_replace_ioctl): Update expected output based on
+ verbose_xlat setting.
+ (btrfs_print_defrag_range_args): Add compress_type_known arg, pass it
+ to prxval_btrfs.
+ (main): Handle -X option.
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ tests: check -X option syntax.
+ * tests/options-syntax.test: Add checks for -X option with invalid
+ arguments.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ Add user interface for configuring xlat output style.
+ * strace.c (init): Handle -X option, set xlat_verbosity
+ according to -X argument.
+ * strace.1.in: Document -X option.
+ * NEWS: Mention it.
+
+ Closes: https://github.com/strace/strace/issues/27
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-20 Eugene Syromyatnikov <[email protected]>
+
+ bpf: print fields that interpreted as pointers using printaddr64.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_ELEM),
+ BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_ELEM)): Print key and value
+ fields using PRINT_FIELD_ADDR64.
+ (BEGIN_BPF_CMD_DECODER(BPF_MAP_DELETE_ELEM)): Print key field using
+ PRINT_FIELD_ADDR64.
+ (BEGIN_BPF_CMD_DECODER(BPF_MAP_GET_NEXT_KEY)): Print key and next_key
+ field using PRINT_FIELD_ADDR64.
+ (BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)): Print insns and log_buf fields
+ using PRINT_FIELD_ADDR64.
+ (BEGIN_BPF_CMD_DECODER(BPF_PROG_TEST_RUN)): Print data_in and data_out
+ fields using PRINT_FIELD_ADDR64.
+ * tests/bpf.c: Update expected output.
+
+2018-04-20 Dmitry V. Levin <[email protected]>
+
+ build: make it even more reproducible.
+ * Makefile.am (today): Consistently print the UTC date in C locale.
+ * configure.ac (RPM_CHANGELOGTIME, DEB_CHANGELOGTIME): Likewise.
+ * maint/update_copyright_years.sh: Likewise.
+ * copyright-year-gen: Likewise. When $SOURCE_DATE_EPOCH is non-empty,
+ use it as fallback date before the current system date.
+
+ References: https://github.com/strace/strace/pull/68
+
+2018-04-19 Dmitry V. Levin <[email protected]>
+
+ unwind: move unwind_tcb_init invocation to after_successful_attach.
+ There is no need to call unwind_tcb_init before the tracee is attached.
+
+ * strace.c (alloctcb) [ENABLE_STACKTRACE]: Move unwind_tcb_init
+ invocation ...
+ (after_successful_attach) [ENABLE_STACKTRACE]: ... here.
+ (init) [ENABLE_STACKTRACE]: Remove unwind_tcb_init invocation loop.
+ * unwind.c (unwind_tcb_fin): Skip if tcp->unwind_queue is NULL.
+
+2018-04-19 Dmitry V. Levin <[email protected]>
+
+ strace: move setting of post-attach flags inside after_successful_attach
+ * strace.c (after_successful_attach): Add "flags" argument.
+ Set TCB_ATTACHED, TCB_STARTUP, and "flags" in tcp->flags.
+ All users updated.
+
+2018-04-19 Dmitry V. Levin <[email protected]>
+
+ strace: rename newoutf to after_successful_attach.
+ This function is going to be used for other things that have to be done
+ right after a successful attach, hence the rename.
+
+ * strace.c (newoutf): Rename to after_successful_attach,
+ all users updated.
+
+2018-04-19 Dmitry V. Levin <[email protected]>
+
+ unwind: remove stray newline in error diagnostics.
+ * unwind-libdw.c (tcb_init): Do not pass trailing "\n" to error_msg
+ as the latter prints newline itself.
+
+2018-04-19 Dmitry V. Levin <[email protected]>
+
+ build: make it more reproducible.
+ * file-date-gen: Consistently print the UTC date in C locale.
+ When $SOURCE_DATE_EPOCH is non-empty, use it as fallback date
+ before the current system date.
+
+ Reported-by: Chris Lamb <[email protected]>
+ Closes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=896016
+ Closes: https://github.com/strace/strace/pull/68
+
+2018-04-19 Masatake YAMATO <[email protected]>
+
+ unwind: initialize unwind context only if given tcb is initialized.
+ With libdw based unwinder, following warnings are reported
+ when -p is passed before -k:
+
+ $ ./strace -p 1 -k
+ ...
+ ./strace: dwfl_linux_proc_attach returned an error for process 0: No such file or directory
+ ...
+
+ It seems that commit 54c7792b, "Fix libunwind segfault when -p is
+ passed before -k" doesn't fix the original issue.
+
+ * strace.c (init) [ENABLE_STACKTRACE]: Initialize unwind context only
+ if given tcb is initialized.
+
+2018-04-12 Dmitry V. Levin <[email protected]>
+
+ bpf: harmonize length checks.
+ The rest of the decoder uses offsetof to check the length.
+
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_OBJ_PIN),
+ BEGIN_BPF_CMD_DECODER(BPF_PROG_GET_NEXT_ID),
+ BEGIN_BPF_CMD_DECODER(BPF_PROG_GET_FD_BY_ID),
+ BEGIN_BPF_CMD_DECODER(BPF_MAP_GET_FD_BY_ID)): Use offsetof instead
+ of offsetofend.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ bpf: add support for map_name and map_ifindex fields in BPF_MAP_CREATE.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)): Decode map_name
+ and map_ifindex fields that were added in Linux commits
+ v4.15-rc1~84^2~605^2~3 and v4.16-rc1~123^2~145^2~5^2~8, respectively.
+ * bpf_attr.h (struct BPF_MAP_CREATE_struct): Add map_name
+ and map_ifindex fields.
+ * tests/bpf.c (init_BPF_MAP_CREATE_attr7): New function.
+ (BPF_MAP_CREATE_checks): Remove const qualifier, add two more checks.
+
+ bpf: improve handling of various sizes of BPF_MAP_CREATE attributes.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)): Skip printing
+ the rest of the structure if len is less than the offset of the end
+ of max_entries, map_flags, or inner_map_fd field.
+ * tests/bpf.c (BPF_MAP_CREATE_checks): Add two more checks.
+
+ tests: add checks for bpf BPF_MAP_CREATE arguments.
+ * tests/bpf.c (BPF_MAP_CREATE_checks): Add two more checks.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ bpf: print numa_node using xlat.
+ As the value of -1 has a special meaning. The issue is complicated
+ by the fact that this constant is not exported by UAPI.
+
+ * xlat/numa_node.in: New file.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)): Print numa_node field
+ using printxvals_ex with a special xlat style.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ btrfs: use umove_or_printaddr_ignore_syserror instead of u_error mangling
+ * btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case
+ BTRFS_IOC_TREE_SEARCH_V2>: Use umove_or_printaddr_ignore_syserror
+ instead of tcp->u_error mangling around umove_or_printaddr call.
+
+ defs.h: introduce umove_or_printaddr{,64}_ignore_syserror wrappers.
+ * defs.h (umove_or_printaddr64_ignore_syserror): New macro, a thin
+ wrapper around umoven_or_printaddr64_ignore_syserror.
+ (umove_or_printaddr_ignore_syserror): New macro, a thin wrapper around
+ umoven_or_printaddr_ignore_syserror.
+
+ print_fields.h: add PRINT_FIELD_XVAL_U for printing xlat in %u format.
+ * print_fields.h (PRINT_FIELD_XVAL_U): New macro.
+
+ print_fields.h: add PRINT_FIELD_U64 for printing u64 with UINT64_MAX handling
+ * print_fields.h (PRINT_FIELD_U64): New macro.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ bpf_sock_filter: use print_xlat32.
+ We can't simply use print_xlat here due to the way those SKF_*_OFF
+ constants are defined.
+
+ * bpf_sock_filter.c (print_sock_filter_k): Use print_xlat32 for printing
+ SKF_AD_OFF, SKF_NET_OFF, and SKF_LL_OFF named constants.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ defs.h: add print_xlat32 macro.
+ For those cases where inadvertent sign extension is possible.
+
+ * defs.h (print_xlat32): New macro, a wrapper for print_xlat_ex.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ open: use print_xlat_d in print_dirfd.
+ * open.c (print_dirfd): Use print_xlat_d for printing AT_FDCWD named
+ constant.
+
+ fanotify: use print_xlat_d.
+ * fanotify.c (SYS_FUNC(fanotify_mark)): Use print_xlat_d for printing
+ FAN_NOFD named constant.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ Add print_xlat_u and print_xlat_d shorthands.
+ Add variants of print_xlat with various value printing formats.
+
+ * defs.h (print_xlat_u, print_xlat_d): New macro, a wrapper for
+ print_xlat_ex.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ xlat: introduce XLAT_STYLE_FMT_D.
+ As there are some possible users for it, apparently.
+
+ * defs.h (XLAT_STYLE_FORMAT_MASK): Update the value in order to
+ accommodate XLAT_STYLE_FMT_D.
+ (enum xlat_style) <XLAT_STYLE_FMT_D>: New enumeration entity.
+ (printxval64_d, printxval_d): New function, a shorthand for
+ printxvals_ex with a single xlat and XLAT_STYLE_FMT_D xlat style.
+ * xlat.c (sprint_xlat_val): Handle XLAT_STYLE_FMT_D.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ defs.h: add shorthands for printing xval with XLAT_STYLE_FMT_U.
+ * defs.h (printxval_u, printxval64_u): New function, a shorthand for
+ printxvals_ex with a single xlat and XLAT_STYLE_FMT_U as a style.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ Add support for various xlat formats.
+ Since xlat printing routines now have a notion of "style" that should be
+ used for printing xlat values, we can also employ this argument for
+ passing information about number printing format (unsigned decimal
+ or hexadecimal, so far).
+
+ * defs.h (XLAT_STYLE_FORMAT_SHIFT, XLAT_STYLE_FORMAT_MASK): New macro
+ constant.
+ (enum xlat_style) <XLAT_STYLE_FMT_X, XLAT_STYLE_FMT_U>: New enumeration
+ entities.
+ * xlat.c (xlat_verbose, xlat_format): New macro for checking specific
+ aspect of style argument.
+ (get_xlat_style): Use xlat_verbose for checking xlat verbosity style.
+ (sprint_xlat_val, print_xlat_val): New function, for easing printing
+ raw constant number with respect to printing format style.
+ (printxvals_ex, sprintxval_ex, printxval_searchn_ex,
+ printxval_searchn_ex, sprintflags_ex, printflags_ex, print_xlat_ex):
+ Use xlat_verbose macro for xlat verbosity style checks. Use
+ print_xlat_val instead of direct raw xlat value printing.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ v4l2: use print_xlat in print_v4l2_queryctrl.
+ * v4la.c (print_v4l2_queryctrl): Use print_xlat for printing
+ V4L2_CTRL_FLAG_NEXT_CTRL named constant.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ prctl: use print_xlat_ex to print PR_SET_PTRACER_ANY.
+ We cannot simply use print_xlat as PR_SET_PTRACER_ANY is defined
+ differently in kernel headers.
+
+ * prctl.c (SYS_FUNC(prctl)) <case PR_SET_PTRACER>: Use print_xlat_ex
+ for printing PR_SET_PTRACER_ANY named constant.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ nlattr: use print_xlat.
+ * nlattr.c (print_nlattr): Use print_xlat for printing NLA_F_NESTED and
+ NLA_F_NET_BYTEORDER named constants.
+
+ ipc_defs.h: use print_xlat.
+ * ipc_defs.h (PRINTCTL): Use print_xlat for printing IPC_64 named
+ constant.
+
+ futex: use print_xlat.
+ * futex.c [!FUTEX_OP_OPARG_SHIFT] (FUTEX_OP_OPARG_SHIFT): New macro
+ constant.
+ (SYS_FUNC(futex)): Use print_xlat for printing FUTEX_OP_OPARG_SHIFT
+ named constant.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ ipc: use printxval for printing key.
+ Convert explicit constant printing logic into a printxval call in order
+ to account for xlat style setting.
+
+ * defs.h (ipc_private): New xlat array declaration.
+ * ipc_msg.c (SYS_FUNC(msgget)): Use printxval for printing IPC_PRIVATE.
+ * ipc_sem.c (SYS_FUNC(semtimedop)): Likewise.
+ * ipc_shm.c (SYS_FUNC(shmget)): Likewise.
+ * xlat/ipc_private.in: New file.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ mount: use print_xlat for printing MS_MGC_VAL.
+ * mount.c (SYS_FUNC(mount)): Use print_xlat for printing MS_MGC_VAL
+ named constant.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ Introduce print_xlat and print_xlat_ex.
+ print_xlat_ex prints a named constant in accordance with xlat style
+ provided, print_xlat is a thin wrapper around print_xlat_ex that passes
+ stringified constant name as a string and XLAT_STYLE_DEFAULT as a style.
+
+ * defs.h (print_xlat_ex): New function prototype.
+ (print_xlat): New macro, a thin wrapper around print_xlat_ex.
+ * xlat.c (print_xlat_ex): New function.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ Introduce XLAT_STYLE_DEFAULT.
+ This will be needed later, with the introduction of user-configurable
+ xlat style setting (stored in xlat_verbosity variable).
+
+ * defs.h (XLAT_STYLE_VERBOSITY_MASK): New macro constant.
+ (enum xlat_style) <XLAT_STYLE_DEFAULT>: New enumeration entity.
+ (xlat_verbosity): New external declaration.
+ (printxvals, printxval_searchn, printxval_search_ex, sprintxval,
+ sprintflags, printflags64): Use XLAT_STYLE_DEFAULT instead of
+ XLAT_STYLE_ABBREV.
+ * strace.c (xlat_verbosity): New variable.
+ * xlat.c (get_xlat_style): New function.
+ (printxvals_ex, sprintxval_ex, printxval_searchn_ex, sprintflags_ex,
+ printflags_ex): Use it.
+
+2018-04-12 Eugene Syromyatnikov <[email protected]>
+
+ Introduce xlat verbosity styles.
+ * defs.h (printxvals_ex): Rename from printxvals, add style argument.
+ (enum xlat_style): New enumeration.
+ (printxvals): New macro, a wrapper for printxvals_ex.
+ (printxval_searchn_ex): Rename from printxval_searchn, add style
+ argument.
+ (printxval_searchn): New macro, a wrapper for printxval_searchn_ex.
+ (printxval_search_ex): New macro, a wrapper for printxval_searchn_ex.
+ (sprintxval_ex): Rename from sprintxval, add style argument.
+ (sprintxval): New macro, a wrapper for sprintxval_ex.
+ (printflags_ex): Add style argument.
+ (sprintflags_ex): Rename from sprintflags, add style argument.
+ (sprintflags): New macro, a wrapper for sprintflags_ex.
+ (printflags64): Pass XLAT_STYLE_ABBREV as a style in printflags_ex call.
+ * netlink.c (decode_nlmsg_flags): Pass XLAT_STYLE_ABBREV as a style in
+ printflags_ex call.
+ * xlat.c (printxvals_ex): Rename from printxvals, add style argument,
+ handle it.
+ (sprintxval_ex): Rename from sprintxval, add style argument, handle it.
+ (printxval_searchn_ex): Rename from printxval_searchn, add style
+ argument, handle it.
+ (sprintflags_ex): Rename from sprintflags, add style argument,
+ handle it.
+ (printflags_ex): Add style argument, handle it.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+ References: https://github.com/strace/strace/issues/27
+
+2018-04-11 Dmitry V. Levin <[email protected]>
+
+ tests: robustify signal delivery test against kernel bugs.
+ Recent kernel siginfo changes, namely, v4.14-rc1~60^2^2~1,
+ v4.16-rc1~159^2~37, and v4.16-rc1~159^2~39, introduced ABI regressions
+ that render the whole siginfo interface unreliable.
+
+ Looks like the kernel side is not eager to fix the breakage,
+ so here is a workaround.
+
+ * tests/signal_receive.c (s_sig, s_code, s_pid, s_uid): New volatile
+ variables.
+ (handler): Add siginfo_t parameter, save siginfo_t fields.
+ (sig_print): Remove.
+ (main): Rewrite. Use variables saved by handler to print expected
+ siginfo output. Print diagnostics in case of siginfo mismatch.
+ * strace.spec.in (%check): Extract the diagnostics.
+
+ Closes: https://github.com/strace/strace/issues/21
+
+2018-04-11 Dmitry V. Levin <[email protected]>
+
+ Lift experimental status from stack tracing feature.
+ * strace.1.in (.SH OPTIONS) <.B \-k>: Remove " (experimental)".
+ * strace.c (usage) [ENABLE_STACKTRACE]: Likewise.
+
+2018-04-11 Dmitry V. Levin <[email protected]>
+
+ Enable stack tracing in packages on all architectures.
+ The stack tracing feature used to be enabled in packages on x86_64 only.
+ This change enables -k option on all architectures.
+
+ * debian/control (Build-Depends) [!amd64]: Add pkg-config, libdw-dev,
+ and libiberty-dev.
+ * strace.spec.in (BuildRequires) [!x86_64]: Add
+ %buildrequires_stacktrace.
+
+2018-04-11 Dmitry V. Levin <[email protected]>
+
+ Use libdw-based unwinder in ci and packages.
+ * ci/install-dependencies.sh (common_packages): Add pkg-config,
+ replace libunwind8-dev with libdw-dev.
+ * debian/control (Build-Depends) [amd64]: Add pkg-config,
+ replace libunwind-dev with libdw-dev.
+ * debian/rules (build-udeb/Makefile): Replace --without-libunwind
+ with --without-stacktrace.
+ * strace.spec.in (buildrequires_libunwind_devel): Rename
+ to buildrequires_stacktrace, replace libunwind-devel with
+ either elfutils-devel or libdw-devel.
+
+ tests: skip -k tests on unsupported architectures.
+ * tests/strace-k.test: When actual strace -k output doesn't match the
+ expected output because of limited architecture support, skip the test
+ on architectures that are not currently supported by libdw.
+
+2018-04-11 Masatake YAMATO <[email protected]>
+
+ unwind: add libdw as an unwinder.
+ Implement alternative libdw-based unwinder for stack tracing.
+ Add --with-libdw configure option to control whether libdw can be used
+ as an unwinder.
+
+ * m4/st_libdw.m4: New file.
+ * m4/st_stacktrace.m4 (st_STACKTRACE): Invoke st_ARG_LIBDW and st_LIBDW,
+ check for mutually exclusive configure options,
+ (AM_CONDITIONAL): Add USE_LIBDW.
+ * unwind-libdw.c: New file.
+ * Makefile.am [USE_LIBDW] (strace_SOURCES): Append unwind-libdw.c.
+ [USE_LIBDW] (strace_CPPFLAGS): Append $(libdw_CPPFLAGS).
+ [USE_LIBDW] (strace_CFLAGS): Append $(libdw_CFLAGS).
+ [USE_LIBDW] (strace_LDFLAGS): Append $(libdw_LDFLAGS).
+ [USE_LIBDW] (strace_LDADD): Append $(libdw_LIBS).
+ * NEWS: Mention this improvement.
+
+ Closes: https://github.com/strace/strace/issues/12
+ Closes: https://github.com/strace/strace/issues/13
+ Co-Authored-by: Mark Wielaard <[email protected]>
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-11 Dmitry V. Levin <[email protected]>
+
+ tests: check corner cases of udev_monitor_netlink_header decoding.
+ * tests/netlink_kobject_uevent.c (test_nlmsg_type_kernel): Create
+ a tail-allocated udev_monitor_netlink_header object and pass it
+ to sys_send.
+ (test_nlmsg_type_udev): Likewise. Check decoding of
+ udev_monitor_netlink_header object that ends in unmapped memory region.
+
+2018-04-11 Harsha Sharma <[email protected]>
+
+ tests: check decoding of udev_monitor_netlink_header.
+ * tests/netlink_kobject_uevent.c: Include <string.h>, <arpa/inet.h>,
+ and "netlink_kobject_uevent.h".
+ (test_nlmsg_type_udev, test_nlmsg_type_kernel): New functions.
+ (main): Use them.
+
+2018-04-11 Harsha Sharma <[email protected]>
+
+ netlink: decode libudev netlink header.
+ * defs.h (decode_netlink_kobject_uevent): New prototype.
+ * netlink.c (decode_netlink): Decode family kobject_uevent.
+ * netlink_kobject_uevent.h: New file.
+ * netlink_kobject_uevent.c: Likewise.
+ * Makefile.am (strace_SOURCES): Add them.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-11 Harsha Sharma <[email protected]>
+
+ tests: check basic decoding of PTP_* ioctl commands.
+ * tests/ioctl_ptp.c: New file.
+ * tests/gen_tests.in (ioctl_ptp): New entry.
+ * tests/pure_executables.list: Add ioctl_ptp.
+ * tests/.gitignore: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-10 Eugene Syromyatnikov <[email protected]>
+
+ bpf: decode BPF_PROG_QUERY command.
+ BPF_PROG_QUERY was introduced in Linux commit v4.15-rc1~84^2~558^2~6.
+
+ * xlat/bpf_commands.in (BPF_PROG_QUERY): New constant.
+ * xlat/bpf_query_flags.in: New file.
+ * bpf.c: Include it.
+ (DECL_BPF_CMD_DECODER): Add priv argument for passing tcb private data.
+ (BEGIN_BPF_CMD_DECODER(BPF_PROG_QUERY)): New function.
+ (SYS_FUNC(bpf)) <bpf_cmd_decoders>: Add BPF_PROG_QUERY entry.
+ (SYS_FUNC(bpf)): Fetch buf on entering and exiting, pass buf on exiting,
+ retrieve private data on exiting, pass it to decoder as well, explicitly
+ rework rc handling logic for size argument printing.
+ * bpf_attr.h (struct BPF_PROG_QUERY_struct): New structure declaration.
+ (BPF_PROG_QUERY_struct_size, expected_BPF_PROG_QUERY_struct_size): New
+ macro.
+ * tests/bpf.c: Add checks for BPF_PROG_QUERY command.
+
+2018-04-10 Eugene Syromyatnikov <[email protected]>
+
+ Make print_uint64 from btrfs.c globally available.
+ And rename it to print_uint64_array_member to make the name sensible
+ without additional context.
+
+ * defs.h (print_uint64_array_member): New function prototype.
+ * btrfs.c (print_uint64): Move...
+ * util.c (print_uint64_array_member): ...here, drop "static" qualifier.
+
+2018-04-10 Eugene Syromyatnikov <[email protected]>
+
+ Introduce umoven_or_printaddr64* functions.
+ Counterparts for umoven_or_printaddr/umoven_or_printaddr_ignore_syserror
+ that always print 64 bits of addr (as this is needed in bpf and btrfs
+ decoders).
+
+ * util.c (umoven_or_printaddr64): Rename from umoven_or_printaddr,
+ change addr argument type to uint64_t, call printaddr64 instead of
+ printaddr.
+ (umoven_or_printaddr64_ignore_syserror): Rename from
+ umoven_or_printaddr_ignore_syserror, change addr argument type to
+ uint64_t, call printaddr64 instead of printaddr.
+ * defs.h (umoven_or_printaddr64): Rename from umoven_or_printaddr,
+ change addr argument type to uint64_t.
+ (umoven_or_printaddr64_ignore_syserror): Rename from
+ umoven_or_printaddr_ignore_syserror, change addr argument type to
+ uint64_t.
+ (umove_or_printaddr64): New macro, a wrapper for umoven_or_printaddr64.
+ (umoven_or_printaddr): New function, a wrapper for
+ umoven_or_printaddr64.
+ (umoven_or_printaddr_ignore_syserror): New function, a wrapper for
+ umoven_or_printaddr64_ignore_syserror.
+
+2018-04-10 Eugene Syromyatnikov <[email protected]>
+
+ bpf_filter.c: add support for decoding eBPF instruction codes.
+ * bpf_filter.c (print_bpf_filter_code): Add extended argument, remove
+ static qualifier. Add support for decoding eBPF instruction code.
+ * defs.h (print_bpf_filter_code): New declaration.
+ * xlat/ebpf_class.in: New file.
+ * xlat/ebpf_mode.in: Likewise.
+ * xlat/ebpf_op_alu.in: Likewise.
+ * xlat/ebpf_op_jmp.in: Likewise.
+ * xlat/ebpf_size.in: Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-08 Dmitry V. Levin <[email protected]>
+
+ unwind: prepare configure subsystem for alternative unwinders.
+ Introduce --enable-stacktrace configure option to control whether
+ -k option support is compiled in, --with-libunwind option remains
+ available to control whether libunwind can be used as an unwinder.
+
+ * m4/st_demangle.m4: New file.
+ * m4/st_libunwind.m4: Likewise.
+ * m4/st_stacktrace.m4: Likewise.
+ * configure.ac: Replace all libunwind and libiberty checks
+ with a single st_STACKTRACE invocation.
+ * Makefile.am: Conditionalize checks for USE_LIBUNWIND and USE_DEMANGLE
+ on ENABLE_STACKTRACE.
+ [ENABLE_STACKTRACE] (strace_SOURCES): Append unwind.c and unwind.h.
+ * strace.1.in: Replace libunwind with an unwinder-agnostic wording.
+ * defs.h: Replace USE_LIBUNWIND with ENABLE_STACKTRACE.
+ * strace.c: Likewise.
+ (print_version): Print stack-trace instead of stack-unwind.
+ * syscall.c: Replace USE_LIBUNWIND with ENABLE_STACKTRACE.
+ * tests/Makefile.am: Likewise. Replace LIBUNWIND_TESTS
+ with STACKTRACE_TESTS.
+ * tests/strace-V.test: Update expected output.
+
+2018-04-08 Eugene Syromyatnikov <[email protected]>
+
+ bpf: implement decoding of prog_name and prog_ifindex fields.
+ * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)): Add support for decoding
+ of prog_name (introduced in Linux commit v4.15-rc1~84^2~605^2~4) and
+ prog_ifindex (introduced as prog_target_ifindex in v4.15-rc1~84^2~127^2~13,
+ renamed in v4.15-rc1~15^2~5^2~3^2~7).
+ * bpf_attr.h [!BPF_OBJ_NAME_LEN] (BPF_OBJ_NAME_LEN): New macro constant.
+ [BPF_OBJ_NAME_LEN]: Check that BPF_OBJ_NAME_LEN is equal to 16.
+ (struct BPF_PROG_LOAD_struct): Add prog_name and prog_ifindex fields.
+ (BPF_PROG_LOAD_struct_size, expected_BPF_PROG_LOAD_struct_size): Update.
+ * tests/bpf.c (init_BPF_PROG_LOAD_attr): Rename
+ to init_BPF_PROG_LOAD_attr3.
+ (print_BPF_PROG_LOAD_attr): Rename to print_BPF_PROG_LOAD_attr3.
+ (init_BPF_PROG_LOAD_attr4, print_BPF_PROG_LOAD_attr4): New functions.
+ (BPF_PROG_LOAD_checks): Check new decoding features.
+
+2018-04-08 Eugene Syromyatnikov <[email protected]>
+
+ bpf: add support for array fields.
+ * gen_bpf_attr_check.sh: Ignore field array size definition.
+ * m4/gen_bpf_attr_m4.sh (filter_entries): Likewise.
+
+ Co-Authored-by: Dmitry V. Levin <[email protected]>
+
+2018-04-07 Dmitry V. Levin <[email protected]>
+
+ tests: robustify strace -k tests.
+ Allow __getpid as an alternative name for getpid,
+ allow __kernel_vsyscall after getpid.
+
+ * tests/strace-k.expected: New file.
+ * tests/strace-k-demangle.expected: Likewise.
+ * tests/Makefile.am (EXTRA_DIST): Add them.
+ * tests/strace-k-demangle.test (expected): Remove.
+ * tests/strace-k.test: Likewise. Use grep to check the output.
+
+2018-04-07 Eugene Syromyatnikov <[email protected]>
+
+ ipc_msg: sign extend msgtyp in m32 personality.
+ msgtyp has to be treated as a signed type all the way from fetching
+ to printing.
+
+ * ipc_msg.c (fetch_msgrcv_args): Sign extend msgtyp when fetching.
+
2018-04-05 Dmitry V. Levin <[email protected]>
+ strace.spec.in: update Source URL.
+ * strace.spec.in (Source): Change to https://strace.io/files/.
+
+ debian: enable mpers support for ppc64el and s390x.
+ * debian/control (Build-Depends) [ppc64el, s390x]: Add gcc-multilib.
+
+ Post-release administrivia.
+ * NEWS: Add a header line for the next release.
+ * debian/changelog.in: Add a changelog entry for 4.22-1.
+ * strace.spec.in: Likewise.
+
Prepare for 4.22 release.
* NEWS: Update for 4.22 release.
diff --git a/Makefile b/Makefile
index f6dbb59..c148798 100644
--- a/Makefile
+++ b/Makefile
@@ -147,28 +147,37 @@
$(top_srcdir)/debian/changelog.in depcomp AUTHORS COPYING \
INSTALL NEWS README compile config.guess config.sub install-sh \
missing
-#am__append_1 = unwind.c unwind.h unwind-libunwind.c
-#am__append_2 = $(libunwind_CPPFLAGS)
-#am__append_3 = $(libunwind_LDFLAGS)
-#am__append_4 = $(libunwind_LIBS)
-##am__append_5 = $(libiberty_CPPFLAGS)
-##am__append_6 = $(libiberty_LDFLAGS)
-##am__append_7 = $(libiberty_LIBS)
-am__append_8 = libmpers-m32.a
-am__append_9 = libmpers-m32.a
-am__append_10 = $(mpers_m32_targets)
-am__append_11 = $(mpers_m32_targets)
-#am__append_12 = libmpers-mx32.a
-#am__append_13 = libmpers-mx32.a
-#am__append_14 = $(mpers_mx32_targets)
-#am__append_15 = $(mpers_mx32_targets)
+#am__append_1 = unwind.c unwind.h
+##am__append_2 = unwind-libdw.c
+##am__append_3 = $(libdw_CPPFLAGS)
+##am__append_4 = $(libdw_CFLAGS)
+##am__append_5 = $(libdw_LDFLAGS)
+##am__append_6 = $(libdw_LIBS)
+##am__append_7 = unwind-libunwind.c
+##am__append_8 = $(libunwind_CPPFLAGS)
+##am__append_9 = $(libunwind_LDFLAGS)
+##am__append_10 = $(libunwind_LIBS)
+##am__append_11 = $(libiberty_CPPFLAGS)
+##am__append_12 = $(libiberty_LDFLAGS)
+##am__append_13 = $(libiberty_LIBS)
+am__append_14 = libmpers-m32.a
+am__append_15 = libmpers-m32.a
+am__append_16 = $(mpers_m32_targets)
+am__append_17 = $(mpers_m32_targets)
+#am__append_18 = libmpers-mx32.a
+#am__append_19 = libmpers-mx32.a
+#am__append_20 = $(mpers_mx32_targets)
+#am__append_21 = $(mpers_mx32_targets)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -194,12 +203,12 @@
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 hdio.c \
- ipc_msgctl.c ipc_shmctl.c loop.c mtd.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 \
- print_timex.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
+ 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 print_timex.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) \
@@ -215,6 +224,8 @@
libmpers_m32_a-ipc_msgctl.$(OBJEXT) \
libmpers_m32_a-ipc_shmctl.$(OBJEXT) \
libmpers_m32_a-loop.$(OBJEXT) libmpers_m32_a-mtd.$(OBJEXT) \
+ libmpers_m32_a-perf_ioctl.$(OBJEXT) \
+ libmpers_m32_a-print_aio_sigset.$(OBJEXT) \
libmpers_m32_a-print_group_req.$(OBJEXT) \
libmpers_m32_a-print_mq_attr.$(OBJEXT) \
libmpers_m32_a-print_msgbuf.$(OBJEXT) \
@@ -241,12 +252,12 @@
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 hdio.c \
- ipc_msgctl.c ipc_shmctl.c loop.c mtd.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 \
- print_timex.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
+ 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 print_timex.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) \
@@ -263,6 +274,8 @@
libmpers_mx32_a-ipc_msgctl.$(OBJEXT) \
libmpers_mx32_a-ipc_shmctl.$(OBJEXT) \
libmpers_mx32_a-loop.$(OBJEXT) libmpers_mx32_a-mtd.$(OBJEXT) \
+ libmpers_mx32_a-perf_ioctl.$(OBJEXT) \
+ libmpers_mx32_a-print_aio_sigset.$(OBJEXT) \
libmpers_mx32_a-print_group_req.$(OBJEXT) \
libmpers_mx32_a-print_mq_attr.$(OBJEXT) \
libmpers_mx32_a-print_msgbuf.$(OBJEXT) \
@@ -291,6 +304,7 @@
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) \
@@ -309,39 +323,42 @@
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 fadvise.c fallocate.c fanotify.c fchownat.c fcntl.c \
- fetch_bpf_fprog.c fetch_struct_flock.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 file_handle.c \
file_ioctl.c filter_qualify.c filter.h flock.c flock.h \
fs_x_ioctl.c futex.c gcc_compat.h get_robust_list.c getcpu.c \
- getcwd.c getrandom.c hdio.c hostname.c inotify.c io.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_types.h kexec.c \
- keyctl.c keyctl_kdf_params.h kvm.c largefile_wrappers.h ldt.c \
- link.c linux/asm_stat.h linux/x32/asm_stat.h \
+ getcwd.c getrandom.c hdio.c hostname.c inotify.c \
+ inotify_ioctl.c io.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_types.h kexec.c keyctl.c \
+ keyctl_kdf_params.h kvm.c largefile_wrappers.h ldt.c link.c \
+ linux/asm_stat.h linux/linux/signal.h linux/x32/asm_stat.h \
linux/x86_64/asm_stat.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 mmsghdr.c mount.c mpers_type.h mq.c \
- msghdr.c msghdr.h mtd.c native_defs.h negated_errno.h net.c \
- netlink.c netlink.h netlink_crypto.c netlink_sock_diag.h \
- netlink_inet_diag.c 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_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 \
- personality.c pkeys.c poll.c prctl.c print_dev_t.c \
- print_group_req.c print_fields.h print_ifindex.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_timeval.c print_timex.c \
- printmode.c printrusage.c printsiginfo.c printsiginfo.h \
- process.c process_vm.c ptp.c ptrace.h quota.c readahead.c \
- readlink.c reboot.c regs.h renameat.c resource.c retval.c \
- retval.h riscv.c rt_sigframe.c rt_sigreturn.c rtc.c \
- rtnl_addr.c rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.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 negated_errno.h \
+ net.c netlink.c netlink.h netlink_crypto.c \
+ netlink_kobject_uevent.c netlink_kobject_uevent.h \
+ netlink_sock_diag.h netlink_inet_diag.c 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_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_group_req.c \
+ print_fields.h print_ifindex.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_timeval.c print_timex.c printmode.c \
+ printrusage.c printsiginfo.c printsiginfo.h process.c \
+ process_vm.c ptp.c ptrace.h quota.c readahead.c readlink.c \
+ reboot.c regs.h renameat.c resource.c retval.c retval.h \
+ riscv.c rt_sigframe.c rt_sigreturn.c rtc.c rtnl_addr.c \
+ rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.c \
rtnl_neigh.c rtnl_neightbl.c rtnl_netconf.c rtnl_nsid.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 \
@@ -355,10 +372,12 @@
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 xattr.c xlat.c xlat.h xmalloc.c xmalloc.h xstring.h \
- bpf_attr_check.c unwind.c unwind.h unwind-libunwind.c
+ bpf_attr_check.c unwind.c unwind.h unwind-libdw.c \
+ unwind-libunwind.c
am__objects_3 = strace-bpf_attr_check.$(OBJEXT)
-#am__objects_4 = strace-unwind.$(OBJEXT) \
-# strace-unwind-libunwind.$(OBJEXT)
+#am__objects_4 = strace-unwind.$(OBJEXT)
+##am__objects_5 = strace-unwind-libdw.$(OBJEXT)
+##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) \
@@ -392,23 +411,25 @@
strace-get_robust_list.$(OBJEXT) strace-getcpu.$(OBJEXT) \
strace-getcwd.$(OBJEXT) strace-getrandom.$(OBJEXT) \
strace-hdio.$(OBJEXT) strace-hostname.$(OBJEXT) \
- strace-inotify.$(OBJEXT) strace-io.$(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_cache.$(OBJEXT) \
- strace-mmsghdr.$(OBJEXT) strace-mount.$(OBJEXT) \
- strace-mq.$(OBJEXT) strace-msghdr.$(OBJEXT) \
- strace-mtd.$(OBJEXT) strace-net.$(OBJEXT) \
- strace-netlink.$(OBJEXT) strace-netlink_crypto.$(OBJEXT) \
+ strace-inotify.$(OBJEXT) strace-inotify_ioctl.$(OBJEXT) \
+ strace-io.$(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-net.$(OBJEXT) strace-netlink.$(OBJEXT) \
+ strace-netlink_crypto.$(OBJEXT) \
+ strace-netlink_kobject_uevent.$(OBJEXT) \
strace-netlink_inet_diag.$(OBJEXT) \
strace-netlink_netfilter.$(OBJEXT) \
strace-netlink_netlink_diag.$(OBJEXT) \
@@ -422,11 +443,12 @@
strace-number_set.$(OBJEXT) strace-oldstat.$(OBJEXT) \
strace-open.$(OBJEXT) strace-or1k_atomic.$(OBJEXT) \
strace-pathtrace.$(OBJEXT) strace-perf.$(OBJEXT) \
- strace-personality.$(OBJEXT) strace-pkeys.$(OBJEXT) \
- strace-poll.$(OBJEXT) strace-prctl.$(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_mq_attr.$(OBJEXT) \
- strace-print_msgbuf.$(OBJEXT) \
+ strace-print_ifindex.$(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) \
@@ -471,16 +493,18 @@
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_3) $(am__objects_4) $(am__objects_5) \
+ $(am__objects_6)
strace_OBJECTS = $(am_strace_OBJECTS)
am__DEPENDENCIES_1 =
-#am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
-##am__DEPENDENCIES_3 = \
+##am__DEPENDENCIES_2 = \
## $(am__DEPENDENCIES_1)
+##am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
+##am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1)
strace_DEPENDENCIES = libstrace.a $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) $(am__append_8) \
- $(am__append_12)
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
+ $(am__DEPENDENCIES_1) $(am__append_14) $(am__append_18)
strace_LINK = $(CCLD) $(strace_CFLAGS) $(CFLAGS) $(strace_LDFLAGS) \
$(LDFLAGS) -o $@
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -640,12 +664,12 @@
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
-ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing aclocal-1.14
+ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing aclocal-1.14
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
-AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoconf
-AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoheader
-AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing automake-1.14
+AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoconf
+AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoheader
+AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing automake-1.14
AWK = gawk
BUILD_EXEEXT =
BUILD_OBJEXT =
@@ -666,7 +690,7 @@
CPPFLAGS_FOR_BUILD =
CPP_FOR_BUILD = gcc -E
CYGPATH_W = echo
-DEB_CHANGELOGTIME = Thu, 14 Jun 2018 16:29:09 -0700
+DEB_CHANGELOGTIME = Fri, 15 Jun 2018 17:54:18 +0000
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
@@ -693,23 +717,23 @@
LIBS =
LTLIBOBJS =
MAINT = #
-MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing makeinfo
-MANPAGE_DATE = 2018-04-04
+MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing makeinfo
+MANPAGE_DATE = 2018-06-13
MIPS_ABI =
MKDIR_P = /bin/mkdir -p
OBJEXT = o
PACKAGE = strace
PACKAGE_BUGREPORT = [email protected]
PACKAGE_NAME = strace
-PACKAGE_STRING = strace 4.22
+PACKAGE_STRING = strace 4.23
PACKAGE_TARNAME = strace
PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.22
+PACKAGE_VERSION = 4.23
PATH_SEPARATOR = :
PERL = /usr/bin/perl
RANLIB = aarch64-linux-android-ranlib
READELF = aarch64-linux-android-readelf
-RPM_CHANGELOGTIME = Thu Jun 14 2018
+RPM_CHANGELOGTIME = Fri Jun 15 2018
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
@@ -718,13 +742,13 @@
STRIP = aarch64-linux-android-strip
VALGRIND = valgrind
VALGRIND_ENABLED = yes
-VERSION = 4.22
+VERSION = 4.23
WARN_CFLAGS = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Winit-self -Wnested-externs -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
WARN_CFLAGS_FOR_BUILD = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
-abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
-abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
-abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
-abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
+abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
+abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
+abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
+abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
ac_ct_CC =
ac_ct_CC_FOR_BUILD = gcc
am__include = include
@@ -760,8 +784,12 @@
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/install-sh
+install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/install-sh
libdir = ${exec_prefix}/lib
+libdw_CFLAGS =
+libdw_CPPFLAGS =
+libdw_LDFLAGS =
+libdw_LIBS =
libexecdir = ${exec_prefix}/libexec
libiberty_CPPFLAGS =
libiberty_LDFLAGS =
@@ -814,21 +842,23 @@
xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.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/baud_options.in xlat/blkpg_ops.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/audit_arch.in xlat/baud_options.in xlat/bdaddr_types.in \
+ xlat/blkpg_ops.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_rval.in xlat/bpf_size.in \
- xlat/bpf_src.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_defrag_flags.in \
- xlat/btrfs_dev_replace_cmds.in \
+ xlat/bpf_prog_types.in xlat/bpf_query_flags.in \
+ xlat/bpf_rval.in xlat/bpf_size.in xlat/bpf_src.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 \
@@ -841,12 +871,15 @@
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/cap.in xlat/cap_mask0.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/efd_flags.in xlat/epollctls.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 \
@@ -857,27 +890,31 @@
xlat/evdev_switch.in xlat/evdev_sync.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/fcntl64cmds.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/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in \
- xlat/getrandom_flags.in xlat/getsockipoptions.in \
- xlat/getsockipv6options.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/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/ipccalls.in xlat/itimer_which.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_mem_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/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_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 \
@@ -899,6 +936,7 @@
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 \
@@ -907,12 +945,13 @@
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/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/open_access_modes.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 \
@@ -920,13 +959,17 @@
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_sw_ids.in xlat/perf_type_id.in \
- xlat/personality_flags.in xlat/personality_types.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_sve_vl_flags.in xlat/pr_tsc.in \
- xlat/pr_unalign_flags.in xlat/prctl_options.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 \
@@ -938,11 +981,16 @@
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_port_attrs.in \
- xlat/rtnl_ifla_vf_port_attrs.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_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_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 \
@@ -960,31 +1008,42 @@
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/setsockipoptions.in xlat/setsockipv6options.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/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_diag_attrs.in xlat/smc_diag_extended_flags.in \
- xlat/smc_link_group_roles.in xlat/smc_states.in \
- xlat/sock_type_flags.in xlat/socketcalls.in \
- xlat/socketlayers.in xlat/sockipoptions.in \
- xlat/sockipv6options.in xlat/sockipxoptions.in \
- xlat/socknetlinkoptions.in xlat/sockoptions.in \
- xlat/sockpacketoptions.in xlat/sockrawoptions.in \
- xlat/socksctpoptions.in xlat/socktcpoptions.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/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_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_tcp_options.in xlat/sock_tipc_options.in \
+ xlat/sock_tls_options.in xlat/sock_type_flags.in \
+ xlat/sock_udp_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 \
@@ -992,17 +1051,18 @@
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/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/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/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_ids.in xlat/v4l2_control_types.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 \
@@ -1020,18 +1080,22 @@
xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.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/baud_options.h xlat/blkpg_ops.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/baud_options.h xlat/bdaddr_types.h xlat/blkpg_ops.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_rval.h xlat/bpf_size.h xlat/bpf_src.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/bpf_query_flags.h xlat/bpf_rval.h xlat/bpf_size.h \
+ xlat/bpf_src.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 \
@@ -1043,11 +1107,14 @@
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/cap.h xlat/cap_mask0.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 \
@@ -1057,23 +1124,27 @@
xlat/evdev_switch.h xlat/evdev_sync.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/fcntl64cmds.h xlat/fcntlcmds.h \
- xlat/fdflags.h xlat/fib_rule_actions.h xlat/fib_rule_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/futexops.h \
xlat/futexwakecmps.h xlat/futexwakeops.h \
- xlat/getrandom_flags.h xlat/getsockipoptions.h \
- xlat/getsockipv6options.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/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/ipccalls.h xlat/itimer_which.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 \
@@ -1098,34 +1169,38 @@
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_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/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/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/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_sw_ids.h xlat/perf_type_id.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/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_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/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/quota_formats.h \
xlat/quotacmds.h xlat/quotatypes.h xlat/rename_flags.h \
@@ -1135,11 +1210,16 @@
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_port_attrs.h \
- xlat/rtnl_ifla_vf_port_attrs.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_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_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 \
@@ -1156,24 +1236,35 @@
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/setsockipoptions.h xlat/setsockipv6options.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/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/smc_diag_attrs.h \
- xlat/smc_diag_extended_flags.h xlat/smc_link_group_roles.h \
- xlat/smc_states.h xlat/sock_type_flags.h xlat/socketcalls.h \
- xlat/socketlayers.h xlat/sockipoptions.h \
- xlat/sockipv6options.h xlat/sockipxoptions.h \
- xlat/socknetlinkoptions.h xlat/sockoptions.h \
- xlat/sockpacketoptions.h xlat/sockrawoptions.h \
- xlat/socksctpoptions.h xlat/socktcpoptions.h xlat/socktypes.h \
+ xlat/sigtrap_codes.h xlat/skf_ad.h xlat/skf_off.h \
+ xlat/smc_diag_attrs.h xlat/smc_diag_extended_flags.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_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_tcp_options.h \
+ xlat/sock_tipc_options.h xlat/sock_tls_options.h \
+ xlat/sock_type_flags.h xlat/sock_udp_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 \
@@ -1185,9 +1276,10 @@
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/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/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 \
@@ -1195,7 +1287,8 @@
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_ids.h xlat/v4l2_control_types.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 \
@@ -1207,14 +1300,14 @@
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
-strace_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_2) $(am__append_5) \
- $(CODE_COVERAGE_CPPFLAGS)
-strace_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
-strace_LDFLAGS = $(am__append_3) $(am__append_6)
-strace_LDADD = libstrace.a $(clock_LIBS) $(timer_LIBS) $(am__append_4) \
- $(am__append_7) $(CODE_COVERAGE_LIBS) $(am__append_8) \
- $(am__append_12)
-noinst_LIBRARIES = libstrace.a $(am__append_9) $(am__append_13)
+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)
+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)
+noinst_LIBRARIES = libstrace.a $(am__append_15) $(am__append_19)
libstrace_a_CPPFLAGS = $(strace_CPPFLAGS)
libstrace_a_CFLAGS = $(strace_CFLAGS)
libstrace_a_SOURCES = \
@@ -1223,6 +1316,8 @@
fstatfs64.c \
getpagesize.c \
ipc.c \
+ mmap_cache.c \
+ mmap_cache.h \
sigreturn.c \
socketcall.c \
statfs.c \
@@ -1240,40 +1335,43 @@
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 fadvise.c fallocate.c \
- fanotify.c fchownat.c fcntl.c fetch_bpf_fprog.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 file_handle.c file_ioctl.c \
filter_qualify.c filter.h flock.c flock.h fs_x_ioctl.c futex.c \
gcc_compat.h get_robust_list.c getcpu.c getcwd.c getrandom.c \
- hdio.c hostname.c inotify.c io.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_types.h kexec.c keyctl.c \
- keyctl_kdf_params.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 \
- 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 \
- mmsghdr.c mount.c mpers_type.h mq.c msghdr.c msghdr.h mtd.c \
+ hdio.c hostname.c inotify.c inotify_ioctl.c io.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_types.h kexec.c \
+ keyctl.c keyctl_kdf_params.h kvm.c largefile_wrappers.h ldt.c \
+ link.c linux/asm_stat.h linux/linux/signal.h \
+ linux/x32/asm_stat.h linux/x86_64/asm_stat.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 negated_errno.h net.c netlink.c netlink.h \
- netlink_crypto.c netlink_sock_diag.h netlink_inet_diag.c \
- netlink_netfilter.c netlink_netlink_diag.c \
+ netlink_crypto.c netlink_kobject_uevent.c \
+ netlink_kobject_uevent.h netlink_sock_diag.h \
+ netlink_inet_diag.c 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_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 \
- personality.c pkeys.c poll.c prctl.c print_dev_t.c \
- print_group_req.c print_fields.h print_ifindex.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_timeval.c print_timex.c \
- printmode.c printrusage.c printsiginfo.c printsiginfo.h \
- process.c process_vm.c ptp.c ptrace.h quota.c readahead.c \
- readlink.c reboot.c regs.h renameat.c resource.c retval.c \
- retval.h riscv.c rt_sigframe.c rt_sigreturn.c rtc.c \
- rtnl_addr.c rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.c \
+ perf_ioctl.c personality.c pkeys.c poll.c prctl.c \
+ print_aio_sigset.c print_dev_t.c print_group_req.c \
+ print_fields.h print_ifindex.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_timeval.c print_timex.c printmode.c \
+ printrusage.c printsiginfo.c printsiginfo.h process.c \
+ process_vm.c ptp.c ptrace.h quota.c readahead.c readlink.c \
+ reboot.c regs.h renameat.c resource.c retval.c retval.h \
+ riscv.c rt_sigframe.c rt_sigreturn.c rtc.c rtnl_addr.c \
+ rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.c \
rtnl_neigh.c rtnl_neightbl.c rtnl_netconf.c rtnl_nsid.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 \
@@ -1287,7 +1385,8 @@
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 xattr.c xlat.c xlat.h xmalloc.c xmalloc.h xstring.h \
- $(strace_SOURCES_check) $(am__append_1)
+ $(strace_SOURCES_check) $(am__append_1) $(am__append_2) \
+ $(am__append_7)
strace_SOURCES_check = bpf_attr_check.c
CODE_COVERAGE_BRANCH_COVERAGE = 1
CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
@@ -1335,7 +1434,6 @@
linux/aarch64/arch_regs.h \
linux/aarch64/arch_rt_sigframe.c \
linux/aarch64/arch_sigreturn.c \
- linux/aarch64/errnoent1.h \
linux/aarch64/get_error.c \
linux/aarch64/get_scno.c \
linux/aarch64/get_syscall_args.c \
@@ -1348,7 +1446,6 @@
linux/aarch64/set_error.c \
linux/aarch64/set_scno.c \
linux/aarch64/shuffle_scno.c \
- linux/aarch64/signalent1.h \
linux/aarch64/syscallent.h \
linux/aarch64/syscallent1.h \
linux/alpha/arch_defs_.h \
@@ -1606,7 +1703,6 @@
linux/powerpc64/arch_rt_sigframe.c \
linux/powerpc64/arch_sigreturn.c \
linux/powerpc64/errnoent.h \
- linux/powerpc64/errnoent1.h \
linux/powerpc64/get_error.c \
linux/powerpc64/get_scno.c \
linux/powerpc64/get_syscall_args.c \
@@ -1620,7 +1716,6 @@
linux/powerpc64/rt_sigframe.h \
linux/powerpc64/set_error.c \
linux/powerpc64/set_scno.c \
- linux/powerpc64/signalent1.h \
linux/powerpc64/syscallent.h \
linux/powerpc64/syscallent1.h \
linux/powerpc64/userent.h \
@@ -1629,7 +1724,6 @@
linux/riscv/arch_regs.c \
linux/riscv/arch_regs.h \
linux/riscv/arch_rt_sigframe.c \
- linux/riscv/errnoent1.h \
linux/riscv/get_error.c \
linux/riscv/get_scno.c \
linux/riscv/get_syscall_args.c \
@@ -1640,7 +1734,6 @@
linux/riscv/raw_syscall.h \
linux/riscv/set_error.c \
linux/riscv/set_scno.c \
- linux/riscv/signalent1.h \
linux/riscv/syscallent.h \
linux/riscv/syscallent1.h \
linux/rt_sigframe.h \
@@ -1667,7 +1760,6 @@
linux/s390x/arch_regs.h \
linux/s390x/arch_rt_sigframe.c \
linux/s390x/arch_sigreturn.c \
- linux/s390x/errnoent1.h \
linux/s390x/get_error.c \
linux/s390x/get_scno.c \
linux/s390x/get_syscall_args.c \
@@ -1679,7 +1771,6 @@
linux/s390x/rt_sigframe.h \
linux/s390x/set_error.c \
linux/s390x/set_scno.c \
- linux/s390x/signalent1.h \
linux/s390x/syscallent.h \
linux/s390x/syscallent1.h \
linux/s390x/userent.h \
@@ -1745,7 +1836,6 @@
linux/sparc64/arch_rt_sigframe.c \
linux/sparc64/arch_sigreturn.c \
linux/sparc64/errnoent.h \
- linux/sparc64/errnoent1.h \
linux/sparc64/get_error.c \
linux/sparc64/get_scno.c \
linux/sparc64/get_syscall_args.c \
@@ -1758,7 +1848,6 @@
linux/sparc64/set_error.c \
linux/sparc64/set_scno.c \
linux/sparc64/signalent.h \
- linux/sparc64/signalent1.h \
linux/sparc64/syscallent.h \
linux/sparc64/syscallent1.h \
linux/sparc64/userent.h \
@@ -1769,7 +1858,6 @@
linux/tile/arch_regs.h \
linux/tile/arch_rt_sigframe.c \
linux/tile/arch_sigreturn.c \
- linux/tile/errnoent1.h \
linux/tile/get_error.c \
linux/tile/get_scno.c \
linux/tile/get_syscall_args.c \
@@ -1781,7 +1869,6 @@
linux/tile/rt_sigframe.h \
linux/tile/set_error.c \
linux/tile/set_scno.c \
- linux/tile/signalent1.h \
linux/tile/syscallent.h \
linux/tile/syscallent1.h \
linux/tile/userent.h \
@@ -1794,7 +1881,6 @@
linux/x32/arch_regs.h \
linux/x32/arch_rt_sigframe.c \
linux/x32/arch_sigreturn.c \
- linux/x32/errnoent1.h \
linux/x32/get_error.c \
linux/x32/get_scno.c \
linux/x32/get_syscall_args.c \
@@ -1807,7 +1893,6 @@
linux/x32/set_error.c \
linux/x32/set_scno.c \
linux/x32/shuffle_scno.c \
- linux/x32/signalent1.h \
linux/x32/syscallent.h \
linux/x32/syscallent1.h \
linux/x32/userent.h \
@@ -1817,8 +1902,6 @@
linux/x86_64/arch_regs.h \
linux/x86_64/arch_rt_sigframe.c \
linux/x86_64/arch_sigreturn.c \
- linux/x86_64/errnoent1.h \
- linux/x86_64/errnoent2.h \
linux/x86_64/get_error.c \
linux/x86_64/get_scno.c \
linux/x86_64/get_syscall_args.c \
@@ -1835,8 +1918,6 @@
linux/x86_64/set_error.c \
linux/x86_64/set_scno.c \
linux/x86_64/shuffle_scno.c \
- linux/x86_64/signalent1.h \
- linux/x86_64/signalent2.h \
linux/x86_64/syscallent.h \
linux/x86_64/syscallent1.h \
linux/x86_64/syscallent2.h \
@@ -1876,7 +1957,7 @@
syscallent_patterns = $(patsubst %,\%/%,$(syscallent_names))
syscallent_files = $(filter $(syscallent_patterns),$(EXTRA_DIST))
-today = $(shell date +%Y-%m-%d)
+today = $(shell LC_TIME=C date -u +%Y-%m-%d)
version_regexp = $(subst .,\.,$(VERSION))
news_check_regexp = 'Noteworthy changes in release $(version_regexp) ($(today))'
ioctlsort_CC = $(CC_FOR_BUILD)
@@ -1890,12 +1971,12 @@
ioctl_redefs_h = $(filter-out ioctl_redefs0.h,$(subst ioctlent,ioctl_redefs,$(ioctlent_h)))
BUILT_SOURCES = $(ioctl_redefs_h) $(ioctlent_h) bpf_attr_check.c \
native_printer_decls.h native_printer_defs.h printers.h sen.h \
- sys_func.h .version scno.h $(am__append_10) $(am__append_14)
+ sys_func.h .version scno.h $(am__append_16) $(am__append_20)
CLEANFILES = $(ioctl_redefs_h) $(ioctlent_h) $(mpers_preproc_files) \
ioctl_iocdef.h ioctl_iocdef.i bpf_attr_check.c \
native_printer_decls.h native_printer_defs.h printers.h sen.h \
- sys_func.h syscallent.i scno.h $(am__append_11) \
- $(am__append_15)
+ sys_func.h syscallent.i scno.h $(am__append_17) \
+ $(am__append_21)
DISTCLEANFILES = gnu/stubs-32.h gnu/stubs-x32.h
SCNO_CPPFLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(ARCH_MFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
@@ -1905,7 +1986,7 @@
SCNO_SED = /TRACE_INDIRECT_SUBCALL/d; s/^\[[[:space:]]*\($(digits)\)\][[:space:]]*=[[:space:]]*{[^,]*,[^,]*,[^,]*,[[:space:]]*"\($(al_nums)\)"[[:space:]]*},.*/\#ifndef __NR_\2\n\# define __NR_\2 (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 hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.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 print_timex.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 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 print_timex.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))
@@ -2114,6 +2195,8 @@
include ./$(DEPDIR)/libmpers_m32_a-ipc_shmctl.Po
include ./$(DEPDIR)/libmpers_m32_a-loop.Po
include ./$(DEPDIR)/libmpers_m32_a-mtd.Po
+include ./$(DEPDIR)/libmpers_m32_a-perf_ioctl.Po
+include ./$(DEPDIR)/libmpers_m32_a-print_aio_sigset.Po
include ./$(DEPDIR)/libmpers_m32_a-print_group_req.Po
include ./$(DEPDIR)/libmpers_m32_a-print_mq_attr.Po
include ./$(DEPDIR)/libmpers_m32_a-print_msgbuf.Po
@@ -2152,6 +2235,8 @@
include ./$(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Po
include ./$(DEPDIR)/libmpers_mx32_a-loop.Po
include ./$(DEPDIR)/libmpers_mx32_a-mtd.Po
+include ./$(DEPDIR)/libmpers_mx32_a-perf_ioctl.Po
+include ./$(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Po
include ./$(DEPDIR)/libmpers_mx32_a-print_group_req.Po
include ./$(DEPDIR)/libmpers_mx32_a-print_mq_attr.Po
include ./$(DEPDIR)/libmpers_mx32_a-print_msgbuf.Po
@@ -2178,6 +2263,7 @@
include ./$(DEPDIR)/libstrace_a-fstatfs64.Po
include ./$(DEPDIR)/libstrace_a-getpagesize.Po
include ./$(DEPDIR)/libstrace_a-ipc.Po
+include ./$(DEPDIR)/libstrace_a-mmap_cache.Po
include ./$(DEPDIR)/libstrace_a-sigreturn.Po
include ./$(DEPDIR)/libstrace_a-socketcall.Po
include ./$(DEPDIR)/libstrace_a-statfs.Po
@@ -2245,6 +2331,7 @@
include ./$(DEPDIR)/strace-hdio.Po
include ./$(DEPDIR)/strace-hostname.Po
include ./$(DEPDIR)/strace-inotify.Po
+include ./$(DEPDIR)/strace-inotify_ioctl.Po
include ./$(DEPDIR)/strace-io.Po
include ./$(DEPDIR)/strace-ioctl.Po
include ./$(DEPDIR)/strace-ioperm.Po
@@ -2269,7 +2356,7 @@
include ./$(DEPDIR)/strace-membarrier.Po
include ./$(DEPDIR)/strace-memfd_create.Po
include ./$(DEPDIR)/strace-mknod.Po
-include ./$(DEPDIR)/strace-mmap_cache.Po
+include ./$(DEPDIR)/strace-mmap_notify.Po
include ./$(DEPDIR)/strace-mmsghdr.Po
include ./$(DEPDIR)/strace-mount.Po
include ./$(DEPDIR)/strace-mq.Po
@@ -2279,6 +2366,7 @@
include ./$(DEPDIR)/strace-netlink.Po
include ./$(DEPDIR)/strace-netlink_crypto.Po
include ./$(DEPDIR)/strace-netlink_inet_diag.Po
+include ./$(DEPDIR)/strace-netlink_kobject_uevent.Po
include ./$(DEPDIR)/strace-netlink_netfilter.Po
include ./$(DEPDIR)/strace-netlink_netlink_diag.Po
include ./$(DEPDIR)/strace-netlink_packet_diag.Po
@@ -2296,13 +2384,16 @@
include ./$(DEPDIR)/strace-or1k_atomic.Po
include ./$(DEPDIR)/strace-pathtrace.Po
include ./$(DEPDIR)/strace-perf.Po
+include ./$(DEPDIR)/strace-perf_ioctl.Po
include ./$(DEPDIR)/strace-personality.Po
include ./$(DEPDIR)/strace-pkeys.Po
include ./$(DEPDIR)/strace-poll.Po
include ./$(DEPDIR)/strace-prctl.Po
+include ./$(DEPDIR)/strace-print_aio_sigset.Po
include ./$(DEPDIR)/strace-print_dev_t.Po
include ./$(DEPDIR)/strace-print_group_req.Po
include ./$(DEPDIR)/strace-print_ifindex.Po
+include ./$(DEPDIR)/strace-print_mac.Po
include ./$(DEPDIR)/strace-print_mq_attr.Po
include ./$(DEPDIR)/strace-print_msgbuf.Po
include ./$(DEPDIR)/strace-print_sg_req_info.Po
@@ -2382,6 +2473,7 @@
include ./$(DEPDIR)/strace-umask.Po
include ./$(DEPDIR)/strace-umount.Po
include ./$(DEPDIR)/strace-uname.Po
+include ./$(DEPDIR)/strace-unwind-libdw.Po
include ./$(DEPDIR)/strace-unwind-libunwind.Po
include ./$(DEPDIR)/strace-unwind.Po
include ./$(DEPDIR)/strace-userfaultfd.Po
@@ -2647,6 +2739,34 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi`
+libmpers_m32_a-perf_ioctl.o: perf_ioctl.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-perf_ioctl.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-perf_ioctl.Tpo -c -o libmpers_m32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_m32_a-perf_ioctl.Po
+# $(AM_V_CC)source='perf_ioctl.c' object='libmpers_m32_a-perf_ioctl.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+
+libmpers_m32_a-perf_ioctl.obj: perf_ioctl.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-perf_ioctl.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-perf_ioctl.Tpo -c -o libmpers_m32_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_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_m32_a-perf_ioctl.Po
+# $(AM_V_CC)source='perf_ioctl.c' object='libmpers_m32_a-perf_ioctl.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi`
+
+libmpers_m32_a-print_aio_sigset.o: print_aio_sigset.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-print_aio_sigset.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Tpo -c -o libmpers_m32_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Po
+# $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_m32_a-print_aio_sigset.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c
+
+libmpers_m32_a-print_aio_sigset.obj: print_aio_sigset.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-print_aio_sigset.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Tpo -c -o libmpers_m32_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_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Po
+# $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_m32_a-print_aio_sigset.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_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`
+
libmpers_m32_a-print_group_req.o: print_group_req.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-print_group_req.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_group_req.Tpo -c -o libmpers_m32_a-print_group_req.o `test -f 'print_group_req.c' || echo '$(srcdir)/'`print_group_req.c
$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-print_group_req.Tpo $(DEPDIR)/libmpers_m32_a-print_group_req.Po
@@ -3179,6 +3299,34 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi`
+libmpers_mx32_a-perf_ioctl.o: perf_ioctl.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-perf_ioctl.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Tpo -c -o libmpers_mx32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Po
+# $(AM_V_CC)source='perf_ioctl.c' object='libmpers_mx32_a-perf_ioctl.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+
+libmpers_mx32_a-perf_ioctl.obj: perf_ioctl.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-perf_ioctl.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Tpo -c -o libmpers_mx32_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_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Po
+# $(AM_V_CC)source='perf_ioctl.c' object='libmpers_mx32_a-perf_ioctl.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi`
+
+libmpers_mx32_a-print_aio_sigset.o: print_aio_sigset.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-print_aio_sigset.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Tpo -c -o libmpers_mx32_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Po
+# $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_mx32_a-print_aio_sigset.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c
+
+libmpers_mx32_a-print_aio_sigset.obj: print_aio_sigset.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-print_aio_sigset.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Tpo -c -o libmpers_mx32_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_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Po
+# $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_mx32_a-print_aio_sigset.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_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`
+
libmpers_mx32_a-print_group_req.o: print_group_req.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-print_group_req.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_group_req.Tpo -c -o libmpers_mx32_a-print_group_req.o `test -f 'print_group_req.c' || echo '$(srcdir)/'`print_group_req.c
$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-print_group_req.Tpo $(DEPDIR)/libmpers_mx32_a-print_group_req.Po
@@ -3543,6 +3691,20 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
+libstrace_a-mmap_cache.o: mmap_cache.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_cache.Tpo $(DEPDIR)/libstrace_a-mmap_cache.Po
+# $(AM_V_CC)source='mmap_cache.c' object='libstrace_a-mmap_cache.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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
+
+libstrace_a-mmap_cache.obj: mmap_cache.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_cache.Tpo $(DEPDIR)/libstrace_a-mmap_cache.Po
+# $(AM_V_CC)source='mmap_cache.c' object='libstrace_a-mmap_cache.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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`
+
libstrace_a-sigreturn.o: sigreturn.c
$(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_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po
@@ -4467,6 +4629,20 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
+strace-inotify_ioctl.o: inotify_ioctl.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-inotify_ioctl.Tpo $(DEPDIR)/strace-inotify_ioctl.Po
+# $(AM_V_CC)source='inotify_ioctl.c' object='strace-inotify_ioctl.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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
+
+strace-inotify_ioctl.obj: inotify_ioctl.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-inotify_ioctl.Tpo $(DEPDIR)/strace-inotify_ioctl.Po
+# $(AM_V_CC)source='inotify_ioctl.c' object='strace-inotify_ioctl.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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`
+
strace-io.o: io.c
$(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_V_at)$(am__mv) $(DEPDIR)/strace-io.Tpo $(DEPDIR)/strace-io.Po
@@ -4803,19 +4979,19 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
-strace-mmap_cache.o: mmap_cache.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmap_cache.o -MD -MP -MF $(DEPDIR)/strace-mmap_cache.Tpo -c -o strace-mmap_cache.o `test -f 'mmap_cache.c' || echo '$(srcdir)/'`mmap_cache.c
- $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mmap_cache.Tpo $(DEPDIR)/strace-mmap_cache.Po
-# $(AM_V_CC)source='mmap_cache.c' object='strace-mmap_cache.o' libtool=no \
+strace-mmap_notify.o: mmap_notify.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-mmap_notify.Tpo $(DEPDIR)/strace-mmap_notify.Po
+# $(AM_V_CC)source='mmap_notify.c' object='strace-mmap_notify.o' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mmap_cache.o `test -f 'mmap_cache.c' || echo '$(srcdir)/'`mmap_cache.c
+# $(AM_V_CC_no)$(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
-strace-mmap_cache.obj: mmap_cache.c
- $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmap_cache.obj -MD -MP -MF $(DEPDIR)/strace-mmap_cache.Tpo -c -o strace-mmap_cache.obj `if test -f 'mmap_cache.c'; then $(CYGPATH_W) 'mmap_cache.c'; else $(CYGPATH_W) '$(srcdir)/mmap_cache.c'; fi`
- $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mmap_cache.Tpo $(DEPDIR)/strace-mmap_cache.Po
-# $(AM_V_CC)source='mmap_cache.c' object='strace-mmap_cache.obj' libtool=no \
+strace-mmap_notify.obj: mmap_notify.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-mmap_notify.Tpo $(DEPDIR)/strace-mmap_notify.Po
+# $(AM_V_CC)source='mmap_notify.c' object='strace-mmap_notify.obj' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mmap_cache.obj `if test -f 'mmap_cache.c'; then $(CYGPATH_W) 'mmap_cache.c'; else $(CYGPATH_W) '$(srcdir)/mmap_cache.c'; fi`
+# $(AM_V_CC_no)$(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`
strace-mmsghdr.o: mmsghdr.c
$(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
@@ -4929,6 +5105,20 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
+strace-netlink_kobject_uevent.o: netlink_kobject_uevent.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-netlink_kobject_uevent.Tpo $(DEPDIR)/strace-netlink_kobject_uevent.Po
+# $(AM_V_CC)source='netlink_kobject_uevent.c' object='strace-netlink_kobject_uevent.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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
+
+strace-netlink_kobject_uevent.obj: netlink_kobject_uevent.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-netlink_kobject_uevent.Tpo $(DEPDIR)/strace-netlink_kobject_uevent.Po
+# $(AM_V_CC)source='netlink_kobject_uevent.c' object='strace-netlink_kobject_uevent.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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`
+
strace-netlink_inet_diag.o: netlink_inet_diag.c
$(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_V_at)$(am__mv) $(DEPDIR)/strace-netlink_inet_diag.Tpo $(DEPDIR)/strace-netlink_inet_diag.Po
@@ -5181,6 +5371,20 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
+strace-perf_ioctl.o: perf_ioctl.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-perf_ioctl.Tpo $(DEPDIR)/strace-perf_ioctl.Po
+# $(AM_V_CC)source='perf_ioctl.c' object='strace-perf_ioctl.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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
+
+strace-perf_ioctl.obj: perf_ioctl.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-perf_ioctl.Tpo $(DEPDIR)/strace-perf_ioctl.Po
+# $(AM_V_CC)source='perf_ioctl.c' object='strace-perf_ioctl.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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`
+
strace-personality.o: personality.c
$(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_V_at)$(am__mv) $(DEPDIR)/strace-personality.Tpo $(DEPDIR)/strace-personality.Po
@@ -5237,6 +5441,20 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
+strace-print_aio_sigset.o: print_aio_sigset.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-print_aio_sigset.Tpo $(DEPDIR)/strace-print_aio_sigset.Po
+# $(AM_V_CC)source='print_aio_sigset.c' object='strace-print_aio_sigset.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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
+
+strace-print_aio_sigset.obj: print_aio_sigset.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-print_aio_sigset.Tpo $(DEPDIR)/strace-print_aio_sigset.Po
+# $(AM_V_CC)source='print_aio_sigset.c' object='strace-print_aio_sigset.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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`
+
strace-print_dev_t.o: print_dev_t.c
$(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_V_at)$(am__mv) $(DEPDIR)/strace-print_dev_t.Tpo $(DEPDIR)/strace-print_dev_t.Po
@@ -5279,6 +5497,20 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
+strace-print_mac.o: print_mac.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-print_mac.Tpo $(DEPDIR)/strace-print_mac.Po
+# $(AM_V_CC)source='print_mac.c' object='strace-print_mac.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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
+
+strace-print_mac.obj: print_mac.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-print_mac.Tpo $(DEPDIR)/strace-print_mac.Po
+# $(AM_V_CC)source='print_mac.c' object='strace-print_mac.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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`
+
strace-print_mq_attr.o: print_mq_attr.c
$(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_V_at)$(am__mv) $(DEPDIR)/strace-print_mq_attr.Tpo $(DEPDIR)/strace-print_mq_attr.Po
@@ -6553,6 +6785,20 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(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`
+strace-unwind-libdw.o: unwind-libdw.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-unwind-libdw.Tpo $(DEPDIR)/strace-unwind-libdw.Po
+# $(AM_V_CC)source='unwind-libdw.c' object='strace-unwind-libdw.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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
+
+strace-unwind-libdw.obj: unwind-libdw.c
+ $(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_V_at)$(am__mv) $(DEPDIR)/strace-unwind-libdw.Tpo $(DEPDIR)/strace-unwind-libdw.Po
+# $(AM_V_CC)source='unwind-libdw.c' object='strace-unwind-libdw.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(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`
+
strace-unwind-libunwind.o: unwind-libunwind.c
$(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_V_at)$(am__mv) $(DEPDIR)/strace-unwind-libunwind.Tpo $(DEPDIR)/strace-unwind-libunwind.Po
@@ -7105,8 +7351,14 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/baud_options.h: $(top_srcdir)/xlat/baud_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bdaddr_types.h: $(top_srcdir)/xlat/bdaddr_types.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/blkpg_ops.h: $(top_srcdir)/xlat/blkpg_ops.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bluetooth_l2_cid.h: $(top_srcdir)/xlat/bluetooth_l2_cid.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bluetooth_l2_psm.h: $(top_srcdir)/xlat/bluetooth_l2_psm.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bootflags1.h: $(top_srcdir)/xlat/bootflags1.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bootflags2.h: $(top_srcdir)/xlat/bootflags2.in $(top_srcdir)/xlat/gen.sh
@@ -7141,6 +7393,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_prog_types.h: $(top_srcdir)/xlat/bpf_prog_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_query_flags.h: $(top_srcdir)/xlat/bpf_query_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_rval.h: $(top_srcdir)/xlat/bpf_rval.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_size.h: $(top_srcdir)/xlat/bpf_size.in $(top_srcdir)/xlat/gen.sh
@@ -7165,6 +7419,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_compress_types.h: $(top_srcdir)/xlat/btrfs_compress_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_cont_reading_from_srcdev_mode.h: $(top_srcdir)/xlat/btrfs_cont_reading_from_srcdev_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_defrag_flags.h: $(top_srcdir)/xlat/btrfs_defrag_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_dev_replace_cmds.h: $(top_srcdir)/xlat/btrfs_dev_replace_cmds.in $(top_srcdir)/xlat/gen.sh
@@ -7207,6 +7463,10 @@
$(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
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/can_protocols.h: $(top_srcdir)/xlat/can_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/cap.h: $(top_srcdir)/xlat/cap.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/cap_mask0.h: $(top_srcdir)/xlat/cap_mask0.in $(top_srcdir)/xlat/gen.sh
@@ -7233,6 +7493,18 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/dm_flags.h: $(top_srcdir)/xlat/dm_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_class.h: $(top_srcdir)/xlat/ebpf_class.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_mode.h: $(top_srcdir)/xlat/ebpf_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_op_alu.h: $(top_srcdir)/xlat/ebpf_op_alu.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_op_jmp.h: $(top_srcdir)/xlat/ebpf_op_jmp.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_regs.h: $(top_srcdir)/xlat/ebpf_regs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_size.h: $(top_srcdir)/xlat/ebpf_size.in $(top_srcdir)/xlat/gen.sh
+ $(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/epollctls.h: $(top_srcdir)/xlat/epollctls.in $(top_srcdir)/xlat/gen.sh
@@ -7285,8 +7557,6 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fan_mark_flags.h: $(top_srcdir)/xlat/fan_mark_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/fcntl64cmds.h: $(top_srcdir)/xlat/fcntl64cmds.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fcntlcmds.h: $(top_srcdir)/xlat/fcntlcmds.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fdflags.h: $(top_srcdir)/xlat/fdflags.in $(top_srcdir)/xlat/gen.sh
@@ -7311,9 +7581,11 @@
$(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/getsockipoptions.h: $(top_srcdir)/xlat/getsockipoptions.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/getsock_ip_options.h: $(top_srcdir)/xlat/getsock_ip_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/getsockipv6options.h: $(top_srcdir)/xlat/getsockipv6options.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/getsock_ipv6_options.h: $(top_srcdir)/xlat/getsock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/getsock_options.h: $(top_srcdir)/xlat/getsock_options.in $(top_srcdir)/xlat/gen.sh
$(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 $< $@
@@ -7333,6 +7605,14 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/iffflags.h: $(top_srcdir)/xlat/iffflags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/in6_addr_gen_mode.h: $(top_srcdir)/xlat/in6_addr_gen_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet6_devconf_indices.h: $(top_srcdir)/xlat/inet6_devconf_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet6_if_flags.h: $(top_srcdir)/xlat/inet6_if_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_devconf_indices.h: $(top_srcdir)/xlat/inet_devconf_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/inet_diag_attrs.h: $(top_srcdir)/xlat/inet_diag_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/inet_diag_bytecodes.h: $(top_srcdir)/xlat/inet_diag_bytecodes.in $(top_srcdir)/xlat/gen.sh
@@ -7359,10 +7639,18 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ipc_msg_flags.h: $(top_srcdir)/xlat/ipc_msg_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ipc_private.h: $(top_srcdir)/xlat/ipc_private.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ipccalls.h: $(top_srcdir)/xlat/ipccalls.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/irda_protocols.h: $(top_srcdir)/xlat/irda_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/isdn_protocols.h: $(top_srcdir)/xlat/isdn_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/itimer_which.h: $(top_srcdir)/xlat/itimer_which.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/kcm_protocols.h: $(top_srcdir)/xlat/kcm_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/kcmp_types.h: $(top_srcdir)/xlat/kcmp_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/kexec_arch_values.h: $(top_srcdir)/xlat/kexec_arch_values.in $(top_srcdir)/xlat/gen.sh
@@ -7471,6 +7759,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_protocols.h: $(top_srcdir)/xlat/netlink_protocols.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_sk_meminfo_indices.h: $(top_srcdir)/xlat/netlink_sk_meminfo_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_socket_flags.h: $(top_srcdir)/xlat/netlink_socket_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_states.h: $(top_srcdir)/xlat/netlink_states.in $(top_srcdir)/xlat/gen.sh
@@ -7499,6 +7789,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nf_ulog_msg_types.h: $(top_srcdir)/xlat/nf_ulog_msg_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nfc_protocols.h: $(top_srcdir)/xlat/nfc_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nl_audit_types.h: $(top_srcdir)/xlat/nl_audit_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nl_crypto_types.h: $(top_srcdir)/xlat/nl_crypto_types.in $(top_srcdir)/xlat/gen.sh
@@ -7521,6 +7813,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nt_descriptor_types.h: $(top_srcdir)/xlat/nt_descriptor_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/numa_node.h: $(top_srcdir)/xlat/numa_node.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/open_access_modes.h: $(top_srcdir)/xlat/open_access_modes.in $(top_srcdir)/xlat/gen.sh
$(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
@@ -7551,6 +7845,10 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_hw_id.h: $(top_srcdir)/xlat/perf_hw_id.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_ioctl_cmds.h: $(top_srcdir)/xlat/perf_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_ioctl_flags.h: $(top_srcdir)/xlat/perf_ioctl_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_sw_ids.h: $(top_srcdir)/xlat/perf_sw_ids.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_type_id.h: $(top_srcdir)/xlat/perf_type_id.in $(top_srcdir)/xlat/gen.sh
@@ -7559,6 +7857,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/personality_types.h: $(top_srcdir)/xlat/personality_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/phonet_protocols.h: $(top_srcdir)/xlat/phonet_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(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
@@ -7577,6 +7877,12 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_set_mm.h: $(top_srcdir)/xlat/pr_set_mm.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_cmds.h: $(top_srcdir)/xlat/pr_spec_cmds.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_get_store_bypass_flags.h: $(top_srcdir)/xlat/pr_spec_get_store_bypass_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_set_store_bypass_flags.h: $(top_srcdir)/xlat/pr_spec_set_store_bypass_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_sve_vl_flags.h: $(top_srcdir)/xlat/pr_sve_vl_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_tsc.h: $(top_srcdir)/xlat/pr_tsc.in $(top_srcdir)/xlat/gen.sh
@@ -7629,12 +7935,20 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_dcb_attrs.h: $(top_srcdir)/xlat/rtnl_dcb_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_af_spec_inet6_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_af_spec_inet6_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_af_spec_inet_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_af_spec_inet_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_brport_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_brport_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_events.h: $(top_srcdir)/xlat/rtnl_ifla_events.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_info_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_info_data_bridge_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_data_bridge_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_info_data_tun_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_data_tun_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_port_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_port_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_vf_port_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_vf_port_attrs.in $(top_srcdir)/xlat/gen.sh
@@ -7713,9 +8027,11 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/setns_types.h: $(top_srcdir)/xlat/setns_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/setsockipoptions.h: $(top_srcdir)/xlat/setsockipoptions.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/setsock_ip_options.h: $(top_srcdir)/xlat/setsock_ip_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/setsockipv6options.h: $(top_srcdir)/xlat/setsockipv6options.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/setsock_ipv6_options.h: $(top_srcdir)/xlat/setsock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/setsock_options.h: $(top_srcdir)/xlat/setsock_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sfd_flags.h: $(top_srcdir)/xlat/sfd_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
@@ -7767,38 +8083,78 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/skf_ad.h: $(top_srcdir)/xlat/skf_ad.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/skf_off.h: $(top_srcdir)/xlat/skf_off.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_diag_attrs.h: $(top_srcdir)/xlat/smc_diag_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_diag_extended_flags.h: $(top_srcdir)/xlat/smc_diag_extended_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_link_group_roles.h: $(top_srcdir)/xlat/smc_link_group_roles.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_protocols.h: $(top_srcdir)/xlat/smc_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_states.h: $(top_srcdir)/xlat/smc_states.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/snmp_icmp6_stats.h: $(top_srcdir)/xlat/snmp_icmp6_stats.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/snmp_ip_stats.h: $(top_srcdir)/xlat/snmp_ip_stats.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_alg_options.h: $(top_srcdir)/xlat/sock_alg_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_bluetooth_options.h: $(top_srcdir)/xlat/sock_bluetooth_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_caif_options.h: $(top_srcdir)/xlat/sock_caif_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_dccp_options.h: $(top_srcdir)/xlat/sock_dccp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ip_options.h: $(top_srcdir)/xlat/sock_ip_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ipv6_options.h: $(top_srcdir)/xlat/sock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ipx_options.h: $(top_srcdir)/xlat/sock_ipx_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_irda_options.h: $(top_srcdir)/xlat/sock_irda_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_iucv_options.h: $(top_srcdir)/xlat/sock_iucv_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_kcm_options.h: $(top_srcdir)/xlat/sock_kcm_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_llc_options.h: $(top_srcdir)/xlat/sock_llc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_netlink_options.h: $(top_srcdir)/xlat/sock_netlink_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_nfcllcp_options.h: $(top_srcdir)/xlat/sock_nfcllcp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_options.h: $(top_srcdir)/xlat/sock_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_packet_options.h: $(top_srcdir)/xlat/sock_packet_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_pnp_options.h: $(top_srcdir)/xlat/sock_pnp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_pppol2tp_options.h: $(top_srcdir)/xlat/sock_pppol2tp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_raw_options.h: $(top_srcdir)/xlat/sock_raw_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_rds_options.h: $(top_srcdir)/xlat/sock_rds_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_rxrpc_options.h: $(top_srcdir)/xlat/sock_rxrpc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_sctp_options.h: $(top_srcdir)/xlat/sock_sctp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tcp_options.h: $(top_srcdir)/xlat/sock_tcp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tipc_options.h: $(top_srcdir)/xlat/sock_tipc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tls_options.h: $(top_srcdir)/xlat/sock_tls_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sock_type_flags.h: $(top_srcdir)/xlat/sock_type_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_udp_options.h: $(top_srcdir)/xlat/sock_udp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socketcalls.h: $(top_srcdir)/xlat/socketcalls.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socketlayers.h: $(top_srcdir)/xlat/socketlayers.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipoptions.h: $(top_srcdir)/xlat/sockipoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipv6options.h: $(top_srcdir)/xlat/sockipv6options.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipxoptions.h: $(top_srcdir)/xlat/sockipxoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socknetlinkoptions.h: $(top_srcdir)/xlat/socknetlinkoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockoptions.h: $(top_srcdir)/xlat/sockoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockpacketoptions.h: $(top_srcdir)/xlat/sockpacketoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockrawoptions.h: $(top_srcdir)/xlat/sockrawoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socksctpoptions.h: $(top_srcdir)/xlat/socksctpoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socktcpoptions.h: $(top_srcdir)/xlat/socktcpoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socktypes.h: $(top_srcdir)/xlat/socktypes.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sparc_kern_features.h: $(top_srcdir)/xlat/sparc_kern_features.in $(top_srcdir)/xlat/gen.sh
@@ -7853,6 +8209,8 @@
$(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
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ubi_volume_props.h: $(top_srcdir)/xlat/ubi_volume_props.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ubi_volume_types.h: $(top_srcdir)/xlat/ubi_volume_types.in $(top_srcdir)/xlat/gen.sh
@@ -7893,6 +8251,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/v4l2_control_flags.h: $(top_srcdir)/xlat/v4l2_control_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_control_id_bases.h: $(top_srcdir)/xlat/v4l2_control_id_bases.in $(top_srcdir)/xlat/gen.sh
+ $(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_types.h: $(top_srcdir)/xlat/v4l2_control_types.in $(top_srcdir)/xlat/gen.sh
diff --git a/Makefile.am b/Makefile.am
index 6985d28..3259344 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -75,6 +75,8 @@
fstatfs64.c \
getpagesize.c \
ipc.c \
+ mmap_cache.c \
+ mmap_cache.h \
sigreturn.c \
socketcall.c \
statfs.c \
@@ -128,6 +130,7 @@
evdev_mpers.c \
eventfd.c \
execve.c \
+ f_owner_ex.h \
fadvise.c \
fallocate.c \
fanotify.c \
@@ -157,6 +160,7 @@
hdio.c \
hostname.c \
inotify.c \
+ inotify_ioctl.c \
io.c \
ioctl.c \
ioperm.c \
@@ -178,6 +182,7 @@
ldt.c \
link.c \
linux/asm_stat.h \
+ linux/linux/signal.h \
linux/x32/asm_stat.h \
linux/x86_64/asm_stat.h \
listen.c \
@@ -189,8 +194,8 @@
membarrier.c \
memfd_create.c \
mknod.c \
- mmap_cache.c \
- mmap_cache.h \
+ mmap_notify.c \
+ mmap_notify.h \
mmsghdr.c \
mount.c \
mpers_type.h \
@@ -204,6 +209,8 @@
netlink.c \
netlink.h \
netlink_crypto.c \
+ netlink_kobject_uevent.c \
+ netlink_kobject_uevent.h \
netlink_sock_diag.h \
netlink_inet_diag.c \
netlink_netfilter.c \
@@ -229,14 +236,17 @@
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_group_req.c \
print_fields.h \
print_ifindex.c \
+ print_mac.c \
print_mq_attr.c \
print_msgbuf.c \
print_sg_req_info.c \
@@ -349,11 +359,21 @@
strace_SOURCES_check = bpf_attr_check.c
+if ENABLE_STACKTRACE
+strace_SOURCES += unwind.c unwind.h
+if USE_LIBDW
+strace_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.c unwind.h unwind-libunwind.c
+strace_SOURCES += unwind-libunwind.c
strace_CPPFLAGS += $(libunwind_CPPFLAGS)
strace_LDFLAGS += $(libunwind_LDFLAGS)
strace_LDADD += $(libunwind_LIBS)
+endif
if USE_DEMANGLE
strace_CPPFLAGS += $(libiberty_CPPFLAGS)
strace_LDFLAGS += $(libiberty_LDFLAGS)
@@ -411,7 +431,6 @@
linux/aarch64/arch_regs.h \
linux/aarch64/arch_rt_sigframe.c \
linux/aarch64/arch_sigreturn.c \
- linux/aarch64/errnoent1.h \
linux/aarch64/get_error.c \
linux/aarch64/get_scno.c \
linux/aarch64/get_syscall_args.c \
@@ -424,7 +443,6 @@
linux/aarch64/set_error.c \
linux/aarch64/set_scno.c \
linux/aarch64/shuffle_scno.c \
- linux/aarch64/signalent1.h \
linux/aarch64/syscallent.h \
linux/aarch64/syscallent1.h \
linux/alpha/arch_defs_.h \
@@ -682,7 +700,6 @@
linux/powerpc64/arch_rt_sigframe.c \
linux/powerpc64/arch_sigreturn.c \
linux/powerpc64/errnoent.h \
- linux/powerpc64/errnoent1.h \
linux/powerpc64/get_error.c \
linux/powerpc64/get_scno.c \
linux/powerpc64/get_syscall_args.c \
@@ -696,7 +713,6 @@
linux/powerpc64/rt_sigframe.h \
linux/powerpc64/set_error.c \
linux/powerpc64/set_scno.c \
- linux/powerpc64/signalent1.h \
linux/powerpc64/syscallent.h \
linux/powerpc64/syscallent1.h \
linux/powerpc64/userent.h \
@@ -705,7 +721,6 @@
linux/riscv/arch_regs.c \
linux/riscv/arch_regs.h \
linux/riscv/arch_rt_sigframe.c \
- linux/riscv/errnoent1.h \
linux/riscv/get_error.c \
linux/riscv/get_scno.c \
linux/riscv/get_syscall_args.c \
@@ -716,7 +731,6 @@
linux/riscv/raw_syscall.h \
linux/riscv/set_error.c \
linux/riscv/set_scno.c \
- linux/riscv/signalent1.h \
linux/riscv/syscallent.h \
linux/riscv/syscallent1.h \
linux/rt_sigframe.h \
@@ -743,7 +757,6 @@
linux/s390x/arch_regs.h \
linux/s390x/arch_rt_sigframe.c \
linux/s390x/arch_sigreturn.c \
- linux/s390x/errnoent1.h \
linux/s390x/get_error.c \
linux/s390x/get_scno.c \
linux/s390x/get_syscall_args.c \
@@ -755,7 +768,6 @@
linux/s390x/rt_sigframe.h \
linux/s390x/set_error.c \
linux/s390x/set_scno.c \
- linux/s390x/signalent1.h \
linux/s390x/syscallent.h \
linux/s390x/syscallent1.h \
linux/s390x/userent.h \
@@ -821,7 +833,6 @@
linux/sparc64/arch_rt_sigframe.c \
linux/sparc64/arch_sigreturn.c \
linux/sparc64/errnoent.h \
- linux/sparc64/errnoent1.h \
linux/sparc64/get_error.c \
linux/sparc64/get_scno.c \
linux/sparc64/get_syscall_args.c \
@@ -834,7 +845,6 @@
linux/sparc64/set_error.c \
linux/sparc64/set_scno.c \
linux/sparc64/signalent.h \
- linux/sparc64/signalent1.h \
linux/sparc64/syscallent.h \
linux/sparc64/syscallent1.h \
linux/sparc64/userent.h \
@@ -845,7 +855,6 @@
linux/tile/arch_regs.h \
linux/tile/arch_rt_sigframe.c \
linux/tile/arch_sigreturn.c \
- linux/tile/errnoent1.h \
linux/tile/get_error.c \
linux/tile/get_scno.c \
linux/tile/get_syscall_args.c \
@@ -857,7 +866,6 @@
linux/tile/rt_sigframe.h \
linux/tile/set_error.c \
linux/tile/set_scno.c \
- linux/tile/signalent1.h \
linux/tile/syscallent.h \
linux/tile/syscallent1.h \
linux/tile/userent.h \
@@ -870,7 +878,6 @@
linux/x32/arch_regs.h \
linux/x32/arch_rt_sigframe.c \
linux/x32/arch_sigreturn.c \
- linux/x32/errnoent1.h \
linux/x32/get_error.c \
linux/x32/get_scno.c \
linux/x32/get_syscall_args.c \
@@ -883,7 +890,6 @@
linux/x32/set_error.c \
linux/x32/set_scno.c \
linux/x32/shuffle_scno.c \
- linux/x32/signalent1.h \
linux/x32/syscallent.h \
linux/x32/syscallent1.h \
linux/x32/userent.h \
@@ -893,8 +899,6 @@
linux/x86_64/arch_regs.h \
linux/x86_64/arch_rt_sigframe.c \
linux/x86_64/arch_sigreturn.c \
- linux/x86_64/errnoent1.h \
- linux/x86_64/errnoent2.h \
linux/x86_64/get_error.c \
linux/x86_64/get_scno.c \
linux/x86_64/get_syscall_args.c \
@@ -911,8 +915,6 @@
linux/x86_64/set_error.c \
linux/x86_64/set_scno.c \
linux/x86_64/shuffle_scno.c \
- linux/x86_64/signalent1.h \
- linux/x86_64/signalent2.h \
linux/x86_64/syscallent.h \
linux/x86_64/syscallent1.h \
linux/x86_64/syscallent2.h \
@@ -980,7 +982,7 @@
${AM_V_GEN}echo $(COPYRIGHT_YEAR) > $(distdir)/.year
${AM_V_GEN}echo $(MANPAGE_DATE) > $(distdir)/.strace.1.in.date
-today = $(shell date +%Y-%m-%d)
+today = $(shell LC_TIME=C date -u +%Y-%m-%d)
version_regexp = $(subst .,\.,$(VERSION))
news_check_regexp = 'Noteworthy changes in release $(version_regexp) ($(today))'
diff --git a/Makefile.in b/Makefile.in
index f02c2be..9cfc55a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -147,28 +147,37 @@
$(top_srcdir)/debian/changelog.in depcomp AUTHORS COPYING \
INSTALL NEWS README compile config.guess config.sub install-sh \
missing
-@USE_LIBUNWIND_TRUE@am__append_1 = unwind.c unwind.h unwind-libunwind.c
-@USE_LIBUNWIND_TRUE@am__append_2 = $(libunwind_CPPFLAGS)
-@USE_LIBUNWIND_TRUE@am__append_3 = $(libunwind_LDFLAGS)
-@USE_LIBUNWIND_TRUE@am__append_4 = $(libunwind_LIBS)
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@am__append_5 = $(libiberty_CPPFLAGS)
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@am__append_6 = $(libiberty_LDFLAGS)
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@am__append_7 = $(libiberty_LIBS)
-@HAVE_M32_MPERS_TRUE@am__append_8 = libmpers-m32.a
-@HAVE_M32_MPERS_TRUE@am__append_9 = libmpers-m32.a
-@HAVE_M32_MPERS_TRUE@am__append_10 = $(mpers_m32_targets)
-@HAVE_M32_MPERS_TRUE@am__append_11 = $(mpers_m32_targets)
-@HAVE_MX32_MPERS_TRUE@am__append_12 = libmpers-mx32.a
-@HAVE_MX32_MPERS_TRUE@am__append_13 = libmpers-mx32.a
-@HAVE_MX32_MPERS_TRUE@am__append_14 = $(mpers_mx32_targets)
-@HAVE_MX32_MPERS_TRUE@am__append_15 = $(mpers_mx32_targets)
+@ENABLE_STACKTRACE_TRUE@am__append_1 = unwind.c unwind.h
+@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__append_2 = unwind-libdw.c
+@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__append_3 = $(libdw_CPPFLAGS)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__append_4 = $(libdw_CFLAGS)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__append_5 = $(libdw_LDFLAGS)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__append_6 = $(libdw_LIBS)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBUNWIND_TRUE@am__append_7 = unwind-libunwind.c
+@ENABLE_STACKTRACE_TRUE@@USE_LIBUNWIND_TRUE@am__append_8 = $(libunwind_CPPFLAGS)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBUNWIND_TRUE@am__append_9 = $(libunwind_LDFLAGS)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBUNWIND_TRUE@am__append_10 = $(libunwind_LIBS)
+@ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_11 = $(libiberty_CPPFLAGS)
+@ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_12 = $(libiberty_LDFLAGS)
+@ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_13 = $(libiberty_LIBS)
+@HAVE_M32_MPERS_TRUE@am__append_14 = libmpers-m32.a
+@HAVE_M32_MPERS_TRUE@am__append_15 = libmpers-m32.a
+@HAVE_M32_MPERS_TRUE@am__append_16 = $(mpers_m32_targets)
+@HAVE_M32_MPERS_TRUE@am__append_17 = $(mpers_m32_targets)
+@HAVE_MX32_MPERS_TRUE@am__append_18 = libmpers-mx32.a
+@HAVE_MX32_MPERS_TRUE@am__append_19 = libmpers-mx32.a
+@HAVE_MX32_MPERS_TRUE@am__append_20 = $(mpers_mx32_targets)
+@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 \
$(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -194,12 +203,12 @@
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 hdio.c \
- ipc_msgctl.c ipc_shmctl.c loop.c mtd.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 \
- print_timex.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
+ 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 print_timex.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) \
@@ -215,6 +224,8 @@
libmpers_m32_a-ipc_msgctl.$(OBJEXT) \
libmpers_m32_a-ipc_shmctl.$(OBJEXT) \
libmpers_m32_a-loop.$(OBJEXT) libmpers_m32_a-mtd.$(OBJEXT) \
+ libmpers_m32_a-perf_ioctl.$(OBJEXT) \
+ libmpers_m32_a-print_aio_sigset.$(OBJEXT) \
libmpers_m32_a-print_group_req.$(OBJEXT) \
libmpers_m32_a-print_mq_attr.$(OBJEXT) \
libmpers_m32_a-print_msgbuf.$(OBJEXT) \
@@ -241,12 +252,12 @@
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 hdio.c \
- ipc_msgctl.c ipc_shmctl.c loop.c mtd.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 \
- print_timex.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
+ 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 print_timex.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) \
@@ -263,6 +274,8 @@
libmpers_mx32_a-ipc_msgctl.$(OBJEXT) \
libmpers_mx32_a-ipc_shmctl.$(OBJEXT) \
libmpers_mx32_a-loop.$(OBJEXT) libmpers_mx32_a-mtd.$(OBJEXT) \
+ libmpers_mx32_a-perf_ioctl.$(OBJEXT) \
+ libmpers_mx32_a-print_aio_sigset.$(OBJEXT) \
libmpers_mx32_a-print_group_req.$(OBJEXT) \
libmpers_mx32_a-print_mq_attr.$(OBJEXT) \
libmpers_mx32_a-print_msgbuf.$(OBJEXT) \
@@ -291,6 +304,7 @@
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) \
@@ -309,39 +323,42 @@
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 fadvise.c fallocate.c fanotify.c fchownat.c fcntl.c \
- fetch_bpf_fprog.c fetch_struct_flock.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 file_handle.c \
file_ioctl.c filter_qualify.c filter.h flock.c flock.h \
fs_x_ioctl.c futex.c gcc_compat.h get_robust_list.c getcpu.c \
- getcwd.c getrandom.c hdio.c hostname.c inotify.c io.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_types.h kexec.c \
- keyctl.c keyctl_kdf_params.h kvm.c largefile_wrappers.h ldt.c \
- link.c linux/asm_stat.h linux/x32/asm_stat.h \
+ getcwd.c getrandom.c hdio.c hostname.c inotify.c \
+ inotify_ioctl.c io.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_types.h kexec.c keyctl.c \
+ keyctl_kdf_params.h kvm.c largefile_wrappers.h ldt.c link.c \
+ linux/asm_stat.h linux/linux/signal.h linux/x32/asm_stat.h \
linux/x86_64/asm_stat.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 mmsghdr.c mount.c mpers_type.h mq.c \
- msghdr.c msghdr.h mtd.c native_defs.h negated_errno.h net.c \
- netlink.c netlink.h netlink_crypto.c netlink_sock_diag.h \
- netlink_inet_diag.c 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_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 \
- personality.c pkeys.c poll.c prctl.c print_dev_t.c \
- print_group_req.c print_fields.h print_ifindex.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_timeval.c print_timex.c \
- printmode.c printrusage.c printsiginfo.c printsiginfo.h \
- process.c process_vm.c ptp.c ptrace.h quota.c readahead.c \
- readlink.c reboot.c regs.h renameat.c resource.c retval.c \
- retval.h riscv.c rt_sigframe.c rt_sigreturn.c rtc.c \
- rtnl_addr.c rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.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 negated_errno.h \
+ net.c netlink.c netlink.h netlink_crypto.c \
+ netlink_kobject_uevent.c netlink_kobject_uevent.h \
+ netlink_sock_diag.h netlink_inet_diag.c 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_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_group_req.c \
+ print_fields.h print_ifindex.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_timeval.c print_timex.c printmode.c \
+ printrusage.c printsiginfo.c printsiginfo.h process.c \
+ process_vm.c ptp.c ptrace.h quota.c readahead.c readlink.c \
+ reboot.c regs.h renameat.c resource.c retval.c retval.h \
+ riscv.c rt_sigframe.c rt_sigreturn.c rtc.c rtnl_addr.c \
+ rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.c \
rtnl_neigh.c rtnl_neightbl.c rtnl_netconf.c rtnl_nsid.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 \
@@ -355,10 +372,12 @@
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 xattr.c xlat.c xlat.h xmalloc.c xmalloc.h xstring.h \
- bpf_attr_check.c unwind.c unwind.h unwind-libunwind.c
+ bpf_attr_check.c unwind.c unwind.h unwind-libdw.c \
+ unwind-libunwind.c
am__objects_3 = strace-bpf_attr_check.$(OBJEXT)
-@USE_LIBUNWIND_TRUE@am__objects_4 = strace-unwind.$(OBJEXT) \
-@USE_LIBUNWIND_TRUE@ strace-unwind-libunwind.$(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) \
@@ -392,23 +411,25 @@
strace-get_robust_list.$(OBJEXT) strace-getcpu.$(OBJEXT) \
strace-getcwd.$(OBJEXT) strace-getrandom.$(OBJEXT) \
strace-hdio.$(OBJEXT) strace-hostname.$(OBJEXT) \
- strace-inotify.$(OBJEXT) strace-io.$(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_cache.$(OBJEXT) \
- strace-mmsghdr.$(OBJEXT) strace-mount.$(OBJEXT) \
- strace-mq.$(OBJEXT) strace-msghdr.$(OBJEXT) \
- strace-mtd.$(OBJEXT) strace-net.$(OBJEXT) \
- strace-netlink.$(OBJEXT) strace-netlink_crypto.$(OBJEXT) \
+ strace-inotify.$(OBJEXT) strace-inotify_ioctl.$(OBJEXT) \
+ strace-io.$(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-net.$(OBJEXT) strace-netlink.$(OBJEXT) \
+ strace-netlink_crypto.$(OBJEXT) \
+ strace-netlink_kobject_uevent.$(OBJEXT) \
strace-netlink_inet_diag.$(OBJEXT) \
strace-netlink_netfilter.$(OBJEXT) \
strace-netlink_netlink_diag.$(OBJEXT) \
@@ -422,11 +443,12 @@
strace-number_set.$(OBJEXT) strace-oldstat.$(OBJEXT) \
strace-open.$(OBJEXT) strace-or1k_atomic.$(OBJEXT) \
strace-pathtrace.$(OBJEXT) strace-perf.$(OBJEXT) \
- strace-personality.$(OBJEXT) strace-pkeys.$(OBJEXT) \
- strace-poll.$(OBJEXT) strace-prctl.$(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_mq_attr.$(OBJEXT) \
- strace-print_msgbuf.$(OBJEXT) \
+ strace-print_ifindex.$(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) \
@@ -471,16 +493,18 @@
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_3) $(am__objects_4) $(am__objects_5) \
+ $(am__objects_6)
strace_OBJECTS = $(am_strace_OBJECTS)
am__DEPENDENCIES_1 =
-@USE_LIBUNWIND_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@am__DEPENDENCIES_3 = \
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@ $(am__DEPENDENCIES_1)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__DEPENDENCIES_2 = \
+@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@ $(am__DEPENDENCIES_1)
+@ENABLE_STACKTRACE_TRUE@@USE_LIBUNWIND_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
+@ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1)
strace_DEPENDENCIES = libstrace.a $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) $(am__append_8) \
- $(am__append_12)
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
+ $(am__DEPENDENCIES_1) $(am__append_14) $(am__append_18)
strace_LINK = $(CCLD) $(strace_CFLAGS) $(CFLAGS) $(strace_LDFLAGS) \
$(LDFLAGS) -o $@
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -762,6 +786,10 @@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
+libdw_CFLAGS = @libdw_CFLAGS@
+libdw_CPPFLAGS = @libdw_CPPFLAGS@
+libdw_LDFLAGS = @libdw_LDFLAGS@
+libdw_LIBS = @libdw_LIBS@
libexecdir = @libexecdir@
libiberty_CPPFLAGS = @libiberty_CPPFLAGS@
libiberty_LDFLAGS = @libiberty_LDFLAGS@
@@ -814,21 +842,23 @@
xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.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/baud_options.in xlat/blkpg_ops.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/audit_arch.in xlat/baud_options.in xlat/bdaddr_types.in \
+ xlat/blkpg_ops.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_rval.in xlat/bpf_size.in \
- xlat/bpf_src.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_defrag_flags.in \
- xlat/btrfs_dev_replace_cmds.in \
+ xlat/bpf_prog_types.in xlat/bpf_query_flags.in \
+ xlat/bpf_rval.in xlat/bpf_size.in xlat/bpf_src.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 \
@@ -841,12 +871,15 @@
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/cap.in xlat/cap_mask0.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/efd_flags.in xlat/epollctls.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 \
@@ -857,27 +890,31 @@
xlat/evdev_switch.in xlat/evdev_sync.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/fcntl64cmds.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/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in \
- xlat/getrandom_flags.in xlat/getsockipoptions.in \
- xlat/getsockipv6options.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/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/ipccalls.in xlat/itimer_which.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_mem_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/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_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 \
@@ -899,6 +936,7 @@
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 \
@@ -907,12 +945,13 @@
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/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/open_access_modes.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 \
@@ -920,13 +959,17 @@
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_sw_ids.in xlat/perf_type_id.in \
- xlat/personality_flags.in xlat/personality_types.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_sve_vl_flags.in xlat/pr_tsc.in \
- xlat/pr_unalign_flags.in xlat/prctl_options.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 \
@@ -938,11 +981,16 @@
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_port_attrs.in \
- xlat/rtnl_ifla_vf_port_attrs.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_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_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 \
@@ -960,31 +1008,42 @@
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/setsockipoptions.in xlat/setsockipv6options.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/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_diag_attrs.in xlat/smc_diag_extended_flags.in \
- xlat/smc_link_group_roles.in xlat/smc_states.in \
- xlat/sock_type_flags.in xlat/socketcalls.in \
- xlat/socketlayers.in xlat/sockipoptions.in \
- xlat/sockipv6options.in xlat/sockipxoptions.in \
- xlat/socknetlinkoptions.in xlat/sockoptions.in \
- xlat/sockpacketoptions.in xlat/sockrawoptions.in \
- xlat/socksctpoptions.in xlat/socktcpoptions.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/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_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_tcp_options.in xlat/sock_tipc_options.in \
+ xlat/sock_tls_options.in xlat/sock_type_flags.in \
+ xlat/sock_udp_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 \
@@ -992,17 +1051,18 @@
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/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/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/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_ids.in xlat/v4l2_control_types.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 \
@@ -1020,18 +1080,22 @@
xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.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/baud_options.h xlat/blkpg_ops.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/baud_options.h xlat/bdaddr_types.h xlat/blkpg_ops.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_rval.h xlat/bpf_size.h xlat/bpf_src.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/bpf_query_flags.h xlat/bpf_rval.h xlat/bpf_size.h \
+ xlat/bpf_src.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 \
@@ -1043,11 +1107,14 @@
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/cap.h xlat/cap_mask0.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 \
@@ -1057,23 +1124,27 @@
xlat/evdev_switch.h xlat/evdev_sync.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/fcntl64cmds.h xlat/fcntlcmds.h \
- xlat/fdflags.h xlat/fib_rule_actions.h xlat/fib_rule_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/futexops.h \
xlat/futexwakecmps.h xlat/futexwakeops.h \
- xlat/getrandom_flags.h xlat/getsockipoptions.h \
- xlat/getsockipv6options.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/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/ipccalls.h xlat/itimer_which.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 \
@@ -1098,34 +1169,38 @@
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_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/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/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/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_sw_ids.h xlat/perf_type_id.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/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_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/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/quota_formats.h \
xlat/quotacmds.h xlat/quotatypes.h xlat/rename_flags.h \
@@ -1135,11 +1210,16 @@
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_port_attrs.h \
- xlat/rtnl_ifla_vf_port_attrs.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_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_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 \
@@ -1156,24 +1236,35 @@
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/setsockipoptions.h xlat/setsockipv6options.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/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/smc_diag_attrs.h \
- xlat/smc_diag_extended_flags.h xlat/smc_link_group_roles.h \
- xlat/smc_states.h xlat/sock_type_flags.h xlat/socketcalls.h \
- xlat/socketlayers.h xlat/sockipoptions.h \
- xlat/sockipv6options.h xlat/sockipxoptions.h \
- xlat/socknetlinkoptions.h xlat/sockoptions.h \
- xlat/sockpacketoptions.h xlat/sockrawoptions.h \
- xlat/socksctpoptions.h xlat/socktcpoptions.h xlat/socktypes.h \
+ xlat/sigtrap_codes.h xlat/skf_ad.h xlat/skf_off.h \
+ xlat/smc_diag_attrs.h xlat/smc_diag_extended_flags.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_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_tcp_options.h \
+ xlat/sock_tipc_options.h xlat/sock_tls_options.h \
+ xlat/sock_type_flags.h xlat/sock_udp_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 \
@@ -1185,9 +1276,10 @@
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/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/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 \
@@ -1195,7 +1287,8 @@
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_ids.h xlat/v4l2_control_types.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 \
@@ -1207,14 +1300,14 @@
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
-strace_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_2) $(am__append_5) \
- $(CODE_COVERAGE_CPPFLAGS)
-strace_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
-strace_LDFLAGS = $(am__append_3) $(am__append_6)
-strace_LDADD = libstrace.a $(clock_LIBS) $(timer_LIBS) $(am__append_4) \
- $(am__append_7) $(CODE_COVERAGE_LIBS) $(am__append_8) \
- $(am__append_12)
-noinst_LIBRARIES = libstrace.a $(am__append_9) $(am__append_13)
+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)
+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)
+noinst_LIBRARIES = libstrace.a $(am__append_15) $(am__append_19)
libstrace_a_CPPFLAGS = $(strace_CPPFLAGS)
libstrace_a_CFLAGS = $(strace_CFLAGS)
libstrace_a_SOURCES = \
@@ -1223,6 +1316,8 @@
fstatfs64.c \
getpagesize.c \
ipc.c \
+ mmap_cache.c \
+ mmap_cache.h \
sigreturn.c \
socketcall.c \
statfs.c \
@@ -1240,40 +1335,43 @@
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 fadvise.c fallocate.c \
- fanotify.c fchownat.c fcntl.c fetch_bpf_fprog.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 file_handle.c file_ioctl.c \
filter_qualify.c filter.h flock.c flock.h fs_x_ioctl.c futex.c \
gcc_compat.h get_robust_list.c getcpu.c getcwd.c getrandom.c \
- hdio.c hostname.c inotify.c io.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_types.h kexec.c keyctl.c \
- keyctl_kdf_params.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 \
- 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 \
- mmsghdr.c mount.c mpers_type.h mq.c msghdr.c msghdr.h mtd.c \
+ hdio.c hostname.c inotify.c inotify_ioctl.c io.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_types.h kexec.c \
+ keyctl.c keyctl_kdf_params.h kvm.c largefile_wrappers.h ldt.c \
+ link.c linux/asm_stat.h linux/linux/signal.h \
+ linux/x32/asm_stat.h linux/x86_64/asm_stat.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 negated_errno.h net.c netlink.c netlink.h \
- netlink_crypto.c netlink_sock_diag.h netlink_inet_diag.c \
- netlink_netfilter.c netlink_netlink_diag.c \
+ netlink_crypto.c netlink_kobject_uevent.c \
+ netlink_kobject_uevent.h netlink_sock_diag.h \
+ netlink_inet_diag.c 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_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 \
- personality.c pkeys.c poll.c prctl.c print_dev_t.c \
- print_group_req.c print_fields.h print_ifindex.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_timeval.c print_timex.c \
- printmode.c printrusage.c printsiginfo.c printsiginfo.h \
- process.c process_vm.c ptp.c ptrace.h quota.c readahead.c \
- readlink.c reboot.c regs.h renameat.c resource.c retval.c \
- retval.h riscv.c rt_sigframe.c rt_sigreturn.c rtc.c \
- rtnl_addr.c rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.c \
+ perf_ioctl.c personality.c pkeys.c poll.c prctl.c \
+ print_aio_sigset.c print_dev_t.c print_group_req.c \
+ print_fields.h print_ifindex.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_timeval.c print_timex.c printmode.c \
+ printrusage.c printsiginfo.c printsiginfo.h process.c \
+ process_vm.c ptp.c ptrace.h quota.c readahead.c readlink.c \
+ reboot.c regs.h renameat.c resource.c retval.c retval.h \
+ riscv.c rt_sigframe.c rt_sigreturn.c rtc.c rtnl_addr.c \
+ rtnl_addrlabel.c rtnl_dcb.c rtnl_link.c rtnl_mdb.c \
rtnl_neigh.c rtnl_neightbl.c rtnl_netconf.c rtnl_nsid.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 \
@@ -1287,7 +1385,8 @@
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 xattr.c xlat.c xlat.h xmalloc.c xmalloc.h xstring.h \
- $(strace_SOURCES_check) $(am__append_1)
+ $(strace_SOURCES_check) $(am__append_1) $(am__append_2) \
+ $(am__append_7)
strace_SOURCES_check = bpf_attr_check.c
CODE_COVERAGE_BRANCH_COVERAGE = 1
CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
@@ -1335,7 +1434,6 @@
linux/aarch64/arch_regs.h \
linux/aarch64/arch_rt_sigframe.c \
linux/aarch64/arch_sigreturn.c \
- linux/aarch64/errnoent1.h \
linux/aarch64/get_error.c \
linux/aarch64/get_scno.c \
linux/aarch64/get_syscall_args.c \
@@ -1348,7 +1446,6 @@
linux/aarch64/set_error.c \
linux/aarch64/set_scno.c \
linux/aarch64/shuffle_scno.c \
- linux/aarch64/signalent1.h \
linux/aarch64/syscallent.h \
linux/aarch64/syscallent1.h \
linux/alpha/arch_defs_.h \
@@ -1606,7 +1703,6 @@
linux/powerpc64/arch_rt_sigframe.c \
linux/powerpc64/arch_sigreturn.c \
linux/powerpc64/errnoent.h \
- linux/powerpc64/errnoent1.h \
linux/powerpc64/get_error.c \
linux/powerpc64/get_scno.c \
linux/powerpc64/get_syscall_args.c \
@@ -1620,7 +1716,6 @@
linux/powerpc64/rt_sigframe.h \
linux/powerpc64/set_error.c \
linux/powerpc64/set_scno.c \
- linux/powerpc64/signalent1.h \
linux/powerpc64/syscallent.h \
linux/powerpc64/syscallent1.h \
linux/powerpc64/userent.h \
@@ -1629,7 +1724,6 @@
linux/riscv/arch_regs.c \
linux/riscv/arch_regs.h \
linux/riscv/arch_rt_sigframe.c \
- linux/riscv/errnoent1.h \
linux/riscv/get_error.c \
linux/riscv/get_scno.c \
linux/riscv/get_syscall_args.c \
@@ -1640,7 +1734,6 @@
linux/riscv/raw_syscall.h \
linux/riscv/set_error.c \
linux/riscv/set_scno.c \
- linux/riscv/signalent1.h \
linux/riscv/syscallent.h \
linux/riscv/syscallent1.h \
linux/rt_sigframe.h \
@@ -1667,7 +1760,6 @@
linux/s390x/arch_regs.h \
linux/s390x/arch_rt_sigframe.c \
linux/s390x/arch_sigreturn.c \
- linux/s390x/errnoent1.h \
linux/s390x/get_error.c \
linux/s390x/get_scno.c \
linux/s390x/get_syscall_args.c \
@@ -1679,7 +1771,6 @@
linux/s390x/rt_sigframe.h \
linux/s390x/set_error.c \
linux/s390x/set_scno.c \
- linux/s390x/signalent1.h \
linux/s390x/syscallent.h \
linux/s390x/syscallent1.h \
linux/s390x/userent.h \
@@ -1745,7 +1836,6 @@
linux/sparc64/arch_rt_sigframe.c \
linux/sparc64/arch_sigreturn.c \
linux/sparc64/errnoent.h \
- linux/sparc64/errnoent1.h \
linux/sparc64/get_error.c \
linux/sparc64/get_scno.c \
linux/sparc64/get_syscall_args.c \
@@ -1758,7 +1848,6 @@
linux/sparc64/set_error.c \
linux/sparc64/set_scno.c \
linux/sparc64/signalent.h \
- linux/sparc64/signalent1.h \
linux/sparc64/syscallent.h \
linux/sparc64/syscallent1.h \
linux/sparc64/userent.h \
@@ -1769,7 +1858,6 @@
linux/tile/arch_regs.h \
linux/tile/arch_rt_sigframe.c \
linux/tile/arch_sigreturn.c \
- linux/tile/errnoent1.h \
linux/tile/get_error.c \
linux/tile/get_scno.c \
linux/tile/get_syscall_args.c \
@@ -1781,7 +1869,6 @@
linux/tile/rt_sigframe.h \
linux/tile/set_error.c \
linux/tile/set_scno.c \
- linux/tile/signalent1.h \
linux/tile/syscallent.h \
linux/tile/syscallent1.h \
linux/tile/userent.h \
@@ -1794,7 +1881,6 @@
linux/x32/arch_regs.h \
linux/x32/arch_rt_sigframe.c \
linux/x32/arch_sigreturn.c \
- linux/x32/errnoent1.h \
linux/x32/get_error.c \
linux/x32/get_scno.c \
linux/x32/get_syscall_args.c \
@@ -1807,7 +1893,6 @@
linux/x32/set_error.c \
linux/x32/set_scno.c \
linux/x32/shuffle_scno.c \
- linux/x32/signalent1.h \
linux/x32/syscallent.h \
linux/x32/syscallent1.h \
linux/x32/userent.h \
@@ -1817,8 +1902,6 @@
linux/x86_64/arch_regs.h \
linux/x86_64/arch_rt_sigframe.c \
linux/x86_64/arch_sigreturn.c \
- linux/x86_64/errnoent1.h \
- linux/x86_64/errnoent2.h \
linux/x86_64/get_error.c \
linux/x86_64/get_scno.c \
linux/x86_64/get_syscall_args.c \
@@ -1835,8 +1918,6 @@
linux/x86_64/set_error.c \
linux/x86_64/set_scno.c \
linux/x86_64/shuffle_scno.c \
- linux/x86_64/signalent1.h \
- linux/x86_64/signalent2.h \
linux/x86_64/syscallent.h \
linux/x86_64/syscallent1.h \
linux/x86_64/syscallent2.h \
@@ -1876,7 +1957,7 @@
syscallent_patterns = $(patsubst %,\%/%,$(syscallent_names))
syscallent_files = $(filter $(syscallent_patterns),$(EXTRA_DIST))
-today = $(shell date +%Y-%m-%d)
+today = $(shell LC_TIME=C date -u +%Y-%m-%d)
version_regexp = $(subst .,\.,$(VERSION))
news_check_regexp = 'Noteworthy changes in release $(version_regexp) ($(today))'
ioctlsort_CC = $(CC_FOR_BUILD)
@@ -1890,12 +1971,12 @@
ioctl_redefs_h = $(filter-out ioctl_redefs0.h,$(subst ioctlent,ioctl_redefs,$(ioctlent_h)))
BUILT_SOURCES = $(ioctl_redefs_h) $(ioctlent_h) bpf_attr_check.c \
native_printer_decls.h native_printer_defs.h printers.h sen.h \
- sys_func.h .version scno.h $(am__append_10) $(am__append_14)
+ sys_func.h .version scno.h $(am__append_16) $(am__append_20)
CLEANFILES = $(ioctl_redefs_h) $(ioctlent_h) $(mpers_preproc_files) \
ioctl_iocdef.h ioctl_iocdef.i bpf_attr_check.c \
native_printer_decls.h native_printer_defs.h printers.h sen.h \
- sys_func.h syscallent.i scno.h $(am__append_11) \
- $(am__append_15)
+ sys_func.h syscallent.i scno.h $(am__append_17) \
+ $(am__append_21)
DISTCLEANFILES = gnu/stubs-32.h gnu/stubs-x32.h
SCNO_CPPFLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(ARCH_MFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
@@ -1905,7 +1986,7 @@
SCNO_SED = /TRACE_INDIRECT_SUBCALL/d; s/^\[[[:space:]]*\($(digits)\)\][[:space:]]*=[[:space:]]*{[^,]*,[^,]*,[^,]*,[[:space:]]*"\($(al_nums)\)"[[:space:]]*},.*/\#ifndef __NR_\2\n\# define __NR_\2 (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 hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.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 print_timex.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 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 print_timex.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))
@@ -2114,6 +2195,8 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-ipc_shmctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-loop.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-mtd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-perf_ioctl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_aio_sigset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_group_req.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_mq_attr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_msgbuf.Po@am__quote@
@@ -2152,6 +2235,8 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-loop.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-mtd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-perf_ioctl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_group_req.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_mq_attr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_msgbuf.Po@am__quote@
@@ -2178,6 +2263,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fstatfs64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getpagesize.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mmap_cache.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sigreturn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-socketcall.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-statfs.Po@am__quote@
@@ -2245,6 +2331,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-hdio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-hostname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-inotify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-inotify_ioctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-io.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ioctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ioperm.Po@am__quote@
@@ -2269,7 +2356,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-membarrier.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-memfd_create.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mknod.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mmap_cache.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mmap_notify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mmsghdr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mount.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mq.Po@am__quote@
@@ -2279,6 +2366,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_crypto.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_inet_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_kobject_uevent.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_netfilter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_netlink_diag.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_packet_diag.Po@am__quote@
@@ -2296,13 +2384,16 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-or1k_atomic.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-pathtrace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-perf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-perf_ioctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-personality.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-pkeys.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-poll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-prctl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_aio_sigset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_dev_t.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_group_req.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_ifindex.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_mac.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_mq_attr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_msgbuf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_sg_req_info.Po@am__quote@
@@ -2382,6 +2473,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-umask.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-umount.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-uname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-unwind-libdw.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-unwind-libunwind.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-unwind.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-userfaultfd.Po@am__quote@
@@ -2647,6 +2739,34 @@
@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-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi`
+libmpers_m32_a-perf_ioctl.o: perf_ioctl.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-perf_ioctl.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-perf_ioctl.Tpo -c -o libmpers_m32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_m32_a-perf_ioctl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='libmpers_m32_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) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+
+libmpers_m32_a-perf_ioctl.obj: perf_ioctl.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-perf_ioctl.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-perf_ioctl.Tpo -c -o libmpers_m32_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)/libmpers_m32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_m32_a-perf_ioctl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='libmpers_m32_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) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi`
+
+libmpers_m32_a-print_aio_sigset.o: print_aio_sigset.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_aio_sigset.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Tpo -c -o libmpers_m32_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)/libmpers_m32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_m32_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) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c
+
+libmpers_m32_a-print_aio_sigset.obj: print_aio_sigset.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_aio_sigset.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Tpo -c -o libmpers_m32_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)/libmpers_m32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_m32_a-print_aio_sigset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_m32_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) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_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`
+
libmpers_m32_a-print_group_req.o: print_group_req.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_group_req.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_group_req.Tpo -c -o libmpers_m32_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)/libmpers_m32_a-print_group_req.Tpo $(DEPDIR)/libmpers_m32_a-print_group_req.Po
@@ -3179,6 +3299,34 @@
@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-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi`
+libmpers_mx32_a-perf_ioctl.o: perf_ioctl.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-perf_ioctl.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Tpo -c -o libmpers_mx32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='libmpers_mx32_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) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c
+
+libmpers_mx32_a-perf_ioctl.obj: perf_ioctl.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-perf_ioctl.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Tpo -c -o libmpers_mx32_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)/libmpers_mx32_a-perf_ioctl.Tpo $(DEPDIR)/libmpers_mx32_a-perf_ioctl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='libmpers_mx32_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) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi`
+
+libmpers_mx32_a-print_aio_sigset.o: print_aio_sigset.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_aio_sigset.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Tpo -c -o libmpers_mx32_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)/libmpers_mx32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_mx32_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) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c
+
+libmpers_mx32_a-print_aio_sigset.obj: print_aio_sigset.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_aio_sigset.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Tpo -c -o libmpers_mx32_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)/libmpers_mx32_a-print_aio_sigset.Tpo $(DEPDIR)/libmpers_mx32_a-print_aio_sigset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='libmpers_mx32_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) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_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`
+
libmpers_mx32_a-print_group_req.o: print_group_req.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_group_req.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_group_req.Tpo -c -o libmpers_mx32_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)/libmpers_mx32_a-print_group_req.Tpo $(DEPDIR)/libmpers_mx32_a-print_group_req.Po
@@ -3543,6 +3691,20 @@
@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`
+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) $(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
+
+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) $(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`
+
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
@@ -4467,6 +4629,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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
+
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+
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
@@ -4803,19 +4979,19 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
-strace-mmap_cache.o: mmap_cache.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmap_cache.o -MD -MP -MF $(DEPDIR)/strace-mmap_cache.Tpo -c -o strace-mmap_cache.o `test -f 'mmap_cache.c' || echo '$(srcdir)/'`mmap_cache.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mmap_cache.Tpo $(DEPDIR)/strace-mmap_cache.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_cache.c' object='strace-mmap_cache.o' libtool=no @AMDEPBACKSLASH@
+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@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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_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) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mmap_notify.o `test -f 'mmap_notify.c' || echo '$(srcdir)/'`mmap_notify.c
-strace-mmap_cache.obj: mmap_cache.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmap_cache.obj -MD -MP -MF $(DEPDIR)/strace-mmap_cache.Tpo -c -o strace-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)/strace-mmap_cache.Tpo $(DEPDIR)/strace-mmap_cache.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_cache.c' object='strace-mmap_cache.obj' libtool=no @AMDEPBACKSLASH@
+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@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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_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) $(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`
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
@@ -4929,6 +5105,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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
+
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+
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
@@ -5181,6 +5371,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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
+
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+
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
@@ -5237,6 +5441,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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
+
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+
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
@@ -5279,6 +5497,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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
+
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+
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
@@ -6553,6 +6785,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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
+
+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@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(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`
+
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
@@ -7105,8 +7351,14 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/baud_options.h: $(top_srcdir)/xlat/baud_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bdaddr_types.h: $(top_srcdir)/xlat/bdaddr_types.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/blkpg_ops.h: $(top_srcdir)/xlat/blkpg_ops.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bluetooth_l2_cid.h: $(top_srcdir)/xlat/bluetooth_l2_cid.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bluetooth_l2_psm.h: $(top_srcdir)/xlat/bluetooth_l2_psm.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bootflags1.h: $(top_srcdir)/xlat/bootflags1.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bootflags2.h: $(top_srcdir)/xlat/bootflags2.in $(top_srcdir)/xlat/gen.sh
@@ -7141,6 +7393,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_prog_types.h: $(top_srcdir)/xlat/bpf_prog_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_query_flags.h: $(top_srcdir)/xlat/bpf_query_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_rval.h: $(top_srcdir)/xlat/bpf_rval.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_size.h: $(top_srcdir)/xlat/bpf_size.in $(top_srcdir)/xlat/gen.sh
@@ -7165,6 +7419,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_compress_types.h: $(top_srcdir)/xlat/btrfs_compress_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_cont_reading_from_srcdev_mode.h: $(top_srcdir)/xlat/btrfs_cont_reading_from_srcdev_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_defrag_flags.h: $(top_srcdir)/xlat/btrfs_defrag_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_dev_replace_cmds.h: $(top_srcdir)/xlat/btrfs_dev_replace_cmds.in $(top_srcdir)/xlat/gen.sh
@@ -7207,6 +7463,10 @@
$(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
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/can_protocols.h: $(top_srcdir)/xlat/can_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/cap.h: $(top_srcdir)/xlat/cap.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/cap_mask0.h: $(top_srcdir)/xlat/cap_mask0.in $(top_srcdir)/xlat/gen.sh
@@ -7233,6 +7493,18 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/dm_flags.h: $(top_srcdir)/xlat/dm_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_class.h: $(top_srcdir)/xlat/ebpf_class.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_mode.h: $(top_srcdir)/xlat/ebpf_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_op_alu.h: $(top_srcdir)/xlat/ebpf_op_alu.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_op_jmp.h: $(top_srcdir)/xlat/ebpf_op_jmp.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_regs.h: $(top_srcdir)/xlat/ebpf_regs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_size.h: $(top_srcdir)/xlat/ebpf_size.in $(top_srcdir)/xlat/gen.sh
+ $(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/epollctls.h: $(top_srcdir)/xlat/epollctls.in $(top_srcdir)/xlat/gen.sh
@@ -7285,8 +7557,6 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fan_mark_flags.h: $(top_srcdir)/xlat/fan_mark_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/fcntl64cmds.h: $(top_srcdir)/xlat/fcntl64cmds.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fcntlcmds.h: $(top_srcdir)/xlat/fcntlcmds.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fdflags.h: $(top_srcdir)/xlat/fdflags.in $(top_srcdir)/xlat/gen.sh
@@ -7311,9 +7581,11 @@
$(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/getsockipoptions.h: $(top_srcdir)/xlat/getsockipoptions.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/getsock_ip_options.h: $(top_srcdir)/xlat/getsock_ip_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/getsockipv6options.h: $(top_srcdir)/xlat/getsockipv6options.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/getsock_ipv6_options.h: $(top_srcdir)/xlat/getsock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/getsock_options.h: $(top_srcdir)/xlat/getsock_options.in $(top_srcdir)/xlat/gen.sh
$(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 $< $@
@@ -7333,6 +7605,14 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/iffflags.h: $(top_srcdir)/xlat/iffflags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/in6_addr_gen_mode.h: $(top_srcdir)/xlat/in6_addr_gen_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet6_devconf_indices.h: $(top_srcdir)/xlat/inet6_devconf_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet6_if_flags.h: $(top_srcdir)/xlat/inet6_if_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_devconf_indices.h: $(top_srcdir)/xlat/inet_devconf_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/inet_diag_attrs.h: $(top_srcdir)/xlat/inet_diag_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/inet_diag_bytecodes.h: $(top_srcdir)/xlat/inet_diag_bytecodes.in $(top_srcdir)/xlat/gen.sh
@@ -7359,10 +7639,18 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ipc_msg_flags.h: $(top_srcdir)/xlat/ipc_msg_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ipc_private.h: $(top_srcdir)/xlat/ipc_private.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ipccalls.h: $(top_srcdir)/xlat/ipccalls.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/irda_protocols.h: $(top_srcdir)/xlat/irda_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/isdn_protocols.h: $(top_srcdir)/xlat/isdn_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/itimer_which.h: $(top_srcdir)/xlat/itimer_which.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/kcm_protocols.h: $(top_srcdir)/xlat/kcm_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/kcmp_types.h: $(top_srcdir)/xlat/kcmp_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/kexec_arch_values.h: $(top_srcdir)/xlat/kexec_arch_values.in $(top_srcdir)/xlat/gen.sh
@@ -7471,6 +7759,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_protocols.h: $(top_srcdir)/xlat/netlink_protocols.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_sk_meminfo_indices.h: $(top_srcdir)/xlat/netlink_sk_meminfo_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_socket_flags.h: $(top_srcdir)/xlat/netlink_socket_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_states.h: $(top_srcdir)/xlat/netlink_states.in $(top_srcdir)/xlat/gen.sh
@@ -7499,6 +7789,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nf_ulog_msg_types.h: $(top_srcdir)/xlat/nf_ulog_msg_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nfc_protocols.h: $(top_srcdir)/xlat/nfc_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nl_audit_types.h: $(top_srcdir)/xlat/nl_audit_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nl_crypto_types.h: $(top_srcdir)/xlat/nl_crypto_types.in $(top_srcdir)/xlat/gen.sh
@@ -7521,6 +7813,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nt_descriptor_types.h: $(top_srcdir)/xlat/nt_descriptor_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/numa_node.h: $(top_srcdir)/xlat/numa_node.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/open_access_modes.h: $(top_srcdir)/xlat/open_access_modes.in $(top_srcdir)/xlat/gen.sh
$(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
@@ -7551,6 +7845,10 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_hw_id.h: $(top_srcdir)/xlat/perf_hw_id.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_ioctl_cmds.h: $(top_srcdir)/xlat/perf_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_ioctl_flags.h: $(top_srcdir)/xlat/perf_ioctl_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_sw_ids.h: $(top_srcdir)/xlat/perf_sw_ids.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_type_id.h: $(top_srcdir)/xlat/perf_type_id.in $(top_srcdir)/xlat/gen.sh
@@ -7559,6 +7857,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/personality_types.h: $(top_srcdir)/xlat/personality_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/phonet_protocols.h: $(top_srcdir)/xlat/phonet_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(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
@@ -7577,6 +7877,12 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_set_mm.h: $(top_srcdir)/xlat/pr_set_mm.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_cmds.h: $(top_srcdir)/xlat/pr_spec_cmds.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_get_store_bypass_flags.h: $(top_srcdir)/xlat/pr_spec_get_store_bypass_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_set_store_bypass_flags.h: $(top_srcdir)/xlat/pr_spec_set_store_bypass_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_sve_vl_flags.h: $(top_srcdir)/xlat/pr_sve_vl_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_tsc.h: $(top_srcdir)/xlat/pr_tsc.in $(top_srcdir)/xlat/gen.sh
@@ -7629,12 +7935,20 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_dcb_attrs.h: $(top_srcdir)/xlat/rtnl_dcb_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_af_spec_inet6_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_af_spec_inet6_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_af_spec_inet_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_af_spec_inet_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_brport_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_brport_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_events.h: $(top_srcdir)/xlat/rtnl_ifla_events.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_info_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_info_data_bridge_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_data_bridge_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_info_data_tun_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_data_tun_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_port_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_port_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_vf_port_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_vf_port_attrs.in $(top_srcdir)/xlat/gen.sh
@@ -7713,9 +8027,11 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/setns_types.h: $(top_srcdir)/xlat/setns_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/setsockipoptions.h: $(top_srcdir)/xlat/setsockipoptions.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/setsock_ip_options.h: $(top_srcdir)/xlat/setsock_ip_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/setsockipv6options.h: $(top_srcdir)/xlat/setsockipv6options.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/setsock_ipv6_options.h: $(top_srcdir)/xlat/setsock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/setsock_options.h: $(top_srcdir)/xlat/setsock_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sfd_flags.h: $(top_srcdir)/xlat/sfd_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
@@ -7767,38 +8083,78 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/skf_ad.h: $(top_srcdir)/xlat/skf_ad.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/skf_off.h: $(top_srcdir)/xlat/skf_off.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_diag_attrs.h: $(top_srcdir)/xlat/smc_diag_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_diag_extended_flags.h: $(top_srcdir)/xlat/smc_diag_extended_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_link_group_roles.h: $(top_srcdir)/xlat/smc_link_group_roles.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_protocols.h: $(top_srcdir)/xlat/smc_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_states.h: $(top_srcdir)/xlat/smc_states.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/snmp_icmp6_stats.h: $(top_srcdir)/xlat/snmp_icmp6_stats.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/snmp_ip_stats.h: $(top_srcdir)/xlat/snmp_ip_stats.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_alg_options.h: $(top_srcdir)/xlat/sock_alg_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_bluetooth_options.h: $(top_srcdir)/xlat/sock_bluetooth_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_caif_options.h: $(top_srcdir)/xlat/sock_caif_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_dccp_options.h: $(top_srcdir)/xlat/sock_dccp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ip_options.h: $(top_srcdir)/xlat/sock_ip_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ipv6_options.h: $(top_srcdir)/xlat/sock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ipx_options.h: $(top_srcdir)/xlat/sock_ipx_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_irda_options.h: $(top_srcdir)/xlat/sock_irda_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_iucv_options.h: $(top_srcdir)/xlat/sock_iucv_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_kcm_options.h: $(top_srcdir)/xlat/sock_kcm_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_llc_options.h: $(top_srcdir)/xlat/sock_llc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_netlink_options.h: $(top_srcdir)/xlat/sock_netlink_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_nfcllcp_options.h: $(top_srcdir)/xlat/sock_nfcllcp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_options.h: $(top_srcdir)/xlat/sock_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_packet_options.h: $(top_srcdir)/xlat/sock_packet_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_pnp_options.h: $(top_srcdir)/xlat/sock_pnp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_pppol2tp_options.h: $(top_srcdir)/xlat/sock_pppol2tp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_raw_options.h: $(top_srcdir)/xlat/sock_raw_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_rds_options.h: $(top_srcdir)/xlat/sock_rds_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_rxrpc_options.h: $(top_srcdir)/xlat/sock_rxrpc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_sctp_options.h: $(top_srcdir)/xlat/sock_sctp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tcp_options.h: $(top_srcdir)/xlat/sock_tcp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tipc_options.h: $(top_srcdir)/xlat/sock_tipc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tls_options.h: $(top_srcdir)/xlat/sock_tls_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sock_type_flags.h: $(top_srcdir)/xlat/sock_type_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_udp_options.h: $(top_srcdir)/xlat/sock_udp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socketcalls.h: $(top_srcdir)/xlat/socketcalls.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socketlayers.h: $(top_srcdir)/xlat/socketlayers.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipoptions.h: $(top_srcdir)/xlat/sockipoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipv6options.h: $(top_srcdir)/xlat/sockipv6options.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipxoptions.h: $(top_srcdir)/xlat/sockipxoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socknetlinkoptions.h: $(top_srcdir)/xlat/socknetlinkoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockoptions.h: $(top_srcdir)/xlat/sockoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockpacketoptions.h: $(top_srcdir)/xlat/sockpacketoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockrawoptions.h: $(top_srcdir)/xlat/sockrawoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socksctpoptions.h: $(top_srcdir)/xlat/socksctpoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socktcpoptions.h: $(top_srcdir)/xlat/socktcpoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socktypes.h: $(top_srcdir)/xlat/socktypes.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sparc_kern_features.h: $(top_srcdir)/xlat/sparc_kern_features.in $(top_srcdir)/xlat/gen.sh
@@ -7853,6 +8209,8 @@
$(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
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ubi_volume_props.h: $(top_srcdir)/xlat/ubi_volume_props.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ubi_volume_types.h: $(top_srcdir)/xlat/ubi_volume_types.in $(top_srcdir)/xlat/gen.sh
@@ -7893,6 +8251,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/v4l2_control_flags.h: $(top_srcdir)/xlat/v4l2_control_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_control_id_bases.h: $(top_srcdir)/xlat/v4l2_control_id_bases.in $(top_srcdir)/xlat/gen.sh
+ $(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_types.h: $(top_srcdir)/xlat/v4l2_control_types.in $(top_srcdir)/xlat/gen.sh
diff --git a/NEWS b/NEWS
index f1035c7..29602be 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,56 @@
+Noteworthy changes in release 4.23 (2018-06-14)
+===============================================
+
+* Changes in behaviour
+ * On x32 personality, 64-bit syscalls (such as readv) are now shown with "#64"
+ suffix instead of "64:" prefix. Unlike the old names, these new names
+ can be used in syscall qualification expressions.
+ * Changed error number output format: error numbers are consistently
+ printed as "-1 ECONST (Error description)"
+ for known errors and as "-1 (errno 123)" for unknown errors,
+ regardless of -e raw qualification settings. One can specify
+ -X raw for displaying raw error numbers unconditionally.
+ * Unfetchable addresses inside arrays are now printed as comments.
+ * Obsolete IA-32 mode syscall names are no longer printed on ia64.
+
+* Improvements
+ * Implemented libdw backend for -k option, configured at build time
+ using --with-libdw option.
+ Whether -k option is compiled is now configured at build time
+ using --enable-stacktrace option.
+ * Added -X option for configuring xlat output formatting (addresses
+ Debian bug #692915).
+ * Added support for personality designation ("64", "32", or "x32") to syscall
+ qualifications in -e trace expressions.
+ * Implemented injection of syscalls with no side effects as an alternative
+ to injection of an invalid syscall (-e inject=SET:syscall= expression).
+ * Improved support for reproducible builds (addresses Debian bug #896016).
+ * Implemented decoding of BPF_PROG_QUERY and BPF_RAW_TRACEPOINT_OPEN bpf
+ syscall commands.
+ * Implemented decoding of INOTIFY_IOC_SETNEXTWD and PERF_EVENT_IOC_* ioctl
+ commands.
+ * Implemented decoding of PR_GET_SPECULATION_CTRL and PR_SET_SPECULATION_CTRL
+ prctl syscall options.
+ * Enhanced decoding of bpf, getsockopt, setsockopt, and socket syscalls.
+ * Enhanced decoding of NETLINK_KOBJECT_UEVENT and NETLINK_ROUTE protocols.
+ * Enhanced decoding of *_DIAG_MEMINFO netlink attributes.
+ * Enhanced decoding of BTRFS_*, FS_IOC_*, SIOCGIFHWADDR, and SIOCSIFHWADDR
+ ioctl commands.
+ * Enhanced decoding of AF_BLUETOOTH socket addresses.
+ * Implemented decoding of io_pgetevent syscall.
+ * Wired up rseq syscall.
+ * Updated lists of ADJ_*, BPF_*, BPF_F_*, BPF_PROG_TYPE_*, ETH_P_*, FPE_*,
+ IFF_*, IPPROTO_*, MAP_*, MS_*, MSG_*, NETLINK_*, PACKET_*, PROT_*, SCTP_*,
+ SECCOMP_FILTER_FLAG_*, SEGV_*, SEM_*, SHM_*, SW_*, V4L2_CID_*,
+ V4L2_CTRL_CLASS_*, and V4L2_PIX_FMT_* constants.
+ * Updated lists of ioctl commands from Linux 4.17.
+
+* Bug fixes
+ * Fixed decoding of msgtyp argument of msgrcv syscall.
+ * Fixed fallback definitions for F_*, MCL_*, MSG_ZEROCOPY, SI_*,
+ and SOL_SOCKET constants.
+ * Fixed -e trace=%pure expression on mips.
+
Noteworthy changes in release 4.22 (2018-04-05)
===============================================
diff --git a/aclocal.m4 b/aclocal.m4
index 1d2ff00..6cc46ab 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1205,6 +1205,10 @@
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_libdw.m4])
+m4_include([m4/st_libunwind.m4])
m4_include([m4/st_save_restore_var.m4])
+m4_include([m4/st_stacktrace.m4])
m4_include([m4/st_warn_cflags.m4])
m4_include([m4/warnings.m4])
diff --git a/aio.c b/aio.c
index 600f88e..8a6741b 100644
--- a/aio.c
+++ b/aio.c
@@ -3,7 +3,7 @@
* Copyright (c) 1993 Branko Lankester <[email protected]>
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <[email protected]>
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
- * Copyright (c) 1999-2017 The strace developers.
+ * Copyright (c) 1999-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -196,7 +196,7 @@
printaddr(addr);
else
print_array(tcp, addr, nr, &iocbp, current_wordsize,
- umoven_or_printaddr, print_iocbp, 0);
+ tfetch_mem, print_iocbp, 0);
return RVAL_DECODED;
}
@@ -238,7 +238,8 @@
return 0;
}
-SYS_FUNC(io_getevents)
+static int
+print_io_getevents(struct tcb *tcp, bool has_usig)
{
if (entering(tcp)) {
printaddr(tcp->u_arg[0]);
@@ -248,16 +249,30 @@
} else {
struct io_event buf;
print_array(tcp, tcp->u_arg[3], tcp->u_rval, &buf, sizeof(buf),
- umoven_or_printaddr, print_io_event, 0);
+ tfetch_mem, print_io_event, 0);
tprints(", ");
/*
- * Since the timeout parameter is read by the kernel
+ * Since the timeout and usig parameters are read by the kernel
* on entering syscall, it has to be decoded the same way
* whether the syscall has failed or not.
*/
temporarily_clear_syserror(tcp);
print_timespec(tcp, tcp->u_arg[4]);
+ if (has_usig) {
+ tprints(", ");
+ print_aio_sigset(tcp, tcp->u_arg[5]);
+ }
restore_cleared_syserror(tcp);
}
return 0;
}
+
+SYS_FUNC(io_getevents)
+{
+ return print_io_getevents(tcp, false);
+}
+
+SYS_FUNC(io_pgetevents)
+{
+ return print_io_getevents(tcp, true);
+}
diff --git a/basic_filters.c b/basic_filters.c
index 4ea23b5..6071a67 100644
--- a/basic_filters.c
+++ b/basic_filters.c
@@ -27,25 +27,82 @@
*/
#include "defs.h"
-#include "number_set.h"
-#include "filter.h"
+
#include <regex.h>
+#include "filter.h"
+#include "number_set.h"
+#include "xstring.h"
+
+
+/**
+ * Checks whether a @-separated personality specification suffix is present.
+ * Personality suffix is a one of strings stored in personality_designators
+ * array.
+ *
+ * @param[in] s Specification string to check.
+ * @param[out] p Where to store personality number if it is found.
+ * @return If personality is found, the provided string is copied without
+ * suffix and returned as a result (callee should de-alllocate it
+ * with free() after use), and personality number is written to p.
+ * Otherwise, NULL is returned and p is untouched.
+ */
+static char *
+qualify_syscall_separate_personality(const char *s, unsigned int *p)
+{
+ char *pos = strchr(s, '@');
+
+ if (!pos)
+ return NULL;
+
+ for (unsigned int i = 0; i < SUPPORTED_PERSONALITIES; i++) {
+ if (!strcmp(pos + 1, personality_designators[i])) {
+ *p = i;
+ return xstrndup(s, pos - s);
+ }
+ }
+
+ error_msg_and_help("incorrect personality designator '%s'"
+ " in qualification '%s'", pos + 1, s);
+}
+
+static bool
+qualify_syscall_number_personality(int n, unsigned int p,
+ struct number_set *set)
+{
+ if ((unsigned int) n >= nsyscall_vec[p])
+ return false;
+
+ add_number_to_set_array(n, set, p);
+
+ return true;
+}
+
static bool
qualify_syscall_number(const char *s, struct number_set *set)
{
- int n = string_to_uint(s);
+ unsigned int p;
+ char *num_str = qualify_syscall_separate_personality(s, &p);
+ int n;
+
+ if (num_str) {
+ n = string_to_uint(num_str);
+ free(num_str);
+
+ if (n < 0)
+ return false;
+
+ return qualify_syscall_number_personality(n, p, set);
+ }
+
+ n = string_to_uint(s);
if (n < 0)
return false;
bool done = false;
- for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) {
- if ((unsigned) n >= nsyscall_vec[p])
- continue;
- add_number_to_set_array(n, set, p);
- done = true;
- }
+ for (p = 0; p < SUPPORTED_PERSONALITIES; ++p)
+ done |= qualify_syscall_number_personality(n, p, set);
return done;
}
@@ -75,12 +132,26 @@
for (unsigned int i = 0; i < nsyscall_vec[p]; ++i) {
if (!sysent_vec[p][i].sys_name)
continue;
+
rc = regexec(&preg, sysent_vec[p][i].sys_name,
0, NULL, 0);
+
+ if (rc == REG_NOMATCH) {
+ char name_buf[128];
+ char *pos = stpcpy(name_buf,
+ sysent_vec[p][i].sys_name);
+
+ (void) xappendstr(name_buf, pos, "@%s",
+ personality_designators[p]);
+
+ rc = regexec(&preg, name_buf, 0, NULL, 0);
+ }
+
if (rc == REG_NOMATCH)
continue;
else if (rc)
regerror_msg_and_die(rc, &preg, "regexec", s);
+
add_number_to_set_array(i, set, p);
found = true;
}
@@ -164,23 +235,41 @@
}
static bool
-qualify_syscall_name(const char *s, struct number_set *set)
+qualify_syscall_name_personality(const char *s, unsigned int p,
+ struct number_set *set)
{
bool found = false;
- for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) {
- for (kernel_long_t scno = 0;
- (scno = scno_by_name(s, p, scno)) >= 0;
- ++scno) {
- add_number_to_set_array(scno, set, p);
- found = true;
- }
+ for (kernel_long_t scno = 0; (scno = scno_by_name(s, p, scno)) >= 0;
+ ++scno) {
+ add_number_to_set_array(scno, set, p);
+ found = true;
}
return found;
}
static bool
+qualify_syscall_name(const char *s, struct number_set *set)
+{
+ unsigned int p;
+ char *name_str = qualify_syscall_separate_personality(s, &p);
+ bool found = false;
+
+ if (name_str) {
+ found = qualify_syscall_name_personality(name_str, p, set);
+ free(name_str);
+
+ return found;
+ }
+
+ for (p = 0; p < SUPPORTED_PERSONALITIES; ++p)
+ found |= qualify_syscall_name_personality(s, p, set);
+
+ return found;
+}
+
+static bool
qualify_syscall(const char *token, struct number_set *set)
{
bool ignore_fail = false;
diff --git a/bpf.c b/bpf.c
index 5b9071e..e5dc4ee 100644
--- a/bpf.c
+++ b/bpf.c
@@ -33,6 +33,7 @@
#ifdef HAVE_LINUX_BPF_H
# include <linux/bpf.h>
#endif
+#include <linux/filter.h>
#include "bpf_attr.h"
@@ -45,6 +46,9 @@
#include "xlat/bpf_map_update_elem_flags.h"
#include "xlat/bpf_attach_type.h"
#include "xlat/bpf_attach_flags.h"
+#include "xlat/bpf_query_flags.h"
+#include "xlat/ebpf_regs.h"
+#include "xlat/numa_node.h"
#define DECL_BPF_CMD_DECODER(bpf_cmd_decoder) \
int \
@@ -117,59 +121,160 @@
return 0;
}
+struct ebpf_insn {
+ uint8_t code;
+ uint8_t dst_reg:4;
+ uint8_t src_reg:4;
+ int16_t off;
+ int32_t imm;
+};
+
+struct ebpf_insns_data {
+ unsigned int count;
+};
+
+static bool
+print_ebpf_insn(struct tcb * const tcp, void * const elem_buf,
+ const size_t elem_size, void * const data)
+{
+ struct ebpf_insns_data *eid = data;
+ struct ebpf_insn *insn = elem_buf;
+
+ if (eid->count++ >= BPF_MAXINSNS) {
+ tprints("...");
+ return false;
+ }
+
+ tprints("{code=");
+ print_bpf_filter_code(insn->code, true);
+
+ /* We can't use PRINT_FIELD_XVAL on bit fields */
+ tprints(", dst_reg=");
+ printxval_index(ebpf_regs, insn->dst_reg, "BPF_REG_???");
+ tprints(", src_reg=");
+ printxval_index(ebpf_regs, insn->src_reg, "BPF_REG_???");
+
+ PRINT_FIELD_D(", ", *insn, off);
+ PRINT_FIELD_X(", ", *insn, imm);
+ tprints("}");
+
+ return true;
+}
+
+static void
+print_ebpf_prog(struct tcb *const tcp, const uint64_t addr, const uint32_t len)
+{
+ print_big_u64_addr(addr);
+ if (abbrev(tcp)) {
+ printaddr(addr);
+ } else {
+ struct ebpf_insns_data eid = {};
+ struct ebpf_insn insn;
+
+ print_array(tcp, addr, len, &insn, sizeof(insn),
+ tfetch_mem, print_ebpf_insn, &eid);
+ }
+}
+
BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)
{
- PRINT_FIELD_XVAL("{", attr, map_type, bpf_map_types,
- "BPF_MAP_TYPE_???");
+ PRINT_FIELD_XVAL_INDEX("{", 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);
+
+ /* map_flags field was added in Linux commit v4.6-rc1~91^2~108^2~6. */
+ if (len <= offsetof(struct BPF_MAP_CREATE_struct, map_flags))
+ break;
PRINT_FIELD_FLAGS(", ", attr, map_flags, bpf_map_flags, "BPF_F_???");
+
+ /*
+ * inner_map_fd field was added in Linux commit
+ * v4.12-rc1~64^3~373^2~2.
+ */
+ if (len <= offsetof(struct BPF_MAP_CREATE_struct, inner_map_fd))
+ break;
PRINT_FIELD_FD(", ", attr, inner_map_fd, tcp);
- if (attr.map_flags & BPF_F_NUMA_NODE)
- PRINT_FIELD_U(", ", attr, numa_node);
+
+ /* numa_node field was added in Linux commit v4.14-rc1~130^2~196^2~1. */
+ if (len <= offsetof(struct BPF_MAP_CREATE_struct, numa_node))
+ break;
+ if (attr.map_flags & BPF_F_NUMA_NODE) {
+ /*
+ * Kernel uses the value of -1 as a designation for "no NUMA
+ * node specified", and even uses NUMA_NO_NODE constant;
+ * however, the constant definition is not a part of UAPI
+ * headers, thus we can't simply print this named constant
+ * instead of the value. Let's force verbose xlat style instead
+ * in order to provide the information for the user while
+ * not hampering the availability to derive the actual value
+ * without the access to the kernel headers.
+ */
+ tprints(", numa_node=");
+ printxvals_ex(attr.numa_node, NULL,
+ XLAT_STYLE_FMT_U | XLAT_STYLE_VERBOSE,
+ numa_node, NULL);
+ }
+
+ /* map_name field was added in Linux commit v4.15-rc1~84^2~605^2~3. */
+ if (len <= offsetof(struct BPF_MAP_CREATE_struct, map_name))
+ break;
+ PRINT_FIELD_CSTRING_SZ(", ", attr, map_name,
+ MIN(sizeof(attr.map_name),
+ len - offsetof(struct BPF_MAP_CREATE_struct,
+ map_name)));
+
+ /*
+ * map_ifindex field was added in Linux commit
+ * v4.16-rc1~123^2~145^2~5^2~8.
+ */
+ if (len <= offsetof(struct BPF_MAP_CREATE_struct, map_ifindex))
+ break;
+ PRINT_FIELD_IFINDEX(", ", attr, map_ifindex);
}
END_BPF_CMD_DECODER(RVAL_DECODED | RVAL_FD)
BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_ELEM)
{
PRINT_FIELD_FD("{", attr, map_fd, tcp);
- PRINT_FIELD_X(", ", attr, key);
- PRINT_FIELD_X(", ", attr, value);
+ PRINT_FIELD_ADDR64(", ", attr, key);
+ PRINT_FIELD_ADDR64(", ", attr, value);
}
END_BPF_CMD_DECODER(RVAL_DECODED)
BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_ELEM)
{
PRINT_FIELD_FD("{", attr, map_fd, tcp);
- PRINT_FIELD_X(", ", attr, key);
- PRINT_FIELD_X(", ", attr, value);
- PRINT_FIELD_XVAL(", ", attr, flags, bpf_map_update_elem_flags,
- "BPF_???");
+ PRINT_FIELD_ADDR64(", ", attr, key);
+ PRINT_FIELD_ADDR64(", ", attr, value);
+ PRINT_FIELD_XVAL_INDEX(", ", attr, flags, bpf_map_update_elem_flags,
+ "BPF_???");
}
END_BPF_CMD_DECODER(RVAL_DECODED)
BEGIN_BPF_CMD_DECODER(BPF_MAP_DELETE_ELEM)
{
PRINT_FIELD_FD("{", attr, map_fd, tcp);
- PRINT_FIELD_X(", ", attr, key);
+ PRINT_FIELD_ADDR64(", ", attr, key);
}
END_BPF_CMD_DECODER(RVAL_DECODED)
BEGIN_BPF_CMD_DECODER(BPF_MAP_GET_NEXT_KEY)
{
PRINT_FIELD_FD("{", attr, map_fd, tcp);
- PRINT_FIELD_X(", ", attr, key);
- PRINT_FIELD_X(", ", attr, next_key);
+ PRINT_FIELD_ADDR64(", ", attr, key);
+ PRINT_FIELD_ADDR64(", ", attr, next_key);
}
END_BPF_CMD_DECODER(RVAL_DECODED)
BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)
{
- PRINT_FIELD_XVAL("{", attr, prog_type, bpf_prog_types,
- "BPF_PROG_TYPE_???");
+ PRINT_FIELD_XVAL_INDEX("{", attr, prog_type, bpf_prog_types,
+ "BPF_PROG_TYPE_???");
PRINT_FIELD_U(", ", attr, insn_cnt);
- PRINT_FIELD_X(", ", attr, insns);
+ tprints(", insns=");
+ print_ebpf_prog(tcp, attr.insns, attr.insn_cnt);
tprintf(", license=");
print_big_u64_addr(attr.license);
@@ -180,7 +285,9 @@
break;
PRINT_FIELD_U(", ", attr, log_level);
PRINT_FIELD_U(", ", attr, log_size);
- PRINT_FIELD_X(", ", attr, log_buf);
+ tprintf(", log_buf=");
+ print_big_u64_addr(attr.log_buf);
+ printstr_ex(tcp, attr.log_buf, attr.log_size, QUOTE_0_TERMINATED);
/* kern_version field was added in Linux commit v4.1-rc1~84^2~50. */
if (len <= offsetof(struct BPF_PROG_LOAD_struct, kern_version))
@@ -194,6 +301,32 @@
if (len <= offsetof(struct BPF_PROG_LOAD_struct, prog_flags))
break;
PRINT_FIELD_FLAGS(", ", attr, prog_flags, bpf_prog_flags, "BPF_F_???");
+
+ /* prog_name field was added in Linux commit v4.15-rc1~84^2~605^2~4. */
+ if (len <= offsetof(struct BPF_PROG_LOAD_struct, prog_name))
+ break;
+ PRINT_FIELD_CSTRING_SZ(", ", attr, prog_name,
+ MIN(sizeof(attr.prog_name),
+ len - offsetof(struct BPF_PROG_LOAD_struct,
+ prog_name)));
+
+ /*
+ * prog_ifindex field was added as prog_target_ifindex in Linux commit
+ * v4.15-rc1~84^2~127^2~13 and renamed to its current name in
+ * v4.15-rc1~15^2~5^2~3^2~7.
+ */
+ if (len <= offsetof(struct BPF_PROG_LOAD_struct, prog_ifindex))
+ break;
+ PRINT_FIELD_IFINDEX(", ", attr, prog_ifindex);
+
+ /*
+ * expected_attach_type was added in Linux commit
+ * v4.17-rc1~148^2~19^2^2~8.
+ */
+ if (len <= offsetof(struct BPF_PROG_LOAD_struct, expected_attach_type))
+ break;
+ PRINT_FIELD_XVAL(", ", attr, expected_attach_type, bpf_attach_type,
+ "BPF_???");
}
END_BPF_CMD_DECODER(RVAL_DECODED | RVAL_FD)
@@ -204,10 +337,10 @@
printpath(tcp, attr.pathname);
PRINT_FIELD_FD(", ", attr, bpf_fd, tcp);
- if (len <= offsetofend(struct BPF_OBJ_PIN_struct, bpf_fd))
- break;
/* file_flags field was added in Linux v4.15-rc1~84^2~384^2~4 */
+ if (len <= offsetof(struct BPF_OBJ_PIN_struct, file_flags))
+ break;
PRINT_FIELD_FLAGS(", ", attr, file_flags, bpf_file_mode_flags,
"BPF_F_???");
}
@@ -219,7 +352,8 @@
{
PRINT_FIELD_FD("{", attr, target_fd, tcp);
PRINT_FIELD_FD(", ", attr, attach_bpf_fd, tcp);
- PRINT_FIELD_XVAL(", ", attr, attach_type, bpf_attach_type, "BPF_???");
+ PRINT_FIELD_XVAL_INDEX(", ", attr, attach_type, bpf_attach_type,
+ "BPF_???");
PRINT_FIELD_FLAGS(", ", attr, attach_flags, bpf_attach_flags,
"BPF_F_???");
}
@@ -228,7 +362,8 @@
BEGIN_BPF_CMD_DECODER(BPF_PROG_DETACH)
{
PRINT_FIELD_FD("{", attr, target_fd, tcp);
- PRINT_FIELD_XVAL(", ", attr, attach_type, bpf_attach_type, "BPF_???");
+ PRINT_FIELD_XVAL_INDEX(", ", attr, attach_type, bpf_attach_type,
+ "BPF_???");
}
END_BPF_CMD_DECODER(RVAL_DECODED)
@@ -238,8 +373,8 @@
PRINT_FIELD_U(", ", attr, retval);
PRINT_FIELD_U(", ", attr, data_size_in);
PRINT_FIELD_U(", ", attr, data_size_out);
- PRINT_FIELD_X(", ", attr, data_in);
- PRINT_FIELD_X(", ", attr, data_out);
+ PRINT_FIELD_ADDR64(", ", attr, data_in);
+ PRINT_FIELD_ADDR64(", ", attr, data_out);
PRINT_FIELD_U(", ", attr, repeat);
PRINT_FIELD_U(", ", attr, duration);
tprints("}");
@@ -250,10 +385,10 @@
{
PRINT_FIELD_U("{", attr, start_id);
PRINT_FIELD_U(", ", attr, next_id);
- if (len <= offsetofend(struct BPF_PROG_GET_NEXT_ID_struct, next_id))
- break;
/* open_flags field has been added in Linux v4.15-rc1~84^2~384^2~4 */
+ if (len <= offsetof(struct BPF_PROG_GET_NEXT_ID_struct, open_flags))
+ break;
PRINT_FIELD_FLAGS(", ", attr, open_flags, bpf_file_mode_flags,
"BPF_F_???");
}
@@ -265,10 +400,10 @@
{
PRINT_FIELD_U("{", attr, prog_id);
PRINT_FIELD_U(", ", attr, next_id);
- if (len <= offsetofend(struct BPF_PROG_GET_FD_BY_ID_struct, next_id))
- break;
/* open_flags field has been added in Linux v4.15-rc1~84^2~384^2~4 */
+ if (len <= offsetof(struct BPF_PROG_GET_FD_BY_ID_struct, open_flags))
+ break;
PRINT_FIELD_FLAGS(", ", attr, open_flags, bpf_file_mode_flags,
"BPF_F_???");
}
@@ -278,23 +413,299 @@
{
PRINT_FIELD_U("{", attr, map_id);
PRINT_FIELD_U(", ", attr, next_id);
- if (len <= offsetofend(struct BPF_MAP_GET_FD_BY_ID_struct, next_id))
- break;
/* open_flags field has been added in Linux v4.15-rc1~84^2~384^2~4 */
+ if (len <= offsetof(struct BPF_MAP_GET_FD_BY_ID_struct, open_flags))
+ break;
PRINT_FIELD_FLAGS(", ", attr, open_flags, bpf_file_mode_flags,
"BPF_F_???");
}
END_BPF_CMD_DECODER(RVAL_DECODED)
-BEGIN_BPF_CMD_DECODER(BPF_OBJ_GET_INFO_BY_FD)
+struct obj_get_info_saved;
+typedef void (*print_bpf_obj_info_fn)(struct tcb *,
+ uint32_t bpf_fd,
+ const char *info_buf,
+ uint32_t size,
+ struct obj_get_info_saved *saved);
+
+struct obj_get_info_saved {
+ print_bpf_obj_info_fn print_fn;
+
+ uint32_t info_len;
+
+ uint32_t jited_prog_len;
+ uint32_t xlated_prog_len;
+ uint32_t nr_map_ids;
+};
+
+static void
+print_bpf_map_info(struct tcb * const tcp, uint32_t bpf_fd,
+ const char *info_buf, uint32_t size,
+ struct obj_get_info_saved *saved)
{
- PRINT_FIELD_FD("{info={", attr, bpf_fd, tcp);
- PRINT_FIELD_U(", ", attr, info_len);
- PRINT_FIELD_X(", ", attr, info);
+ if (entering(tcp))
+ return;
+
+ struct bpf_map_info_struct info = { 0 };
+ const unsigned int len = MIN(size, bpf_map_info_struct_size);
+
+ memcpy(&info, info_buf, len);
+
+ PRINT_FIELD_XVAL("{", info, type, bpf_map_types, "BPF_MAP_TYPE_???");
+ PRINT_FIELD_U(", ", info, id);
+ PRINT_FIELD_U(", ", info, key_size);
+ PRINT_FIELD_U(", ", info, value_size);
+ PRINT_FIELD_U(", ", info, max_entries);
+ PRINT_FIELD_FLAGS(", ", info, map_flags, bpf_map_flags, "BPF_F_???");
+
+ /*
+ * "name" field was introduced by Linux commit v4.15-rc1~84^2~605^2~3.
+ */
+ if (len <= offsetof(struct bpf_map_info_struct, name))
+ goto print_bpf_map_info_end;
+ PRINT_FIELD_CSTRING(", ", info, name);
+
+ /*
+ * ifindex, netns_dev, and netns_ino fields were introduced
+ * by Linux commit v4.16-rc1~123^2~109^2~5^2~4.
+ */
+ if (len <= offsetof(struct bpf_map_info_struct, ifindex))
+ goto print_bpf_map_info_end;
+ PRINT_FIELD_IFINDEX(", ", info, ifindex);
+ PRINT_FIELD_DEV(", ", info, netns_dev);
+ PRINT_FIELD_U(", ", info, netns_ino);
+
+ decode_attr_extra_data(tcp, info_buf, size, bpf_map_info_struct_size);
+
+print_bpf_map_info_end:
tprints("}");
}
-END_BPF_CMD_DECODER(RVAL_DECODED | RVAL_FD)
+
+static void
+print_bpf_prog_info(struct tcb * const tcp, uint32_t bpf_fd,
+ const char *info_buf, uint32_t size,
+ struct obj_get_info_saved *saved)
+{
+ struct bpf_prog_info_struct info = { 0 };
+ const unsigned int len = MIN(size, bpf_prog_info_struct_size);
+ uint64_t map_id_buf;
+
+ memcpy(&info, info_buf, len);
+
+ if (entering(tcp)) {
+ saved->jited_prog_len = info.jited_prog_len;
+ saved->xlated_prog_len = info.xlated_prog_len;
+ saved->nr_map_ids = info.nr_map_ids;
+
+ return;
+ }
+
+ PRINT_FIELD_XVAL("{", info, type, bpf_prog_types, "BPF_PROG_TYPE_???");
+ PRINT_FIELD_U(", ", info, id);
+ PRINT_FIELD_HEX_ARRAY(", ", info, tag);
+
+ tprints(", jited_prog_len=");
+ if (saved->jited_prog_len != info.jited_prog_len)
+ tprintf("%" PRIu32 " => ", saved->jited_prog_len);
+ tprintf("%" PRIu32, info.jited_prog_len);
+
+ tprints(", jited_prog_insns=");
+ print_big_u64_addr(info.jited_prog_insns);
+ printstr_ex(tcp, info.jited_prog_insns, info.jited_prog_len,
+ QUOTE_FORCE_HEX);
+
+ tprints(", xlated_prog_len=");
+ if (saved->xlated_prog_len != info.xlated_prog_len)
+ tprintf("%" PRIu32 " => ", saved->xlated_prog_len);
+ tprintf("%" PRIu32, info.xlated_prog_len);
+
+ tprints(", xlated_prog_insns=");
+ print_ebpf_prog(tcp, info.xlated_prog_insns,
+ MIN(saved->xlated_prog_len, info.xlated_prog_len) / 8);
+
+ /*
+ * load_time, created_by_uid, nr_map_ids, map_ids, and name fields
+ * were introduced by Linux commit v4.15-rc1~84^2~605^2~4.
+ */
+ if (len <= offsetof(struct bpf_prog_info_struct, load_time))
+ goto print_bpf_prog_info_end;
+ PRINT_FIELD_U(", ", info, load_time);
+ PRINT_FIELD_UID(", ", info, created_by_uid);
+
+ tprints(", nr_map_ids=");
+ if (saved->nr_map_ids != info.nr_map_ids)
+ tprintf("%" PRIu32 " => ", saved->nr_map_ids);
+ tprintf("%" PRIu32, info.nr_map_ids);
+
+ tprints(", map_ids=");
+ print_big_u64_addr(info.map_ids);
+ print_array(tcp, info.map_ids, MIN(saved->nr_map_ids, info.nr_map_ids),
+ &map_id_buf, sizeof(map_id_buf),
+ tfetch_mem, print_uint32_array_member, 0);
+
+ PRINT_FIELD_CSTRING(", ", info, name);
+
+ /*
+ * ifindex, netns_dev, and netns_ino fields were introduced
+ * by Linux commit v4.16-rc1~123^2~227^2~5^2~2.
+ */
+ if (len <= offsetof(struct bpf_prog_info_struct, ifindex))
+ goto print_bpf_prog_info_end;
+ PRINT_FIELD_IFINDEX(", ", info, ifindex);
+ PRINT_FIELD_DEV(", ", info, netns_dev);
+ PRINT_FIELD_U(", ", info, netns_ino);
+
+ decode_attr_extra_data(tcp, info_buf, size, bpf_prog_info_struct_size);
+
+print_bpf_prog_info_end:
+ tprints("}");
+}
+
+static const char *
+fetch_bpf_obj_info(struct tcb * const tcp, uint64_t info, uint32_t size)
+{
+ static char *info_buf;
+
+ if (!info_buf)
+ info_buf = xmalloc(get_pagesize());
+
+ memset(info_buf, 0, get_pagesize());
+
+ if (size > 0 && size <= get_pagesize()
+ && !umoven(tcp, info, size, info_buf))
+ return info_buf;
+
+ return NULL;
+}
+
+static void
+print_bpf_obj_info_addr(struct tcb * const tcp, uint64_t addr)
+{
+ if (exiting(tcp))
+ printaddr64(addr);
+}
+
+static void
+print_bpf_obj_info(struct tcb * const tcp, uint32_t bpf_fd, uint64_t info,
+ uint32_t size, struct obj_get_info_saved *saved)
+{
+ if (abbrev(tcp)) {
+ print_bpf_obj_info_addr(tcp, info);
+ return;
+ }
+
+ static struct {
+ const char *id;
+ print_bpf_obj_info_fn print_fn;
+ } obj_printers[] = {
+ { "anon_inode:bpf-map", print_bpf_map_info },
+ { "anon_inode:bpf-prog", print_bpf_prog_info }
+ };
+
+ if (entering(tcp)) {
+ char path[PATH_MAX + 1];
+
+ if (getfdpath(tcp, bpf_fd, path, sizeof(path)) > 0) {
+ for (size_t i = 0; i < ARRAY_SIZE(obj_printers); ++i) {
+ if (!strcmp(path, obj_printers[i].id)) {
+ saved->print_fn =
+ obj_printers[i].print_fn;
+ break;
+ }
+ }
+ }
+ }
+
+ if (!saved || !saved->print_fn) {
+ print_bpf_obj_info_addr(tcp, info);
+ return;
+ }
+
+ const char *info_buf = fetch_bpf_obj_info(tcp, info, size);
+
+ if (info_buf)
+ saved->print_fn(tcp, bpf_fd, info_buf, size, saved);
+ else
+ print_bpf_obj_info_addr(tcp, info);
+}
+
+BEGIN_BPF_CMD_DECODER(BPF_OBJ_GET_INFO_BY_FD)
+{
+ struct obj_get_info_saved *saved;
+
+ if (entering(tcp)) {
+ saved = xcalloc(1, sizeof(*saved));
+ saved->info_len = attr.info_len;
+ set_tcb_priv_data(tcp, saved, free);
+
+ PRINT_FIELD_FD("{info={", attr, bpf_fd, tcp);
+ PRINT_FIELD_U(", ", attr, info_len);
+ } else {
+ saved = get_tcb_priv_data(tcp);
+
+ if (saved && (saved->info_len != attr.info_len))
+ tprintf(" => %u", attr.info_len);
+
+ tprintf(", info=");
+ }
+
+ print_bpf_obj_info(tcp, attr.bpf_fd, attr.info, attr.info_len, saved);
+
+ if (entering(tcp))
+ return 0;
+
+ tprints("}");
+}
+END_BPF_CMD_DECODER(RVAL_DECODED)
+
+BEGIN_BPF_CMD_DECODER(BPF_PROG_QUERY)
+{
+ uint32_t prog_id_buf;
+
+ if (entering(tcp)) {
+ PRINT_FIELD_FD("{query={", attr, target_fd, tcp);
+ PRINT_FIELD_XVAL_INDEX(", ", 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,
+ "BPF_F_???");
+
+ tprints(", prog_ids=");
+
+ set_tcb_priv_ulong(tcp, attr.prog_cnt);
+
+ return 0;
+ }
+
+ print_big_u64_addr(attr.prog_ids);
+ print_array(tcp, attr.prog_ids, attr.prog_cnt, &prog_id_buf,
+ sizeof(prog_id_buf), tfetch_mem,
+ print_uint32_array_member, 0);
+
+ tprints(", prog_cnt=");
+ const uint32_t prog_cnt_entering = get_tcb_priv_ulong(tcp);
+ if (prog_cnt_entering != attr.prog_cnt)
+ tprintf("%" PRIu32 " => ", prog_cnt_entering);
+ tprintf("%" PRIu32, attr.prog_cnt);
+ tprints("}");
+}
+END_BPF_CMD_DECODER(RVAL_DECODED)
+
+BEGIN_BPF_CMD_DECODER(BPF_RAW_TRACEPOINT_OPEN)
+{
+ enum { TP_NAME_SIZE = 128 };
+
+ tprintf("{raw_tracepoint={name=");
+ print_big_u64_addr(attr.name);
+ printstr_ex(tcp, attr.name, TP_NAME_SIZE, QUOTE_0_TERMINATED);
+
+ PRINT_FIELD_FD(", ", attr, prog_fd, tcp);
+
+ tprints("}");
+}
+END_BPF_CMD_DECODER(RVAL_DECODED)
SYS_FUNC(bpf)
{
@@ -315,38 +726,36 @@
BPF_CMD_ENTRY(BPF_PROG_GET_FD_BY_ID),
BPF_CMD_ENTRY(BPF_MAP_GET_FD_BY_ID),
BPF_CMD_ENTRY(BPF_OBJ_GET_INFO_BY_FD),
+ BPF_CMD_ENTRY(BPF_PROG_QUERY),
+ BPF_CMD_ENTRY(BPF_RAW_TRACEPOINT_OPEN),
};
const unsigned int cmd = tcp->u_arg[0];
const kernel_ulong_t addr = tcp->u_arg[1];
const unsigned int size = tcp->u_arg[2];
- int rc;
+ int rc = RVAL_DECODED;
if (entering(tcp)) {
+ printxval_index(bpf_commands, cmd, "BPF_???");
+ tprints(", ");
+ }
+
+ if (size > 0
+ && size <= get_pagesize()
+ && cmd < ARRAY_SIZE(bpf_cmd_decoders)
+ && bpf_cmd_decoders[cmd]) {
static char *buf;
if (!buf)
buf = xmalloc(get_pagesize());
- printxval(bpf_commands, cmd, "BPF_???");
- tprints(", ");
-
- if (size > 0
- && size <= get_pagesize()
- && cmd < ARRAY_SIZE(bpf_cmd_decoders)
- && bpf_cmd_decoders[cmd]) {
- rc = umoven_or_printaddr(tcp, addr, size, buf)
- ? RVAL_DECODED
- : bpf_cmd_decoders[cmd](tcp, addr, size, buf);
- } else {
- printaddr(addr);
- rc = RVAL_DECODED;
- }
+ if (!umoven_or_printaddr_ignore_syserror(tcp, addr, size, buf))
+ rc = bpf_cmd_decoders[cmd](tcp, addr, size, buf);
} else {
- rc = bpf_cmd_decoders[cmd](tcp, addr, size, NULL) | RVAL_DECODED;
+ printaddr(addr);
}
- if (rc & RVAL_DECODED)
+ if (exiting(tcp) || (rc & RVAL_DECODED))
tprintf(", %u", size);
return rc;
diff --git a/bpf_attr.h b/bpf_attr.h
index 6649683..45bb30a 100644
--- a/bpf_attr.h
+++ b/bpf_attr.h
@@ -28,6 +28,33 @@
#ifndef STRACE_BPF_ATTR_H
#define STRACE_BPF_ATTR_H
+/*
+ * The policy is that all fields of type uint64_t in this header file
+ * must have ATTRIBUTE_ALIGNED(8).
+ *
+ * This should not cause any contradictions with <linux/bpf.h>
+ * unless the latter is buggy.
+ *
+ * By word "buggy" I mean containing such changes as Linux kernel commit
+ * v4.16-rc1~123^2~109^2~5^2~4.
+ */
+
+#ifndef BPF_OBJ_NAME_LEN
+# define BPF_OBJ_NAME_LEN 16U
+#else
+# if BPF_OBJ_NAME_LEN != 16U
+# error "Unexpected value of BPF_OBJ_NAME_LEN"
+# endif
+#endif
+
+#ifndef BPF_TAG_SIZE
+# define BPF_TAG_SIZE 8
+#else
+# if BPF_TAG_SIZE != 8
+# error "Unexpected value of BPF_TAG_SIZE"
+# endif
+#endif
+
struct BPF_MAP_CREATE_struct {
uint32_t map_type;
uint32_t key_size;
@@ -36,11 +63,13 @@
uint32_t map_flags;
uint32_t inner_map_fd;
uint32_t numa_node;
+ char map_name[BPF_OBJ_NAME_LEN];
+ uint32_t map_ifindex;
};
#define BPF_MAP_CREATE_struct_size \
sizeof(struct BPF_MAP_CREATE_struct)
-#define expected_BPF_MAP_CREATE_struct_size 28
+#define expected_BPF_MAP_CREATE_struct_size 48
struct BPF_MAP_LOOKUP_ELEM_struct {
uint32_t map_fd;
@@ -56,7 +85,7 @@
uint32_t map_fd;
uint64_t ATTRIBUTE_ALIGNED(8) key;
uint64_t ATTRIBUTE_ALIGNED(8) value;
- uint64_t flags;
+ uint64_t ATTRIBUTE_ALIGNED(8) flags;
};
#define BPF_MAP_UPDATE_ELEM_struct_size \
@@ -92,11 +121,14 @@
uint64_t ATTRIBUTE_ALIGNED(8) log_buf;
uint32_t kern_version;
uint32_t prog_flags;
+ char prog_name[BPF_OBJ_NAME_LEN];
+ uint32_t prog_ifindex;
+ uint32_t expected_attach_type;
};
#define BPF_PROG_LOAD_struct_size \
- sizeof(struct BPF_PROG_LOAD_struct)
-#define expected_BPF_PROG_LOAD_struct_size 48
+ offsetofend(struct BPF_PROG_LOAD_struct, expected_attach_type)
+#define expected_BPF_PROG_LOAD_struct_size 72
struct BPF_OBJ_PIN_struct {
uint64_t ATTRIBUTE_ALIGNED(8) pathname;
@@ -190,4 +222,73 @@
sizeof(struct BPF_OBJ_GET_INFO_BY_FD_struct)
#define expected_BPF_OBJ_GET_INFO_BY_FD_struct_size 16
+struct BPF_PROG_QUERY_struct /* query */ {
+ uint32_t target_fd;
+ uint32_t attach_type;
+ uint32_t query_flags;
+ uint32_t attach_flags;
+ uint64_t ATTRIBUTE_ALIGNED(8) prog_ids;
+ uint32_t prog_cnt;
+};
+
+#define BPF_PROG_QUERY_struct_size \
+ offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt)
+#define expected_BPF_PROG_QUERY_struct_size 28
+
+struct BPF_RAW_TRACEPOINT_OPEN_struct /* raw_tracepoint */ {
+ uint64_t ATTRIBUTE_ALIGNED(8) name;
+ uint32_t prog_fd;
+};
+
+#define BPF_RAW_TRACEPOINT_OPEN_struct_size \
+ offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct, prog_fd)
+#define expected_BPF_RAW_TRACEPOINT_OPEN_struct_size 12
+
+struct bpf_map_info_struct {
+ uint32_t type;
+ uint32_t id;
+ uint32_t key_size;
+ uint32_t value_size;
+ uint32_t max_entries;
+ uint32_t map_flags;
+ char name[BPF_OBJ_NAME_LEN];
+ uint32_t ifindex;
+ /*
+ * The kernel UAPI is broken by Linux commit
+ * v4.16-rc1~123^2~109^2~5^2~4 .
+ */
+ uint64_t ATTRIBUTE_ALIGNED(8) netns_dev; /* skip check */
+ uint64_t ATTRIBUTE_ALIGNED(8) netns_ino; /* skip check */
+};
+
+#define bpf_map_info_struct_size \
+ sizeof(struct bpf_map_info_struct)
+#define expected_bpf_map_info_struct_size 64
+
+struct bpf_prog_info_struct {
+ uint32_t type;
+ uint32_t id;
+ uint8_t tag[BPF_TAG_SIZE];
+ uint32_t jited_prog_len;
+ uint32_t xlated_prog_len;
+ uint64_t ATTRIBUTE_ALIGNED(8) jited_prog_insns;
+ uint64_t ATTRIBUTE_ALIGNED(8) xlated_prog_insns;
+ uint64_t ATTRIBUTE_ALIGNED(8) load_time;
+ uint32_t created_by_uid;
+ uint32_t nr_map_ids;
+ uint64_t ATTRIBUTE_ALIGNED(8) map_ids;
+ char name[BPF_OBJ_NAME_LEN];
+ uint32_t ifindex;
+ /*
+ * The kernel UAPI is broken by Linux commit
+ * v4.16-rc1~123^2~227^2~5^2~2 .
+ */
+ uint64_t ATTRIBUTE_ALIGNED(8) netns_dev; /* skip check */
+ uint64_t ATTRIBUTE_ALIGNED(8) netns_ino; /* skip check */
+};
+
+#define bpf_prog_info_struct_size \
+ sizeof(struct bpf_prog_info_struct)
+#define expected_bpf_prog_info_struct_size 104
+
#endif /* !STRACE_BPF_ATTR_H */
diff --git a/bpf_attr_check.c b/bpf_attr_check.c
index ea0d66d..cae1e71 100644
--- a/bpf_attr_check.c
+++ b/bpf_attr_check.c
@@ -56,6 +56,20 @@
"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),
+ "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),
+ "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 */
+
static_assert(BPF_MAP_CREATE_struct_size == expected_BPF_MAP_CREATE_struct_size,
"BPF_MAP_CREATE_struct_size mismatch");
@@ -218,6 +232,27 @@
"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),
+ "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),
+ "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),
+ "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 */
+
static_assert(BPF_PROG_LOAD_struct_size == expected_BPF_PROG_LOAD_struct_size,
"BPF_PROG_LOAD_struct_size mismatch");
@@ -455,4 +490,219 @@
static_assert(BPF_OBJ_GET_INFO_BY_FD_struct_size == expected_BPF_OBJ_GET_INFO_BY_FD_struct_size,
"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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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");
+# endif /* HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT */
+
+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),
+ "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),
+ "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");
+# endif /* HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD */
+
+static_assert(BPF_RAW_TRACEPOINT_OPEN_struct_size == expected_BPF_RAW_TRACEPOINT_OPEN_struct_size,
+ "BPF_RAW_TRACEPOINT_OPEN_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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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 */
+
+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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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),
+ "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 */
+
+static_assert(bpf_prog_info_struct_size == expected_bpf_prog_info_struct_size,
+ "bpf_prog_info_struct_size mismatch");
+
#endif /* HAVE_LINUX_BPF_H */
diff --git a/bpf_filter.c b/bpf_filter.c
index 32fd435..a102e14 100644
--- a/bpf_filter.c
+++ b/bpf_filter.c
@@ -34,6 +34,7 @@
#include "bpf_fprog.h"
#include <linux/filter.h>
+
#include "xlat/bpf_class.h"
#include "xlat/bpf_miscop.h"
#include "xlat/bpf_mode.h"
@@ -43,56 +44,85 @@
#include "xlat/bpf_size.h"
#include "xlat/bpf_src.h"
-static void
-print_bpf_filter_code(const uint16_t code)
+#include "xlat/ebpf_class.h"
+#include "xlat/ebpf_mode.h"
+#include "xlat/ebpf_op_alu.h"
+#include "xlat/ebpf_op_jmp.h"
+#include "xlat/ebpf_size.h"
+
+void
+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);
- printxval(bpf_class, BPF_CLASS(code), "BPF_???");
+ if (extended)
+ printxval_index(ebpf_class, BPF_CLASS(code), "BPF_???");
+ else
+ printxval_index(bpf_class, BPF_CLASS(code), "BPF_???");
switch (BPF_CLASS(code)) {
+ case BPF_ST:
+ case BPF_STX:
+ if (!extended) {
+ if (i) {
+ tprintf("|%#x", i);
+ tprints_comment("BPF_???");
+ }
+ break;
+ }
+ ATTRIBUTE_FALLTHROUGH; /* extended == true */
+
case BPF_LD:
case BPF_LDX:
tprints("|");
- printxval(bpf_size, BPF_SIZE(code), "BPF_???");
+ printxvals(BPF_SIZE(code), "BPF_???",
+ bpf_size, extended ? ebpf_size : NULL, NULL);
tprints("|");
- printxval(bpf_mode, BPF_MODE(code), "BPF_???");
+ printxval(mode, BPF_MODE(code), "BPF_???");
break;
- case BPF_ST:
- case BPF_STX:
- if (i) {
- tprintf("|%#x", i);
- tprints_comment("BPF_???");
+
+ case BPF_MISC: /* BPF_ALU64 in eBPF */
+ if (!extended) {
+ tprints("|");
+ printxval(bpf_miscop, BPF_MISCOP(code), "BPF_???");
+ i &= ~BPF_MISCOP(code);
+ if (i) {
+ tprintf("|%#x", i);
+ tprints_comment("BPF_???");
+ }
+ break;
}
- break;
+ ATTRIBUTE_FALLTHROUGH; /* extended == true */
+
case BPF_ALU:
tprints("|");
printxval(bpf_src, BPF_SRC(code), "BPF_???");
tprints("|");
- printxval(bpf_op_alu, BPF_OP(code), "BPF_???");
+ printxvals(BPF_OP(code), "BPF_???",
+ bpf_op_alu,
+ extended ? ebpf_op_alu : NULL, NULL);
break;
+
case BPF_JMP:
tprints("|");
printxval(bpf_src, BPF_SRC(code), "BPF_???");
tprints("|");
- printxval(bpf_op_jmp, BPF_OP(code), "BPF_???");
+ printxvals(BPF_OP(code), "BPF_???",
+ bpf_op_jmp, extended ? ebpf_op_jmp : NULL, NULL);
break;
- case BPF_RET:
- tprints("|");
- printxval(bpf_rval, BPF_RVAL(code), "BPF_???");
- i &= ~BPF_RVAL(code);
+
+ case BPF_RET: /* Reserved in eBPF */
+ if (!extended) {
+ tprints("|");
+ printxval(bpf_rval, BPF_RVAL(code), "BPF_???");
+ i &= ~BPF_RVAL(code);
+ }
+
if (i) {
tprintf("|%#x", i);
tprints_comment("BPF_???");
}
- break;
- case BPF_MISC:
- tprints("|");
- printxval(bpf_miscop, BPF_MISCOP(code), "BPF_???");
- i &= ~BPF_MISCOP(code);
- if (i) {
- tprintf("|%#x", i);
- tprints_comment("BPF_???");
- }
+
break;
}
}
@@ -102,7 +132,7 @@
const print_bpf_filter_fn print_k)
{
tprints("BPF_STMT(");
- print_bpf_filter_code(filter->code);
+ print_bpf_filter_code(filter->code, false);
tprints(", ");
if (!print_k || !print_k(filter))
tprintf("%#x", filter->k);
@@ -113,7 +143,7 @@
print_bpf_filter_jump(const struct bpf_filter_block *const filter)
{
tprints("BPF_JUMP(");
- print_bpf_filter_code(filter->code);
+ print_bpf_filter_code(filter->code, false);
tprintf(", %#x, %#x, %#x)", filter->k, filter->jt, filter->jf);
}
@@ -153,7 +183,7 @@
struct bpf_filter_block filter;
print_array(tcp, addr, len, &filter, sizeof(filter),
- umoven_or_printaddr, print_bpf_filter_block, &fbd);
+ tfetch_mem, print_bpf_filter_block, &fbd);
}
}
diff --git a/bpf_sock_filter.c b/bpf_sock_filter.c
index 7f8e16a..f3d38a0 100644
--- a/bpf_sock_filter.c
+++ b/bpf_sock_filter.c
@@ -2,6 +2,7 @@
* Decoder of socket filter programs.
*
* Copyright (c) 2017 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,23 +34,25 @@
#include <linux/filter.h>
#include "xlat/skf_ad.h"
+#include "xlat/skf_off.h"
static bool
print_sock_filter_k(const struct bpf_filter_block *const fp)
{
if (BPF_CLASS(fp->code) == BPF_LD && BPF_MODE(fp->code) == BPF_ABS) {
if (fp->k >= (unsigned int) SKF_AD_OFF) {
- tprints("SKF_AD_OFF+");
+ print_xlat32(SKF_AD_OFF);
+ tprints("+");
printxval(skf_ad, fp->k - (unsigned int) SKF_AD_OFF,
"SKF_AD_???");
return true;
} else if (fp->k >= (unsigned int) SKF_NET_OFF) {
- tprintf("%s+%u", "SKF_NET_OFF",
- fp->k - (unsigned int) SKF_NET_OFF);
+ print_xlat32(SKF_NET_OFF);
+ tprintf("+%u", fp->k - (unsigned int) SKF_NET_OFF);
return true;
} else if (fp->k >= (unsigned int) SKF_LL_OFF) {
- tprintf("%s+%u", "SKF_LL_OFF",
- fp->k - (unsigned int) SKF_LL_OFF);
+ print_xlat32(SKF_LL_OFF);
+ tprintf("+%u", fp->k - (unsigned int) SKF_LL_OFF);
return true;
}
}
diff --git a/btrfs.c b/btrfs.c
index ff10d69..7ab0171 100644
--- a/btrfs.c
+++ b/btrfs.c
@@ -84,10 +84,6 @@
# define BTRFS_LABEL_SIZE 256
#endif
-#ifndef BTRFS_FIRST_FREE_OBJECTID
-# define BTRFS_FIRST_FREE_OBJECTID 256ULL
-#endif
-
#ifndef BTRFS_IOC_QUOTA_RESCAN
struct btrfs_ioctl_quota_rescan_args {
uint64_t flags, progress, reserved[6];
@@ -128,6 +124,7 @@
#include "xlat/btrfs_balance_flags.h"
#include "xlat/btrfs_balance_state.h"
#include "xlat/btrfs_compress_types.h"
+#include "xlat/btrfs_cont_reading_from_srcdev_mode.h"
#include "xlat/btrfs_defrag_flags.h"
#include "xlat/btrfs_dev_replace_cmds.h"
#include "xlat/btrfs_dev_replace_results.h"
@@ -179,30 +176,20 @@
}
static void
-print_u64(const char *name, uint64_t value)
-{
- tprintf(", %s=%" PRIu64, name, value);
- if (value == UINT64_MAX)
- tprints_comment("UINT64_MAX");
-}
-
-#define print_member_u64(obj, name) print_u64(#name, obj->name)
-
-static void
btrfs_print_balance_args(const char *name, const struct btrfs_balance_args *bba)
{
- tprintf(", %s={profiles=", name);
- printflags64(btrfs_space_info_flags, bba->profiles,
- "BTRFS_BLOCK_GROUP_???");
- print_member_u64(bba, usage);
- print_member_u64(bba, devid);
- print_member_u64(bba, pstart);
- print_member_u64(bba, pend);
- print_member_u64(bba, vstart);
- print_member_u64(bba, vend);
- print_member_u64(bba, target);
- tprints(", flags=");
- printflags64(btrfs_balance_args, bba->flags, "BTRFS_BALANCE_ARGS_???");
+ tprintf(", %s=", name);
+ PRINT_FIELD_FLAGS("{", *bba, profiles, btrfs_space_info_flags,
+ "BTRFS_BLOCK_GROUP_???");
+ PRINT_FIELD_U64(", ", *bba, usage);
+ PRINT_FIELD_DEV(", ", *bba, devid);
+ PRINT_FIELD_U64(", ", *bba, pstart);
+ PRINT_FIELD_U64(", ", *bba, pend);
+ PRINT_FIELD_U64(", ", *bba, vstart);
+ PRINT_FIELD_U64(", ", *bba, vend);
+ PRINT_FIELD_U64(", ", *bba, target);
+ PRINT_FIELD_FLAGS(", ", *bba, flags, btrfs_balance_args,
+ "BTRFS_BALANCE_ARGS_???");
tprints("}");
}
@@ -214,14 +201,12 @@
if (umove_or_printaddr(tcp, arg, &balance_args))
return;
- tprints("{flags=");
- printflags64(btrfs_balance_flags, balance_args.flags,
- "BTRFS_BALANCE_???");
- if (out) {
- tprints(", state=");
- printflags64(btrfs_balance_state, balance_args.state,
- "BTRFS_BALANCE_STATE_???");
- }
+ PRINT_FIELD_FLAGS("{", balance_args, flags, btrfs_balance_flags,
+ "BTRFS_BALANCE_???");
+ if (out)
+ PRINT_FIELD_FLAGS(", ", balance_args, state,
+ btrfs_balance_state,
+ "BTRFS_BALANCE_STATE_???");
if (balance_args.flags & BTRFS_BALANCE_DATA)
btrfs_print_balance_args("data", &balance_args.data);
@@ -235,53 +220,41 @@
static void
btrfs_print_features(const struct btrfs_ioctl_feature_flags *flags)
{
- tprints("{compat_flags=");
- printflags64(btrfs_features_compat, flags->compat_flags,
- "BTRFS_FEATURE_COMPAT_???");
-
- tprints(", compat_ro_flags=");
- printflags64(btrfs_features_compat_ro, flags->compat_ro_flags,
- "BTRFS_FEATURE_COMPAT_RO_???");
-
- tprints(", incompat_flags=");
- printflags64(btrfs_features_incompat, flags->incompat_flags,
- "BTRFS_FEATURE_INCOMPAT_???");
+ PRINT_FIELD_FLAGS("{", *flags, compat_flags, btrfs_features_compat,
+ "BTRFS_FEATURE_COMPAT_???");
+ PRINT_FIELD_FLAGS(", ", *flags, compat_ro_flags,
+ btrfs_features_compat_ro,
+ "BTRFS_FEATURE_COMPAT_RO_???");
+ PRINT_FIELD_FLAGS(", ", *flags, incompat_flags, btrfs_features_incompat,
+ "BTRFS_FEATURE_INCOMPAT_???");
tprints("}");
}
static void
btrfs_print_qgroup_limit(const struct btrfs_qgroup_limit *lim)
{
- tprints("{flags=");
- printflags64(btrfs_qgroup_limit_flags, lim->flags,
- "BTRFS_QGROUP_LIMIT_???");
- tprintf(", max_rfer=%" PRI__u64 ", max_excl=%" PRI__u64
- ", rsv_rfer=%" PRI__u64 ", rsv_excl=%" PRI__u64 "}",
- lim->max_rfer, lim->max_excl,
- lim->rsv_rfer, lim->rsv_excl);
+ PRINT_FIELD_FLAGS(", lim={", *lim, flags, btrfs_qgroup_limit_flags,
+ "BTRFS_QGROUP_LIMIT_???");
+ PRINT_FIELD_U(", ", *lim, max_rfer);
+ PRINT_FIELD_U(", ", *lim, max_excl);
+ PRINT_FIELD_U(", ", *lim, rsv_rfer);
+ PRINT_FIELD_U(", ", *lim, rsv_excl);
+ tprints("}");
}
-static void
-btrfs_print_key_type(uint32_t type)
-{
- tprintf("%u", type);
- tprints_comment(xlookup(btrfs_key_types, type));
-}
-
-static void
-btrfs_print_objectid(uint64_t objectid)
-{
- tprintf("%" PRIu64, objectid);
- tprints_comment(xlookup(btrfs_tree_objectids, objectid));
-}
+#define btrfs_print_key_type(prefix_, where_, field_) \
+ PRINT_FIELD_XVAL_U((prefix_), (where_), field_, btrfs_key_types, NULL)
+#define btrfs_print_objectid(prefix_, where_, field_) \
+ PRINT_FIELD_XVAL_U((prefix_), (where_), field_, btrfs_tree_objectids, \
+ NULL)
static void
btrfs_print_data_container_header(const struct btrfs_data_container *container)
{
- tprintf("{bytes_left=%u, bytes_missing=%u"
- ", elem_cnt=%u, elem_missed=%u, val=",
- container->bytes_left, container->bytes_missing,
- container->elem_cnt, container->elem_missed);
+ PRINT_FIELD_U("{", *container, bytes_left);
+ PRINT_FIELD_U(", ", *container, bytes_missing);
+ PRINT_FIELD_U(", ", *container, elem_cnt);
+ PRINT_FIELD_U(", ", *container, elem_missed);
}
static void
@@ -294,10 +267,16 @@
print_btrfs_data_container_logical_ino(struct tcb *tcp, void *elem_buf,
size_t elem_size, void *data)
{
- const uint64_t *const record = elem_buf;
+ const struct {
+ uint64_t inum;
+ uint64_t offset;
+ uint64_t root;
+ } *const record = elem_buf;
- tprintf("{inum=%" PRIu64 ", offset=%" PRIu64 ", root=%" PRIu64 "}",
- record[0], record[1], record[2]);
+ PRINT_FIELD_U("{", *record, inum);
+ PRINT_FIELD_U(", ", *record, offset);
+ PRINT_FIELD_U(", ", *record, root);
+ tprints("}");
return true;
}
@@ -314,14 +293,15 @@
btrfs_print_data_container_header(&container);
if (abbrev(tcp)) {
- tprints("...");
+ tprints(", ...");
} else {
const uint64_t val_addr =
inodes_addr + offsetof(typeof(container), val);
uint64_t record[3];
+ tprints(", val=");
print_array(tcp, val_addr, container.elem_cnt / 3,
record, sizeof(record),
- umoven_or_printaddr,
+ tfetch_mem,
print_btrfs_data_container_logical_ino, 0);
}
@@ -352,28 +332,21 @@
btrfs_print_data_container_header(&container);
if (abbrev(tcp)) {
- tprints("...");
+ tprints(", ...");
} else {
uint64_t val_addr =
fspath_addr + offsetof(typeof(container), val);
uint64_t offset;
+ tprints(", val=");
print_array(tcp, val_addr, container.elem_cnt,
&offset, sizeof(offset),
- umoven_or_printaddr,
+ tfetch_mem,
print_btrfs_data_container_ino_path, &val_addr);
}
btrfs_print_data_container_footer();
}
-static bool
-print_uint64(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
-{
- tprintf("%" PRIu64, *(uint64_t *) elem_buf);
-
- return true;
-}
-
static void
btrfs_print_qgroup_inherit(struct tcb *const tcp, const kernel_ulong_t qgi_addr)
{
@@ -382,101 +355,84 @@
if (umove_or_printaddr(tcp, qgi_addr, &inherit))
return;
- tprints("{flags=");
- printflags64(btrfs_qgroup_inherit_flags, inherit.flags,
- "BTRFS_QGROUP_INHERIT_???");
- tprintf(", num_qgroups=%" PRI__u64 ", num_ref_copies=%" PRI__u64
- ", num_excl_copies=%" PRI__u64 ", lim=",
- inherit.num_qgroups, inherit.num_ref_copies,
- inherit.num_excl_copies);
+ PRINT_FIELD_FLAGS("{", inherit, flags, btrfs_qgroup_inherit_flags,
+ "BTRFS_QGROUP_INHERIT_???");
+ PRINT_FIELD_U(", ", inherit, num_qgroups);
+ PRINT_FIELD_U(", ", inherit, num_ref_copies);
+ PRINT_FIELD_U(", ", inherit, num_excl_copies);
btrfs_print_qgroup_limit(&inherit.lim);
- tprints(", qgroups=");
-
if (abbrev(tcp)) {
- tprints("...");
+ tprints(", ...");
} else {
uint64_t record;
+ tprints(", qgroups=");
print_array(tcp, qgi_addr + offsetof(typeof(inherit), qgroups),
inherit.num_qgroups, &record, sizeof(record),
- umoven_or_printaddr, print_uint64, 0);
+ tfetch_mem, print_uint64_array_member, 0);
}
tprints("}");
}
static void
-print_key_value_internal(struct tcb *tcp, const char *name, uint64_t value)
-{
- if (value) {
- tprintf(", %s=%" PRIu64, name, value);
- if (value == UINT64_MAX)
- tprints_comment("UINT64_MAX");
- }
-}
-#define print_key_value(tcp, key, name) \
- print_key_value_internal((tcp), #name, (key)->name)
-
-static void
btrfs_print_tree_search(struct tcb *tcp, struct btrfs_ioctl_search_key *key,
uint64_t buf_addr, uint64_t buf_size, bool print_size)
{
if (entering(tcp)) {
- tprints("{key={tree_id=");
- btrfs_print_objectid(key->tree_id);
+ btrfs_print_objectid("{key={", *key, tree_id);
if (key->min_objectid != BTRFS_FIRST_FREE_OBJECTID ||
- !abbrev(tcp)) {
- tprints(", min_objectid=");
- btrfs_print_objectid(key->min_objectid);
- }
+ !abbrev(tcp))
+ btrfs_print_objectid(", ", *key, min_objectid);
if (key->max_objectid != BTRFS_LAST_FREE_OBJECTID ||
- !abbrev(tcp)) {
- tprints(", max_objectid=");
- btrfs_print_objectid(key->max_objectid);
- }
+ !abbrev(tcp))
+ btrfs_print_objectid(", ", *key, max_objectid);
- print_key_value(tcp, key, min_offset);
- print_key_value(tcp, key, max_offset);
- print_key_value(tcp, key, min_transid);
- print_key_value(tcp, key, max_transid);
+ PRINT_FIELD_U64(", ", *key, min_offset);
+ PRINT_FIELD_U64(", ", *key, max_offset);
+ PRINT_FIELD_U64(", ", *key, min_transid);
+ PRINT_FIELD_U64(", ", *key, max_transid);
- tprints(", min_type=");
- btrfs_print_key_type(key->min_type);
- tprints(", max_type=");
- btrfs_print_key_type(key->max_type);
- tprintf(", nr_items=%u}", key->nr_items);
+ btrfs_print_key_type(", ", *key, min_type);
+ btrfs_print_key_type(", ", *key, max_type);
+ PRINT_FIELD_U(", ", *key, nr_items);
+ tprints("}");
if (print_size)
tprintf(", buf_size=%" PRIu64, buf_size);
tprints("}");
} else {
- tprintf("{key={nr_items=%u}", key->nr_items);
+ PRINT_FIELD_U("{key={", *key, nr_items);
+ tprints("}");
if (print_size)
tprintf(", buf_size=%" PRIu64, buf_size);
- tprints(", buf=");
- if (abbrev(tcp))
- tprints("...");
- else {
+ if (abbrev(tcp)) {
+ tprints(", ...");
+ } else {
uint64_t i;
uint64_t off = 0;
- tprints("[");
+ tprints(", buf=[");
for (i = 0; i < key->nr_items; i++) {
struct btrfs_ioctl_search_header sh;
uint64_t addr = buf_addr + off;
if (i)
tprints(", ");
- if (i > max_strlen ||
- umove(tcp, addr, &sh)) {
+ if (i > max_strlen) {
tprints("...");
break;
}
- tprintf("{transid=%" PRI__u64 ", objectid=",
- sh.transid);
- btrfs_print_objectid(sh.objectid);
- tprintf(", offset=%" PRI__u64 ", type=", sh.offset);
- btrfs_print_key_type(sh.type);
- tprintf(", len=%u}", sh.len);
+ if (umove(tcp, addr, &sh)) {
+ tprints("...");
+ printaddr_comment(addr);
+ break;
+ }
+ PRINT_FIELD_U("{", sh, transid);
+ btrfs_print_objectid(", ", sh, objectid);
+ PRINT_FIELD_U(", ", sh, offset);
+ btrfs_print_key_type(", ", sh, type);
+ PRINT_FIELD_U(", ", sh, len);
+ tprints("}");
off += sizeof(sh) + sh.len;
}
@@ -490,7 +446,8 @@
print_objectid_callback(struct tcb *tcp, void *elem_buf,
size_t elem_size, void *data)
{
- btrfs_print_objectid(*(uint64_t *) elem_buf);
+ printxvals_ex(*(uint64_t *) elem_buf, NULL, XLAT_STYLE_FMT_U,
+ btrfs_tree_objectids, NULL);
return true;
}
@@ -501,15 +458,22 @@
{
const struct btrfs_ioctl_space_info *info = elem_buf;
- tprints("{flags=");
- printflags64(btrfs_space_info_flags, info->flags,
- "BTRFS_SPACE_INFO_???");
- tprintf(", total_bytes=%" PRI__u64 ", used_bytes=%" PRI__u64 "}",
- info->total_bytes, info->used_bytes);
+ PRINT_FIELD_FLAGS("{", *info, flags, btrfs_space_info_flags,
+ "BTRFS_SPACE_INFO_???");
+ PRINT_FIELD_U(", ", *info, total_bytes);
+ PRINT_FIELD_U(", ", *info, used_bytes);
+ tprints("}");
return true;
}
+static void
+print_btrfs_timespec(const char *prefix, uint64_t sec, uint32_t nsec)
+{
+ tprintf("%s{sec=%" PRIu64 ", nsec=%u}", prefix, sec, nsec);
+ tprints_comment(sprinttime_nsec(sec, nsec));
+}
+
MPERS_PRINTER_DECL(int, btrfs_ioctl,
struct tcb *const tcp, const unsigned int code,
const kernel_ulong_t arg)
@@ -605,19 +569,14 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprintf("{start=%" PRIu64 ", len=", (uint64_t)args.start);
+ PRINT_FIELD_U("{", args, start);
+ PRINT_FIELD_U64(", ", args, len);
- tprintf("%" PRIu64, (uint64_t) args.len);
- if (args.len == UINT64_MAX)
- tprints_comment("UINT64_MAX");
-
- tprints(", flags=");
- printflags64(btrfs_defrag_flags, args.flags,
- "BTRFS_DEFRAG_RANGE_???");
- tprintf(", extent_thresh=%u, compress_type=",
- args.extent_thresh);
- printxval(btrfs_compress_types, args.compress_type,
- "BTRFS_COMPRESS_???");
+ PRINT_FIELD_FLAGS(", ", args, flags, btrfs_defrag_flags,
+ "BTRFS_DEFRAG_RANGE_???");
+ PRINT_FIELD_U(", ", args, extent_thresh);
+ PRINT_FIELD_XVAL(", ", args, compress_type,
+ btrfs_compress_types, "BTRFS_COMPRESS_???");
tprints("}");
break;
}
@@ -635,23 +594,25 @@
tprints(" => ");
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprints("{");
valid = btrfs_unparse_uuid(args.uuid, uuid);
if (entering(tcp)) {
- tprintf("devid=%" PRI__u64, args.devid);
+ PRINT_FIELD_DEV("{", args, devid);
if (valid)
tprintf(", uuid=%s", uuid);
tprints("}");
return 0;
}
+
+ tprints("{");
if (valid)
tprintf("uuid=%s, ", uuid);
- tprintf("bytes_used=%" PRI__u64
- ", total_bytes=%" PRI__u64,
- args.bytes_used, args.total_bytes);
+
+ PRINT_FIELD_U("", args, bytes_used);
+ PRINT_FIELD_U(", ", args, total_bytes);
PRINT_FIELD_CSTRING(", ", args, path);
tprints("}");
+
break;
}
@@ -669,24 +630,20 @@
break;
if (entering(tcp)) {
- tprints("{cmd=");
- printxval64(btrfs_dev_replace_cmds, args.cmd,
- "BTRFS_IOCTL_DEV_REPLACE_CMD_???");
+ PRINT_FIELD_XVAL("{", args, cmd, btrfs_dev_replace_cmds,
+ "BTRFS_IOCTL_DEV_REPLACE_CMD_???");
if (args.cmd == BTRFS_IOCTL_DEV_REPLACE_CMD_START) {
- const char *str;
- tprintf(", start={srcdevid=%" PRIu64
- ", cont_reading_from_srcdev_mode=%" PRIu64
- ", srcdev_name=",
- (uint64_t) args.start.srcdevid,
- (uint64_t) args.start.cont_reading_from_srcdev_mode);
-
- str = (const char *) args.start.srcdev_name;
- print_quoted_cstring(str,
- sizeof(args.start.srcdev_name));
- tprints(", tgtdev_name=");
- str = (const char *) args.start.tgtdev_name;
- print_quoted_cstring(str,
- sizeof(args.start.tgtdev_name));
+ PRINT_FIELD_DEV(", start={", args.start,
+ srcdevid);
+ PRINT_FIELD_XVAL(", ", args.start,
+ cont_reading_from_srcdev_mode,
+ btrfs_cont_reading_from_srcdev_mode,
+ "BTRFS_IOCTL_DEV_REPLACE_CONT_READING"
+ "_FROM_SRCDEV_MODE_???");
+ PRINT_FIELD_CSTRING(", ", args.start,
+ srcdev_name);
+ PRINT_FIELD_CSTRING(", ", args.start,
+ tgtdev_name);
tprints("}");
}
@@ -694,34 +651,28 @@
return 0;
}
- tprints("{result=");
- printxval64(btrfs_dev_replace_results, args.result,
- "BTRFS_IOCTL_DEV_REPLACE_RESULT_???");
+ PRINT_FIELD_XVAL("{", args, result, btrfs_dev_replace_results,
+ "BTRFS_IOCTL_DEV_REPLACE_RESULT_???");
if (args.cmd == BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS) {
- tprints(", ");
- printxval64(btrfs_dev_replace_state,
- args.status.replace_state,
- "BTRFS_IOCTL_DEV_REPLACE_STATE_???");
- tprintf(", progress_1000=%" PRIu64,
- (uint64_t) args.status.progress_1000);
+ PRINT_FIELD_XVAL(", status={", args.status,
+ replace_state, btrfs_dev_replace_state,
+ "BTRFS_IOCTL_DEV_REPLACE_STATE_???");
+ PRINT_FIELD_U(", ", args.status, progress_1000);
if (args.status.progress_1000 <= 1000)
tprintf_comment("%u.%u%%",
(unsigned) args.status.progress_1000 / 10,
(unsigned) args.status.progress_1000 % 10);
- tprintf(", time_started=%" PRIu64,
- (uint64_t) args.status.time_started);
+ PRINT_FIELD_U(", ", args.status, time_started);
tprints_comment(sprinttime(args.status.time_started));
- tprintf(", time_stopped=%" PRIu64,
- (uint64_t) args.status.time_stopped);
+ PRINT_FIELD_U(", ", args.status, time_stopped);
tprints_comment(sprinttime(args.status.time_stopped));
- tprintf(", num_write_errors=%" PRIu64
- ", num_uncorrectable_read_errors=%" PRIu64,
- (uint64_t) args.status.num_write_errors,
- (uint64_t) args.status.num_uncorrectable_read_errors);
+ PRINT_FIELD_U(", ", args.status, num_write_errors);
+ PRINT_FIELD_U(", ", args.status,
+ num_uncorrectable_read_errors);
}
tprints("}");
break;
@@ -810,12 +761,11 @@
#endif
btrfs_unparse_uuid(args.fsid, uuid);
- tprints("{");
- tprintf("max_id=%" PRI__u64 ", num_devices=%" PRI__u64
- ", fsid=%s, nodesize=%u, sectorsize=%u"
+ PRINT_FIELD_U("{", args, max_id);
+ PRINT_FIELD_U(", ", args, num_devices);
+ tprintf(", fsid=%s, nodesize=%u, sectorsize=%u"
", clone_alignment=%u",
- args.max_id, args.num_devices, uuid,
- nodesize, sectorsize, clone_alignment);
+ uuid, nodesize, sectorsize, clone_alignment);
tprints("}");
break;
}
@@ -835,12 +785,14 @@
tprints("{");
- if (entering(tcp))
- tprintf("devid=%" PRI__u64 ", ", args.devid);
+ if (entering(tcp)) {
+ PRINT_FIELD_DEV("", args, devid);
+ tprints(", ");
+ }
- tprintf("nr_items=%" PRI__u64 ", flags=", args.nr_items);
- printflags64(btrfs_dev_stats_flags, args.flags,
- "BTRFS_DEV_STATS_???");
+ PRINT_FIELD_U("", args, nr_items);
+ PRINT_FIELD_FLAGS(", ", args, flags, btrfs_dev_stats_flags,
+ "BTRFS_DEV_STATS_???");
if (entering(tcp)) {
tprints("}");
@@ -860,8 +812,10 @@
tprints("...");
break;
}
- tprintf("%" PRI__u64, args.values[i]);
- tprints_comment(xlookup(btrfs_dev_stats_values, i));
+
+ tprints("[");
+ printxval_u(btrfs_dev_stats_values, i, NULL);
+ tprintf("] = %" PRI__u64, args.values[i]);
}
tprints("]}");
break;
@@ -885,18 +839,15 @@
if (args.treeid == 0)
set_tcb_priv_ulong(tcp, 1);
- tprints("{treeid=");
- btrfs_print_objectid(args.treeid);
- tprints(", objectid=");
- btrfs_print_objectid(args.objectid);
+ btrfs_print_objectid("{", args, treeid);
+ btrfs_print_objectid(", ", args, objectid);
tprints("}");
return 0;
}
tprints("{");
if (get_tcb_priv_ulong(tcp)) {
- tprints("treeid=");
- btrfs_print_objectid(args.treeid);
+ btrfs_print_objectid("", args, treeid);
tprints(", ");
}
@@ -918,18 +869,15 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprints("{");
-
if (entering(tcp)) {
- tprintf("inum=%" PRI__u64 ", size=%" PRI__u64,
- args.inum, args.size);
- tprints(", fspath=");
- printaddr64(args.fspath);
+ PRINT_FIELD_U("{", args, inum);
+ PRINT_FIELD_U(", ", args, size);
+ PRINT_FIELD_ADDR64(", ", args, fspath);
tprints("}");
return 0;
}
- tprints("fspath=");
+ tprints("{fspath=");
btrfs_print_ino_path_container(tcp, args.fspath);
tprints("}");
@@ -949,11 +897,9 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprints("{");
-
if (entering(tcp)) {
- tprintf("logical=%" PRI__u64 ", size=%" PRI__u64,
- args.logical, args.size);
+ PRINT_FIELD_U("{", args, logical);
+ PRINT_FIELD_U(", ", args, size);
if (!IS_ARRAY_ZERO(args.reserved)) {
tprints(", reserved=[");
@@ -972,13 +918,12 @@
args.reserved[3]
#endif
, "BTRFS_LOGICAL_INO_ARGS_???");
- tprints(", inodes=");
- printaddr64(args.inodes);
+ PRINT_FIELD_ADDR64(", ", args, inodes);
tprints("}");
return 0;
}
- tprints("inodes=");
+ tprints("{inodes=");
btrfs_print_logical_ino_container(tcp, args.inodes);
tprints("}");
@@ -992,9 +937,10 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprintf("{assign=%" PRI__u64 ", src=%" PRI__u64
- ", dst=%" PRI__u64 "}",
- args.assign, args.src, args.dst);
+ PRINT_FIELD_U("{", args, assign);
+ PRINT_FIELD_U(", ", args, src);
+ PRINT_FIELD_U(", ", args, dst);
+ tprints("}");
break;
}
@@ -1005,8 +951,9 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprintf("{create=%" PRI__u64 ", qgroupid=%" PRI__u64 "}",
- args.create, args.qgroupid);
+ PRINT_FIELD_U("{", args, create);
+ PRINT_FIELD_U(", ", args, qgroupid);
+ tprints("}");
break;
}
@@ -1020,7 +967,7 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprintf("{qgroupid=%" PRI__u64 ", lim=", args.qgroupid);
+ PRINT_FIELD_U("{", args, qgroupid);
btrfs_print_qgroup_limit(&args.lim);
tprints("}");
break;
@@ -1033,8 +980,8 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- printxval64(btrfs_qgroup_ctl_cmds, args.cmd,
- "BTRFS_QUOTA_CTL_???");
+ PRINT_FIELD_XVAL("{", args, cmd, btrfs_qgroup_ctl_cmds,
+ "BTRFS_QUOTA_CTL_???");
tprints("}");
break;
@@ -1047,7 +994,8 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprintf("{flags=%" PRIu64 "}", (uint64_t) args.flags);
+ PRINT_FIELD_U("{", args, flags);
+ tprints("}");
break;
}
@@ -1061,8 +1009,8 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprintf("{flags=%" PRIu64 ", progress=", (uint64_t) args.flags);
- btrfs_print_objectid(args.progress);
+ PRINT_FIELD_U("{", args, flags);
+ btrfs_print_objectid(", ", args, progress);
tprints("}");
break;
}
@@ -1083,16 +1031,18 @@
if (entering(tcp)) {
btrfs_unparse_uuid((unsigned char *)args.uuid, uuid);
- tprintf("{uuid=%s, stransid=%" PRIu64
- ", stime=%" PRIu64 ".%u, flags=%" PRIu64
- "}", uuid, (uint64_t) args.stransid,
- (uint64_t) args.stime.sec, args.stime.nsec,
- (uint64_t) args.flags);
+ tprintf("{uuid=%s", uuid);
+ PRINT_FIELD_U(", ", args, stransid);
+ print_btrfs_timespec(", stime=",
+ args.stime.sec, args.stime.nsec);
+ PRINT_FIELD_U(", ", args, flags);
+ tprints("}");
return 0;
}
- tprintf("{rtransid=%" PRIu64 ", rtime=%" PRIu64 ".%u}",
- (uint64_t) args.rtransid, (uint64_t) args.rtime.sec,
- args.rtime.nsec);
+ PRINT_FIELD_U("{", args, rtransid);
+ print_btrfs_timespec(", rtime=",
+ args.rtime.sec, args.rtime.nsec);
+ tprints("}");
break;
}
@@ -1111,50 +1061,34 @@
break;
if (entering(tcp)) {
- tprintf("{devid=%" PRI__u64, args.devid);
+ PRINT_FIELD_DEV("{", args, devid);
if (code == BTRFS_IOC_SCRUB) {
- tprintf(", start=%" PRI__u64 ", end=",
- args.start);
- tprintf("%" PRI__u64, args.end);
- if (args.end == UINT64_MAX)
- tprints_comment("UINT64_MAX");
- tprints(", flags=");
- printflags64(btrfs_scrub_flags, args.flags,
- "BTRFS_SCRUB_???");
+ PRINT_FIELD_U(", ", args, start);
+ PRINT_FIELD_U64(", ", args, end);
+ PRINT_FIELD_FLAGS(", ", args, flags,
+ btrfs_scrub_flags,
+ "BTRFS_SCRUB_???");
}
tprints("}");
return 0;
}
- tprintf("{data_extents_scrubbed=%" PRI__u64
- ", tree_extents_scrubbed=%" PRI__u64
- ", data_bytes_scrubbed=%" PRI__u64
- ", tree_bytes_scrubbed=%" PRI__u64
- ", read_errors=%" PRI__u64
- ", csum_errors=%" PRI__u64
- ", verify_errors=%" PRI__u64
- ", no_csum=%" PRI__u64
- ", csum_discards=%" PRI__u64
- ", super_errors=%" PRI__u64
- ", malloc_errors=%" PRI__u64
- ", uncorrectable_errors=%" PRI__u64
- ", corrected_errors=%" PRI__u64
- ", last_physical=%" PRI__u64
- ", unverified_errors=%" PRI__u64 "}",
- args.progress.data_extents_scrubbed,
- args.progress.tree_extents_scrubbed,
- args.progress.data_bytes_scrubbed,
- args.progress.tree_bytes_scrubbed,
- args.progress.read_errors,
- args.progress.csum_errors,
- args.progress.verify_errors,
- args.progress.no_csum,
- args.progress.csum_discards,
- args.progress.super_errors,
- args.progress.malloc_errors,
- args.progress.uncorrectable_errors,
- args.progress.corrected_errors,
- args.progress.last_physical,
- args.progress.unverified_errors);
+ PRINT_FIELD_U("{progress={", args.progress,
+ data_extents_scrubbed);
+ PRINT_FIELD_U(", ", args.progress, tree_extents_scrubbed);
+ PRINT_FIELD_U(", ", args.progress, data_bytes_scrubbed);
+ PRINT_FIELD_U(", ", args.progress, tree_bytes_scrubbed);
+ PRINT_FIELD_U(", ", args.progress, read_errors);
+ PRINT_FIELD_U(", ", args.progress, csum_errors);
+ PRINT_FIELD_U(", ", args.progress, verify_errors);
+ PRINT_FIELD_U(", ", args.progress, no_csum);
+ PRINT_FIELD_U(", ", args.progress, csum_discards);
+ PRINT_FIELD_U(", ", args.progress, super_errors);
+ PRINT_FIELD_U(", ", args.progress, malloc_errors);
+ PRINT_FIELD_U(", ", args.progress, uncorrectable_errors);
+ PRINT_FIELD_U(", ", args.progress, corrected_errors);
+ PRINT_FIELD_U(", ", args.progress, last_physical);
+ PRINT_FIELD_U(", ", args.progress, unverified_errors);
+ tprints("}}");
break;
}
@@ -1189,11 +1123,11 @@
else if (syserror(tcp)) {
if (tcp->u_error == EOVERFLOW) {
tprints(" => ");
- tcp->u_error = 0;
- if (!umove_or_printaddr(tcp, arg, &args))
- tprintf("{buf_size=%" PRIu64 "}",
- (uint64_t)args.buf_size);
- tcp->u_error = EOVERFLOW;
+ if (!umove_or_printaddr_ignore_syserror(tcp,
+ arg, &args)) {
+ PRINT_FIELD_U("{", args, buf_size);
+ tprints("}");
+ }
}
break;
} else
@@ -1217,26 +1151,23 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprints("{send_fd=");
- printfd(tcp, args.send_fd);
- tprintf(", clone_sources_count=%" PRIu64 ", clone_sources=",
- (uint64_t) args.clone_sources_count);
+ PRINT_FIELD_FD("{", args, send_fd, tcp);
+ PRINT_FIELD_U(", ", args, clone_sources_count);
+ tprints(", clone_sources=");
if (abbrev(tcp))
- tprints("...");
+ printaddr((uintptr_t) args.clone_sources);
else {
uint64_t record;
print_array(tcp, ptr_to_kulong(args.clone_sources),
args.clone_sources_count,
&record, sizeof(record),
- umoven_or_printaddr,
+ tfetch_mem,
print_objectid_callback, 0);
}
- tprints(", parent_root=");
- btrfs_print_objectid(args.parent_root);
- tprints(", flags=");
- printflags64(btrfs_send_flags, args.flags,
- "BTRFS_SEND_FLAGS_???");
+ btrfs_print_objectid(", ", args, parent_root);
+ PRINT_FIELD_FLAGS(", ", args, flags, btrfs_send_flags,
+ "BTRFS_SEND_FLAGS_???");
tprints("}");
break;
}
@@ -1254,28 +1185,27 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprints("{");
if (entering(tcp)) {
- tprintf("space_slots=%" PRI__u64 "}", args.space_slots);
+ PRINT_FIELD_U("{", args, space_slots);
+ tprints("}");
return 0;
}
- tprintf("total_spaces=%" PRI__u64, args.total_spaces);
+ PRINT_FIELD_U("{", args, total_spaces);
if (args.space_slots == 0 && args.total_spaces) {
tprints("}");
break;
}
- tprints(", spaces=");
-
- if (abbrev(tcp))
- tprints("...");
- else {
+ if (abbrev(tcp)) {
+ tprints(", ...");
+ } else {
struct btrfs_ioctl_space_info info;
+ tprints(", spaces=");
print_array(tcp, arg + offsetof(typeof(args), spaces),
args.total_spaces,
- &info, sizeof(info), umoven_or_printaddr,
+ &info, sizeof(info), tfetch_mem,
print_btrfs_ioctl_space_info, 0);
}
tprints("}");
@@ -1296,8 +1226,7 @@
if (umove_or_printaddr(tcp, arg, &args))
break;
- tprints("{fd=");
- printfd(tcp, args.fd);
+ PRINT_FIELD_FD("{", args, fd, tcp);
PRINT_FIELD_CSTRING(", ", args, name);
tprints("}");
break;
@@ -1318,15 +1247,13 @@
break;
if (entering(tcp)) {
- tprints("{fd=");
- printfd(tcp, args.fd);
- tprints(", flags=");
- printflags64(btrfs_snap_flags_v2, args.flags,
- "BTRFS_SUBVOL_???");
+ PRINT_FIELD_FD("{", args, fd, tcp);
+ PRINT_FIELD_FLAGS(", ", args, flags,
+ btrfs_snap_flags_v2,
+ "BTRFS_SUBVOL_???");
if (args.flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
- tprintf(", size=%" PRIu64 ", qgroup_inherit=",
- (uint64_t) args.size);
-
+ PRINT_FIELD_U(", ", args, size);
+ tprints(", qgroup_inherit=");
btrfs_print_qgroup_inherit(tcp,
ptr_to_kulong(args.qgroup_inherit));
}
@@ -1334,7 +1261,8 @@
tprints("}");
return 0;
}
- tprintf("{transid=%" PRIu64 "}", (uint64_t) args.transid);
+ PRINT_FIELD_U("{", args, transid);
+ tprints("}");
break;
}
diff --git a/config.h b/config.h
index f23eaaf..168c34b 100644
--- a/config.h
+++ b/config.h
@@ -31,6 +31,9 @@
/* Define to 1 if you want OABI support on ARM EABI. */
#define ENABLE_ARM_OABI 0
+/* Define to enable stack tracing support */
+/* #undef ENABLE_STACKTRACE */
+
/* Define to 1 if you have the `accept4' function. */
#define HAVE_ACCEPT4 1
@@ -91,6 +94,22 @@
don't. */
#define HAVE_DECL_CTL_SUNRPC 1
+/* Define to 1 if you have the declaration of `IFLA_AF_SPEC', and to 0 if you
+ don't. */
+#define HAVE_DECL_IFLA_AF_SPEC 1
+
+/* Define to 1 if you have the declaration of `IFLA_PORT_SELF', and to 0 if
+ you don't. */
+#define HAVE_DECL_IFLA_PORT_SELF 1
+
+/* Define to 1 if you have the declaration of `IFLA_PROTINFO', and to 0 if you
+ don't. */
+#define HAVE_DECL_IFLA_PROTINFO 1
+
+/* Define to 1 if you have the declaration of `IFLA_XDP', and to 0 if you
+ don't. */
+#define HAVE_DECL_IFLA_XDP 1
+
/* Define to 1 if you have the declaration of `KERN_ACPI_VIDEO_FLAGS', and to
0 if you don't. */
#define HAVE_DECL_KERN_ACPI_VIDEO_FLAGS 1
@@ -391,6 +410,10 @@
don't. */
#define HAVE_DECL_SYS_ERRLIST 0
+/* Define to 1 if you have the declaration of `TCA_STAB_DATA', and to 0 if you
+ don't. */
+#define HAVE_DECL_TCA_STAB_DATA 1
+
/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_SDR_CAPTURE', and
to 0 if you don't. */
#define HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE 1
@@ -649,6 +672,9 @@
/* Define to 1 if the system provides dladdr */
#define HAVE_DLADDR 1
+/* Define to 1 if you have the <elfutils/libdwfl.h> header file. */
+/* #undef HAVE_ELFUTILS_LIBDWFL_H */
+
/* Define to 1 if you have the <elf.h> header file. */
#define HAVE_ELF_H 1
@@ -686,7 +712,7 @@
/* #undef HAVE_GNU_STUBS_X32_H */
/* Define to 1 if you have the <iconv.h> header file. */
-/* #undef HAVE_ICONV_H */
+#define HAVE_ICONV_H 1
/* Define to 1 if you have the `iconv_open' function. */
/* #undef HAVE_ICONV_OPEN */
@@ -947,7 +973,7 @@
#define HAVE_SIG_ATOMIC_T 1
/* Define to 1 if the system provides static_assert */
-/* #define HAVE_STATIC_ASSERT 1 */
+/* #undef HAVE_STATIC_ASSERT */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
@@ -982,6 +1008,76 @@
/* Define to 1 if the system has the type `struct bpf_insn'. */
#define HAVE_STRUCT_BPF_INSN 1
+/* Define to 1 if the system has the type `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO 1
+
+/* Define to 1 if `id' is a member of `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO_ID 1
+
+/* Define to 1 if `ifindex' is a member of `struct bpf_map_info'. */
+/* #undef HAVE_STRUCT_BPF_MAP_INFO_IFINDEX */
+
+/* Define to 1 if `key_size' is a member of `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE 1
+
+/* Define to 1 if `map_flags' is a member of `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS 1
+
+/* Define to 1 if `max_entries' is a member of `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES 1
+
+/* Define to 1 if `name' is a member of `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO_NAME 1
+
+/* Define to 1 if `type' is a member of `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO_TYPE 1
+
+/* Define to 1 if `value_size' is a member of `struct bpf_map_info'. */
+#define HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE 1
+
+/* Define to 1 if the system has the type `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO 1
+
+/* Define to 1 if `created_by_uid' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID 1
+
+/* Define to 1 if `id' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_ID 1
+
+/* Define to 1 if `ifindex' is a member of `struct bpf_prog_info'. */
+/* #undef HAVE_STRUCT_BPF_PROG_INFO_IFINDEX */
+
+/* Define to 1 if `jited_prog_insns' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_INSNS 1
+
+/* Define to 1 if `jited_prog_len' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_LEN 1
+
+/* Define to 1 if `load_time' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_LOAD_TIME 1
+
+/* Define to 1 if `map_ids' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_MAP_IDS 1
+
+/* Define to 1 if `name' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_NAME 1
+
+/* Define to 1 if `nr_map_ids' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_NR_MAP_IDS 1
+
+/* Define to 1 if `tag' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_TAG 1
+
+/* Define to 1 if `type' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_TYPE 1
+
+/* Define to 1 if `xlated_prog_insns' is a member of `struct bpf_prog_info'.
+ */
+#define HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_INSNS 1
+
+/* Define to 1 if `xlated_prog_len' is a member of `struct bpf_prog_info'. */
+#define HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_LEN 1
+
/* Define to 1 if the system has the type `struct br_mdb_entry'. */
#define HAVE_STRUCT_BR_MDB_ENTRY 1
@@ -1032,6 +1128,9 @@
/* Define to 1 if the system has the type `struct dcbmsg'. */
#define HAVE_STRUCT_DCBMSG 1
+/* Define to 1 if the system has the type `struct fib_rule_port_range'. */
+/* #undef HAVE_STRUCT_FIB_RULE_PORT_RANGE */
+
/* Define to 1 if the system has the type `struct fib_rule_uid_range'. */
#define HAVE_STRUCT_FIB_RULE_UID_RANGE 1
@@ -1041,6 +1140,9 @@
/* Define to 1 if the system has the type `struct flock64'. */
#define HAVE_STRUCT_FLOCK64 1
+/* Define to 1 if the system has the type `struct f_owner_ex'. */
+#define HAVE_STRUCT_F_OWNER_EX 1
+
/* Define to 1 if the system has the type `struct gnet_stats_basic'. */
#define HAVE_STRUCT_GNET_STATS_BASIC 1
@@ -1062,6 +1164,9 @@
/* Define to 1 if the system has the type `struct ifla_bridge_id'. */
#define HAVE_STRUCT_IFLA_BRIDGE_ID 1
+/* Define to 1 if the system has the type `struct ifla_cacheinfo'. */
+#define HAVE_STRUCT_IFLA_CACHEINFO 1
+
/* Define to 1 if the system has the type `struct ifla_port_vsi'. */
#define HAVE_STRUCT_IFLA_PORT_VSI 1
@@ -1069,7 +1174,7 @@
#define HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION 1
/* Define to 1 if the system has the type `struct kcmp_epoll_slot'. */
-/* #undef HAVE_STRUCT_KCMP_EPOLL_SLOT */
+#define HAVE_STRUCT_KCMP_EPOLL_SLOT 1
/* Define to 1 if the system has the type `struct keyctl_kdf_params'. */
#define HAVE_STRUCT_KEYCTL_KDF_PARAMS 1
@@ -1202,6 +1307,9 @@
/* Define to 1 if the system has the type `struct sigcontext'. */
#define HAVE_STRUCT_SIGCONTEXT 1
+/* Define to 1 if `l2_bdaddr_type' is a member of `struct sockaddr_l2'. */
+/* #undef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE */
+
/* Define to 1 if the system has the type `struct stat64'. */
/* #undef HAVE_STRUCT_STAT64 */
@@ -1265,12 +1373,18 @@
/* Define to 1 if `global_alpha' is a member of `struct v4l2_window'. */
#define HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA 1
+/* Define to 1 if the system has the type `struct __aio_sigset'. */
+/* #undef HAVE_STRUCT___AIO_SIGSET */
+
/* Define to 1 if the system has the type `struct __kernel_flock'. */
/* #undef HAVE_STRUCT___KERNEL_FLOCK */
/* Define to 1 if the system has the type `struct __kernel_flock64'. */
/* #undef HAVE_STRUCT___KERNEL_FLOCK64 */
+/* Define to 1 if the system has the type `struct __kernel_f_owner_ex'. */
+/* #undef HAVE_STRUCT___KERNEL_F_OWNER_EX */
+
/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
/* #undef HAVE_STRUCT___OLD_KERNEL_STAT */
@@ -1331,20 +1445,23 @@
/* Define to 1 if `dummy' is a member of `union bpf_attr'. */
/* #undef HAVE_UNION_BPF_ATTR_DUMMY */
+/* Define to 1 if `expected_attach_type' is a member of `union bpf_attr'. */
+/* #undef HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE */
+
/* Define to 1 if `file_flags' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_FILE_FLAGS */
+#define HAVE_UNION_BPF_ATTR_FILE_FLAGS 1
/* Define to 1 if `flags' is a member of `union bpf_attr'. */
#define HAVE_UNION_BPF_ATTR_FLAGS 1
/* Define to 1 if `info.bpf_fd' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_INFO_BPF_FD */
+#define HAVE_UNION_BPF_ATTR_INFO_BPF_FD 1
/* Define to 1 if `info.info' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_INFO_INFO */
+#define HAVE_UNION_BPF_ATTR_INFO_INFO 1
/* Define to 1 if `info.info_len' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_INFO_INFO_LEN */
+#define HAVE_UNION_BPF_ATTR_INFO_INFO_LEN 1
/* Define to 1 if `inner_map_fd' is a member of `union bpf_attr'. */
#define HAVE_UNION_BPF_ATTR_INNER_MAP_FD 1
@@ -1383,7 +1500,13 @@
#define HAVE_UNION_BPF_ATTR_MAP_FLAGS 1
/* Define to 1 if `map_id' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_MAP_ID */
+#define HAVE_UNION_BPF_ATTR_MAP_ID 1
+
+/* Define to 1 if `map_ifindex' is a member of `union bpf_attr'. */
+/* #undef HAVE_UNION_BPF_ATTR_MAP_IFINDEX */
+
+/* Define to 1 if `map_name' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_MAP_NAME 1
/* Define to 1 if `map_type' is a member of `union bpf_attr'. */
#define HAVE_UNION_BPF_ATTR_MAP_TYPE 1
@@ -1392,16 +1515,16 @@
#define HAVE_UNION_BPF_ATTR_MAX_ENTRIES 1
/* Define to 1 if `next_id' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_NEXT_ID */
+#define HAVE_UNION_BPF_ATTR_NEXT_ID 1
/* Define to 1 if `next_key' is a member of `union bpf_attr'. */
#define HAVE_UNION_BPF_ATTR_NEXT_KEY 1
/* Define to 1 if `numa_node' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_NUMA_NODE */
+#define HAVE_UNION_BPF_ATTR_NUMA_NODE 1
/* Define to 1 if `open_flags' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_OPEN_FLAGS */
+#define HAVE_UNION_BPF_ATTR_OPEN_FLAGS 1
/* Define to 1 if `pathname' is a member of `union bpf_attr'. */
#define HAVE_UNION_BPF_ATTR_PATHNAME 1
@@ -1410,13 +1533,43 @@
#define HAVE_UNION_BPF_ATTR_PROG_FLAGS 1
/* Define to 1 if `prog_id' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_PROG_ID */
+#define HAVE_UNION_BPF_ATTR_PROG_ID 1
+
+/* Define to 1 if `prog_ifindex' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_PROG_IFINDEX 1
+
+/* Define to 1 if `prog_name' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_PROG_NAME 1
/* Define to 1 if `prog_type' is a member of `union bpf_attr'. */
#define HAVE_UNION_BPF_ATTR_PROG_TYPE 1
+/* Define to 1 if `query.attach_flags' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS 1
+
+/* Define to 1 if `query.attach_type' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE 1
+
+/* Define to 1 if `query.prog_cnt' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT 1
+
+/* Define to 1 if `query.prog_ids' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS 1
+
+/* Define to 1 if `query.query_flags' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS 1
+
+/* Define to 1 if `query.target_fd' is a member of `union bpf_attr'. */
+#define HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD 1
+
+/* Define to 1 if `raw_tracepoint.name' is a member of `union bpf_attr'. */
+/* #undef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME */
+
+/* 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 `start_id' is a member of `union bpf_attr'. */
-/* #undef HAVE_UNION_BPF_ATTR_START_ID */
+#define HAVE_UNION_BPF_ATTR_START_ID 1
/* Define to 1 if `target_fd' is a member of `union bpf_attr'. */
#define HAVE_UNION_BPF_ATTR_TARGET_FD 1
@@ -1460,6 +1613,9 @@
/* Define to 1 if you have the `utimensat' function. */
#define HAVE_UTIMENSAT 1
+/* Define to 1 if the system provides _Static_assert */
+/* #undef HAVE__STATIC_ASSERT */
+
/* Define to 1 if the system provides __builtin_popcount function */
#define HAVE___BUILTIN_POPCOUNT 1
@@ -1497,7 +1653,7 @@
/* #undef M68K */
/* Date */
-#define MANPAGE_DATE "2018-04-04"
+#define MANPAGE_DATE "2018-06-13"
/* Define for the Meta architecture. */
/* #undef METAG */
@@ -1530,7 +1686,7 @@
#define PACKAGE_NAME "strace"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "strace 4.22"
+#define PACKAGE_STRING "strace 4.23"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "strace"
@@ -1539,7 +1695,7 @@
#define PACKAGE_URL "https://strace.io"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "4.22"
+#define PACKAGE_VERSION "4.23"
/* Define for the PowerPC architecture. */
/* #undef POWERPC */
@@ -1585,10 +1741,13 @@
/* Define for the Tile architecture */
/* #undef TILE */
-/* Do demangling symbols in stack trace */
+/* Do symbols demangling in stack trace */
/* #undef USE_DEMANGLE */
-/* Compile stack tracing functionality */
+/* Whether to use libdw for stack tracing */
+/* #undef USE_LIBDW */
+
+/* Whether to use libunwind for stack tracing */
/* #undef USE_LIBUNWIND */
/* Enable extensions on AIX 3, Interix. */
@@ -1613,8 +1772,11 @@
#endif
+/* The unwinder to use for stack tracing support */
+/* #undef USE_UNWINDER */
+
/* Version number of package */
-#define VERSION "4.22"
+#define VERSION "4.23"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/config.h.in b/config.h.in
index 610c5cb..24255b6 100644
--- a/config.h.in
+++ b/config.h.in
@@ -33,6 +33,9 @@
/* Define to 1 if you want OABI support on ARM EABI. */
#undef ENABLE_ARM_OABI
+/* Define to enable stack tracing support */
+#undef ENABLE_STACKTRACE
+
/* Define to 1 if you have the `accept4' function. */
#undef HAVE_ACCEPT4
@@ -93,6 +96,22 @@
don't. */
#undef HAVE_DECL_CTL_SUNRPC
+/* 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_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_PROTINFO', and to 0 if you
+ don't. */
+#undef HAVE_DECL_IFLA_PROTINFO
+
+/* 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 `KERN_ACPI_VIDEO_FLAGS', and to
0 if you don't. */
#undef HAVE_DECL_KERN_ACPI_VIDEO_FLAGS
@@ -393,6 +412,10 @@
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 `V4L2_BUF_TYPE_SDR_CAPTURE', and
to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE
@@ -651,6 +674,9 @@
/* Define to 1 if the system provides dladdr */
#undef HAVE_DLADDR
+/* Define to 1 if you have the <elfutils/libdwfl.h> header file. */
+#undef HAVE_ELFUTILS_LIBDWFL_H
+
/* Define to 1 if you have the <elf.h> header file. */
#undef HAVE_ELF_H
@@ -984,6 +1010,76 @@
/* Define to 1 if the system has the type `struct bpf_insn'. */
#undef HAVE_STRUCT_BPF_INSN
+/* Define to 1 if the system has the type `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO
+
+/* Define to 1 if `id' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_ID
+
+/* Define to 1 if `ifindex' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_IFINDEX
+
+/* Define to 1 if `key_size' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE
+
+/* Define to 1 if `map_flags' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS
+
+/* Define to 1 if `max_entries' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES
+
+/* Define to 1 if `name' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_NAME
+
+/* Define to 1 if `type' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_TYPE
+
+/* Define to 1 if `value_size' is a member of `struct bpf_map_info'. */
+#undef HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE
+
+/* Define to 1 if the system has the type `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO
+
+/* Define to 1 if `created_by_uid' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID
+
+/* Define to 1 if `id' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_ID
+
+/* Define to 1 if `ifindex' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_IFINDEX
+
+/* Define to 1 if `jited_prog_insns' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_INSNS
+
+/* Define to 1 if `jited_prog_len' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_LEN
+
+/* Define to 1 if `load_time' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_LOAD_TIME
+
+/* Define to 1 if `map_ids' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_MAP_IDS
+
+/* Define to 1 if `name' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_NAME
+
+/* Define to 1 if `nr_map_ids' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_NR_MAP_IDS
+
+/* Define to 1 if `tag' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_TAG
+
+/* Define to 1 if `type' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_TYPE
+
+/* Define to 1 if `xlated_prog_insns' is a member of `struct bpf_prog_info'.
+ */
+#undef HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_INSNS
+
+/* Define to 1 if `xlated_prog_len' is a member of `struct bpf_prog_info'. */
+#undef HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_LEN
+
/* Define to 1 if the system has the type `struct br_mdb_entry'. */
#undef HAVE_STRUCT_BR_MDB_ENTRY
@@ -1034,6 +1130,9 @@
/* Define to 1 if the system has the type `struct dcbmsg'. */
#undef HAVE_STRUCT_DCBMSG
+/* Define to 1 if the system has the type `struct fib_rule_port_range'. */
+#undef HAVE_STRUCT_FIB_RULE_PORT_RANGE
+
/* Define to 1 if the system has the type `struct fib_rule_uid_range'. */
#undef HAVE_STRUCT_FIB_RULE_UID_RANGE
@@ -1043,6 +1142,9 @@
/* Define to 1 if the system has the type `struct flock64'. */
#undef HAVE_STRUCT_FLOCK64
+/* Define to 1 if the system has the type `struct f_owner_ex'. */
+#undef HAVE_STRUCT_F_OWNER_EX
+
/* Define to 1 if the system has the type `struct gnet_stats_basic'. */
#undef HAVE_STRUCT_GNET_STATS_BASIC
@@ -1064,6 +1166,9 @@
/* Define to 1 if the system has the type `struct ifla_bridge_id'. */
#undef HAVE_STRUCT_IFLA_BRIDGE_ID
+/* 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
@@ -1204,6 +1309,9 @@
/* Define to 1 if the system has the type `struct sigcontext'. */
#undef HAVE_STRUCT_SIGCONTEXT
+/* Define to 1 if `l2_bdaddr_type' is a member of `struct sockaddr_l2'. */
+#undef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+
/* Define to 1 if the system has the type `struct stat64'. */
#undef HAVE_STRUCT_STAT64
@@ -1267,12 +1375,18 @@
/* Define to 1 if `global_alpha' is a member of `struct v4l2_window'. */
#undef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+/* Define to 1 if the system has the type `struct __aio_sigset'. */
+#undef HAVE_STRUCT___AIO_SIGSET
+
/* Define to 1 if the system has the type `struct __kernel_flock'. */
#undef HAVE_STRUCT___KERNEL_FLOCK
/* Define to 1 if the system has the type `struct __kernel_flock64'. */
#undef HAVE_STRUCT___KERNEL_FLOCK64
+/* Define to 1 if the system has the type `struct __kernel_f_owner_ex'. */
+#undef HAVE_STRUCT___KERNEL_F_OWNER_EX
+
/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
#undef HAVE_STRUCT___OLD_KERNEL_STAT
@@ -1333,6 +1447,9 @@
/* Define to 1 if `dummy' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_DUMMY
+/* Define to 1 if `expected_attach_type' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE
+
/* Define to 1 if `file_flags' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_FILE_FLAGS
@@ -1387,6 +1504,12 @@
/* Define to 1 if `map_id' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_ID
+/* Define to 1 if `map_ifindex' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_MAP_IFINDEX
+
+/* Define to 1 if `map_name' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_MAP_NAME
+
/* Define to 1 if `map_type' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_MAP_TYPE
@@ -1414,9 +1537,39 @@
/* Define to 1 if `prog_id' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PROG_ID
+/* Define to 1 if `prog_ifindex' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_PROG_IFINDEX
+
+/* Define to 1 if `prog_name' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_PROG_NAME
+
/* Define to 1 if `prog_type' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_PROG_TYPE
+/* Define to 1 if `query.attach_flags' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS
+
+/* Define to 1 if `query.attach_type' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE
+
+/* Define to 1 if `query.prog_cnt' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT
+
+/* Define to 1 if `query.prog_ids' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS
+
+/* Define to 1 if `query.query_flags' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS
+
+/* Define to 1 if `query.target_fd' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD
+
+/* Define to 1 if `raw_tracepoint.name' is a member of `union bpf_attr'. */
+#undef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME
+
+/* 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 `start_id' is a member of `union bpf_attr'. */
#undef HAVE_UNION_BPF_ATTR_START_ID
@@ -1462,6 +1615,9 @@
/* 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
+
/* Define to 1 if the system provides __builtin_popcount function */
#undef HAVE___BUILTIN_POPCOUNT
@@ -1591,10 +1747,13 @@
/* Define for the Tile architecture */
#undef TILE
-/* Do demangling symbols in stack trace */
+/* Do symbols demangling in stack trace */
#undef USE_DEMANGLE
-/* Compile stack tracing functionality */
+/* Whether to use libdw for stack tracing */
+#undef USE_LIBDW
+
+/* Whether to use libunwind for stack tracing */
#undef USE_LIBUNWIND
/* Enable extensions on AIX 3, Interix. */
@@ -1619,6 +1778,9 @@
#endif
+/* The unwinder to use for stack tracing support */
+#undef USE_UNWINDER
+
/* Version number of package */
#undef VERSION
diff --git a/configure b/configure
index 4dfded7..141ac3c 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 4.22.
+# Generated by GNU Autoconf 2.69 for strace 4.23.
#
# Report bugs to <[email protected]>.
#
@@ -582,8 +582,8 @@
# Identity of this package.
PACKAGE_NAME='strace'
PACKAGE_TARNAME='strace'
-PACKAGE_VERSION='4.22'
-PACKAGE_STRING='strace 4.22'
+PACKAGE_VERSION='4.23'
+PACKAGE_STRING='strace 4.23'
PACKAGE_BUGREPORT='[email protected]'
PACKAGE_URL='https://strace.io'
@@ -654,9 +654,17 @@
libiberty_LIBS
USE_LIBUNWIND_FALSE
USE_LIBUNWIND_TRUE
+USE_LIBDW_FALSE
+USE_LIBDW_TRUE
+ENABLE_STACKTRACE_FALSE
+ENABLE_STACKTRACE_TRUE
libunwind_CPPFLAGS
libunwind_LDFLAGS
libunwind_LIBS
+libdw_LIBS
+libdw_LDFLAGS
+libdw_CFLAGS
+libdw_CPPFLAGS
READELF
PERL
mq_LIBS
@@ -806,6 +814,8 @@
with_gcov
enable_code_coverage
enable_arm_oabi
+enable_stacktrace
+with_libdw
with_libunwind
with_libiberty
enable_mpers
@@ -1364,7 +1374,7 @@
# 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 4.22 to adapt to many kinds of systems.
+\`configure' configures strace 4.23 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1434,7 +1444,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of strace 4.22:";;
+ short | recursive ) echo "Configuration of strace 4.23:";;
esac
cat <<\_ACEOF
@@ -1454,6 +1464,9 @@
--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-stacktrace=yes|no|check
+ whether to enable stack tracing support, default is
+ check
--enable-mpers=yes|no|check|m32|mx32
whether to enable multiple personalities support
required for proper decoding of structures used by
@@ -1472,6 +1485,8 @@
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gcov=GCOV use given GCOV for coverage (GCOV=gcov).
+ --with-libdw use libdw to implement stack tracing support
+
--with-libunwind use libunwind to implement stack tracing support
--with-libiberty use libiberty to demangle symbols in stack trace
@@ -1552,7 +1567,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-strace configure 4.22
+strace configure 4.23
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2292,7 +2307,7 @@
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 4.22, which was
+It was created by strace $as_me 4.23, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3163,7 +3178,7 @@
# Define the identity of the package.
PACKAGE='strace'
- VERSION='4.22'
+ VERSION='4.23'
cat >>confdefs.h <<_ACEOF
@@ -3350,9 +3365,9 @@
-RPM_CHANGELOGTIME="$(LC_TIME=C date '+%a %b %d %Y')"
+RPM_CHANGELOGTIME="$(LC_TIME=C date -u '+%a %b %d %Y')"
-DEB_CHANGELOGTIME="$(LC_TIME=C date -R)"
+DEB_CHANGELOGTIME="$(LC_TIME=C date -u -R)"
ac_ext=c
@@ -8984,9 +8999,9 @@
-$as_echo "#define MANPAGE_DATE \"2018-04-04\"" >>confdefs.h
+$as_echo "#define MANPAGE_DATE \"2018-06-13\"" >>confdefs.h
-MANPAGE_DATE=2018-04-04
+MANPAGE_DATE=2018-06-13
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported architecture" >&5
@@ -9866,6 +9881,28 @@
fi
+ac_fn_c_check_type "$LINENO" "struct f_owner_ex" "ac_cv_type_struct_f_owner_ex" "#include <sys/types.h>
+#include <linux/fcntl.h>
+"
+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 <sys/types.h>
+#include <linux/fcntl.h>
+"
+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 crypto_report_aead" "ac_cv_type_struct_crypto_report_aead" "#include <linux/cryptouser.h>
@@ -10222,7 +10259,7 @@
fi
-for ac_header in asm/cachectl.h asm/guarded_storage.h asm/sysmips.h bluetooth/bluetooth.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/genetlink.h linux/hiddev.h linux/if_addr.h linux/if_link.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
+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/genetlink.h linux/hiddev.h linux/if_addr.h linux/if_link.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"
@@ -10353,8 +10390,238 @@
fi
+ac_fn_c_check_type "$LINENO" "struct bpf_map_info" "ac_cv_type_struct_bpf_map_info" "#include <linux/bpf.h>
+"
+if test "x$ac_cv_type_struct_bpf_map_info" = xyes; then :
- ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_bpf_fd" "ac_cv_member_union_bpf_attr_attach_bpf_fd" "#include <linux/bpf.h>
+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 <linux/bpf.h>
+"
+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" "id" "ac_cv_member_struct_bpf_map_info_id" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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" "created_by_uid" "ac_cv_member_struct_bpf_prog_info_created_by_uid" "#include <linux/bpf.h>
+"
+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" "id" "ac_cv_member_struct_bpf_prog_info_id" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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_prog_insns" "ac_cv_member_struct_bpf_prog_info_jited_prog_insns" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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" "load_time" "ac_cv_member_struct_bpf_prog_info_load_time" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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_map_ids" "ac_cv_member_struct_bpf_prog_info_nr_map_ids" "#include <linux/bpf.h>
+"
+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" "tag" "ac_cv_member_struct_bpf_prog_info_tag" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
"
if test "x$ac_cv_member_union_bpf_attr_attach_bpf_fd" = xyes; then :
@@ -10404,6 +10671,16 @@
fi
+ac_fn_c_check_member "$LINENO" "union bpf_attr" "expected_attach_type" "ac_cv_member_union_bpf_attr_expected_attach_type" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
"
if test "x$ac_cv_member_union_bpf_attr_file_flags" = xyes; then :
@@ -10424,6 +10701,36 @@
fi
+ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.bpf_fd" "ac_cv_member_union_bpf_attr_info_bpf_fd" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
"
if test "x$ac_cv_member_union_bpf_attr_inner_map_fd" = xyes; then :
@@ -10554,6 +10861,26 @@
fi
+ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_ifindex" "ac_cv_member_union_bpf_attr_map_ifindex" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
"
if test "x$ac_cv_member_union_bpf_attr_map_type" = xyes; then :
@@ -10644,6 +10971,26 @@
fi
+ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_ifindex" "ac_cv_member_union_bpf_attr_prog_ifindex" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
"
if test "x$ac_cv_member_union_bpf_attr_prog_type" = xyes; then :
@@ -10654,6 +11001,86 @@
fi
+ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.attach_flags" "ac_cv_member_union_bpf_attr_query_attach_flags" "#include <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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 <linux/bpf.h>
+"
+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" "start_id" "ac_cv_member_union_bpf_attr_start_id" "#include <linux/bpf.h>
"
if test "x$ac_cv_member_union_bpf_attr_start_id" = xyes; then :
@@ -10674,26 +11101,6 @@
fi
-ac_fn_c_check_member "$LINENO" "union bpf_attr" "value" "ac_cv_member_union_bpf_attr_value" "#include <linux/bpf.h>
-"
-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 <linux/bpf.h>
-"
-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" "test.data_in" "ac_cv_member_union_bpf_attr_test_data_in" "#include <linux/bpf.h>
"
if test "x$ac_cv_member_union_bpf_attr_test_data_in" = xyes; then :
@@ -10774,32 +11181,22 @@
fi
-ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.bpf_fd" "ac_cv_member_union_bpf_attr_info_bpf_fd" "#include <linux/bpf.h>
+ac_fn_c_check_member "$LINENO" "union bpf_attr" "value" "ac_cv_member_union_bpf_attr_value" "#include <linux/bpf.h>
"
-if test "x$ac_cv_member_union_bpf_attr_info_bpf_fd" = xyes; then :
+if test "x$ac_cv_member_union_bpf_attr_value" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define HAVE_UNION_BPF_ATTR_INFO_BPF_FD 1
+#define HAVE_UNION_BPF_ATTR_VALUE 1
_ACEOF
fi
-ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.info" "ac_cv_member_union_bpf_attr_info_info" "#include <linux/bpf.h>
+ac_fn_c_check_member "$LINENO" "union bpf_attr" "value_size" "ac_cv_member_union_bpf_attr_value_size" "#include <linux/bpf.h>
"
-if test "x$ac_cv_member_union_bpf_attr_info_info" = xyes; then :
+if test "x$ac_cv_member_union_bpf_attr_value_size" = 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 <linux/bpf.h>
-"
-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
+#define HAVE_UNION_BPF_ATTR_VALUE_SIZE 1
_ACEOF
@@ -10822,6 +11219,32 @@
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_l2" "l2_bdaddr_type" "ac_cv_member_struct_sockaddr_l2_l2_bdaddr_type" "#include <bluetooth/bluetooth.h>
+ #include <bluetooth/l2cap.h>
+"
+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_type "$LINENO" "struct br_mdb_entry" "ac_cv_type_struct_br_mdb_entry" "#include <linux/if_bridge.h>
"
if test "x$ac_cv_type_struct_br_mdb_entry" = xyes; then :
@@ -10899,7 +11322,8 @@
fi
-ac_fn_c_check_type "$LINENO" "struct rta_mfc_stats" "ac_cv_type_struct_rta_mfc_stats" "#include <linux/rtnetlink.h>
+ac_fn_c_check_type "$LINENO" "struct rta_mfc_stats" "ac_cv_type_struct_rta_mfc_stats" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
"
if test "x$ac_cv_type_struct_rta_mfc_stats" = xyes; then :
@@ -10909,7 +11333,8 @@
fi
-ac_fn_c_check_type "$LINENO" "struct rtvia" "ac_cv_type_struct_rtvia" "#include <linux/rtnetlink.h>
+ac_fn_c_check_type "$LINENO" "struct rtvia" "ac_cv_type_struct_rtvia" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
"
if test "x$ac_cv_type_struct_rtvia" = xyes; then :
@@ -10954,7 +11379,8 @@
fi
-ac_fn_c_check_type "$LINENO" "struct ifla_bridge_id" "ac_cv_type_struct_ifla_bridge_id" "#include <linux/if_link.h>
+ac_fn_c_check_type "$LINENO" "struct ifla_bridge_id" "ac_cv_type_struct_ifla_bridge_id" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
"
if test "x$ac_cv_type_struct_ifla_bridge_id" = xyes; then :
@@ -10964,7 +11390,19 @@
fi
-ac_fn_c_check_type "$LINENO" "struct ifla_port_vsi" "ac_cv_type_struct_ifla_port_vsi" "#include <linux/if_link.h>
+ac_fn_c_check_type "$LINENO" "struct ifla_cacheinfo" "ac_cv_type_struct_ifla_cacheinfo" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
+"
+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 ifla_port_vsi" "ac_cv_type_struct_ifla_port_vsi" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
"
if test "x$ac_cv_type_struct_ifla_port_vsi" = xyes; then :
@@ -10974,7 +11412,8 @@
fi
-ac_fn_c_check_type "$LINENO" "struct rtnl_link_stats64" "ac_cv_type_struct_rtnl_link_stats64" "#include <linux/if_link.h>
+ac_fn_c_check_type "$LINENO" "struct rtnl_link_stats64" "ac_cv_type_struct_rtnl_link_stats64" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
"
if test "x$ac_cv_type_struct_rtnl_link_stats64" = xyes; then :
@@ -10985,7 +11424,8 @@
fi
-ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats_rx_nohandler" "#include <linux/if_link.h>
+ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats_rx_nohandler" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
"
if test "x$ac_cv_member_struct_rtnl_link_stats_rx_nohandler" = xyes; then :
@@ -10995,7 +11435,8 @@
fi
-ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats64" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats64_rx_nohandler" "#include <linux/if_link.h>
+ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats64" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats64_rx_nohandler" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
"
if test "x$ac_cv_member_struct_rtnl_link_stats64_rx_nohandler" = xyes; then :
@@ -11006,6 +11447,55 @@
fi
+ac_fn_c_check_decl "$LINENO" "IFLA_PORT_SELF" "ac_cv_have_decl_IFLA_PORT_SELF" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
+"
+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_PROTINFO" "ac_cv_have_decl_IFLA_PROTINFO" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
+"
+if test "x$ac_cv_have_decl_IFLA_PROTINFO" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IFLA_PROTINFO $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_AF_SPEC" "ac_cv_have_decl_IFLA_AF_SPEC" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
+"
+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_DECL_IFLA_AF_SPEC $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_XDP" "ac_cv_have_decl_IFLA_XDP" "#include <sys/socket.h>
+#include <linux/rtnetlink.h>
+"
+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_DECL_IFLA_XDP $ac_have_decl
+_ACEOF
+
ac_fn_c_check_type "$LINENO" "struct gnet_stats_basic" "ac_cv_type_struct_gnet_stats_basic" "#include <linux/gen_stats.h>
"
@@ -11049,7 +11539,8 @@
fi
-ac_fn_c_check_type "$LINENO" "struct tc_sizespec" "ac_cv_type_struct_tc_sizespec" "#include <linux/pkt_sched.h>
+ac_fn_c_check_type "$LINENO" "struct tc_sizespec" "ac_cv_type_struct_tc_sizespec" "#include <linux/types.h>
+#include <linux/pkt_sched.h>
"
if test "x$ac_cv_type_struct_tc_sizespec" = xyes; then :
@@ -11060,6 +11551,19 @@
fi
+ac_fn_c_check_decl "$LINENO" "TCA_STAB_DATA" "ac_cv_have_decl_TCA_STAB_DATA" "#include <linux/types.h>
+#include <linux/pkt_sched.h>
+"
+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_DECL_TCA_STAB_DATA $ac_have_decl
+_ACEOF
+
ac_fn_c_check_type "$LINENO" "struct fib_rule_uid_range" "ac_cv_type_struct_fib_rule_uid_range" "#include <linux/fib_rules.h>
"
@@ -11071,6 +11575,16 @@
fi
+ac_fn_c_check_type "$LINENO" "struct fib_rule_port_range" "ac_cv_type_struct_fib_rule_port_range" "#include <linux/fib_rules.h>
+"
+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 <linux/types.h>
@@ -11271,6 +11785,21 @@
fi
+saved_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS -I$srcdir/linux"
+ac_fn_c_check_type "$LINENO" "struct __aio_sigset" "ac_cv_type_struct___aio_sigset" "#include <linux/aio_abi.h>
+"
+if test "x$ac_cv_type_struct___aio_sigset" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT___AIO_SIGSET 1
+_ACEOF
+
+
+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"
@@ -13560,25 +14089,58 @@
main ()
{
static_assert(1,"")
+
;
return 0;
}
+
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
st_cv_have_static_assert=yes
else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+_Static_assert(1,"")
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ st_cv_have_static_assert=_Static_assert
+else
st_cv_have_static_assert=no
+
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_have_static_assert" >&5
$as_echo "$st_cv_have_static_assert" >&6; }
-if test "x$st_cv_have_static_assert" = xyes; then
+case "x$st_cv_have_static_assert" in
+ xyes)
$as_echo "#define HAVE_STATIC_ASSERT 1" >>confdefs.h
-fi
+ ;;
+ x_Static_assert)
+
+$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; }
@@ -13963,9 +14525,47 @@
fi
-libunwind_CPPFLAGS=
-libunwind_LDFLAGS=
-libunwind_LIBS=
+
+# Check whether --enable-stacktrace was given.
+if test "${enable_stacktrace+set}" = set; then :
+ enableval=$enable_stacktrace; case "$enableval" in
+ yes|no|check) enable_stacktrace="$enableval" ;;
+ *) as_fn_error $? "bad value $enableval for enable-stacktrace option.
+ Valid options are: yes, no, check." "$LINENO" 5
+ ;;
+ esac
+else
+ enable_stacktrace=check
+fi
+
+
+use_unwinder=
+
+if test x"$enable_stacktrace" != xno; then :
+
+: ${libdw_CPPFLAGS=}
+: ${libdw_CFLAGS=}
+: ${libdw_LDFLAGS=}
+: ${libdw_LIBS=}
+
+
+# Check whether --with-libdw was given.
+if test "${with_libdw+set}" = set; then :
+ withval=$with_libdw; case "${withval}" in
+ yes|no|check) ;;
+ *) libdw_CPPFLAGS="-I${withval}/include"
+ libdw_LDFLAGS="-L${withval}/lib"
+ with_libdw=yes ;;
+ esac
+
+else
+ with_libdw=check
+
+fi
+
+
+
+
# Check whether --with-libunwind was given.
if test "${with_libunwind+set}" = set; then :
@@ -13981,8 +14581,154 @@
fi
-use_libunwind=no
-if test "x$with_libunwind" != xno; then :
+
+ if test "x$with_libdw" = xyes && test "x$with_libunwind" = xyes; then :
+ as_fn_error $? "--with-libdw=yes and --with-libunwind=yes are mutually exclusive" "$LINENO" 5
+elif test "x$with_libdw" = xyes; then :
+ with_libunwind=no
+elif test "x$with_libunwind" = xyes; then :
+ with_libdw=no
+
+fi
+ if test "x$use_unwinder" = x; then :
+
+have_libdw=
+
+if test "x$with_libdw" != xno && test "x$use_unwinder" = x; then :
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_CFLAGS="$CFLAGS"
+ CPPFLAGS="$CPPFLAGS $libdw_CPPFLAGS"
+ CFLAGS="$CFLAGS $libdw_CFLAGS"
+
+ for ac_header in elfutils/libdwfl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "elfutils/libdwfl.h" "ac_cv_header_elfutils_libdwfl_h" "$ac_includes_default"
+if test "x$ac_cv_header_elfutils_libdwfl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ELFUTILS_LIBDWFL_H 1
+_ACEOF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dwfl_linux_proc_attach in -ldw" >&5
+$as_echo_n "checking for dwfl_linux_proc_attach in -ldw... " >&6; }
+if ${ac_cv_lib_dw_dwfl_linux_proc_attach+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldw $libdw_LDFLAGS $libdw_LIBS
+ $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dwfl_linux_proc_attach ();
+int
+main ()
+{
+return dwfl_linux_proc_attach ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dw_dwfl_linux_proc_attach=yes
+else
+ ac_cv_lib_dw_dwfl_linux_proc_attach=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dw_dwfl_linux_proc_attach" >&5
+$as_echo "$ac_cv_lib_dw_dwfl_linux_proc_attach" >&6; }
+if test "x$ac_cv_lib_dw_dwfl_linux_proc_attach" = xyes; then :
+ libdw_LIBS="-ldw $libdw_LIBS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elfutils version" >&5
+$as_echo_n "checking for elfutils version... " >&6; }
+if ${st_cv_ELFUTILS_VERSION+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ st_cv_ELFUTILS_VERSION="$(echo _ELFUTILS_VERSION |
+ $CPP $CPPFLAGS -P -imacros elfutils/version.h - |
+ grep '^[0-9]')"
+ test -n "$st_cv_ELFUTILS_VERSION" ||
+ st_cv_ELFUTILS_VERSION=0
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_ELFUTILS_VERSION" >&5
+$as_echo "$st_cv_ELFUTILS_VERSION" >&6; }
+ if test "$st_cv_ELFUTILS_VERSION" -ge 164; then :
+ have_libdw=yes
+else
+ if test "x$with_libdw" = xyes; then :
+ as_fn_error $? "elfutils version >= 164 is required for stack tracing support" "$LINENO" 5
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: elfutils version >= 164 is required for stack tracing support" >&5
+$as_echo "$as_me: WARNING: elfutils version >= 164 is required for stack tracing support" >&2;}
+
+fi
+
+
+fi
+
+else
+ if test "x$with_libdw" = xyes; 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 $? "failed to find dwfl_linux_proc_attach in libdw
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+fi
+
+
+else
+ if test "x$with_libdw" = xyes; 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 $? "failed to find elfutils/libdwfl.h
+See \`config.log' for more details" "$LINENO" 5; }
+
+fi
+
+
+fi
+
+done
+
+
+ CFLAGS="$saved_CFLAGS"
+ CPPFLAGS="$saved_CPPFLAGS"
+
+
+fi
+
+if test "x$have_libdw" = xyes; then :
+ use_unwinder=libdw
+
+$as_echo "#define USE_LIBDW 1" >>confdefs.h
+
+
+
+
+
+
+
+fi
+
+
+fi
+ if test "x$use_unwinder" = x; then :
+
+libunwind_CPPFLAGS=
+libunwind_LDFLAGS=
+libunwind_LIBS=
+
+if test "x$with_libunwind" != xno && test "x$use_unwinder" = x; then :
saved_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
@@ -14097,7 +14843,7 @@
$as_echo "$ac_cv_lib_unwind_ptrace__UPT_create" >&6; }
if test "x$ac_cv_lib_unwind_ptrace__UPT_create" = xyes; then :
libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
- use_libunwind=yes
+ use_unwinder=libunwind
else
if test "x$with_libunwind" != xcheck; then
@@ -14159,9 +14905,7 @@
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable stack tracing support using libunwind" >&5
-$as_echo_n "checking whether to enable stack tracing support using libunwind... " >&6; }
-if test "x$use_libunwind" = xyes; then
+if test "x$use_unwinder" = xlibunwind; then
$as_echo "#define USE_LIBUNWIND 1" >>confdefs.h
@@ -14169,7 +14913,36 @@
fi
- if test "x$use_libunwind" = xyes; then
+
+
+fi
+ if test x"$enable_stacktrace$use_unwinder" = xyes; then :
+ as_fn_error $? "stack tracing support requires an unwinder" "$LINENO" 5
+
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable stack tracing support" >&5
+$as_echo_n "checking whether to enable stack tracing support... " >&6; }
+ if test "x$use_unwinder" != x; then
+ ENABLE_STACKTRACE_TRUE=
+ ENABLE_STACKTRACE_FALSE='#'
+else
+ ENABLE_STACKTRACE_TRUE='#'
+ ENABLE_STACKTRACE_FALSE=
+fi
+
+ if test "x$use_unwinder" = xlibdw; then
+ USE_LIBDW_TRUE=
+ USE_LIBDW_FALSE='#'
+else
+ USE_LIBDW_TRUE='#'
+ USE_LIBDW_FALSE=
+fi
+
+ if test "x$use_unwinder" = xlibunwind; then
USE_LIBUNWIND_TRUE=
USE_LIBUNWIND_FALSE='#'
else
@@ -14177,12 +14950,20 @@
USE_LIBUNWIND_FALSE=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_libunwind" >&5
-$as_echo "$use_libunwind" >&6; }
-libiberty_CPPFLAGS=
-libiberty_LDFLAGS=
-libiberty_LIBS=
+use_libiberty=
+if test "x$use_unwinder" != x; then :
+
+$as_echo "#define ENABLE_STACKTRACE 1" >>confdefs.h
+
+
+cat >>confdefs.h <<_ACEOF
+#define USE_UNWINDER "$use_unwinder"
+_ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, using $use_unwinder" >&5
+$as_echo "yes, using $use_unwinder" >&6; }
+
# Check whether --with-libiberty was given.
if test "${with_libiberty+set}" = set; then :
@@ -14198,8 +14979,12 @@
fi
+libiberty_CPPFLAGS=
+libiberty_LDFLAGS=
+libiberty_LIBS=
use_libiberty=no
-if test "x$use_libunwind" = xyes && test "x$with_libiberty" != xno; then :
+
+if test "x$with_libiberty" != xno; then :
saved_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $libiberty_CPPFLAGS"
for ac_header in demangle.h libiberty/demangle.h
@@ -14283,8 +15068,8 @@
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable demangling symbols in stack trace" >&5
-$as_echo_n "checking whether to enable demangling symbols in stack trace... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable symbols demangling in stack trace" >&5
+$as_echo_n "checking whether to enable symbols demangling in stack trace... " >&6; }
if test "x$use_libiberty" = xyes; then
$as_echo "#define USE_DEMANGLE 1" >>confdefs.h
@@ -14293,6 +15078,15 @@
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_libiberty" >&5
+$as_echo "$use_libiberty" >&6; }
+
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
if test "x$use_libiberty" = xyes; then
USE_DEMANGLE_TRUE=
USE_DEMANGLE_FALSE='#'
@@ -14301,8 +15095,8 @@
USE_DEMANGLE_FALSE=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_libiberty" >&5
-$as_echo "$use_libiberty" >&6; }
+
+
if test "$arch" = mips && test "$no_create" != yes; then
mkdir -p linux/mips
@@ -15885,6 +16679,14 @@
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
+fi
+if test -z "${USE_LIBDW_TRUE}" && test -z "${USE_LIBDW_FALSE}"; then
+ as_fn_error $? "conditional \"USE_LIBDW\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${USE_LIBUNWIND_TRUE}" && test -z "${USE_LIBUNWIND_FALSE}"; then
as_fn_error $? "conditional \"USE_LIBUNWIND\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16310,7 +17112,7 @@
# 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 4.22, which was
+This file was extended by strace $as_me 4.23, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16377,7 +17179,7 @@
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 4.22
+strace config.status 4.23
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 6e53f98..9dec1b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,9 +46,9 @@
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
-RPM_CHANGELOGTIME="$(LC_TIME=C date '+%a %b %d %Y')"
+RPM_CHANGELOGTIME="$(LC_TIME=C date -u '+%a %b %d %Y')"
AC_SUBST(RPM_CHANGELOGTIME)
-DEB_CHANGELOGTIME="$(LC_TIME=C date -R)"
+DEB_CHANGELOGTIME="$(LC_TIME=C date -u -R)"
AC_SUBST(DEB_CHANGELOGTIME)
AC_PROG_CC
@@ -322,7 +322,9 @@
struct flock,
struct flock64,
struct __kernel_flock,
- struct __kernel_flock64
+ struct __kernel_flock64,
+ struct f_owner_ex,
+ struct __kernel_f_owner_ex
]),,,
[#include <sys/types.h>
#include <linux/fcntl.h>])
@@ -382,7 +384,6 @@
asm/cachectl.h
asm/guarded_storage.h
asm/sysmips.h
- bluetooth/bluetooth.h
elf.h
iconv.h
inttypes.h
@@ -465,10 +466,20 @@
])
AC_CHECK_HEADERS([linux/bpf.h], [
- AC_CHECK_TYPES([struct bpf_insn],,, [#include <linux/bpf.h>])
+ AC_CHECK_TYPES(m4_normalize([
+ struct bpf_insn,
+ struct bpf_map_info,
+ struct bpf_prog_info
+ ]),,, [#include <linux/bpf.h>])
st_BPF_ATTR
])
+AC_CHECK_HEADERS([bluetooth/bluetooth.h], [
+ AC_CHECK_MEMBERS([struct sockaddr_l2.l2_bdaddr_type],,,
+ [#include <bluetooth/bluetooth.h>
+ #include <bluetooth/l2cap.h>])
+])
+
AC_CHECK_TYPES(m4_normalize([
struct br_mdb_entry,
struct br_port_msg
@@ -485,7 +496,8 @@
AC_CHECK_TYPES(m4_normalize([
struct rta_mfc_stats,
struct rtvia
-]),,, [#include <linux/rtnetlink.h>])
+]),,, [#include <sys/socket.h>
+#include <linux/rtnetlink.h>])
AC_CHECK_MEMBERS([struct ndt_stats.ndts_table_fulls],,, [#include <linux/neighbour.h>])
AC_CHECK_TYPES(m4_normalize([
@@ -495,13 +507,23 @@
AC_CHECK_TYPES(m4_normalize([
struct ifla_bridge_id,
+ struct ifla_cacheinfo,
struct ifla_port_vsi,
struct rtnl_link_stats64
-]),,, [#include <linux/if_link.h>])
+]),,, [#include <sys/socket.h>
+#include <linux/rtnetlink.h>])
AC_CHECK_MEMBERS(m4_normalize([
struct rtnl_link_stats.rx_nohandler,
struct rtnl_link_stats64.rx_nohandler
-]),,, [#include <linux/if_link.h>])
+]),,, [#include <sys/socket.h>
+#include <linux/rtnetlink.h>])
+AC_CHECK_DECLS(m4_normalize([
+ IFLA_PORT_SELF,
+ IFLA_PROTINFO,
+ IFLA_AF_SPEC,
+ IFLA_XDP
+]),,, [#include <sys/socket.h>
+#include <linux/rtnetlink.h>])
AC_CHECK_TYPES(m4_normalize([
struct gnet_stats_basic,
@@ -510,9 +532,15 @@
struct gnet_stats_rate_est64
]),,, [#include <linux/gen_stats.h>])
-AC_CHECK_TYPES([struct tc_sizespec],,, [#include <linux/pkt_sched.h>])
+AC_CHECK_TYPES([struct tc_sizespec],,, [#include <linux/types.h>
+#include <linux/pkt_sched.h>])
+AC_CHECK_DECLS([TCA_STAB_DATA],,, [#include <linux/types.h>
+#include <linux/pkt_sched.h>])
-AC_CHECK_TYPES([struct fib_rule_uid_range],,, [#include <linux/fib_rules.h>])
+AC_CHECK_TYPES(m4_normalize([
+ struct fib_rule_uid_range,
+ struct fib_rule_port_range
+]),,, [#include <linux/fib_rules.h>])
AC_CHECK_TYPES([struct statfs], [
AC_CHECK_MEMBERS(m4_normalize([
@@ -552,6 +580,11 @@
struct kvm_userspace_memory_region
]),,, [#include <linux/kvm.h>])
+saved_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS -I$srcdir/linux"
+AC_CHECK_TYPES([struct __aio_sigset],,, [#include <linux/aio_abi.h>])
+CPPFLAGS="$saved_CPPFLAGS"
+
AC_CHECK_HEADERS([linux/btrfs.h], [
AC_CHECK_MEMBERS(m4_normalize([
struct btrfs_ioctl_feature_flags.compat_flags,
@@ -797,13 +830,31 @@
AC_CACHE_CHECK([for static_assert], [st_cv_have_static_assert],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <assert.h>]],
- [[static_assert(1,"")]])],
+ [[static_assert(1,"")]]
+ )
+ ],
[st_cv_have_static_assert=yes],
- [st_cv_have_static_assert=no])])
-if test "x$st_cv_have_static_assert" = xyes; then
- AC_DEFINE([HAVE_STATIC_ASSERT], [1],
- [Define to 1 if the system provides static_assert])
-fi
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([],
+ [[_Static_assert(1,"")]]
+ )
+ ],
+ [st_cv_have_static_assert=_Static_assert],
+ [st_cv_have_static_assert=no]
+ )
+ ]
+ )
+ ]
+ )
+case "x$st_cv_have_static_assert" in
+ xyes)
+ AC_DEFINE([HAVE_STATIC_ASSERT], [1],
+ [Define to 1 if the system provides static_assert])
+ ;;
+ x_Static_assert)
+ AC_DEFINE([HAVE__STATIC_ASSERT], [1],
+ [Define to 1 if the system provides _Static_assert])
+ ;;
+esac
AC_CHECK_LIB([dl], [dladdr], [dl_LIBS='-ldl'], [dl_LIBS=])
if test "x$ac_cv_lib_dl_dladdr" = xyes; then
@@ -844,148 +895,7 @@
AC_CHECK_TOOL([READELF], [readelf])
-dnl stack trace with libunwind
-libunwind_CPPFLAGS=
-libunwind_LDFLAGS=
-libunwind_LIBS=
-AC_ARG_WITH([libunwind],
- [AS_HELP_STRING([--with-libunwind],
- [use libunwind to implement stack tracing support])],
- [case "${withval}" in
- yes|no|check) ;;
- *) with_libunwind=yes
- libunwind_CPPFLAGS="-I${withval}/include"
- libunwind_LDFLAGS="-L${withval}/lib" ;;
- esac],
- [with_libunwind=check]
-)
-
-use_libunwind=no
-AS_IF([test "x$with_libunwind" != xno],
- [saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
-
- AC_CHECK_HEADERS([libunwind-ptrace.h],
- [saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
-
- AC_CHECK_LIB([unwind], [backtrace],
- [libunwind_LIBS="-lunwind $libunwind_LIBS"
-
- AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
- saved_LIBS="$LIBS"
- LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
-
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
- [[return !unw_create_addr_space(0, 0)]])
- ],
- [AC_MSG_RESULT([yes])
- libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
-
- AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
- [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
- use_libunwind=yes
- ],
- [if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace])
- fi
- ],
- [$libunwind_LIBS]
- )
- ],
- [AC_MSG_RESULT([no])
- if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic])
- fi
- ]
- )
-
- LIBS="$saved_LIBS"
- ],
- [if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find libunwind])
- fi
- ],
- [$libunwind_LIBS]
- )
-
- LDFLAGS="$saved_LDFLAGS"
- ],
- [if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
- fi
- ]
- )
-
- CPPFLAGS="$saved_CPPFLAGS"
- ]
-)
-
-dnl enable libunwind
-AC_MSG_CHECKING([whether to enable stack tracing support using libunwind])
-if test "x$use_libunwind" = xyes; then
- AC_DEFINE([USE_LIBUNWIND], 1, [Compile stack tracing functionality])
- AC_SUBST(libunwind_LIBS)
- AC_SUBST(libunwind_LDFLAGS)
- AC_SUBST(libunwind_CPPFLAGS)
-fi
-AM_CONDITIONAL([USE_LIBUNWIND], [test "x$use_libunwind" = xyes])
-AC_MSG_RESULT([$use_libunwind])
-
-dnl demangling symbols in the stack trace
-libiberty_CPPFLAGS=
-libiberty_LDFLAGS=
-libiberty_LIBS=
-AC_ARG_WITH([libiberty],
- [AS_HELP_STRING([--with-libiberty],
- [use libiberty to demangle symbols in stack trace])],
- [case "${withval}" in
- yes|no|check) ;;
- *) with_libiberty=yes
- libiberty_CPPFLAGS="-I${withval}/include"
- libiberty_LDFLAGS="-L${withval}/lib" ;;
- esac],
- [with_libiberty=check]
-)
-
-use_libiberty=no
-AS_IF([test "x$use_libunwind" = xyes && test "x$with_libiberty" != xno],
- [saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $libiberty_CPPFLAGS"
- AC_CHECK_HEADERS([demangle.h libiberty/demangle.h],
- [saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $libiberty_LDFLAGS"
- AC_CHECK_LIB([iberty],[cplus_demangle],
- [libiberty_LIBS="-liberty"
- use_libiberty=yes
- ],
- [if test "x$with_libiberty" != xcheck; then
- AC_MSG_FAILURE([failed to find cplus_demangle in libiberty])
- fi
- ]
- )
- LDFLAGS="$saved_LDFLAGS"
- ],
- [if test "x$with_libiberty" != xcheck; then
- AC_MSG_FAILURE([failed to find demangle.h])
- fi
- ]
- )
- CPPFLAGS="$saved_CPPFLAGS"
- ]
-)
-
-dnl enable libiberty
-AC_MSG_CHECKING([whether to enable demangling symbols in stack trace])
-if test "x$use_libiberty" = xyes; then
- AC_DEFINE([USE_DEMANGLE], 1, [Do demangling symbols in stack trace])
- AC_SUBST(libiberty_LIBS)
- AC_SUBST(libiberty_LDFLAGS)
- AC_SUBST(libiberty_CPPFLAGS)
-fi
-AM_CONDITIONAL([USE_DEMANGLE], [test "x$use_libiberty" = xyes])
-AC_MSG_RESULT([$use_libiberty])
+st_STACKTRACE
if test "$arch" = mips && test "$no_create" != yes; then
mkdir -p linux/mips
diff --git a/debian/changelog b/debian/changelog
index a93aed6..2b09968 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,14 @@
-strace (4.22-1) experimental; urgency=low
+strace (4.23-1) experimental; urgency=low
- * strace 4.22 snapshot.
+ * strace 4.23 snapshot.
- -- Strace <[email protected]> Thu, 14 Jun 2018 16:29:09 -0700
+ -- Strace <[email protected]> Fri, 15 Jun 2018 17:54:18 +0000
+
+strace (4.22-1) unstable; urgency=medium
+
+ * New upstream version.
+
+ -- Dmitry V. Levin <[email protected]> Thu, 05 Apr 2018 04:05:06 +0000
strace (4.21-1) unstable; urgency=medium
diff --git a/debian/changelog.in b/debian/changelog.in
index f9f7c20..833f2cf 100644
--- a/debian/changelog.in
+++ b/debian/changelog.in
@@ -4,6 +4,12 @@
-- Strace <@PACKAGE_BUGREPORT@> @DEB_CHANGELOGTIME@
+strace (4.22-1) unstable; urgency=medium
+
+ * New upstream version.
+
+ -- Dmitry V. Levin <[email protected]> Thu, 05 Apr 2018 04:05:06 +0000
+
strace (4.21-1) unstable; urgency=medium
* New upstream version.
diff --git a/debian/control b/debian/control
index 3caffd1..38e13a1 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@
Maintainer: Steve McIntyre <[email protected]>
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 s390 sparc sparc64 x32], debhelper (>= 7.0.0), gawk, libunwind-dev [amd64], libiberty-dev [amd64], 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 ppc64el s390 s390x sparc sparc64 x32], 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/rules b/debian/rules
index f335fed..b22767a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -61,7 +61,7 @@
build-udeb/Makefile: configure
mkdir -p $(@D)
cd $(@D); sh ../configure --enable-mpers=check --prefix=/usr \
- --without-libunwind --without-libiberty $(CONFIG_OPTS)
+ --without-stacktrace --without-libiberty $(CONFIG_OPTS)
build64/Makefile: configure
mkdir -p $(@D)
diff --git a/defs.h b/defs.h
index 62aa11c..4437d6f 100644
--- a/defs.h
+++ b/defs.h
@@ -166,6 +166,12 @@
# define HAVE_PERSONALITY_2_MPERS 0
#endif
+#ifdef WORDS_BIGENDIAN
+# define is_bigendian true
+#else
+# define is_bigendian false
+#endif
+
typedef struct ioctlent {
const char *symbol;
unsigned int code;
@@ -176,12 +182,22 @@
#define INJECT_F_RETVAL 0x04
#define INJECT_F_DELAY_ENTER 0x08
#define INJECT_F_DELAY_EXIT 0x10
+#define INJECT_F_SYSCALL 0x20
+
+#define INJECT_ACTION_FLAGS \
+ (INJECT_F_SIGNAL \
+ |INJECT_F_ERROR \
+ |INJECT_F_RETVAL \
+ |INJECT_F_DELAY_ENTER \
+ |INJECT_F_DELAY_EXIT \
+ )
struct inject_data {
- uint8_t flags; /* 5 of 8 flags are used so far */
+ uint8_t flags; /* 6 of 8 flags are used so far */
uint8_t signo; /* NSIG <= 128 */
uint16_t rval_idx; /* index in retval_vec */
uint16_t delay_idx; /* index in delay_data_vec */
+ uint16_t scno; /* syscall to be injected instead of -1 */
};
struct inject_opts {
@@ -219,10 +235,8 @@
struct timespec delay_expiration_time; /* When does the delay end */
struct mmap_cache_t *mmap_cache;
- unsigned int mmap_cache_size;
- unsigned int mmap_cache_generation;
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
void *unwind_ctx;
struct unwind_queue_t *unwind_queue;
#endif
@@ -257,6 +271,8 @@
#define TCB_INJECT_DELAY_EXIT 0x800 /* Current syscall needs to be delayed
on exit */
#define TCB_DELAYED 0x1000 /* Current syscall has been delayed */
+#define TCB_TAMPERED_NO_FAIL 0x2000 /* We tamper tcb with syscall
+ that should not fail. */
/* qualifier flags */
#define QUAL_TRACE 0x001 /* this system call should be traced */
@@ -281,24 +297,38 @@
#define recovering(tcp) ((tcp)->flags & TCB_RECOVERING)
#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)
#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 and unterminated, defined in sockaddr.c. */
+/** 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;
-extern const struct xlat evdev_abs[];
-extern const struct xlat iffflags[];
+/** 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 iffflags[];
extern const struct xlat ip_type_of_services[];
+extern const struct xlat ipc_private[];
extern const struct xlat msg_flags[];
extern const struct xlat netlink_protocols[];
extern const struct xlat nl_netfilter_msg_types[];
@@ -377,7 +407,7 @@
#define tracing_paths (global_path_set.num_selected != 0)
extern unsigned xflag;
extern unsigned followfork;
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
/* if this is true do the stack trace for every system call */
extern bool stack_trace_enabled;
#endif
@@ -456,43 +486,90 @@
return set_tcb_priv_data(tcp, (void *) val, 0);
}
+/**
+ * @return 0 on success, -1 on error.
+ */
extern int
umoven(struct tcb *, kernel_ulong_t addr, unsigned int len, void *laddr);
#define umove(pid, addr, objp) \
umoven((pid), (addr), sizeof(*(objp)), (void *) (objp))
+/**
+ * @return true on success, false on error.
+ */
+extern bool
+tfetch_mem64(struct tcb *, uint64_t addr, unsigned int len, void *laddr);
+
+static inline bool
+tfetch_mem(struct tcb *tcp, const kernel_ulong_t addr,
+ unsigned int len, void *laddr)
+{
+ return tfetch_mem64(tcp, addr, len, laddr);
+}
+#define tfetch_obj(pid, addr, objp) \
+ tfetch_mem((pid), (addr), sizeof(*(objp)), (void *) (objp))
+
+/**
+ * @return true on success, false on error.
+ */
+extern bool
+tfetch_mem64_ignore_syserror(struct tcb *, uint64_t addr,
+ unsigned int len, void *laddr);
+
+static inline bool
+tfetch_mem_ignore_syserror(struct tcb *tcp, const kernel_ulong_t addr,
+ unsigned int len, void *laddr)
+{
+ return tfetch_mem64_ignore_syserror(tcp, addr, len, laddr);
+}
+
+/**
+ * @return 0 on success, -1 on error (and print addr).
+ */
extern int
-umoven_or_printaddr(struct tcb *, kernel_ulong_t addr,
- unsigned int len, void *laddr);
+umoven_or_printaddr64(struct tcb *, uint64_t addr,
+ unsigned int len, void *laddr);
+#define umove_or_printaddr64(pid, addr, objp) \
+ umoven_or_printaddr64((pid), (addr), sizeof(*(objp)), (void *) (objp))
+
+static inline int
+umoven_or_printaddr(struct tcb *tcp, const kernel_ulong_t addr,
+ unsigned int len, void *laddr)
+{
+ return umoven_or_printaddr64(tcp, addr, len, laddr);
+}
#define umove_or_printaddr(pid, addr, objp) \
umoven_or_printaddr((pid), (addr), sizeof(*(objp)), (void *) (objp))
+/**
+ * @return 0 on success, -1 on error (and print addr).
+ */
extern int
-umoven_or_printaddr_ignore_syserror(struct tcb *, kernel_ulong_t addr,
- unsigned int len, void *laddr);
+umoven_or_printaddr64_ignore_syserror(struct tcb *, uint64_t addr,
+ unsigned int len, void *laddr);
+#define umove_or_printaddr64_ignore_syserror(pid, addr, objp) \
+ umoven_or_printaddr64_ignore_syserror((pid), (addr), sizeof(*(objp)), \
+ (void *) (objp))
+static inline int
+umoven_or_printaddr_ignore_syserror(struct tcb *tcp, const kernel_ulong_t addr,
+ unsigned int len, void *laddr)
+{
+ return umoven_or_printaddr64_ignore_syserror(tcp, addr, len, laddr);
+}
+#define umove_or_printaddr_ignore_syserror(pid, addr, objp) \
+ umoven_or_printaddr_ignore_syserror((pid), (addr), sizeof(*(objp)), \
+ (void *) (objp))
+
+/**
+ * @return strlen + 1 on success, 0 on success and no NUL seen, -1 on error.
+ */
extern int
umovestr(struct tcb *, kernel_ulong_t addr, unsigned int len, char *laddr);
extern int upeek(struct tcb *tcp, unsigned long, kernel_ulong_t *);
extern int upoke(struct tcb *tcp, unsigned long, kernel_ulong_t);
-extern bool
-print_array(struct tcb *,
- kernel_ulong_t start_addr,
- size_t nmemb,
- void *elem_buf,
- size_t elem_size,
- int (*umoven_func)(struct tcb *,
- kernel_ulong_t,
- unsigned int,
- void *),
- bool (*print_func)(struct tcb *,
- void *elem_buf,
- size_t elem_size,
- void *opaque_data),
- void *opaque_data);
-
#if HAVE_ARCH_GETRVAL2
extern long getrval2(struct tcb *);
#endif
@@ -500,16 +577,26 @@
extern const char *signame(const int);
extern void pathtrace_select_set(const char *, struct path_set *);
extern bool pathtrace_match_set(struct tcb *, struct path_set *);
-#define pathtrace_select(tcp) \
- pathtrace_select_set(tcp, &global_path_set)
-#define pathtrace_match(tcp) \
- pathtrace_match_set(tcp, &global_path_set)
+
+static inline void
+pathtrace_select(const char *path)
+{
+ return pathtrace_select_set(path, &global_path_set);
+}
+
+static inline bool
+pathtrace_match(struct tcb *tcp)
+{
+ return pathtrace_match_set(tcp, &global_path_set);
+}
+
extern int getfdpath(struct tcb *, int, char *, unsigned);
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);
struct dyxlat;
struct dyxlat *dyxlat_alloc(size_t nmemb);
@@ -564,11 +651,36 @@
ATTRIBUTE_FORMAT((printf, 2, 0));
extern void printaddr64(uint64_t addr);
-extern void printaddr(kernel_ulong_t addr);
-extern int printxvals(const uint64_t, const char *, const struct xlat *, ...)
+
+static inline void
+printaddr(const kernel_ulong_t addr)
+{
+ printaddr64(addr);
+}
+
+#define xlat_verbose(style_) ((style_) & XLAT_STYLE_VERBOSITY_MASK)
+#define xlat_format(style_) ((style_) & XLAT_STYLE_FORMAT_MASK)
+
+extern enum xlat_style xlat_verbosity;
+
+extern int printxvals_ex(uint64_t val, const char *dflt,
+ enum xlat_style, const struct xlat *, ...)
ATTRIBUTE_SENTINEL;
-extern int printxval_searchn(const struct xlat *xlat, size_t xlat_size,
- uint64_t val, const char *dflt);
+#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
@@ -576,24 +688,148 @@
*/
#define printxval_search(xlat__, val__, dflt__) \
printxval_searchn(xlat__, ARRAY_SIZE(xlat__) - 1, val__, dflt__)
-extern int sprintxval(char *buf, size_t size, const struct xlat *,
- unsigned int val, const char *dflt);
+#define printxval_search_ex(xlat__, val__, dflt__) \
+ printxval_searchn_ex((xlat__), ARRAY_SIZE(xlat__) - 1, (val__), \
+ (dflt__), XLAT_STYLE_DEFAULT)
+
+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)
+
+extern int sprintxval_ex(char *buf, size_t size, const struct xlat *,
+ unsigned int val, const char *dflt, enum xlat_style);
+
+static inline int
+sprintxval(char *buf, size_t size, const struct xlat *xlat, unsigned int val,
+ const char *dflt)
+{
+ 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);
+}
+
+/** Print a value in accordance with xlat formatting settings. */
+extern void print_xlat_ex(uint64_t val, const char *str, enum xlat_style style);
+#define print_xlat(val_) \
+ print_xlat_ex((val_), #val_, XLAT_STYLE_DEFAULT)
+#define print_xlat32(val_) \
+ print_xlat_ex((uint32_t) (val_), #val_, XLAT_STYLE_DEFAULT)
+#define print_xlat_u(val_) \
+ print_xlat_ex((val_), #val_, XLAT_STYLE_FMT_U)
+#define print_xlat_d(val_) \
+ print_xlat_ex((val_), #val_, XLAT_STYLE_FMT_D)
+
extern int printargs(struct tcb *);
extern int printargs_u(struct tcb *);
extern int printargs_d(struct tcb *);
-extern int printflags_ex(uint64_t, const char *, const struct xlat *, ...)
+extern int printflags_ex(uint64_t flags, const char *dflt,
+ enum xlat_style, const struct xlat *, ...)
ATTRIBUTE_SENTINEL;
-extern const char *sprintflags(const char *, const struct xlat *, uint64_t);
+extern const char *sprintflags_ex(const char *prefix, const struct xlat *,
+ uint64_t flags, 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);
+}
+
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);
+
+extern const char *sprint_mac_addr(const uint8_t addr[], size_t size);
+
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_dev_t(unsigned long long dev);
extern void print_abnormal_hi(kernel_ulong_t);
+extern bool print_int32_array_member(struct tcb *, void *elem_buf,
+ size_t elem_size, void *data);
+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);
+
+typedef bool (*tfetch_mem_fn)(struct tcb *, kernel_ulong_t addr,
+ unsigned int size, void *dest);
+typedef bool (*print_fn)(struct tcb *, void *elem_buf,
+ size_t elem_size, void *opaque_data);
+
+enum print_array_flag_bits {
+ PAF_PRINT_INDICES_BIT = XLAT_STYLE_SPEC_BITS + 1,
+ PAF_INDEX_XLAT_SORTED_BIT,
+ PAF_INDEX_XLAT_VALUE_INDEXED_BIT,
+};
+
+#define FLAG_(name_) name_ = 1 << name_##_BIT
+
+enum print_array_flags {
+ FLAG_(PAF_PRINT_INDICES),
+ FLAG_(PAF_INDEX_XLAT_SORTED),
+ FLAG_(PAF_INDEX_XLAT_VALUE_INDEXED),
+};
+
+#undef FLAG_
+
+/**
+ * @param flags Combination of xlat style settings and additional flags from
+ * enum print_array_flags.
+ */
+extern bool
+print_array_ex(struct tcb *,
+ kernel_ulong_t start_addr,
+ size_t nmemb,
+ void *elem_buf,
+ size_t elem_size,
+ tfetch_mem_fn tfetch_mem_func,
+ print_fn print_func,
+ void *opaque_data,
+ unsigned int flags,
+ const struct xlat *index_xlat,
+ size_t index_xlat_size,
+ const char *index_dflt);
+
+static inline bool
+print_array(struct tcb *const tcp,
+ const kernel_ulong_t start_addr,
+ const size_t nmemb,
+ void *const elem_buf,
+ const size_t elem_size,
+ tfetch_mem_fn tfetch_mem_func,
+ print_fn print_func,
+ void *const opaque_data)
+{
+ return print_array_ex(tcp, start_addr, nmemb, elem_buf, elem_size,
+ tfetch_mem_func, print_func, opaque_data,
+ 0, NULL, 0, NULL);
+}
+
extern kernel_ulong_t *
fetch_indirect_syscall_args(struct tcb *, kernel_ulong_t addr, unsigned int n_args);
@@ -681,8 +917,15 @@
extern void
print_struct_statfs64(struct tcb *, kernel_ulong_t addr, kernel_ulong_t size);
+extern int
+fetch_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr);
+extern void
+print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr);
+
extern void print_ifindex(unsigned int);
+extern void print_bpf_filter_code(const uint16_t code, bool extended);
+
extern void qualify(const char *);
extern unsigned int qual_flags(const unsigned int);
@@ -695,6 +938,7 @@
DECL_IOCTL(evdev);
DECL_IOCTL(file);
DECL_IOCTL(fs_x);
+DECL_IOCTL(inotify);
DECL_IOCTL(kvm);
DECL_IOCTL(nsfs);
DECL_IOCTL(ptp);
@@ -724,6 +968,10 @@
DECL_NETLINK(selinux);
DECL_NETLINK(sock_diag);
+extern void
+decode_netlink_kobject_uevent(struct tcb *, kernel_ulong_t addr,
+ kernel_ulong_t len);
+
extern int ts_nz(const struct timespec *);
extern int ts_cmp(const struct timespec *, const struct timespec *);
extern double ts_float(const struct timespec *);
@@ -732,7 +980,7 @@
extern void ts_mul(struct timespec *, const struct timespec *, int);
extern void ts_div(struct timespec *, const struct timespec *, int);
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
extern void unwind_init(void);
extern void unwind_tcb_init(struct tcb *);
extern void unwind_tcb_fin(struct tcb *);
@@ -755,7 +1003,7 @@
static inline int
printflags64(const struct xlat *x, uint64_t flags, const char *dflt)
{
- return printflags_ex(flags, dflt, x, NULL);
+ return printflags_ex(flags, dflt, XLAT_STYLE_DEFAULT, x, NULL);
}
static inline int
@@ -776,6 +1024,30 @@
return printxvals(val, dflt, x, NULL);
}
+static inline int
+printxval64_u(const struct xlat *x, const uint64_t val, const char *dflt)
+{
+ return printxvals_ex(val, dflt, XLAT_STYLE_FMT_U, x, NULL);
+}
+
+static inline int
+printxval_u(const struct xlat *x, const unsigned int val, const char *dflt)
+{
+ return printxvals_ex(val, dflt, XLAT_STYLE_FMT_U, x, NULL);
+}
+
+static inline int
+printxval64_d(const struct xlat *x, const int64_t val, const char *dflt)
+{
+ return printxvals_ex(val, dflt, XLAT_STYLE_FMT_D, x, NULL);
+}
+
+static inline int
+printxval_d(const struct xlat *x, const int val, const char *dflt)
+{
+ return printxvals_ex(val, dflt, XLAT_STYLE_FMT_D, x, NULL);
+}
+
static inline void
tprint_iov(struct tcb *tcp, kernel_ulong_t len, kernel_ulong_t addr,
enum iov_decode decode_iov)
@@ -840,6 +1112,19 @@
extern void tprintf_comment(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2));
extern void tprints_comment(const char *str);
+static inline void
+printaddr_comment(const kernel_ulong_t addr)
+{
+ tprintf_comment("%#llx", (unsigned long long) addr);
+}
+
+static inline void
+print_mac_addr(const char *prefix, const uint8_t addr[], size_t size)
+{
+ tprints(prefix);
+ tprints(sprint_mac_addr(addr, size));
+}
+
#if SUPPORTED_PERSONALITIES > 1
extern void set_personality(unsigned int personality);
extern unsigned current_personality;
@@ -925,39 +1210,94 @@
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);
-# define printnum_slong(tcp, addr) \
- printnum_long_int((tcp), (addr), "%" PRId64, "%d")
-# define printnum_ulong(tcp, addr) \
- printnum_long_int((tcp), (addr), "%" PRIu64, "%u")
-# define printnum_ptr(tcp, addr) \
- printnum_addr_long_int((tcp), (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
-# define printnum_slong(tcp, addr) \
- printnum_int64((tcp), (addr), "%" PRId64)
-# define printnum_ulong(tcp, addr) \
- printnum_int64((tcp), (addr), "%" PRIu64)
-# define printnum_ptr(tcp, addr) \
- printnum_addr_int64((tcp), (addr))
+
+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 */
-# define printnum_slong(tcp, addr) \
- printnum_int((tcp), (addr), "%d")
-# define printnum_ulong(tcp, addr) \
- printnum_int((tcp), (addr), "%u")
-# define printnum_ptr(tcp, addr) \
- printnum_addr_int((tcp), (addr))
+
+static inline bool
+printnum_slong(struct tcb *tcp, kernel_ulong_t addr)
+{
+ return printnum_int(tcp, addr, "%d");
+}
+
+static inline bool
+printnum_ulong(struct tcb *tcp, kernel_ulong_t addr)
+{
+ return printnum_int(tcp, addr, "%u");
+}
+
+static inline bool
+printnum_ptr(struct tcb *tcp, kernel_ulong_t addr)
+{
+ return printnum_addr_int(tcp, addr);
+}
+
#endif
#ifndef current_klongsize
extern bool printnum_addr_klong_int(struct tcb *, kernel_ulong_t addr);
-# define printnum_kptr(tcp, addr) \
- printnum_addr_klong_int((tcp), (addr))
+
+static inline bool
+printnum_kptr(struct tcb *tcp, kernel_ulong_t addr)
+{
+ return printnum_addr_klong_int(tcp, addr);
+}
+
#elif current_klongsize > 4
-# define printnum_kptr(tcp, addr) \
- printnum_addr_int64((tcp), (addr))
+
+static inline bool
+printnum_kptr(struct tcb *tcp, kernel_ulong_t addr)
+{
+ return printnum_addr_int64(tcp, addr);
+}
+
#else /* current_klongsize == 4 */
-# define printnum_kptr(tcp, addr) \
- printnum_addr_int((tcp), (addr))
+
+static inline bool
+printnum_kptr(struct tcb *tcp, kernel_ulong_t addr)
+{
+ return printnum_addr_int(tcp, addr);
+}
+
#endif
#define DECL_PRINTPAIR(name) \
@@ -1021,28 +1361,27 @@
sizeof(v) == sizeof(long) ? (long long) (long) (v) : \
(long long) (v))
+extern const char *const errnoent[];
+extern const char *const signalent[];
+extern const unsigned int nerrnos;
+extern const unsigned int nsignals;
+
extern const struct_sysent sysent0[];
-extern const char *const errnoent0[];
-extern const char *const signalent0[];
extern const struct_ioctlent ioctlent0[];
extern const char *const personality_names[];
+/* Personality designators to be used for specifying personality */
+extern const char *const personality_designators[];
#if SUPPORTED_PERSONALITIES > 1
extern const struct_sysent *sysent;
-extern const char *const *errnoent;
-extern const char *const *signalent;
extern const struct_ioctlent *ioctlent;
#else
# define sysent sysent0
-# define errnoent errnoent0
-# define signalent signalent0
# define ioctlent ioctlent0
#endif
extern unsigned nsyscalls;
-extern unsigned nerrnos;
-extern unsigned nsignals;
extern unsigned nioctlents;
extern const unsigned int nsyscall_vec[SUPPORTED_PERSONALITIES];
diff --git a/dm.c b/dm.c
index 77a286b..963852f 100644
--- a/dm.c
+++ b/dm.c
@@ -237,7 +237,7 @@
tprints(", deps=");
print_array(tcp, addr + offset_end, s.count, &dev_buf, sizeof(dev_buf),
- umoven_or_printaddr, dm_print_dev, NULL);
+ tfetch_mem, dm_print_dev, NULL);
tprints("}");
diff --git a/epoll.c b/epoll.c
index d5f2f55..80883c9 100644
--- a/epoll.c
+++ b/epoll.c
@@ -2,7 +2,7 @@
* Copyright (c) 2004-2007 Ulrich Drepper <[email protected]>
* Copyright (c) 2004 Roland McGrath <[email protected]>
* Copyright (c) 2005-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -94,7 +94,7 @@
} else {
struct epoll_event ev;
print_array(tcp, tcp->u_arg[1], tcp->u_rval, &ev, sizeof(ev),
- umoven_or_printaddr, print_epoll_event, 0);
+ tfetch_mem, print_epoll_event, 0);
tprintf(", %d, %d", (int) tcp->u_arg[2], (int) tcp->u_arg[3]);
}
}
diff --git a/error_prints.c b/error_prints.c
index 710e99b..6808318 100644
--- a/error_prints.c
+++ b/error_prints.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999-2017 The strace developers.
+ * Copyright (c) 1999-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -90,6 +90,7 @@
va_list p;
va_start(p, fmt);
verror_msg(0, fmt, p);
+ va_end(p);
die();
}
@@ -100,6 +101,7 @@
va_list p;
va_start(p, fmt);
verror_msg(0, fmt, p);
+ va_end(p);
}
fprintf(stderr, "Try '%s -h' for more information.\n",
program_invocation_name);
@@ -121,5 +123,6 @@
va_list p;
va_start(p, fmt);
verror_msg(errno, fmt, p);
+ va_end(p);
die();
}
diff --git a/evdev.c b/evdev.c
index 674c1c0..7ca15c9 100644
--- a/evdev.c
+++ b/evdev.c
@@ -29,6 +29,8 @@
#include "defs.h"
+#include "xlat/evdev_abs.h"
+
#ifdef HAVE_LINUX_INPUT_H
# include <linux/ioctl.h>
@@ -51,6 +53,8 @@
# define SYN_MAX 0xf
# endif
+const size_t evdev_abs_size = ARRAY_SIZE(evdev_abs) - 1;
+
static int
abs_ioctl(struct tcb *const tcp, const kernel_ulong_t arg)
{
@@ -94,7 +98,7 @@
if (!umove_or_printaddr(tcp, arg, &keycode)) {
tprintf("[%u, ", keycode[0]);
- printxval(evdev_keycode, keycode[1], "KEY_???");
+ printxval_index(evdev_keycode, keycode[1], "KEY_???");
tprints("]");
}
@@ -121,7 +125,7 @@
unsigned int i;
tprintf("index=%" PRIu16 ", keycode=", ike.index);
- printxval(evdev_keycode, ike.keycode, "KEY_???");
+ printxval_index(evdev_keycode, ike.keycode, "KEY_???");
tprints(", scancode=[");
for (i = 0; i < ARRAY_SIZE(ike.scancode); i++) {
if (i > 0)
@@ -160,9 +164,9 @@
}
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)
+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)
{
tprints(", ");
@@ -183,7 +187,7 @@
if (i < 0) {
tprints(" 0 ");
} else {
- printxval(decode_nr, i, dflt);
+ printxval_dispatch(decode_nr, decode_nr_size, i, dflt, xt);
while ((i = next_set_bit(decoded_arg, i + 1, size)) > 0) {
if (abbrev(tcp) && bit_displayed >= 3) {
@@ -191,7 +195,8 @@
break;
}
tprints(", ");
- printxval(decode_nr, i, dflt);
+ printxval_dispatch(decode_nr, decode_nr_size, i, dflt,
+ xt);
bit_displayed++;
}
}
@@ -201,6 +206,10 @@
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_), (xt_))
+
# ifdef EVIOCGMTSLOTS
static int
mtslots_ioctl(struct tcb *const tcp, const unsigned int code,
@@ -251,43 +260,42 @@
switch (ev_nr) {
case EV_SYN:
return decode_bitset(tcp, arg, evdev_sync,
- SYN_MAX, "SYN_???");
+ SYN_MAX, "SYN_???", XT_INDEXED);
case EV_KEY:
return decode_bitset(tcp, arg, evdev_keycode,
- KEY_MAX, "KEY_???");
+ KEY_MAX, "KEY_???", XT_INDEXED);
case EV_REL:
return decode_bitset(tcp, arg, evdev_relative_axes,
- REL_MAX, "REL_???");
+ REL_MAX, "REL_???", XT_INDEXED);
case EV_ABS:
return decode_bitset(tcp, arg, evdev_abs,
- ABS_MAX, "ABS_???");
+ ABS_MAX, "ABS_???", XT_INDEXED);
case EV_MSC:
return decode_bitset(tcp, arg, evdev_misc,
- MSC_MAX, "MSC_???");
-# ifdef EV_SW
+ MSC_MAX, "MSC_???", XT_INDEXED);
case EV_SW:
return decode_bitset(tcp, arg, evdev_switch,
- SW_MAX, "SW_???");
-# endif
+ SW_MAX, "SW_???", XT_INDEXED);
case EV_LED:
return decode_bitset(tcp, arg, evdev_leds,
- LED_MAX, "LED_???");
+ LED_MAX, "LED_???", XT_INDEXED);
case EV_SND:
return decode_bitset(tcp, arg, evdev_snd,
- SND_MAX, "SND_???");
+ SND_MAX, "SND_???", XT_INDEXED);
case EV_REP:
return decode_bitset(tcp, arg, evdev_autorepeat,
- REP_MAX, "REP_???");
+ REP_MAX, "REP_???", XT_INDEXED);
case EV_FF:
return decode_bitset(tcp, arg, evdev_ff_types,
- FF_MAX, "FF_???");
+ 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_???");
+ FF_STATUS_MAX, "FF_STATUS_???",
+ XT_INDEXED);
default:
tprints(", ");
printaddr(arg);
@@ -341,22 +349,23 @@
# ifdef EVIOCGPROP
case _IOC_NR(EVIOCGPROP(0)):
return decode_bitset(tcp, arg, evdev_prop,
- INPUT_PROP_MAX, "PROP_???");
+ INPUT_PROP_MAX, "PROP_???",
+ XT_INDEXED);
# endif
case _IOC_NR(EVIOCGSND(0)):
return decode_bitset(tcp, arg, evdev_snd,
- SND_MAX, "SND_???");
+ SND_MAX, "SND_???", XT_INDEXED);
# ifdef EVIOCGSW
case _IOC_NR(EVIOCGSW(0)):
return decode_bitset(tcp, arg, evdev_switch,
- SW_MAX, "SW_???");
+ SW_MAX, "SW_???", XT_INDEXED);
# endif
case _IOC_NR(EVIOCGKEY(0)):
return decode_bitset(tcp, arg, evdev_keycode,
- KEY_MAX, "KEY_???");
+ KEY_MAX, "KEY_???", XT_INDEXED);
case _IOC_NR(EVIOCGLED(0)):
return decode_bitset(tcp, arg, evdev_leds,
- LED_MAX, "LED_???");
+ LED_MAX, "LED_???", XT_INDEXED);
}
/* multi-number fixed-length commands */
diff --git a/execve.c b/execve.c
index 5455b15..32c84d0 100644
--- a/execve.c
+++ b/execve.c
@@ -6,7 +6,7 @@
* Copyright (c) 2007 Roland McGrath <[email protected]>
* Copyright (c) 2011-2012 Denys Vlasenko <[email protected]>
* Copyright (c) 2010-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2014-2017 The strace developers.
+ * Copyright (c) 2014-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -57,8 +57,11 @@
if (umoven(tcp, addr, wordsize, cp.data)) {
if (sep == start_sep)
printaddr(addr);
- else
- tprints(", ???]");
+ else {
+ tprints(", ...");
+ printaddr_comment(addr);
+ tprints("]");
+ }
return;
}
if (!(wordsize < sizeof(cp.p64) ? cp.p32 : cp.p64)) {
diff --git a/f_owner_ex.h b/f_owner_ex.h
new file mode 100644
index 0000000..ec76ac8
--- /dev/null
+++ b/f_owner_ex.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 Dmitry V. Levin <[email protected]>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_F_OWNER_EX_H
+#define STRACE_F_OWNER_EX_H
+
+#include <linux/fcntl.h>
+
+#if defined HAVE_STRUCT_F_OWNER_EX
+typedef struct f_owner_ex struct_kernel_f_owner_ex;
+#elif defined HAVE_STRUCT___KERNEL_F_OWNER_EX
+typedef struct __kernel_f_owner_ex struct_kernel_f_owner_ex;
+#else
+# error struct f_owner_ex definition not found in <linux/fcntl.h>
+#endif
+
+#endif /* !STRACE_F_OWNER_EX_H */
diff --git a/fanotify.c b/fanotify.c
index a9ec0e9..d99f384 100644
--- a/fanotify.c
+++ b/fanotify.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2014-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2014-2017 The strace developers.
+ * Copyright (c) 2014-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -75,10 +75,12 @@
#endif
printflags64(fan_event_flags, mask, "FAN_???");
tprints(", ");
- if ((int) tcp->u_arg[argn] == FAN_NOFD)
- tprints("FAN_NOFD, ");
- else
+ if ((int) tcp->u_arg[argn] == FAN_NOFD) {
+ print_xlat_d(FAN_NOFD);
+ tprints(", ");
+ } else {
print_dirfd(tcp, tcp->u_arg[argn]);
+ }
printpath(tcp, tcp->u_arg[argn + 1]);
return RVAL_DECODED;
diff --git a/fcntl.c b/fcntl.c
index a42489b..973684e 100644
--- a/fcntl.c
+++ b/fcntl.c
@@ -3,7 +3,7 @@
* Copyright (c) 1993 Branko Lankester <[email protected]>
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <[email protected]>
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
- * Copyright (c) 1999-2017 The strace developers.
+ * Copyright (c) 1999-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,7 +35,6 @@
#include "xlat/f_owner_types.h"
#include "xlat/f_seals.h"
#include "xlat/fcntlcmds.h"
-#include "xlat/fcntl64cmds.h"
#include "xlat/fdflags.h"
#include "xlat/lockfcmds.h"
#include "xlat/notifyflags.h"
@@ -197,18 +196,7 @@
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- const unsigned int cmd = tcp->u_arg[1];
- const char *str = xlookup(fcntlcmds, cmd);
- if (str) {
- tprints(str);
- } else {
- /*
- * fcntl syscall does not recognize these
- * constants, but we would like to show them
- * for better debugging experience.
- */
- printxval(fcntl64cmds, cmd, "F_???");
- }
+ printxval(fcntlcmds, tcp->u_arg[1], "F_???");
}
return print_fcntl(tcp);
}
@@ -219,12 +207,7 @@
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- const char *str = xlookup(fcntl64cmds, cmd);
- if (str) {
- tprints(str);
- } else {
- printxval(fcntlcmds, cmd, "F_???");
- }
+ printxval(fcntlcmds, cmd, "F_???");
}
switch (cmd) {
case F_SETLK64:
diff --git a/file_ioctl.c b/file_ioctl.c
index 51b88f1..fc45aa6 100644
--- a/file_ioctl.c
+++ b/file_ioctl.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2016 Jeff Mahoney <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -185,7 +185,7 @@
rc = print_array(tcp, arg + offsetof(typeof(args), info),
args.dest_count, &info, sizeof(info),
- umoven_or_printaddr,
+ tfetch_mem,
print_file_dedupe_range_info, limit);
tprints("}");
@@ -225,15 +225,15 @@
"FIEMAP_FLAG_???");
tprintf(", fm_mapped_extents=%u",
args.fm_mapped_extents);
- tprints(", fm_extents=");
if (abbrev(tcp)) {
- tprints("...");
+ tprints(", ...");
} else {
struct fiemap_extent fe;
+ tprints(", fm_extents=");
print_array(tcp,
arg + offsetof(typeof(args), fm_extents),
args.fm_mapped_extents, &fe, sizeof(fe),
- umoven_or_printaddr,
+ tfetch_mem,
print_fiemap_extent, 0);
}
tprints("}");
diff --git a/filter_qualify.c b/filter_qualify.c
index c1283fb..9b5569c 100644
--- a/filter_qualify.c
+++ b/filter_qualify.c
@@ -43,6 +43,11 @@
static struct number_set *trace_set;
static struct number_set *verbose_set;
+/* Only syscall numbers are personality-specific so far. */
+struct inject_personality_data {
+ uint16_t scno;
+};
+
static int
sigstr_to_uint(const char *s)
{
@@ -102,6 +107,7 @@
static bool
parse_inject_token(const char *const token, struct inject_opts *const fopts,
+ struct inject_personality_data *const pdata,
const bool fault_tokens_only)
{
const char *val;
@@ -137,6 +143,27 @@
/* F == F+0 */
fopts->step = 0;
}
+ } else if ((val = STR_STRIP_PREFIX(token, "syscall=")) != token) {
+ if (fopts->data.flags & INJECT_F_SYSCALL)
+ return false;
+
+ for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) {
+ kernel_long_t scno = scno_by_name(val, p, 0);
+
+ if (scno < 0)
+ return false;
+
+ /*
+ * We want to inject only pure system calls with no side
+ * effects.
+ */
+ if (!(sysent_vec[p][scno].sys_flags & TRACE_PURE))
+ return false;
+
+ pdata[p].scno = scno;
+ }
+
+ fopts->data.flags |= INJECT_F_SYSCALL;
} else if ((val = STR_STRIP_PREFIX(token, "error=")) != token) {
if (fopts->data.flags & (INJECT_F_ERROR | INJECT_F_RETVAL))
return false;
@@ -223,6 +250,7 @@
static const char *
parse_inject_expression(char *const str,
struct inject_opts *const fopts,
+ struct inject_personality_data *const pdata,
const bool fault_tokens_only)
{
if (str[0] == '\0' || str[0] == ':')
@@ -233,7 +261,7 @@
char *token;
while ((token = strtok_r(NULL, ":", &saveptr))) {
- if (!parse_inject_token(token, fopts, fault_tokens_only))
+ if (!parse_inject_token(token, fopts, pdata, fault_tokens_only))
return NULL;
}
@@ -308,9 +336,10 @@
.delay_idx = -1
}
};
+ struct inject_personality_data pdata[SUPPORTED_PERSONALITIES] = { { 0 } };
char *copy = xstrdup(str);
const char *name =
- parse_inject_expression(copy, &opts, fault_tokens_only);
+ parse_inject_expression(copy, &opts, pdata, fault_tokens_only);
if (!name)
error_msg_and_die("invalid %s '%s'", description, str);
@@ -321,7 +350,7 @@
free(copy);
/* If neither of retval, error, signal or delay is specified, then ... */
- if (!opts.data.flags) {
+ if (!(opts.data.flags & INJECT_ACTION_FLAGS)) {
if (fault_tokens_only) {
/* in fault= syntax the default error code is ENOSYS. */
opts.data.rval_idx = retval_new(ENOSYS);
@@ -353,6 +382,10 @@
if (is_number_in_set_array(i, tmp_set, p)) {
add_number_to_set_array(i, inject_set, p);
inject_vec[p][i] = opts;
+
+ /* Copy per-personality data. */
+ inject_vec[p][i].data.scno =
+ pdata[p].scno;
}
}
}
diff --git a/futex.c b/futex.c
index 16ccddb..9ce4ced 100644
--- a/futex.c
+++ b/futex.c
@@ -3,7 +3,7 @@
* Copyright (c) 2007-2008 Ulrich Drepper <[email protected]>
* Copyright (c) 2009 Andreas Schwab <[email protected]>
* Copyright (c) 2014-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2014-2017 The strace developers.
+ * Copyright (c) 2014-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,9 @@
#ifndef FUTEX_CLOCK_REALTIME
# define FUTEX_CLOCK_REALTIME 256
#endif
+#ifndef FUTEX_OP_OPARG_SHIFT
+# define FUTEX_OP_OPARG_SHIFT 8
+#endif
#include "xlat/futexops.h"
#include "xlat/futexwakeops.h"
@@ -94,8 +97,10 @@
tprintf(", %u, ", val2);
printaddr(uaddr2);
tprints(", ");
- if ((val3 >> 28) & 8)
- tprints("FUTEX_OP_OPARG_SHIFT<<28|");
+ if ((val3 >> 28) & FUTEX_OP_OPARG_SHIFT) {
+ print_xlat(FUTEX_OP_OPARG_SHIFT);
+ tprints("<<28|");
+ }
comment = printxval(futexwakeops, (val3 >> 28) & 0x7, NULL)
? NULL : "FUTEX_OP_???";
tprints("<<28");
diff --git a/gcc_compat.h b/gcc_compat.h
index 771286a..251080b 100644
--- a/gcc_compat.h
+++ b/gcc_compat.h
@@ -99,4 +99,15 @@
# define ATTRIBUTE_FALLTHROUGH ((void) 0)
#endif
+#if GNUC_PREREQ(6, 0)
+# define DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE \
+ _Pragma("GCC diagnostic push"); \
+ _Pragma("GCC diagnostic ignored \"-Wtautological-compare\"");
+# define DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE \
+ _Pragma("GCC diagnostic pop");
+#else
+# define DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE /* empty */
+# define DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE /* empty */
+#endif
+
#endif /* !STRACE_GCC_COMPAT_H */
diff --git a/gen_bpf_attr_check.sh b/gen_bpf_attr_check.sh
index 9da75ad..517e621 100755
--- a/gen_bpf_attr_check.sh
+++ b/gen_bpf_attr_check.sh
@@ -38,23 +38,29 @@
# define SoM(type_, member_) (sizeof(((type_ *)0)->member_))
EOF
-for struct in $(sed -n 's/^struct \(BPF_[^[:space:]]\+_struct\) .*/\1/p' < "$input"); do
+for struct in $(sed -n 's/^struct \([^[:space:]]\+_struct\) .*/\1/p' < "$input"); do
+ case "$struct" in
+ BPF_*) type_name='union bpf_attr' ;;
+ *) type_name="struct ${struct%_struct}" ;;
+ esac
+ TYPE_NAME="$(printf %s "$type_name" |tr '[:lower:] ' '[:upper:]_')"
+
enum="$(sed -n 's/^struct '"$struct"' \/\* \([^[:space:]]\+\) \*\/ {.*/\1/p' < "$input")"
ENUM="$(printf %s "$enum" |tr '[:lower:]' '[:upper:]')"
enum="$enum${enum:+.}"
ENUM="$ENUM${ENUM:+_}"
sed -n '/^struct '"$struct"' [^{]*{/,/^};$/p' < "$input" |
- sed -n 's/^[[:space:]]\+[^;]*[[:space:]]\([^[:space:];]\+\);$/\1/p' |
+ sed -n 's/^[[:space:]]\+[^][;]*[[:space:]]\([^][[:space:];]\+\)\(\[[^;]*\]\)\?;$/\1/p' |
while read field; do
FIELD="$(printf %s "$field" |tr '[:lower:]' '[:upper:]')"
cat <<EOF
-# ifdef HAVE_UNION_BPF_ATTR_$ENUM$FIELD
- static_assert(SoM(struct $struct, $field) == SoM(union bpf_attr, $enum$field),
+# ifdef HAVE_${TYPE_NAME}_$ENUM$FIELD
+ static_assert(SoM(struct $struct, $field) == SoM($type_name, $enum$field),
"$struct.$field size mismatch");
- static_assert(offsetof(struct $struct, $field) == offsetof(union bpf_attr, $enum$field),
+ static_assert(offsetof(struct $struct, $field) == offsetof($type_name, $enum$field),
"$struct.$field offset mismatch");
-# endif /* HAVE_UNION_BPF_ATTR_$ENUM$FIELD */
+# endif /* HAVE_${TYPE_NAME}_$ENUM$FIELD */
EOF
done
cat <<EOF
diff --git a/inotify_ioctl.c b/inotify_ioctl.c
new file mode 100644
index 0000000..c286e57
--- /dev/null
+++ b/inotify_ioctl.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+
+#include <linux/ioctl.h>
+
+#ifndef INOTIFY_IOC_SETNEXTWD
+# define INOTIFY_IOC_SETNEXTWD _IOW('I', 0, int32_t)
+#endif
+
+int
+inotify_ioctl(struct tcb *const tcp, const unsigned int code,
+ const kernel_ulong_t arg)
+{
+ switch (code) {
+ case INOTIFY_IOC_SETNEXTWD:
+ tprintf(", %d", (int) arg);
+
+ return RVAL_IOCTL_DECODED;
+ }
+
+ return RVAL_DECODED;
+}
diff --git a/io.c b/io.c
index 9ce1cf5..cd80305 100644
--- a/io.c
+++ b/io.c
@@ -3,7 +3,7 @@
* Copyright (c) 1993 Branko Lankester <[email protected]>
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <[email protected]>
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
- * Copyright (c) 1999-2017 The strace developers.
+ * Copyright (c) 1999-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -123,7 +123,7 @@
};
print_array(tcp, addr, len, iov, current_wordsize * 2,
- umoven_or_printaddr_ignore_syserror, print_iovec, &config);
+ tfetch_mem_ignore_syserror, print_iovec, &config);
}
SYS_FUNC(readv)
diff --git a/ioctl.c b/ioctl.c
index 132925d..93fb526 100644
--- a/ioctl.c
+++ b/ioctl.c
@@ -33,11 +33,6 @@
#include <linux/ioctl.h>
#include "xlat/ioctl_dirs.h"
-#ifdef HAVE_LINUX_INPUT_H
-# include <linux/input.h>
-#endif
-
-#include "xlat/evdev_abs.h"
#include "xlat/evdev_ev.h"
static int
@@ -92,7 +87,8 @@
if (_IOC_DIR(code) == _IOC_WRITE) {
if (nr >= 0xc0 && nr <= 0xc0 + 0x3f) {
tprints("EVIOCSABS(");
- printxval(evdev_abs, nr - 0xc0, "ABS_???");
+ printxval_indexn(evdev_abs, evdev_abs_size, nr - 0xc0,
+ "ABS_???");
tprints(")");
return 1;
}
@@ -108,7 +104,8 @@
return 1;
} else if (nr >= 0x40 && nr <= 0x40 + 0x3f) {
tprints("EVIOCGABS(");
- printxval(evdev_abs, nr - 0x40, "ABS_???");
+ printxval_indexn(evdev_abs, evdev_abs_size, nr - 0x40,
+ "ABS_???");
tprints(")");
return 1;
}
@@ -258,6 +255,8 @@
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);
@@ -325,6 +324,8 @@
case 0xae:
return kvm_ioctl(tcp, code, arg);
#endif
+ case 'I':
+ return inotify_ioctl(tcp, code, arg);
default:
break;
}
@@ -339,19 +340,29 @@
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- ret = ioctl_decode_command_number(tcp);
- if (!(ret & IOCTL_NUMBER_STOP_LOOKUP)) {
- iop = ioctl_lookup(tcp->u_arg[1]);
- if (iop) {
- if (ret)
- tprints(" or ");
- tprints(iop->symbol);
- while ((iop = ioctl_next_match(iop)))
- tprintf(" or %s", iop->symbol);
- } else if (!ret) {
- ioctl_print_code(tcp->u_arg[1]);
+
+ if (xlat_verbosity != XLAT_STYLE_ABBREV)
+ tprintf("%#x", (unsigned int) tcp->u_arg[1]);
+ if (xlat_verbosity == XLAT_STYLE_VERBOSE)
+ tprints(" /* ");
+ if (xlat_verbosity != XLAT_STYLE_RAW) {
+ ret = ioctl_decode_command_number(tcp);
+ if (!(ret & IOCTL_NUMBER_STOP_LOOKUP)) {
+ iop = ioctl_lookup(tcp->u_arg[1]);
+ if (iop) {
+ if (ret)
+ tprints(" or ");
+ tprints(iop->symbol);
+ while ((iop = ioctl_next_match(iop)))
+ tprintf(" or %s", iop->symbol);
+ } else if (!ret) {
+ ioctl_print_code(tcp->u_arg[1]);
+ }
}
}
+ if (xlat_verbosity == XLAT_STYLE_VERBOSE)
+ tprints(" */");
+
ret = ioctl_decode(tcp);
} else {
ret = ioctl_decode(tcp) | RVAL_DECODED;
diff --git a/ioctl_redefs1.h b/ioctl_redefs1.h
index 7021e38..77a7dc0 100644
--- a/ioctl_redefs1.h
+++ b/ioctl_redefs1.h
@@ -646,62 +646,6 @@
# undef IVTV_IOC_DMA_FRAME
# define IVTV_IOC_DMA_FRAME 0x403856c0
#endif
-#ifdef IXJCTL_CID
-# undef IXJCTL_CID
-# define IXJCTL_CID 0x800471d4
-#endif
-#ifdef IXJCTL_CIDCW
-# undef IXJCTL_CIDCW
-# define IXJCTL_CIDCW 0x400471d9
-#endif
-#ifdef IXJCTL_DRYBUFFER_READ
-# undef IXJCTL_DRYBUFFER_READ
-# define IXJCTL_DRYBUFFER_READ 0x800471e6
-#endif
-#ifdef IXJCTL_FILTER_CADENCE
-# undef IXJCTL_FILTER_CADENCE
-# define IXJCTL_FILTER_CADENCE 0x400471d6
-#endif
-#ifdef IXJCTL_FRAMES_READ
-# undef IXJCTL_FRAMES_READ
-# define IXJCTL_FRAMES_READ 0x800471e2
-#endif
-#ifdef IXJCTL_FRAMES_WRITTEN
-# undef IXJCTL_FRAMES_WRITTEN
-# define IXJCTL_FRAMES_WRITTEN 0x800471e3
-#endif
-#ifdef IXJCTL_INIT_TONE
-# undef IXJCTL_INIT_TONE
-# define IXJCTL_INIT_TONE 0x400471c9
-#endif
-#ifdef IXJCTL_READ_WAIT
-# undef IXJCTL_READ_WAIT
-# define IXJCTL_READ_WAIT 0x800471e4
-#endif
-#ifdef IXJCTL_SET_FILTER
-# undef IXJCTL_SET_FILTER
-# define IXJCTL_SET_FILTER 0x400471c7
-#endif
-#ifdef IXJCTL_SET_FILTER_RAW
-# undef IXJCTL_SET_FILTER_RAW
-# define IXJCTL_SET_FILTER_RAW 0x400471dd
-#endif
-#ifdef IXJCTL_SIGCTL
-# undef IXJCTL_SIGCTL
-# define IXJCTL_SIGCTL 0x400471e9
-#endif
-#ifdef IXJCTL_TONE_CADENCE
-# undef IXJCTL_TONE_CADENCE
-# define IXJCTL_TONE_CADENCE 0x400471ca
-#endif
-#ifdef IXJCTL_VERSION
-# undef IXJCTL_VERSION
-# define IXJCTL_VERSION 0x800471da
-#endif
-#ifdef IXJCTL_WRITE_WAIT
-# undef IXJCTL_WRITE_WAIT
-# define IXJCTL_WRITE_WAIT 0x800471e5
-#endif
#ifdef KCOV_INIT_TRACE
# undef KCOV_INIT_TRACE
# define KCOV_INIT_TRACE 0x80046301
@@ -866,6 +810,10 @@
# undef PERF_EVENT_IOC_ID
# define PERF_EVENT_IOC_ID 0x80042407
#endif
+#ifdef PERF_EVENT_IOC_MODIFY_ATTRIBUTES
+# undef PERF_EVENT_IOC_MODIFY_ATTRIBUTES
+# define PERF_EVENT_IOC_MODIFY_ATTRIBUTES 0x4004240b
+#endif
#ifdef PERF_EVENT_IOC_QUERY_BPF
# undef PERF_EVENT_IOC_QUERY_BPF
# define PERF_EVENT_IOC_QUERY_BPF 0xc004240a
@@ -890,22 +838,6 @@
# undef PHN_SET_REGS
# define PHN_SET_REGS 0x40047003
#endif
-#ifdef PHONE_CAPABILITIES_CHECK
-# undef PHONE_CAPABILITIES_CHECK
-# define PHONE_CAPABILITIES_CHECK 0x40047182
-#endif
-#ifdef PHONE_CAPABILITIES_LIST
-# undef PHONE_CAPABILITIES_LIST
-# define PHONE_CAPABILITIES_LIST 0x80047181
-#endif
-#ifdef PHONE_QUERY_CODEC
-# undef PHONE_QUERY_CODEC
-# define PHONE_QUERY_CODEC 0xc00471a7
-#endif
-#ifdef PHONE_RING_START
-# undef PHONE_RING_START
-# define PHONE_RING_START 0x40047187
-#endif
#ifdef PMU_IOC_CAN_SLEEP
# undef PMU_IOC_CAN_SLEEP
# define PMU_IOC_CAN_SLEEP 0x80044205
diff --git a/ioctlent0.h b/ioctlent0.h
index a4d4e28..a6f923e 100644
--- a/ioctlent0.h
+++ b/ioctlent0.h
@@ -173,6 +173,7 @@
{ "VFIO_IOMMU_UNMAP_DMA", 0x00003b72 },
{ "VFIO_DEVICE_GET_GFX_DMABUF", 0x00003b73 },
{ "VFIO_IOMMU_ENABLE", 0x00003b73 },
+{ "VFIO_DEVICE_IOEVENTFD", 0x00003b74 },
{ "VFIO_IOMMU_DISABLE", 0x00003b74 },
{ "VFIO_IOMMU_SPAPR_REGISTER_MEMORY", 0x00003b75 },
{ "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", 0x00003b76 },
@@ -354,6 +355,7 @@
{ "RFKILL_IOCTL_NOINPUT", 0x00005201 },
{ "RNDZAPENTCNT", 0x00005204 },
{ "RNDCLEARPOOL", 0x00005206 },
+{ "RNDRESEEDCRNG", 0x00005207 },
{ "CDROMPAUSE", 0x00005301 },
{ "CDROMRESUME", 0x00005302 },
{ "CDROMPLAYMSF", 0x00005303 },
@@ -666,34 +668,6 @@
{ "PPRELEASE", 0x0000708c },
{ "PPYIELD", 0x0000708d },
{ "PPEXCL", 0x0000708f },
-{ "PHONE_CAPABILITIES", 0x00007180 },
-{ "PHONE_RING", 0x00007183 },
-{ "PHONE_HOOKSTATE", 0x00007184 },
-{ "OLD_PHONE_RING_START", 0x00007187 },
-{ "PHONE_RING_STOP", 0x00007188 },
-{ "PHONE_REC_START", 0x0000718a },
-{ "PHONE_REC_STOP", 0x0000718b },
-{ "PHONE_REC_LEVEL", 0x0000718f },
-{ "PHONE_PLAY_START", 0x00007191 },
-{ "PHONE_PLAY_STOP", 0x00007192 },
-{ "PHONE_PLAY_LEVEL", 0x00007195 },
-{ "PHONE_GET_TONE_ON_TIME", 0x0000719e },
-{ "PHONE_GET_TONE_OFF_TIME", 0x0000719f },
-{ "PHONE_GET_TONE_STATE", 0x000071a0 },
-{ "PHONE_BUSY", 0x000071a1 },
-{ "PHONE_RINGBACK", 0x000071a2 },
-{ "PHONE_DIALTONE", 0x000071a3 },
-{ "PHONE_CPT_STOP", 0x000071a4 },
-{ "PHONE_PSTN_GET_STATE", 0x000071a5 },
-{ "PHONE_PSTN_LINETEST", 0x000071a8 },
-{ "IXJCTL_DSP_RESET", 0x000071c0 },
-{ "IXJCTL_DSP_IDLE", 0x000071c5 },
-{ "IXJCTL_TESTRAM", 0x000071c6 },
-{ "IXJCTL_AEC_STOP", 0x000071cc },
-{ "IXJCTL_AEC_GET_LEVEL", 0x000071cd },
-{ "IXJCTL_PSTN_LINETEST", 0x000071d3 },
-{ "IXJCTL_PLAY_CID", 0x000071d7 },
-{ "IXJCTL_DRYBUFFER_CLEAR", 0x000071e7 },
{ "BR_OK", 0x00007201 },
{ "BR_DEAD_REPLY", 0x00007205 },
{ "BR_TRANSACTION_COMPLETE", 0x00007206 },
@@ -885,7 +859,10 @@
{ "VHOST_SET_OWNER", 0x0000af01 },
{ "VHOST_RESET_OWNER", 0x0000af02 },
{ "BT_BMC_IOCTL_SMS_ATN", 0x0000b100 },
+{ "IPMI_BMC_IOCTL_SET_SMS_ATN", 0x0000b100 },
+{ "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", 0x0000b101 },
{ "PPPOEIOCDFWD", 0x0000b101 },
+{ "IPMI_BMC_IOCTL_FORCE_ABORT", 0x0000b102 },
{ "RPMSG_DESTROY_EPT_IOCTL", 0x0000b502 },
{ "NS_GET_USERNS", 0x0000b701 },
{ "NS_GET_PARENT", 0x0000b702 },
@@ -915,8 +892,6 @@
{ "PPWCONTROL", 0x40017084 },
{ "PPWDATA", 0x40017086 },
{ "PPWCTLONIRQ", 0x40017092 },
-{ "PHONE_MAXRINGS", 0x40017185 },
-{ "PHONE_PLAY_TONE", 0x4001719b },
{ "SONYPI_IOCSBRT", 0x40017600 },
{ "SONYPI_IOCSBLUE", 0x40017609 },
{ "SONYPI_IOCSFAN", 0x4001760b },
@@ -932,7 +907,6 @@
{ "DMX_ADD_PID", 0x40026f33 },
{ "DMX_REMOVE_PID", 0x40026f34 },
{ "PPFCONTROL", 0x4002708e },
-{ "PHONE_RING_CADENCE", 0x40027186 },
{ "SET_BITMAP_FILE", 0x4004092b },
{ "IB_USER_MAD_UNREGISTER_AGENT", 0x40041b02 },
{ "HFI1_IOCTL_RECV_CTRL", 0x40041be8 },
@@ -988,6 +962,7 @@
{ "HCISETSCOMTU", 0x400448e4 },
{ "HCIBLOCKADDR", 0x400448e6 },
{ "HCIUNBLOCKADDR", 0x400448e7 },
+{ "INOTIFY_IOC_SETNEXTWD", 0x40044900 },
{ "MFB_SET_PIXFMT", 0x40044d08 },
{ "OTPGETREGIONCOUNT", 0x40044d0e },
{ "UBI_IOCEBER", 0x40044f01 },
@@ -1109,37 +1084,6 @@
{ "PPNEGOT", 0x40047091 },
{ "PPSETPHASE", 0x40047094 },
{ "PPSETFLAGS", 0x4004709b },
-{ "PHONE_REC_CODEC", 0x40047189 },
-{ "PHONE_REC_DEPTH", 0x4004718c },
-{ "PHONE_FRAME", 0x4004718d },
-{ "PHONE_REC_VOLUME", 0x4004718e },
-{ "PHONE_PLAY_CODEC", 0x40047190 },
-{ "PHONE_PLAY_DEPTH", 0x40047193 },
-{ "PHONE_PLAY_VOLUME", 0x40047194 },
-{ "PHONE_DTMF_OOB", 0x40047199 },
-{ "PHONE_SET_TONE_ON_TIME", 0x4004719c },
-{ "PHONE_SET_TONE_OFF_TIME", 0x4004719d },
-{ "PHONE_PSTN_SET_STATE", 0x400471a4 },
-{ "PHONE_WINK_DURATION", 0x400471a6 },
-{ "PHONE_VAD", 0x400471a9 },
-{ "PHONE_WINK", 0x400471aa },
-{ "IXJCTL_GET_FILTER_HIST", 0x400471c8 },
-{ "IXJCTL_AEC_START", 0x400471cb },
-{ "IXJCTL_SET_LED", 0x400471ce },
-{ "IXJCTL_MIXER", 0x400471cf },
-{ "IXJCTL_DAA_COEFF_SET", 0x400471d0 },
-{ "IXJCTL_PORT", 0x400471d1 },
-{ "IXJCTL_DAA_AGAIN", 0x400471d2 },
-{ "IXJCTL_POTS_PSTN", 0x400471d5 },
-{ "PHONE_REC_VOLUME_LINEAR", 0x400471db },
-{ "PHONE_PLAY_VOLUME_LINEAR", 0x400471dc },
-{ "IXJCTL_HZ", 0x400471e0 },
-{ "IXJCTL_RATE", 0x400471e1 },
-{ "IXJCTL_DTMF_PRESCALE", 0x400471e8 },
-{ "IXJCTL_SC_RXG", 0x400471ea },
-{ "IXJCTL_SC_TXG", 0x400471eb },
-{ "IXJCTL_INTERCOM_START", 0x400471fd },
-{ "IXJCTL_INTERCOM_STOP", 0x400471fe },
{ "FAT_IOCTL_SET_ATTRIBUTES", 0x40047211 },
{ "SCIF_LISTEN", 0x40047302 },
{ "PPPIOCATTCHAN", 0x40047438 },
@@ -1187,6 +1131,7 @@
{ "FW_CDEV_IOC_RECEIVE_PHY_PACKETS", 0x40082316 },
{ "PERF_EVENT_IOC_PERIOD", 0x40082404 },
{ "PERF_EVENT_IOC_SET_FILTER", 0x40082406 },
+{ "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", 0x4008240b },
{ "STP_SET_OPTIONS", 0x40082502 },
{ "FBIO_RADEON_SET_MIRROR", 0x40084004 },
{ "AGPIOC_SETUP", 0x40084103 },
@@ -1208,6 +1153,8 @@
{ "AMDKFD_IOC_RESET_EVENT", 0x40084b0b },
{ "AMDKFD_IOC_DBG_REGISTER", 0x40084b0d },
{ "AMDKFD_IOC_DBG_UNREGISTER", 0x40084b0e },
+{ "AMDKFD_IOC_ACQUIRE_VM", 0x40084b15 },
+{ "AMDKFD_IOC_FREE_MEMORY_OF_GPU", 0x40084b17 },
{ "MEMERASE", 0x40084d02 },
{ "MFB_SET_AOID", 0x40084d04 },
{ "MEMLOCK", 0x40084d05 },
@@ -1294,15 +1241,6 @@
{ "PPS_SETPARAMS", 0x400870a2 },
{ "PPS_KC_BIND", 0x400870a5 },
{ "SPIOCSTYPE", 0x40087101 },
-{ "PHONE_CAPABILITIES_CHECK", 0x40087182 },
-{ "PHONE_RING_START", 0x40087187 },
-{ "IXJCTL_SET_FILTER", 0x400871c7 },
-{ "IXJCTL_INIT_TONE", 0x400871c9 },
-{ "IXJCTL_TONE_CADENCE", 0x400871ca },
-{ "IXJCTL_FILTER_CADENCE", 0x400871d6 },
-{ "IXJCTL_CIDCW", 0x400871d9 },
-{ "IXJCTL_SET_FILTER_RAW", 0x400871dd },
-{ "IXJCTL_SIGCTL", 0x400871e9 },
{ "PPPIOCSNPMODE", 0x4008744b },
{ "FS_IOC_SETVERSION", 0x40087602 },
{ "ASHMEM_SET_SIZE", 0x40087703 },
@@ -1898,15 +1836,6 @@
{ "PPGETMODE", 0x80047098 },
{ "PPGETPHASE", 0x80047099 },
{ "PPGETFLAGS", 0x8004709a },
-{ "PHONE_DTMF_READY", 0x80047196 },
-{ "PHONE_GET_DTMF", 0x80047197 },
-{ "PHONE_GET_DTMF_ASCII", 0x80047198 },
-{ "PHONE_EXCEPTION", 0x8004719a },
-{ "IXJCTL_CARDTYPE", 0x800471c1 },
-{ "IXJCTL_SERIAL", 0x800471c2 },
-{ "IXJCTL_DSP_TYPE", 0x800471c3 },
-{ "IXJCTL_DSP_VERSION", 0x800471c4 },
-{ "IXJCTL_VMWI", 0x800471d8 },
{ "BR_ERROR", 0x80047200 },
{ "BR_ACQUIRE_RESULT", 0x80047204 },
{ "FAT_IOCTL_GET_ATTRIBUTES", 0x80047210 },
@@ -1999,14 +1928,6 @@
{ "RTC_EPOCH_READ", 0x8008700d },
{ "PPS_GETPARAMS", 0x800870a1 },
{ "PPS_GETCAP", 0x800870a3 },
-{ "PHONE_CAPABILITIES_LIST", 0x80087181 },
-{ "IXJCTL_CID", 0x800871d4 },
-{ "IXJCTL_VERSION", 0x800871da },
-{ "IXJCTL_FRAMES_READ", 0x800871e2 },
-{ "IXJCTL_FRAMES_WRITTEN", 0x800871e3 },
-{ "IXJCTL_READ_WAIT", 0x800871e4 },
-{ "IXJCTL_WRITE_WAIT", 0x800871e5 },
-{ "IXJCTL_DRYBUFFER_READ", 0x800871e6 },
{ "BR_DEAD_BINDER", 0x8008720f },
{ "BR_CLEAR_DEATH_NOTIFICATION_DONE", 0x80087210 },
{ "FS_IOC_GETVERSION", 0x80087601 },
@@ -2262,6 +2183,7 @@
{ "DRM_IOCTL_ADD_DRAW", 0xc0046427 },
{ "DRM_IOCTL_RM_DRAW", 0xc0046428 },
{ "DRM_IOCTL_MGA_WAIT_FENCE", 0xc004644b },
+{ "DRM_IOCTL_VC4_PERFMON_DESTROY", 0xc004644d },
{ "DRM_IOCTL_MODE_RMFB", 0xc00464af },
{ "DRM_IOCTL_MODE_DESTROY_DUMB", 0xc00464b4 },
{ "DRM_IOCTL_MODE_DESTROYPROPBLOB", 0xc00464be },
@@ -2328,7 +2250,6 @@
{ "PHN_GET_REGS", 0xc0087002 },
{ "PHN_GETREG", 0xc0087005 },
{ "PPS_FETCH", 0xc00870a4 },
-{ "PHONE_QUERY_CODEC", 0xc00871a7 },
{ "MIC_VIRTIO_ADD_DEVICE", 0xc0087301 },
{ "SCIF_BIND", 0xc0087301 },
{ "MIC_VIRTIO_COPY_DESC", 0xc0087302 },
@@ -2368,7 +2289,6 @@
{ "FSL_HV_IOCTL_PARTITION_GET_STATUS", 0xc00caf02 },
{ "MBXFB_IOCX_REG", 0xc00cf405 },
{ "BLKREPORTZONE", 0xc0101282 },
-{ "RDMA_VERBS_IOCTL", 0xc0101b01 },
{ "STP_POLICY_ID_SET", 0xc0102500 },
{ "CAPI_GET_VERSION", 0xc0104307 },
{ "CAPI_MANUFACTURER_CMD", 0xc0104320 },
@@ -2379,6 +2299,7 @@
{ "SNDRV_EMUX_IOCTL_LOAD_PATCH", 0xc0104881 },
{ "SNDRV_EMUX_IOCTL_MISC_MODE", 0xc0104884 },
{ "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", 0xc0104b11 },
+{ "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", 0xc0104b14 },
{ "MEMWRITEOOB", 0xc0104d03 },
{ "MEMREADOOB", 0xc0104d04 },
{ "MEMGETREGIONINFO", 0xc0104d08 },
@@ -2440,6 +2361,7 @@
{ "DRM_IOCTL_TEGRA_GEM_GET_TILING", 0xc010644b },
{ "DRM_IOCTL_VC4_GEM_MADVISE", 0xc010644b },
{ "DRM_IOCTL_RADEON_INDIRECT", 0xc010644d },
+{ "DRM_IOCTL_VC4_PERFMON_GET_VALUES", 0xc010644e },
{ "DRM_IOCTL_R128_INDIRECT", 0xc010644f },
{ "DRM_IOCTL_AMDGPU_GEM_OP", 0xc0106450 },
{ "DRM_IOCTL_RADEON_GETPARAM", 0xc0106451 },
@@ -2453,6 +2375,7 @@
{ "DRM_IOCTL_I915_GEM_WAIT", 0xc010646c },
{ "DRM_IOCTL_RADEON_GEM_OP", 0xc010646c },
{ "DRM_IOCTL_I915_REG_READ", 0xc0106471 },
+{ "DRM_IOCTL_I915_QUERY", 0xc0106479 },
{ "DRM_IOCTL_MODE_SETPROPERTY", 0xc01064ab },
{ "DRM_IOCTL_MODE_GETPROPBLOB", 0xc01064ac },
{ "DRM_IOCTL_MODE_MAP_DUMB", 0xc01064b3 },
@@ -2487,6 +2410,7 @@
{ "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", 0xc014646b },
{ "DRM_IOCTL_MODE_GETENCODER", 0xc01464a6 },
{ "VTPM_PROXY_IOC_NEW_DEV", 0xc014a100 },
+{ "RDMA_VERBS_IOCTL", 0xc0181b01 },
{ "HFI1_IOCTL_TID_UPDATE", 0xc0181be4 },
{ "HFI1_IOCTL_TID_FREE", 0xc0181be5 },
{ "HFI1_IOCTL_TID_INVAL_READ", 0xc0181bed },
@@ -2500,6 +2424,8 @@
{ "ION_IOC_ALLOC", 0xc0184900 },
{ "ION_IOC_HEAP_QUERY", 0xc0184908 },
{ "AMDKFD_IOC_WAIT_EVENTS", 0xc0184b0c },
+{ "AMDKFD_IOC_MAP_MEMORY_TO_GPU", 0xc0184b18 },
+{ "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", 0xc0184b19 },
{ "MEMWRITEOOB64", 0xc0184d15 },
{ "MEMREADOOB64", 0xc0184d16 },
{ "USBDEVFS_CONTROL", 0xc0185500 },
@@ -2521,6 +2447,7 @@
{ "DRM_IOCTL_ETNAVIV_GEM_USERPTR", 0xc0186448 },
{ "DRM_IOCTL_I915_ALLOC", 0xc0186448 },
{ "DRM_IOCTL_VIRTGPU_GET_CAPS", 0xc0186449 },
+{ "DRM_IOCTL_VC4_PERFMON_CREATE", 0xc018644c },
{ "DRM_IOCTL_VIA_WAIT_IRQ", 0xc018644d },
{ "DRM_IOCTL_AMDGPU_GEM_USERPTR", 0xc0186451 },
{ "DRM_IOCTL_AMDGPU_WAIT_FENCES", 0xc0186452 },
@@ -2629,6 +2556,7 @@
{ "FW_CDEV_IOC_GET_INFO", 0xc0282300 },
{ "AMDKFD_IOC_GET_CLOCK_COUNTERS", 0xc0284b05 },
{ "AMDKFD_IOC_GET_TILE_CONFIG", 0xc0284b12 },
+{ "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", 0xc0284b16 },
{ "VIDIOC_G_EDID", 0xc0285628 },
{ "VIDIOC_SUBDEV_G_EDID", 0xc0285628 },
{ "VIDIOC_SUBDEV_S_EDID", 0xc0285629 },
@@ -2825,7 +2753,6 @@
{ "VIDIOC_SUBDEV_ENUM_DV_TIMINGS", 0xc0945662 },
{ "SNDRV_PCM_IOCTL_STATUS_EXT", 0xc0984124 },
{ "VBG_IOCTL_HGCM_CONNECT", 0xc09c5604 },
-{ "DRM_IOCTL_VC4_SUBMIT_CL", 0xc0a06440 },
{ "DRM_IOCTL_VC4_GET_HANG_STATE", 0xc0a06446 },
{ "HT_CXLFLASH_LUN_PROVISION", 0xc0a0cabf },
{ "SOUND_MIXER_GETLEVELS", 0xc0a44d74 },
@@ -2833,6 +2760,7 @@
{ "SNDRV_SEQ_IOCTL_CREATE_PORT", 0xc0a85320 },
{ "SNDRV_SEQ_IOCTL_GET_PORT_INFO", 0xc0a85322 },
{ "SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT", 0xc0a85352 },
+{ "DRM_IOCTL_VC4_SUBMIT_CL", 0xc0a86440 },
{ "SNDRV_SEQ_IOCTL_GET_CLIENT_INFO", 0xc0bc5310 },
{ "SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT", 0xc0bc5351 },
{ "FS_IOC_GETFSMAP", 0xc0c0583b },
diff --git a/ioctlent1.h b/ioctlent1.h
index a28605e..d9a065e 100644
--- a/ioctlent1.h
+++ b/ioctlent1.h
@@ -173,6 +173,7 @@
{ "VFIO_IOMMU_UNMAP_DMA", 0x00003b72 },
{ "VFIO_DEVICE_GET_GFX_DMABUF", 0x00003b73 },
{ "VFIO_IOMMU_ENABLE", 0x00003b73 },
+{ "VFIO_DEVICE_IOEVENTFD", 0x00003b74 },
{ "VFIO_IOMMU_DISABLE", 0x00003b74 },
{ "VFIO_IOMMU_SPAPR_REGISTER_MEMORY", 0x00003b75 },
{ "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", 0x00003b76 },
@@ -354,6 +355,7 @@
{ "RFKILL_IOCTL_NOINPUT", 0x00005201 },
{ "RNDZAPENTCNT", 0x00005204 },
{ "RNDCLEARPOOL", 0x00005206 },
+{ "RNDRESEEDCRNG", 0x00005207 },
{ "CDROMPAUSE", 0x00005301 },
{ "CDROMRESUME", 0x00005302 },
{ "CDROMPLAYMSF", 0x00005303 },
@@ -666,34 +668,6 @@
{ "PPRELEASE", 0x0000708c },
{ "PPYIELD", 0x0000708d },
{ "PPEXCL", 0x0000708f },
-{ "PHONE_CAPABILITIES", 0x00007180 },
-{ "PHONE_RING", 0x00007183 },
-{ "PHONE_HOOKSTATE", 0x00007184 },
-{ "OLD_PHONE_RING_START", 0x00007187 },
-{ "PHONE_RING_STOP", 0x00007188 },
-{ "PHONE_REC_START", 0x0000718a },
-{ "PHONE_REC_STOP", 0x0000718b },
-{ "PHONE_REC_LEVEL", 0x0000718f },
-{ "PHONE_PLAY_START", 0x00007191 },
-{ "PHONE_PLAY_STOP", 0x00007192 },
-{ "PHONE_PLAY_LEVEL", 0x00007195 },
-{ "PHONE_GET_TONE_ON_TIME", 0x0000719e },
-{ "PHONE_GET_TONE_OFF_TIME", 0x0000719f },
-{ "PHONE_GET_TONE_STATE", 0x000071a0 },
-{ "PHONE_BUSY", 0x000071a1 },
-{ "PHONE_RINGBACK", 0x000071a2 },
-{ "PHONE_DIALTONE", 0x000071a3 },
-{ "PHONE_CPT_STOP", 0x000071a4 },
-{ "PHONE_PSTN_GET_STATE", 0x000071a5 },
-{ "PHONE_PSTN_LINETEST", 0x000071a8 },
-{ "IXJCTL_DSP_RESET", 0x000071c0 },
-{ "IXJCTL_DSP_IDLE", 0x000071c5 },
-{ "IXJCTL_TESTRAM", 0x000071c6 },
-{ "IXJCTL_AEC_STOP", 0x000071cc },
-{ "IXJCTL_AEC_GET_LEVEL", 0x000071cd },
-{ "IXJCTL_PSTN_LINETEST", 0x000071d3 },
-{ "IXJCTL_PLAY_CID", 0x000071d7 },
-{ "IXJCTL_DRYBUFFER_CLEAR", 0x000071e7 },
{ "BR_OK", 0x00007201 },
{ "BR_DEAD_REPLY", 0x00007205 },
{ "BR_TRANSACTION_COMPLETE", 0x00007206 },
@@ -885,7 +859,10 @@
{ "VHOST_SET_OWNER", 0x0000af01 },
{ "VHOST_RESET_OWNER", 0x0000af02 },
{ "BT_BMC_IOCTL_SMS_ATN", 0x0000b100 },
+{ "IPMI_BMC_IOCTL_SET_SMS_ATN", 0x0000b100 },
+{ "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", 0x0000b101 },
{ "PPPOEIOCDFWD", 0x0000b101 },
+{ "IPMI_BMC_IOCTL_FORCE_ABORT", 0x0000b102 },
{ "RPMSG_DESTROY_EPT_IOCTL", 0x0000b502 },
{ "NS_GET_USERNS", 0x0000b701 },
{ "NS_GET_PARENT", 0x0000b702 },
@@ -915,8 +892,6 @@
{ "PPWCONTROL", 0x40017084 },
{ "PPWDATA", 0x40017086 },
{ "PPWCTLONIRQ", 0x40017092 },
-{ "PHONE_MAXRINGS", 0x40017185 },
-{ "PHONE_PLAY_TONE", 0x4001719b },
{ "SONYPI_IOCSBRT", 0x40017600 },
{ "SONYPI_IOCSBLUE", 0x40017609 },
{ "SONYPI_IOCSFAN", 0x4001760b },
@@ -932,7 +907,6 @@
{ "DMX_ADD_PID", 0x40026f33 },
{ "DMX_REMOVE_PID", 0x40026f34 },
{ "PPFCONTROL", 0x4002708e },
-{ "PHONE_RING_CADENCE", 0x40027186 },
{ "SET_BITMAP_FILE", 0x4004092b },
{ "BLKBSZSET", 0x40041271 },
{ "IB_USER_MAD_UNREGISTER_AGENT", 0x40041b02 },
@@ -948,6 +922,7 @@
{ "PERF_EVENT_IOC_SET_FILTER", 0x40042406 },
{ "PERF_EVENT_IOC_SET_BPF", 0x40042408 },
{ "PERF_EVENT_IOC_PAUSE_OUTPUT", 0x40042409 },
+{ "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", 0x4004240b },
{ "SNAPSHOT_CREATE_IMAGE", 0x40043311 },
{ "PTP_ENABLE_PPS", 0x40043d04 },
{ "FBIO_RADEON_SET_MIRROR", 0x40044004 },
@@ -1001,6 +976,7 @@
{ "HCISETSCOMTU", 0x400448e4 },
{ "HCIBLOCKADDR", 0x400448e6 },
{ "HCIUNBLOCKADDR", 0x400448e7 },
+{ "INOTIFY_IOC_SETNEXTWD", 0x40044900 },
{ "MFB_SET_PIXFMT", 0x40044d08 },
{ "OTPGETREGIONCOUNT", 0x40044d0e },
{ "UBI_IOCEBER", 0x40044f01 },
@@ -1145,46 +1121,6 @@
{ "PPS_SETPARAMS", 0x400470a2 },
{ "PPS_KC_BIND", 0x400470a5 },
{ "SPIOCSTYPE", 0x40047101 },
-{ "PHONE_CAPABILITIES_CHECK", 0x40047182 },
-{ "PHONE_RING_START", 0x40047187 },
-{ "PHONE_REC_CODEC", 0x40047189 },
-{ "PHONE_REC_DEPTH", 0x4004718c },
-{ "PHONE_FRAME", 0x4004718d },
-{ "PHONE_REC_VOLUME", 0x4004718e },
-{ "PHONE_PLAY_CODEC", 0x40047190 },
-{ "PHONE_PLAY_DEPTH", 0x40047193 },
-{ "PHONE_PLAY_VOLUME", 0x40047194 },
-{ "PHONE_DTMF_OOB", 0x40047199 },
-{ "PHONE_SET_TONE_ON_TIME", 0x4004719c },
-{ "PHONE_SET_TONE_OFF_TIME", 0x4004719d },
-{ "PHONE_PSTN_SET_STATE", 0x400471a4 },
-{ "PHONE_WINK_DURATION", 0x400471a6 },
-{ "PHONE_VAD", 0x400471a9 },
-{ "PHONE_WINK", 0x400471aa },
-{ "IXJCTL_SET_FILTER", 0x400471c7 },
-{ "IXJCTL_GET_FILTER_HIST", 0x400471c8 },
-{ "IXJCTL_INIT_TONE", 0x400471c9 },
-{ "IXJCTL_TONE_CADENCE", 0x400471ca },
-{ "IXJCTL_AEC_START", 0x400471cb },
-{ "IXJCTL_SET_LED", 0x400471ce },
-{ "IXJCTL_MIXER", 0x400471cf },
-{ "IXJCTL_DAA_COEFF_SET", 0x400471d0 },
-{ "IXJCTL_PORT", 0x400471d1 },
-{ "IXJCTL_DAA_AGAIN", 0x400471d2 },
-{ "IXJCTL_POTS_PSTN", 0x400471d5 },
-{ "IXJCTL_FILTER_CADENCE", 0x400471d6 },
-{ "IXJCTL_CIDCW", 0x400471d9 },
-{ "PHONE_REC_VOLUME_LINEAR", 0x400471db },
-{ "PHONE_PLAY_VOLUME_LINEAR", 0x400471dc },
-{ "IXJCTL_SET_FILTER_RAW", 0x400471dd },
-{ "IXJCTL_HZ", 0x400471e0 },
-{ "IXJCTL_RATE", 0x400471e1 },
-{ "IXJCTL_DTMF_PRESCALE", 0x400471e8 },
-{ "IXJCTL_SIGCTL", 0x400471e9 },
-{ "IXJCTL_SC_RXG", 0x400471ea },
-{ "IXJCTL_SC_TXG", 0x400471eb },
-{ "IXJCTL_INTERCOM_START", 0x400471fd },
-{ "IXJCTL_INTERCOM_STOP", 0x400471fe },
{ "FAT_IOCTL_SET_ATTRIBUTES", 0x40047211 },
{ "SCIF_LISTEN", 0x40047302 },
{ "PPPIOCATTCHAN", 0x40047438 },
@@ -1247,6 +1183,8 @@
{ "AMDKFD_IOC_RESET_EVENT", 0x40084b0b },
{ "AMDKFD_IOC_DBG_REGISTER", 0x40084b0d },
{ "AMDKFD_IOC_DBG_UNREGISTER", 0x40084b0e },
+{ "AMDKFD_IOC_ACQUIRE_VM", 0x40084b15 },
+{ "AMDKFD_IOC_FREE_MEMORY_OF_GPU", 0x40084b17 },
{ "MEMERASE", 0x40084d02 },
{ "MFB_SET_AOID", 0x40084d04 },
{ "MEMLOCK", 0x40084d05 },
@@ -1928,23 +1866,6 @@
{ "PPGETFLAGS", 0x8004709a },
{ "PPS_GETPARAMS", 0x800470a1 },
{ "PPS_GETCAP", 0x800470a3 },
-{ "PHONE_CAPABILITIES_LIST", 0x80047181 },
-{ "PHONE_DTMF_READY", 0x80047196 },
-{ "PHONE_GET_DTMF", 0x80047197 },
-{ "PHONE_GET_DTMF_ASCII", 0x80047198 },
-{ "PHONE_EXCEPTION", 0x8004719a },
-{ "IXJCTL_CARDTYPE", 0x800471c1 },
-{ "IXJCTL_SERIAL", 0x800471c2 },
-{ "IXJCTL_DSP_TYPE", 0x800471c3 },
-{ "IXJCTL_DSP_VERSION", 0x800471c4 },
-{ "IXJCTL_CID", 0x800471d4 },
-{ "IXJCTL_VMWI", 0x800471d8 },
-{ "IXJCTL_VERSION", 0x800471da },
-{ "IXJCTL_FRAMES_READ", 0x800471e2 },
-{ "IXJCTL_FRAMES_WRITTEN", 0x800471e3 },
-{ "IXJCTL_READ_WAIT", 0x800471e4 },
-{ "IXJCTL_WRITE_WAIT", 0x800471e5 },
-{ "IXJCTL_DRYBUFFER_READ", 0x800471e6 },
{ "BR_ERROR", 0x80047200 },
{ "BR_ACQUIRE_RESULT", 0x80047204 },
{ "FAT_IOCTL_GET_ATTRIBUTES", 0x80047210 },
@@ -2264,6 +2185,7 @@
{ "DRM_IOCTL_RM_DRAW", 0xc0046428 },
{ "DRM_IOCTL_I915_IRQ_EMIT", 0xc0046444 },
{ "DRM_IOCTL_MGA_WAIT_FENCE", 0xc004644b },
+{ "DRM_IOCTL_VC4_PERFMON_DESTROY", 0xc004644d },
{ "DRM_IOCTL_RADEON_IRQ_EMIT", 0xc0046456 },
{ "DRM_IOCTL_MODE_RMFB", 0xc00464af },
{ "DRM_IOCTL_MODE_DESTROY_DUMB", 0xc00464b4 },
@@ -2280,7 +2202,6 @@
{ "PHN_GET_REG", 0xc0047000 },
{ "PHN_GET_REGS", 0xc0047002 },
{ "PPS_FETCH", 0xc00470a4 },
-{ "PHONE_QUERY_CODEC", 0xc00471a7 },
{ "MIC_VIRTIO_ADD_DEVICE", 0xc0047301 },
{ "MIC_VIRTIO_COPY_DESC", 0xc0047302 },
{ "MIC_VIRTIO_CONFIG_CHANGE", 0xc0047305 },
@@ -2384,7 +2305,6 @@
{ "FSL_HV_IOCTL_PARTITION_GET_STATUS", 0xc00caf02 },
{ "MBXFB_IOCX_REG", 0xc00cf405 },
{ "BLKREPORTZONE", 0xc0101282 },
-{ "RDMA_VERBS_IOCTL", 0xc0101b01 },
{ "STP_POLICY_ID_SET", 0xc0102500 },
{ "CAPI_GET_VERSION", 0xc0104307 },
{ "GIGASET_VERSION", 0xc0104703 },
@@ -2393,6 +2313,7 @@
{ "SNDRV_EMUX_IOCTL_LOAD_PATCH", 0xc0104881 },
{ "SNDRV_EMUX_IOCTL_MISC_MODE", 0xc0104884 },
{ "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", 0xc0104b11 },
+{ "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", 0xc0104b14 },
{ "MEMGETREGIONINFO", 0xc0104d08 },
{ "SEV_ISSUE_CMD", 0xc0105300 },
{ "SNDRV_SEQ_IOCTL_RUNNING_MODE", 0xc0105303 },
@@ -2450,6 +2371,7 @@
{ "DRM_IOCTL_VC4_GEM_MADVISE", 0xc010644b },
{ "DRM_IOCTL_RADEON_INDIRECT", 0xc010644d },
{ "DRM_IOCTL_VIA_WAIT_IRQ", 0xc010644d },
+{ "DRM_IOCTL_VC4_PERFMON_GET_VALUES", 0xc010644e },
{ "DRM_IOCTL_R128_INDIRECT", 0xc010644f },
{ "DRM_IOCTL_AMDGPU_GEM_OP", 0xc0106450 },
{ "DRM_IOCTL_RADEON_ALLOC", 0xc0106453 },
@@ -2462,6 +2384,7 @@
{ "DRM_IOCTL_I915_GEM_WAIT", 0xc010646c },
{ "DRM_IOCTL_RADEON_GEM_OP", 0xc010646c },
{ "DRM_IOCTL_I915_REG_READ", 0xc0106471 },
+{ "DRM_IOCTL_I915_QUERY", 0xc0106479 },
{ "DRM_IOCTL_MODE_SETPROPERTY", 0xc01064ab },
{ "DRM_IOCTL_MODE_GETPROPBLOB", 0xc01064ac },
{ "DRM_IOCTL_MODE_MAP_DUMB", 0xc01064b3 },
@@ -2496,6 +2419,7 @@
{ "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", 0xc014646b },
{ "DRM_IOCTL_MODE_GETENCODER", 0xc01464a6 },
{ "VTPM_PROXY_IOC_NEW_DEV", 0xc014a100 },
+{ "RDMA_VERBS_IOCTL", 0xc0181b01 },
{ "HFI1_IOCTL_TID_UPDATE", 0xc0181be4 },
{ "HFI1_IOCTL_TID_FREE", 0xc0181be5 },
{ "HFI1_IOCTL_TID_INVAL_READ", 0xc0181bed },
@@ -2509,6 +2433,8 @@
{ "ION_IOC_ALLOC", 0xc0184900 },
{ "ION_IOC_HEAP_QUERY", 0xc0184908 },
{ "AMDKFD_IOC_WAIT_EVENTS", 0xc0184b0c },
+{ "AMDKFD_IOC_MAP_MEMORY_TO_GPU", 0xc0184b18 },
+{ "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", 0xc0184b19 },
{ "MEMWRITEOOB64", 0xc0184d15 },
{ "MEMREADOOB64", 0xc0184d16 },
{ "VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS", 0xc018560b },
@@ -2532,6 +2458,7 @@
{ "DRM_IOCTL_QXL_ALLOC_SURF", 0xc0186446 },
{ "DRM_IOCTL_ETNAVIV_GEM_USERPTR", 0xc0186448 },
{ "DRM_IOCTL_VIRTGPU_GET_CAPS", 0xc0186449 },
+{ "DRM_IOCTL_VC4_PERFMON_CREATE", 0xc018644c },
{ "DRM_IOCTL_RADEON_TEXTURE", 0xc018644e },
{ "DRM_IOCTL_AMDGPU_GEM_USERPTR", 0xc0186451 },
{ "DRM_IOCTL_AMDGPU_WAIT_FENCES", 0xc0186452 },
@@ -2644,6 +2571,7 @@
{ "FW_CDEV_IOC_GET_INFO", 0xc0282300 },
{ "AMDKFD_IOC_GET_CLOCK_COUNTERS", 0xc0284b05 },
{ "AMDKFD_IOC_GET_TILE_CONFIG", 0xc0284b12 },
+{ "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", 0xc0284b16 },
{ "VIDIOC_ENCODER_CMD", 0xc028564d },
{ "VIDIOC_TRY_ENCODER_CMD", 0xc028564e },
{ "SWITCHTEC_IOCTL_EVENT_CTL", 0xc0285743 },
@@ -2817,7 +2745,6 @@
{ "VIDIOC_ENUM_DV_TIMINGS", 0xc0945662 },
{ "VIDIOC_SUBDEV_ENUM_DV_TIMINGS", 0xc0945662 },
{ "VBG_IOCTL_HGCM_CONNECT", 0xc09c5604 },
-{ "DRM_IOCTL_VC4_SUBMIT_CL", 0xc0a06440 },
{ "DRM_IOCTL_VC4_GET_HANG_STATE", 0xc0a06446 },
{ "HT_CXLFLASH_LUN_PROVISION", 0xc0a0cabf },
{ "SOUND_MIXER_GETLEVELS", 0xc0a44d74 },
@@ -2825,6 +2752,7 @@
{ "SNDRV_SEQ_IOCTL_CREATE_PORT", 0xc0a45320 },
{ "SNDRV_SEQ_IOCTL_GET_PORT_INFO", 0xc0a45322 },
{ "SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT", 0xc0a45352 },
+{ "DRM_IOCTL_VC4_SUBMIT_CL", 0xc0a86440 },
{ "SNDRV_SEQ_IOCTL_GET_CLIENT_INFO", 0xc0bc5310 },
{ "SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT", 0xc0bc5351 },
{ "FS_IOC_GETFSMAP", 0xc0c0583b },
diff --git a/ioctlent2.h b/ioctlent2.h
index 47d06a9..ccd20af 100644
--- a/ioctlent2.h
+++ b/ioctlent2.h
@@ -173,6 +173,7 @@
{ "VFIO_IOMMU_UNMAP_DMA", 0x00003b72 },
{ "VFIO_DEVICE_GET_GFX_DMABUF", 0x00003b73 },
{ "VFIO_IOMMU_ENABLE", 0x00003b73 },
+{ "VFIO_DEVICE_IOEVENTFD", 0x00003b74 },
{ "VFIO_IOMMU_DISABLE", 0x00003b74 },
{ "VFIO_IOMMU_SPAPR_REGISTER_MEMORY", 0x00003b75 },
{ "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", 0x00003b76 },
@@ -354,6 +355,7 @@
{ "RFKILL_IOCTL_NOINPUT", 0x00005201 },
{ "RNDZAPENTCNT", 0x00005204 },
{ "RNDCLEARPOOL", 0x00005206 },
+{ "RNDRESEEDCRNG", 0x00005207 },
{ "CDROMPAUSE", 0x00005301 },
{ "CDROMRESUME", 0x00005302 },
{ "CDROMPLAYMSF", 0x00005303 },
@@ -666,34 +668,6 @@
{ "PPRELEASE", 0x0000708c },
{ "PPYIELD", 0x0000708d },
{ "PPEXCL", 0x0000708f },
-{ "PHONE_CAPABILITIES", 0x00007180 },
-{ "PHONE_RING", 0x00007183 },
-{ "PHONE_HOOKSTATE", 0x00007184 },
-{ "OLD_PHONE_RING_START", 0x00007187 },
-{ "PHONE_RING_STOP", 0x00007188 },
-{ "PHONE_REC_START", 0x0000718a },
-{ "PHONE_REC_STOP", 0x0000718b },
-{ "PHONE_REC_LEVEL", 0x0000718f },
-{ "PHONE_PLAY_START", 0x00007191 },
-{ "PHONE_PLAY_STOP", 0x00007192 },
-{ "PHONE_PLAY_LEVEL", 0x00007195 },
-{ "PHONE_GET_TONE_ON_TIME", 0x0000719e },
-{ "PHONE_GET_TONE_OFF_TIME", 0x0000719f },
-{ "PHONE_GET_TONE_STATE", 0x000071a0 },
-{ "PHONE_BUSY", 0x000071a1 },
-{ "PHONE_RINGBACK", 0x000071a2 },
-{ "PHONE_DIALTONE", 0x000071a3 },
-{ "PHONE_CPT_STOP", 0x000071a4 },
-{ "PHONE_PSTN_GET_STATE", 0x000071a5 },
-{ "PHONE_PSTN_LINETEST", 0x000071a8 },
-{ "IXJCTL_DSP_RESET", 0x000071c0 },
-{ "IXJCTL_DSP_IDLE", 0x000071c5 },
-{ "IXJCTL_TESTRAM", 0x000071c6 },
-{ "IXJCTL_AEC_STOP", 0x000071cc },
-{ "IXJCTL_AEC_GET_LEVEL", 0x000071cd },
-{ "IXJCTL_PSTN_LINETEST", 0x000071d3 },
-{ "IXJCTL_PLAY_CID", 0x000071d7 },
-{ "IXJCTL_DRYBUFFER_CLEAR", 0x000071e7 },
{ "BR_OK", 0x00007201 },
{ "BR_DEAD_REPLY", 0x00007205 },
{ "BR_TRANSACTION_COMPLETE", 0x00007206 },
@@ -885,7 +859,10 @@
{ "VHOST_SET_OWNER", 0x0000af01 },
{ "VHOST_RESET_OWNER", 0x0000af02 },
{ "BT_BMC_IOCTL_SMS_ATN", 0x0000b100 },
+{ "IPMI_BMC_IOCTL_SET_SMS_ATN", 0x0000b100 },
+{ "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", 0x0000b101 },
{ "PPPOEIOCDFWD", 0x0000b101 },
+{ "IPMI_BMC_IOCTL_FORCE_ABORT", 0x0000b102 },
{ "RPMSG_DESTROY_EPT_IOCTL", 0x0000b502 },
{ "NS_GET_USERNS", 0x0000b701 },
{ "NS_GET_PARENT", 0x0000b702 },
@@ -913,8 +890,6 @@
{ "PPWCONTROL", 0x40017084 },
{ "PPWDATA", 0x40017086 },
{ "PPWCTLONIRQ", 0x40017092 },
-{ "PHONE_MAXRINGS", 0x40017185 },
-{ "PHONE_PLAY_TONE", 0x4001719b },
{ "SONYPI_IOCSBRT", 0x40017600 },
{ "SONYPI_IOCSBLUE", 0x40017609 },
{ "SONYPI_IOCSFAN", 0x4001760b },
@@ -930,7 +905,6 @@
{ "DMX_ADD_PID", 0x40026f33 },
{ "DMX_REMOVE_PID", 0x40026f34 },
{ "PPFCONTROL", 0x4002708e },
-{ "PHONE_RING_CADENCE", 0x40027186 },
{ "SET_BITMAP_FILE", 0x4004092b },
{ "BLKBSZSET", 0x40041271 },
{ "IB_USER_MAD_UNREGISTER_AGENT", 0x40041b02 },
@@ -946,6 +920,7 @@
{ "PERF_EVENT_IOC_SET_FILTER", 0x40042406 },
{ "PERF_EVENT_IOC_SET_BPF", 0x40042408 },
{ "PERF_EVENT_IOC_PAUSE_OUTPUT", 0x40042409 },
+{ "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", 0x4004240b },
{ "SNAPSHOT_CREATE_IMAGE", 0x40043311 },
{ "PTP_ENABLE_PPS", 0x40043d04 },
{ "FBIO_RADEON_SET_MIRROR", 0x40044004 },
@@ -999,6 +974,7 @@
{ "HCISETSCOMTU", 0x400448e4 },
{ "HCIBLOCKADDR", 0x400448e6 },
{ "HCIUNBLOCKADDR", 0x400448e7 },
+{ "INOTIFY_IOC_SETNEXTWD", 0x40044900 },
{ "MFB_SET_PIXFMT", 0x40044d08 },
{ "OTPGETREGIONCOUNT", 0x40044d0e },
{ "UBI_IOCEBER", 0x40044f01 },
@@ -1143,46 +1119,6 @@
{ "PPS_SETPARAMS", 0x400470a2 },
{ "PPS_KC_BIND", 0x400470a5 },
{ "SPIOCSTYPE", 0x40047101 },
-{ "PHONE_CAPABILITIES_CHECK", 0x40047182 },
-{ "PHONE_RING_START", 0x40047187 },
-{ "PHONE_REC_CODEC", 0x40047189 },
-{ "PHONE_REC_DEPTH", 0x4004718c },
-{ "PHONE_FRAME", 0x4004718d },
-{ "PHONE_REC_VOLUME", 0x4004718e },
-{ "PHONE_PLAY_CODEC", 0x40047190 },
-{ "PHONE_PLAY_DEPTH", 0x40047193 },
-{ "PHONE_PLAY_VOLUME", 0x40047194 },
-{ "PHONE_DTMF_OOB", 0x40047199 },
-{ "PHONE_SET_TONE_ON_TIME", 0x4004719c },
-{ "PHONE_SET_TONE_OFF_TIME", 0x4004719d },
-{ "PHONE_PSTN_SET_STATE", 0x400471a4 },
-{ "PHONE_WINK_DURATION", 0x400471a6 },
-{ "PHONE_VAD", 0x400471a9 },
-{ "PHONE_WINK", 0x400471aa },
-{ "IXJCTL_SET_FILTER", 0x400471c7 },
-{ "IXJCTL_GET_FILTER_HIST", 0x400471c8 },
-{ "IXJCTL_INIT_TONE", 0x400471c9 },
-{ "IXJCTL_TONE_CADENCE", 0x400471ca },
-{ "IXJCTL_AEC_START", 0x400471cb },
-{ "IXJCTL_SET_LED", 0x400471ce },
-{ "IXJCTL_MIXER", 0x400471cf },
-{ "IXJCTL_DAA_COEFF_SET", 0x400471d0 },
-{ "IXJCTL_PORT", 0x400471d1 },
-{ "IXJCTL_DAA_AGAIN", 0x400471d2 },
-{ "IXJCTL_POTS_PSTN", 0x400471d5 },
-{ "IXJCTL_FILTER_CADENCE", 0x400471d6 },
-{ "IXJCTL_CIDCW", 0x400471d9 },
-{ "PHONE_REC_VOLUME_LINEAR", 0x400471db },
-{ "PHONE_PLAY_VOLUME_LINEAR", 0x400471dc },
-{ "IXJCTL_SET_FILTER_RAW", 0x400471dd },
-{ "IXJCTL_HZ", 0x400471e0 },
-{ "IXJCTL_RATE", 0x400471e1 },
-{ "IXJCTL_DTMF_PRESCALE", 0x400471e8 },
-{ "IXJCTL_SIGCTL", 0x400471e9 },
-{ "IXJCTL_SC_RXG", 0x400471ea },
-{ "IXJCTL_SC_TXG", 0x400471eb },
-{ "IXJCTL_INTERCOM_START", 0x400471fd },
-{ "IXJCTL_INTERCOM_STOP", 0x400471fe },
{ "FAT_IOCTL_SET_ATTRIBUTES", 0x40047211 },
{ "SCIF_LISTEN", 0x40047302 },
{ "PPPIOCATTCHAN", 0x40047438 },
@@ -1245,6 +1181,8 @@
{ "AMDKFD_IOC_RESET_EVENT", 0x40084b0b },
{ "AMDKFD_IOC_DBG_REGISTER", 0x40084b0d },
{ "AMDKFD_IOC_DBG_UNREGISTER", 0x40084b0e },
+{ "AMDKFD_IOC_ACQUIRE_VM", 0x40084b15 },
+{ "AMDKFD_IOC_FREE_MEMORY_OF_GPU", 0x40084b17 },
{ "MEMERASE", 0x40084d02 },
{ "MFB_SET_AOID", 0x40084d04 },
{ "MEMLOCK", 0x40084d05 },
@@ -1532,6 +1470,7 @@
{ "IOC_PR_PREEMPT_ABORT", 0x401870cc },
{ "BTRFS_IOC_QGROUP_ASSIGN", 0x40189429 },
{ "KVM_SET_MEMORY_REGION", 0x4018ae40 },
+{ "KVM_HYPERV_EVENTFD", 0x4018aebd },
{ "KVM_SET_DEVICE_ATTR", 0x4018aee1 },
{ "KVM_GET_DEVICE_ATTR", 0x4018aee2 },
{ "KVM_HAS_DEVICE_ATTR", 0x4018aee3 },
@@ -1948,23 +1887,6 @@
{ "PPGETFLAGS", 0x8004709a },
{ "PPS_GETPARAMS", 0x800470a1 },
{ "PPS_GETCAP", 0x800470a3 },
-{ "PHONE_CAPABILITIES_LIST", 0x80047181 },
-{ "PHONE_DTMF_READY", 0x80047196 },
-{ "PHONE_GET_DTMF", 0x80047197 },
-{ "PHONE_GET_DTMF_ASCII", 0x80047198 },
-{ "PHONE_EXCEPTION", 0x8004719a },
-{ "IXJCTL_CARDTYPE", 0x800471c1 },
-{ "IXJCTL_SERIAL", 0x800471c2 },
-{ "IXJCTL_DSP_TYPE", 0x800471c3 },
-{ "IXJCTL_DSP_VERSION", 0x800471c4 },
-{ "IXJCTL_CID", 0x800471d4 },
-{ "IXJCTL_VMWI", 0x800471d8 },
-{ "IXJCTL_VERSION", 0x800471da },
-{ "IXJCTL_FRAMES_READ", 0x800471e2 },
-{ "IXJCTL_FRAMES_WRITTEN", 0x800471e3 },
-{ "IXJCTL_READ_WAIT", 0x800471e4 },
-{ "IXJCTL_WRITE_WAIT", 0x800471e5 },
-{ "IXJCTL_DRYBUFFER_READ", 0x800471e6 },
{ "BR_ERROR", 0x80047200 },
{ "BR_ACQUIRE_RESULT", 0x80047204 },
{ "FAT_IOCTL_GET_ATTRIBUTES", 0x80047210 },
@@ -2293,6 +2215,7 @@
{ "DRM_IOCTL_RM_DRAW", 0xc0046428 },
{ "DRM_IOCTL_I915_IRQ_EMIT", 0xc0046444 },
{ "DRM_IOCTL_MGA_WAIT_FENCE", 0xc004644b },
+{ "DRM_IOCTL_VC4_PERFMON_DESTROY", 0xc004644d },
{ "DRM_IOCTL_RADEON_IRQ_EMIT", 0xc0046456 },
{ "DRM_IOCTL_MODE_RMFB", 0xc00464af },
{ "DRM_IOCTL_MODE_DESTROY_DUMB", 0xc00464b4 },
@@ -2309,7 +2232,6 @@
{ "PHN_GET_REG", 0xc0047000 },
{ "PHN_GET_REGS", 0xc0047002 },
{ "PPS_FETCH", 0xc00470a4 },
-{ "PHONE_QUERY_CODEC", 0xc00471a7 },
{ "MIC_VIRTIO_ADD_DEVICE", 0xc0047301 },
{ "MIC_VIRTIO_COPY_DESC", 0xc0047302 },
{ "MIC_VIRTIO_CONFIG_CHANGE", 0xc0047305 },
@@ -2419,7 +2341,6 @@
{ "FSL_HV_IOCTL_PARTITION_GET_STATUS", 0xc00caf02 },
{ "MBXFB_IOCX_REG", 0xc00cf405 },
{ "BLKREPORTZONE", 0xc0101282 },
-{ "RDMA_VERBS_IOCTL", 0xc0101b01 },
{ "STP_POLICY_ID_SET", 0xc0102500 },
{ "CAPI_GET_VERSION", 0xc0104307 },
{ "GIGASET_VERSION", 0xc0104703 },
@@ -2428,6 +2349,7 @@
{ "SNDRV_EMUX_IOCTL_LOAD_PATCH", 0xc0104881 },
{ "SNDRV_EMUX_IOCTL_MISC_MODE", 0xc0104884 },
{ "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", 0xc0104b11 },
+{ "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", 0xc0104b14 },
{ "MEMGETREGIONINFO", 0xc0104d08 },
{ "SEV_ISSUE_CMD", 0xc0105300 },
{ "SNDRV_SEQ_IOCTL_RUNNING_MODE", 0xc0105303 },
@@ -2485,6 +2407,7 @@
{ "DRM_IOCTL_VC4_GEM_MADVISE", 0xc010644b },
{ "DRM_IOCTL_RADEON_INDIRECT", 0xc010644d },
{ "DRM_IOCTL_VIA_WAIT_IRQ", 0xc010644d },
+{ "DRM_IOCTL_VC4_PERFMON_GET_VALUES", 0xc010644e },
{ "DRM_IOCTL_R128_INDIRECT", 0xc010644f },
{ "DRM_IOCTL_AMDGPU_GEM_OP", 0xc0106450 },
{ "DRM_IOCTL_RADEON_ALLOC", 0xc0106453 },
@@ -2497,6 +2420,7 @@
{ "DRM_IOCTL_I915_GEM_WAIT", 0xc010646c },
{ "DRM_IOCTL_RADEON_GEM_OP", 0xc010646c },
{ "DRM_IOCTL_I915_REG_READ", 0xc0106471 },
+{ "DRM_IOCTL_I915_QUERY", 0xc0106479 },
{ "DRM_IOCTL_MODE_SETPROPERTY", 0xc01064ab },
{ "DRM_IOCTL_MODE_GETPROPBLOB", 0xc01064ac },
{ "DRM_IOCTL_MODE_MAP_DUMB", 0xc01064b3 },
@@ -2531,6 +2455,7 @@
{ "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", 0xc014646b },
{ "DRM_IOCTL_MODE_GETENCODER", 0xc01464a6 },
{ "VTPM_PROXY_IOC_NEW_DEV", 0xc014a100 },
+{ "RDMA_VERBS_IOCTL", 0xc0181b01 },
{ "HFI1_IOCTL_TID_UPDATE", 0xc0181be4 },
{ "HFI1_IOCTL_TID_FREE", 0xc0181be5 },
{ "HFI1_IOCTL_TID_INVAL_READ", 0xc0181bed },
@@ -2544,6 +2469,8 @@
{ "ION_IOC_ALLOC", 0xc0184900 },
{ "ION_IOC_HEAP_QUERY", 0xc0184908 },
{ "AMDKFD_IOC_WAIT_EVENTS", 0xc0184b0c },
+{ "AMDKFD_IOC_MAP_MEMORY_TO_GPU", 0xc0184b18 },
+{ "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", 0xc0184b19 },
{ "MTRRIOC_GET_ENTRY", 0xc0184d03 },
{ "MTRRIOC_GET_PAGE_ENTRY", 0xc0184d08 },
{ "MEMWRITEOOB64", 0xc0184d15 },
@@ -2568,6 +2495,7 @@
{ "DRM_IOCTL_QXL_ALLOC_SURF", 0xc0186446 },
{ "DRM_IOCTL_ETNAVIV_GEM_USERPTR", 0xc0186448 },
{ "DRM_IOCTL_VIRTGPU_GET_CAPS", 0xc0186449 },
+{ "DRM_IOCTL_VC4_PERFMON_CREATE", 0xc018644c },
{ "DRM_IOCTL_RADEON_TEXTURE", 0xc018644e },
{ "DRM_IOCTL_AMDGPU_GEM_USERPTR", 0xc0186451 },
{ "DRM_IOCTL_AMDGPU_WAIT_FENCES", 0xc0186452 },
@@ -2682,6 +2610,7 @@
{ "FW_CDEV_IOC_GET_INFO", 0xc0282300 },
{ "AMDKFD_IOC_GET_CLOCK_COUNTERS", 0xc0284b05 },
{ "AMDKFD_IOC_GET_TILE_CONFIG", 0xc0284b12 },
+{ "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", 0xc0284b16 },
{ "VIDIOC_ENCODER_CMD", 0xc028564d },
{ "VIDIOC_TRY_ENCODER_CMD", 0xc028564e },
{ "SWITCHTEC_IOCTL_EVENT_CTL", 0xc0285743 },
@@ -2857,7 +2786,6 @@
{ "VIDIOC_ENUM_DV_TIMINGS", 0xc0945662 },
{ "VIDIOC_SUBDEV_ENUM_DV_TIMINGS", 0xc0945662 },
{ "VBG_IOCTL_HGCM_CONNECT", 0xc09c5604 },
-{ "DRM_IOCTL_VC4_SUBMIT_CL", 0xc0a06440 },
{ "DRM_IOCTL_VC4_GET_HANG_STATE", 0xc0a06446 },
{ "HT_CXLFLASH_LUN_PROVISION", 0xc0a0cabf },
{ "SOUND_MIXER_GETLEVELS", 0xc0a44d74 },
@@ -2865,6 +2793,7 @@
{ "SNDRV_SEQ_IOCTL_CREATE_PORT", 0xc0a45320 },
{ "SNDRV_SEQ_IOCTL_GET_PORT_INFO", 0xc0a45322 },
{ "SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT", 0xc0a45352 },
+{ "DRM_IOCTL_VC4_SUBMIT_CL", 0xc0a86440 },
{ "SNDRV_SEQ_IOCTL_GET_CLIENT_INFO", 0xc0bc5310 },
{ "SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT", 0xc0bc5351 },
{ "FS_IOC_GETFSMAP", 0xc0c0583b },
diff --git a/ioprio.c b/ioprio.c
index 9ef2a32..19ea74c 100644
--- a/ioprio.c
+++ b/ioprio.c
@@ -56,17 +56,14 @@
sprint_ioprio(unsigned int ioprio)
{
static char outstr[256];
- const char *str;
+ char class_buf[64];
unsigned int class, data;
class = IOPRIO_PRIO_CLASS(ioprio);
data = IOPRIO_PRIO_DATA(ioprio);
- str = xlookup(ioprio_class, class);
- if (str)
- xsprintf(outstr, "IOPRIO_PRIO_VALUE(%s, %d)", str, data);
- else
- xsprintf(outstr, "IOPRIO_PRIO_VALUE(%#x /* %s */, %d)",
- class, "IOPRIO_CLASS_???", data);
+ sprintxval(class_buf, sizeof(class_buf), ioprio_class, class,
+ "IOPRIO_CLASS_???");
+ xsprintf(outstr, "IOPRIO_PRIO_VALUE(%s, %d)", class_buf, data);
return outstr;
}
diff --git a/ipc.c b/ipc.c
index bd23a4e..dd5358e 100644
--- a/ipc.c
+++ b/ipc.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 1999-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,15 +34,11 @@
unsigned int call = tcp->u_arg[0];
unsigned int version = call >> 16;
call &= 0xffff;
- const char *str = xlookup(ipccalls, call);
if (version)
tprintf("%u<<16|", version);
- if (str)
- tprints(str);
- else
- tprintf("%u", call);
+ printxval_u(ipccalls, call, NULL);
unsigned int i;
for (i = 1; i < tcp->s_ent->nargs; ++i)
diff --git a/ipc_defs.h b/ipc_defs.h
index 740fd9d..c6a1678 100644
--- a/ipc_defs.h
+++ b/ipc_defs.h
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2003 Roland McGrath <[email protected]>
- * Copyright (c) 2003-2017 The strace developers.
+ * Copyright (c) 2003-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,8 +43,10 @@
#define PRINTCTL(flagset, arg, dflt) \
do { \
- if ((arg) & IPC_64) \
- tprints("IPC_64|"); \
+ if ((arg) & IPC_64) { \
+ print_xlat(IPC_64); \
+ tprints("|"); \
+ } \
printxval((flagset), (arg) & ~IPC_64, dflt); \
} while (0)
diff --git a/ipc_msg.c b/ipc_msg.c
index dc898a8..788066c 100644
--- a/ipc_msg.c
+++ b/ipc_msg.c
@@ -5,7 +5,7 @@
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
* Copyright (c) 2003-2006 Roland McGrath <[email protected]>
* Copyright (c) 2006-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,15 +41,12 @@
#endif
#include "xlat/ipc_msg_flags.h"
+#include "xlat/ipc_private.h"
#include "xlat/resource_flags.h"
SYS_FUNC(msgget)
{
- const int key = (int) tcp->u_arg[0];
- if (key)
- tprintf("%#x", key);
- else
- tprints("IPC_PRIVATE");
+ printxval(ipc_private, (unsigned int) tcp->u_arg[0], NULL);
tprints(", ");
if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0)
tprints("|");
@@ -99,7 +96,7 @@
if (umove_or_printaddr(tcp, addr, &tmp))
return -1;
pair[0] = tmp[0];
- pair[1] = tmp[1];
+ pair[1] = (int) tmp[1];
}
return 0;
}
diff --git a/ipc_sem.c b/ipc_sem.c
index d5f4190..0287bec 100644
--- a/ipc_sem.c
+++ b/ipc_sem.c
@@ -5,7 +5,7 @@
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
* Copyright (c) 2003-2006 Roland McGrath <[email protected]>
* Copyright (c) 2006-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -64,7 +64,7 @@
#if defined HAVE_SYS_SEM_H || defined HAVE_LINUX_SEM_H
struct sembuf sb;
print_array(tcp, addr, count, &sb, sizeof(sb),
- umoven_or_printaddr, print_sembuf, 0);
+ tfetch_mem, print_sembuf, 0);
#else
printaddr(addr);
#endif
@@ -103,11 +103,7 @@
SYS_FUNC(semget)
{
- const int key = (int) tcp->u_arg[0];
- if (key)
- tprintf("%#x", key);
- else
- tprints("IPC_PRIVATE");
+ printxval(ipc_private, (unsigned int) tcp->u_arg[0], NULL);
tprintf(", %d, ", (int) tcp->u_arg[1]);
if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
tprints("|");
diff --git a/ipc_shm.c b/ipc_shm.c
index b358fc6..105962c 100644
--- a/ipc_shm.c
+++ b/ipc_shm.c
@@ -5,7 +5,7 @@
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
* Copyright (c) 2003-2006 Roland McGrath <[email protected]>
* Copyright (c) 2006-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -52,11 +52,7 @@
SYS_FUNC(shmget)
{
- const int key = (int) tcp->u_arg[0];
- if (key)
- tprintf("%#x", key);
- else
- tprints("IPC_PRIVATE");
+ printxval(ipc_private, (unsigned int) tcp->u_arg[0], NULL);
tprintf(", %" PRI_klu ", ", tcp->u_arg[1]);
unsigned int flags = tcp->u_arg[2] & ~0777;
@@ -67,10 +63,12 @@
if (flags || !hugetlb_value)
printflags(shm_resource_flags, flags, NULL);
- if (hugetlb_value)
- tprintf("%s%u<<SHM_HUGE_SHIFT",
+ if (hugetlb_value) {
+ tprintf("%s%u<<",
flags ? "|" : "",
hugetlb_value >> SHM_HUGE_SHIFT);
+ print_xlat_u(SHM_HUGE_SHIFT);
+ }
if (flags || hugetlb_value)
tprints("|");
diff --git a/kexec.c b/kexec.c
index 8157cc9..22acaa3 100644
--- a/kexec.c
+++ b/kexec.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2014-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2014-2017 The strace developers.
+ * Copyright (c) 2014-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -76,7 +76,7 @@
const size_t sizeof_seg = ARRAY_SIZE(seg) * current_wordsize;
print_array(tcp, addr, len, seg, sizeof_seg,
- umoven_or_printaddr, print_seg, 0);
+ tfetch_mem, print_seg, 0);
}
SYS_FUNC(kexec_load)
diff --git a/keyctl.c b/keyctl.c
index 9ee0803..7416423 100644
--- a/keyctl.c
+++ b/keyctl.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2014-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2014-2017 The strace developers.
+ * Copyright (c) 2014-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -44,12 +44,7 @@
static void
print_keyring_serial_number(key_serial_t id)
{
- const char *str = xlookup(key_spec, (unsigned int) id);
-
- if (str)
- tprints(str);
- else
- tprintf("%d", id);
+ printxval_d(key_spec, id, NULL);
}
SYS_FUNC(add_key)
@@ -195,12 +190,8 @@
print_keyring_serial_number(id1);
tprintf(", %u, ", timeout);
-
- if (err_str)
- tprintf("%s, ", err_str);
- else
- tprintf("%u, ", error);
-
+ print_xlat_ex(error, err_str, XLAT_STYLE_FMT_U);
+ tprints(", ");
print_keyring_serial_number(id2);
}
@@ -396,7 +387,8 @@
break;
case KEYCTL_SET_REQKEY_KEYRING:
- printxval(key_reqkeys, arg2, "KEY_REQKEY_DEFL_???");
+ printxvals_ex((int) arg2, "KEY_REQKEY_DEFL_???",
+ XLAT_STYLE_FMT_D, key_reqkeys, NULL);
break;
case KEYCTL_SET_TIMEOUT:
diff --git a/linux/32/ioctls_inc_align16.h b/linux/32/ioctls_inc_align16.h
index 77ea9c3..2dc2e73 100644
--- a/linux/32/ioctls_inc_align16.h
+++ b/linux/32/ioctls_inc_align16.h
@@ -283,6 +283,7 @@
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_ADD_CONFIG", _IOC_WRITE, 0x6477, 0x48 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_REMOVE_CONFIG", _IOC_WRITE, 0x6478, 0x08 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_QUERY", _IOC_READ|_IOC_WRITE, 0x6479, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
@@ -422,8 +423,11 @@
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6449, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_LABEL_BO", _IOC_READ|_IOC_WRITE, 0x644a, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_CREATE", _IOC_READ|_IOC_WRITE, 0x644c, 0x18 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_DESTROY", _IOC_READ|_IOC_WRITE, 0x644d, 0x04 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_GET_VALUES", _IOC_READ|_IOC_WRITE, 0x644e, 0x0c },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SET_TILING", _IOC_READ|_IOC_WRITE, 0x6448, 0x10 },
-{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa8 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
@@ -1160,6 +1164,7 @@
{ "linux/if_tun.h", "TUNSETVNETHDRSZ", _IOC_WRITE, 0x54d8, 0x04 },
{ "linux/if_tun.h", "TUNSETVNETLE", _IOC_WRITE, 0x54dc, 0x04 },
{ "linux/iio/events.h", "IIO_GET_EVENT_FD_IOCTL", _IOC_READ, 0x6990, 0x04 },
+{ "linux/inotify.h", "INOTIFY_IOC_SETNEXTWD", _IOC_WRITE, 0x4900, 0x04 },
{ "linux/input.h", "EVIOCGEFFECTS", _IOC_READ, 0x4584, 0x04 },
{ "linux/input.h", "EVIOCGID", _IOC_READ, 0x4502, 0x08 },
{ "linux/input.h", "EVIOCGKEYCODE", _IOC_READ, 0x4504, 0x08 },
@@ -1197,6 +1202,9 @@
{ "linux/ipmi.h", "IPMICTL_SET_TIMING_PARMS_CMD", _IOC_READ, 0x6916, 0x08 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", _IOC_READ, 0x690f, 0x02 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD_CHANS", _IOC_READ, 0x691d, 0x0c },
+{ "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 },
@@ -1238,48 +1246,6 @@
{ "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 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", _IOC_NONE, 0x71cd, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_START", _IOC_WRITE, 0x71cb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_STOP", _IOC_NONE, 0x71cc, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_CARDTYPE", _IOC_READ, 0x71c1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CID", _IOC_READ, 0x71d4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CIDCW", _IOC_WRITE, 0x71d9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_AGAIN", _IOC_WRITE, 0x71d2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", _IOC_WRITE, 0x71d0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", _IOC_NONE, 0x71e7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", _IOC_READ, 0x71e6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_IDLE", _IOC_NONE, 0x71c5, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_RESET", _IOC_NONE, 0x71c0, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_TYPE", _IOC_READ, 0x71c3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_VERSION", _IOC_READ, 0x71c4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", _IOC_WRITE, 0x71e8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", _IOC_WRITE, 0x71d6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_READ", _IOC_READ, 0x71e2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", _IOC_READ, 0x71e3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", _IOC_WRITE, 0x71c8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_HZ", _IOC_WRITE, 0x71e0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INIT_TONE", _IOC_WRITE, 0x71c9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_START", _IOC_WRITE, 0x71fd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", _IOC_WRITE, 0x71fe, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_MIXER", _IOC_WRITE, 0x71cf, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PLAY_CID", _IOC_NONE, 0x71d7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_PORT", _IOC_WRITE, 0x71d1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_POTS_PSTN", _IOC_WRITE, 0x71d5, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", _IOC_NONE, 0x71d3, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_RATE", _IOC_WRITE, 0x71e1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_READ_WAIT", _IOC_READ, 0x71e4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_RXG", _IOC_WRITE, 0x71ea, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_TXG", _IOC_WRITE, 0x71eb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SERIAL", _IOC_READ, 0x71c2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER", _IOC_WRITE, 0x71c7, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", _IOC_WRITE, 0x71dd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_LED", _IOC_WRITE, 0x71ce, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SIGCTL", _IOC_WRITE, 0x71e9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_TESTRAM", _IOC_NONE, 0x71c6, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_TONE_CADENCE", _IOC_WRITE, 0x71ca, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VERSION", _IOC_READ, 0x71da, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VMWI", _IOC_READ, 0x71d8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_WRITE_WAIT", _IOC_READ, 0x71e5, 0x04 },
{ "linux/joystick.h", "JSIOCGAXES", _IOC_READ, 0x6a11, 0x01 },
{ "linux/joystick.h", "JSIOCGAXMAP", _IOC_READ, 0x6a32, 0x40 },
{ "linux/joystick.h", "JSIOCGBTNMAP", _IOC_READ, 0x6a34, 0x400 },
@@ -1338,6 +1304,8 @@
{ "linux/kd.h", "PIO_UNIMAP", 0, 0x4B67, 0 },
{ "linux/kd.h", "PIO_UNIMAPCLR", 0, 0x4B68, 0 },
{ "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_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 },
@@ -1346,15 +1314,19 @@
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_WAVE_CONTROL", _IOC_WRITE, 0x4b10, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_EVENT", _IOC_WRITE, 0x4b09, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b03, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_FREE_MEMORY_OF_GPU", _IOC_WRITE, 0x4b17, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_CLOCK_COUNTERS", _IOC_READ|_IOC_WRITE, 0x4b05, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES", _IOC_READ, 0x4b06, 0x190 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", _IOC_READ|_IOC_WRITE, 0x4b14, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_TILE_CONFIG", _IOC_READ|_IOC_WRITE, 0x4b12, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_VERSION", _IOC_READ, 0x4b01, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_MAP_MEMORY_TO_GPU", _IOC_READ|_IOC_WRITE, 0x4b18, 0x18 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_RESET_EVENT", _IOC_WRITE, 0x4b0b, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_EVENT", _IOC_WRITE, 0x4b0a, 0x08 },
{ "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_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 },
{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
@@ -1552,6 +1524,7 @@
{ "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
+{ "linux/perf_event.h", "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", _IOC_WRITE, 0x240b, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PAUSE_OUTPUT", _IOC_WRITE, 0x2409, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PERIOD", _IOC_WRITE, 0x2404, 0x08 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_QUERY_BPF", _IOC_READ|_IOC_WRITE, 0x240a, 0x04 },
@@ -1680,6 +1653,7 @@
{ "linux/random.h", "RNDCLEARPOOL", _IOC_NONE, 0x5206, 0x00 },
{ "linux/random.h", "RNDGETENTCNT", _IOC_READ, 0x5200, 0x04 },
{ "linux/random.h", "RNDGETPOOL", _IOC_READ, 0x5202, 0x08 },
+{ "linux/random.h", "RNDRESEEDCRNG", _IOC_NONE, 0x5207, 0x00 },
{ "linux/random.h", "RNDZAPENTCNT", _IOC_NONE, 0x5204, 0x00 },
{ "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 },
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
@@ -2022,53 +1996,6 @@
{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
-{ "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
-{ "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_CHECK", _IOC_WRITE, 0x7182, 0x04 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_LIST", _IOC_READ, 0x7181, 0x04 },
-{ "linux/telephony.h", "PHONE_CPT_STOP", _IOC_NONE, 0x71a4, 0x00 },
-{ "linux/telephony.h", "PHONE_DIALTONE", _IOC_NONE, 0x71a3, 0x00 },
-{ "linux/telephony.h", "PHONE_DTMF_OOB", _IOC_WRITE, 0x7199, 0x04 },
-{ "linux/telephony.h", "PHONE_DTMF_READY", _IOC_READ, 0x7196, 0x04 },
-{ "linux/telephony.h", "PHONE_EXCEPTION", _IOC_READ, 0x719a, 0x04 },
-{ "linux/telephony.h", "PHONE_FRAME", _IOC_WRITE, 0x718d, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF", _IOC_READ, 0x7197, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF_ASCII", _IOC_READ, 0x7198, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", _IOC_NONE, 0x719f, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_ON_TIME", _IOC_NONE, 0x719e, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_STATE", _IOC_NONE, 0x71a0, 0x00 },
-{ "linux/telephony.h", "PHONE_HOOKSTATE", _IOC_NONE, 0x7184, 0x00 },
-{ "linux/telephony.h", "PHONE_MAXRINGS", _IOC_WRITE, 0x7185, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_CODEC", _IOC_WRITE, 0x7190, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_DEPTH", _IOC_WRITE, 0x7193, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_LEVEL", _IOC_NONE, 0x7195, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_START", _IOC_NONE, 0x7191, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_STOP", _IOC_NONE, 0x7192, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_TONE", _IOC_WRITE, 0x719b, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME", _IOC_WRITE, 0x7194, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", _IOC_WRITE, 0x71dc, 0x04 },
-{ "linux/telephony.h", "PHONE_PSTN_GET_STATE", _IOC_NONE, 0x71a5, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_LINETEST", _IOC_NONE, 0x71a8, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_SET_STATE", _IOC_WRITE, 0x71a4, 0x04 },
-{ "linux/telephony.h", "PHONE_QUERY_CODEC", _IOC_READ|_IOC_WRITE, 0x71a7, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_CODEC", _IOC_WRITE, 0x7189, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_DEPTH", _IOC_WRITE, 0x718c, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_LEVEL", _IOC_NONE, 0x718f, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_START", _IOC_NONE, 0x718a, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_STOP", _IOC_NONE, 0x718b, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME", _IOC_WRITE, 0x718e, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", _IOC_WRITE, 0x71db, 0x04 },
-{ "linux/telephony.h", "PHONE_RING", _IOC_NONE, 0x7183, 0x00 },
-{ "linux/telephony.h", "PHONE_RINGBACK", _IOC_NONE, 0x71a2, 0x00 },
-{ "linux/telephony.h", "PHONE_RING_CADENCE", _IOC_WRITE, 0x7186, 0x02 },
-{ "linux/telephony.h", "PHONE_RING_START", _IOC_WRITE, 0x7187, 0x04 },
-{ "linux/telephony.h", "PHONE_RING_STOP", _IOC_NONE, 0x7188, 0x00 },
-{ "linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", _IOC_WRITE, 0x719d, 0x04 },
-{ "linux/telephony.h", "PHONE_SET_TONE_ON_TIME", _IOC_WRITE, 0x719c, 0x04 },
-{ "linux/telephony.h", "PHONE_VAD", _IOC_WRITE, 0x71a9, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK", _IOC_WRITE, 0x71aa, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK_DURATION", _IOC_WRITE, 0x71a6, 0x04 },
{ "linux/timerfd.h", "TFD_IOC_SET_TICKS", _IOC_WRITE, 0x5400, 0x08 },
{ "linux/toshiba.h", "TOSHIBA_ACPI_SCI", _IOC_READ|_IOC_WRITE, 0x7491, 0x18 },
{ "linux/toshiba.h", "TOSH_SMM", _IOC_READ|_IOC_WRITE, 0x7490, 0x18 },
@@ -2199,6 +2126,7 @@
{ "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_PCI_HOT_RESET_INFO", _IOC_NONE, 0x3b70, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_REGION_INFO", _IOC_NONE, 0x3b6c, 0x00 },
+{ "linux/vfio.h", "VFIO_DEVICE_IOEVENTFD", _IOC_NONE, 0x3b74, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_PCI_HOT_RESET", _IOC_NONE, 0x3b71, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_QUERY_GFX_PLANE", _IOC_NONE, 0x3b72, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_RESET", _IOC_NONE, 0x3b6f, 0x00 },
@@ -2523,7 +2451,7 @@
{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x04 },
{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
-{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x26 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x28 },
{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
@@ -2537,7 +2465,7 @@
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
-{ "rdma/rdma_user_ioctl.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x10 },
+{ "rdma/rdma_user_ioctl_cmds.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x18 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/32/ioctls_inc_align32.h b/linux/32/ioctls_inc_align32.h
index d2a3393..f9cc340 100644
--- a/linux/32/ioctls_inc_align32.h
+++ b/linux/32/ioctls_inc_align32.h
@@ -283,6 +283,7 @@
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_ADD_CONFIG", _IOC_WRITE, 0x6477, 0x48 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_REMOVE_CONFIG", _IOC_WRITE, 0x6478, 0x08 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_QUERY", _IOC_READ|_IOC_WRITE, 0x6479, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
@@ -422,8 +423,11 @@
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6449, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_LABEL_BO", _IOC_READ|_IOC_WRITE, 0x644a, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_CREATE", _IOC_READ|_IOC_WRITE, 0x644c, 0x18 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_DESTROY", _IOC_READ|_IOC_WRITE, 0x644d, 0x04 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_GET_VALUES", _IOC_READ|_IOC_WRITE, 0x644e, 0x0c },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SET_TILING", _IOC_READ|_IOC_WRITE, 0x6448, 0x10 },
-{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa8 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
@@ -1160,6 +1164,7 @@
{ "linux/if_tun.h", "TUNSETVNETHDRSZ", _IOC_WRITE, 0x54d8, 0x04 },
{ "linux/if_tun.h", "TUNSETVNETLE", _IOC_WRITE, 0x54dc, 0x04 },
{ "linux/iio/events.h", "IIO_GET_EVENT_FD_IOCTL", _IOC_READ, 0x6990, 0x04 },
+{ "linux/inotify.h", "INOTIFY_IOC_SETNEXTWD", _IOC_WRITE, 0x4900, 0x04 },
{ "linux/input.h", "EVIOCGEFFECTS", _IOC_READ, 0x4584, 0x04 },
{ "linux/input.h", "EVIOCGID", _IOC_READ, 0x4502, 0x08 },
{ "linux/input.h", "EVIOCGKEYCODE", _IOC_READ, 0x4504, 0x08 },
@@ -1197,6 +1202,9 @@
{ "linux/ipmi.h", "IPMICTL_SET_TIMING_PARMS_CMD", _IOC_READ, 0x6916, 0x08 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", _IOC_READ, 0x690f, 0x02 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD_CHANS", _IOC_READ, 0x691d, 0x0c },
+{ "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 },
@@ -1238,48 +1246,6 @@
{ "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 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", _IOC_NONE, 0x71cd, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_START", _IOC_WRITE, 0x71cb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_STOP", _IOC_NONE, 0x71cc, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_CARDTYPE", _IOC_READ, 0x71c1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CID", _IOC_READ, 0x71d4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CIDCW", _IOC_WRITE, 0x71d9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_AGAIN", _IOC_WRITE, 0x71d2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", _IOC_WRITE, 0x71d0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", _IOC_NONE, 0x71e7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", _IOC_READ, 0x71e6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_IDLE", _IOC_NONE, 0x71c5, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_RESET", _IOC_NONE, 0x71c0, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_TYPE", _IOC_READ, 0x71c3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_VERSION", _IOC_READ, 0x71c4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", _IOC_WRITE, 0x71e8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", _IOC_WRITE, 0x71d6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_READ", _IOC_READ, 0x71e2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", _IOC_READ, 0x71e3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", _IOC_WRITE, 0x71c8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_HZ", _IOC_WRITE, 0x71e0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INIT_TONE", _IOC_WRITE, 0x71c9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_START", _IOC_WRITE, 0x71fd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", _IOC_WRITE, 0x71fe, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_MIXER", _IOC_WRITE, 0x71cf, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PLAY_CID", _IOC_NONE, 0x71d7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_PORT", _IOC_WRITE, 0x71d1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_POTS_PSTN", _IOC_WRITE, 0x71d5, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", _IOC_NONE, 0x71d3, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_RATE", _IOC_WRITE, 0x71e1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_READ_WAIT", _IOC_READ, 0x71e4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_RXG", _IOC_WRITE, 0x71ea, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_TXG", _IOC_WRITE, 0x71eb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SERIAL", _IOC_READ, 0x71c2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER", _IOC_WRITE, 0x71c7, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", _IOC_WRITE, 0x71dd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_LED", _IOC_WRITE, 0x71ce, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SIGCTL", _IOC_WRITE, 0x71e9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_TESTRAM", _IOC_NONE, 0x71c6, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_TONE_CADENCE", _IOC_WRITE, 0x71ca, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VERSION", _IOC_READ, 0x71da, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VMWI", _IOC_READ, 0x71d8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_WRITE_WAIT", _IOC_READ, 0x71e5, 0x04 },
{ "linux/joystick.h", "JSIOCGAXES", _IOC_READ, 0x6a11, 0x01 },
{ "linux/joystick.h", "JSIOCGAXMAP", _IOC_READ, 0x6a32, 0x40 },
{ "linux/joystick.h", "JSIOCGBTNMAP", _IOC_READ, 0x6a34, 0x400 },
@@ -1338,6 +1304,8 @@
{ "linux/kd.h", "PIO_UNIMAP", 0, 0x4B67, 0 },
{ "linux/kd.h", "PIO_UNIMAPCLR", 0, 0x4B68, 0 },
{ "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_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 },
@@ -1346,15 +1314,19 @@
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_WAVE_CONTROL", _IOC_WRITE, 0x4b10, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_EVENT", _IOC_WRITE, 0x4b09, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b03, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_FREE_MEMORY_OF_GPU", _IOC_WRITE, 0x4b17, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_CLOCK_COUNTERS", _IOC_READ|_IOC_WRITE, 0x4b05, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES", _IOC_READ, 0x4b06, 0x190 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", _IOC_READ|_IOC_WRITE, 0x4b14, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_TILE_CONFIG", _IOC_READ|_IOC_WRITE, 0x4b12, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_VERSION", _IOC_READ, 0x4b01, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_MAP_MEMORY_TO_GPU", _IOC_READ|_IOC_WRITE, 0x4b18, 0x18 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_RESET_EVENT", _IOC_WRITE, 0x4b0b, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_EVENT", _IOC_WRITE, 0x4b0a, 0x08 },
{ "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_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 },
{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
@@ -1552,6 +1524,7 @@
{ "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
+{ "linux/perf_event.h", "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", _IOC_WRITE, 0x240b, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PAUSE_OUTPUT", _IOC_WRITE, 0x2409, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PERIOD", _IOC_WRITE, 0x2404, 0x08 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_QUERY_BPF", _IOC_READ|_IOC_WRITE, 0x240a, 0x04 },
@@ -1680,6 +1653,7 @@
{ "linux/random.h", "RNDCLEARPOOL", _IOC_NONE, 0x5206, 0x00 },
{ "linux/random.h", "RNDGETENTCNT", _IOC_READ, 0x5200, 0x04 },
{ "linux/random.h", "RNDGETPOOL", _IOC_READ, 0x5202, 0x08 },
+{ "linux/random.h", "RNDRESEEDCRNG", _IOC_NONE, 0x5207, 0x00 },
{ "linux/random.h", "RNDZAPENTCNT", _IOC_NONE, 0x5204, 0x00 },
{ "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 },
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
@@ -2022,53 +1996,6 @@
{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
-{ "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
-{ "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_CHECK", _IOC_WRITE, 0x7182, 0x04 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_LIST", _IOC_READ, 0x7181, 0x04 },
-{ "linux/telephony.h", "PHONE_CPT_STOP", _IOC_NONE, 0x71a4, 0x00 },
-{ "linux/telephony.h", "PHONE_DIALTONE", _IOC_NONE, 0x71a3, 0x00 },
-{ "linux/telephony.h", "PHONE_DTMF_OOB", _IOC_WRITE, 0x7199, 0x04 },
-{ "linux/telephony.h", "PHONE_DTMF_READY", _IOC_READ, 0x7196, 0x04 },
-{ "linux/telephony.h", "PHONE_EXCEPTION", _IOC_READ, 0x719a, 0x04 },
-{ "linux/telephony.h", "PHONE_FRAME", _IOC_WRITE, 0x718d, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF", _IOC_READ, 0x7197, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF_ASCII", _IOC_READ, 0x7198, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", _IOC_NONE, 0x719f, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_ON_TIME", _IOC_NONE, 0x719e, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_STATE", _IOC_NONE, 0x71a0, 0x00 },
-{ "linux/telephony.h", "PHONE_HOOKSTATE", _IOC_NONE, 0x7184, 0x00 },
-{ "linux/telephony.h", "PHONE_MAXRINGS", _IOC_WRITE, 0x7185, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_CODEC", _IOC_WRITE, 0x7190, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_DEPTH", _IOC_WRITE, 0x7193, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_LEVEL", _IOC_NONE, 0x7195, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_START", _IOC_NONE, 0x7191, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_STOP", _IOC_NONE, 0x7192, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_TONE", _IOC_WRITE, 0x719b, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME", _IOC_WRITE, 0x7194, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", _IOC_WRITE, 0x71dc, 0x04 },
-{ "linux/telephony.h", "PHONE_PSTN_GET_STATE", _IOC_NONE, 0x71a5, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_LINETEST", _IOC_NONE, 0x71a8, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_SET_STATE", _IOC_WRITE, 0x71a4, 0x04 },
-{ "linux/telephony.h", "PHONE_QUERY_CODEC", _IOC_READ|_IOC_WRITE, 0x71a7, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_CODEC", _IOC_WRITE, 0x7189, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_DEPTH", _IOC_WRITE, 0x718c, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_LEVEL", _IOC_NONE, 0x718f, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_START", _IOC_NONE, 0x718a, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_STOP", _IOC_NONE, 0x718b, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME", _IOC_WRITE, 0x718e, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", _IOC_WRITE, 0x71db, 0x04 },
-{ "linux/telephony.h", "PHONE_RING", _IOC_NONE, 0x7183, 0x00 },
-{ "linux/telephony.h", "PHONE_RINGBACK", _IOC_NONE, 0x71a2, 0x00 },
-{ "linux/telephony.h", "PHONE_RING_CADENCE", _IOC_WRITE, 0x7186, 0x02 },
-{ "linux/telephony.h", "PHONE_RING_START", _IOC_WRITE, 0x7187, 0x04 },
-{ "linux/telephony.h", "PHONE_RING_STOP", _IOC_NONE, 0x7188, 0x00 },
-{ "linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", _IOC_WRITE, 0x719d, 0x04 },
-{ "linux/telephony.h", "PHONE_SET_TONE_ON_TIME", _IOC_WRITE, 0x719c, 0x04 },
-{ "linux/telephony.h", "PHONE_VAD", _IOC_WRITE, 0x71a9, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK", _IOC_WRITE, 0x71aa, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK_DURATION", _IOC_WRITE, 0x71a6, 0x04 },
{ "linux/timerfd.h", "TFD_IOC_SET_TICKS", _IOC_WRITE, 0x5400, 0x08 },
{ "linux/toshiba.h", "TOSHIBA_ACPI_SCI", _IOC_READ|_IOC_WRITE, 0x7491, 0x18 },
{ "linux/toshiba.h", "TOSH_SMM", _IOC_READ|_IOC_WRITE, 0x7490, 0x18 },
@@ -2199,6 +2126,7 @@
{ "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_PCI_HOT_RESET_INFO", _IOC_NONE, 0x3b70, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_REGION_INFO", _IOC_NONE, 0x3b6c, 0x00 },
+{ "linux/vfio.h", "VFIO_DEVICE_IOEVENTFD", _IOC_NONE, 0x3b74, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_PCI_HOT_RESET", _IOC_NONE, 0x3b71, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_QUERY_GFX_PLANE", _IOC_NONE, 0x3b72, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_RESET", _IOC_NONE, 0x3b6f, 0x00 },
@@ -2537,7 +2465,7 @@
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
-{ "rdma/rdma_user_ioctl.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x10 },
+{ "rdma/rdma_user_ioctl_cmds.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x18 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/32/ioctls_inc_align64.h b/linux/32/ioctls_inc_align64.h
index 41c06d9..22a8ab5 100644
--- a/linux/32/ioctls_inc_align64.h
+++ b/linux/32/ioctls_inc_align64.h
@@ -283,6 +283,7 @@
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_ADD_CONFIG", _IOC_WRITE, 0x6477, 0x48 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_REMOVE_CONFIG", _IOC_WRITE, 0x6478, 0x08 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_QUERY", _IOC_READ|_IOC_WRITE, 0x6479, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
@@ -422,8 +423,11 @@
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6449, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_LABEL_BO", _IOC_READ|_IOC_WRITE, 0x644a, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_CREATE", _IOC_READ|_IOC_WRITE, 0x644c, 0x18 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_DESTROY", _IOC_READ|_IOC_WRITE, 0x644d, 0x04 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_GET_VALUES", _IOC_READ|_IOC_WRITE, 0x644e, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SET_TILING", _IOC_READ|_IOC_WRITE, 0x6448, 0x10 },
-{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa8 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
@@ -1160,6 +1164,7 @@
{ "linux/if_tun.h", "TUNSETVNETHDRSZ", _IOC_WRITE, 0x54d8, 0x04 },
{ "linux/if_tun.h", "TUNSETVNETLE", _IOC_WRITE, 0x54dc, 0x04 },
{ "linux/iio/events.h", "IIO_GET_EVENT_FD_IOCTL", _IOC_READ, 0x6990, 0x04 },
+{ "linux/inotify.h", "INOTIFY_IOC_SETNEXTWD", _IOC_WRITE, 0x4900, 0x04 },
{ "linux/input.h", "EVIOCGEFFECTS", _IOC_READ, 0x4584, 0x04 },
{ "linux/input.h", "EVIOCGID", _IOC_READ, 0x4502, 0x08 },
{ "linux/input.h", "EVIOCGKEYCODE", _IOC_READ, 0x4504, 0x08 },
@@ -1197,6 +1202,9 @@
{ "linux/ipmi.h", "IPMICTL_SET_TIMING_PARMS_CMD", _IOC_READ, 0x6916, 0x08 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", _IOC_READ, 0x690f, 0x02 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD_CHANS", _IOC_READ, 0x691d, 0x0c },
+{ "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 },
@@ -1238,48 +1246,6 @@
{ "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 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", _IOC_NONE, 0x71cd, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_START", _IOC_WRITE, 0x71cb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_STOP", _IOC_NONE, 0x71cc, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_CARDTYPE", _IOC_READ, 0x71c1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CID", _IOC_READ, 0x71d4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CIDCW", _IOC_WRITE, 0x71d9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_AGAIN", _IOC_WRITE, 0x71d2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", _IOC_WRITE, 0x71d0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", _IOC_NONE, 0x71e7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", _IOC_READ, 0x71e6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_IDLE", _IOC_NONE, 0x71c5, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_RESET", _IOC_NONE, 0x71c0, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_TYPE", _IOC_READ, 0x71c3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_VERSION", _IOC_READ, 0x71c4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", _IOC_WRITE, 0x71e8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", _IOC_WRITE, 0x71d6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_READ", _IOC_READ, 0x71e2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", _IOC_READ, 0x71e3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", _IOC_WRITE, 0x71c8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_HZ", _IOC_WRITE, 0x71e0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INIT_TONE", _IOC_WRITE, 0x71c9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_START", _IOC_WRITE, 0x71fd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", _IOC_WRITE, 0x71fe, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_MIXER", _IOC_WRITE, 0x71cf, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PLAY_CID", _IOC_NONE, 0x71d7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_PORT", _IOC_WRITE, 0x71d1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_POTS_PSTN", _IOC_WRITE, 0x71d5, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", _IOC_NONE, 0x71d3, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_RATE", _IOC_WRITE, 0x71e1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_READ_WAIT", _IOC_READ, 0x71e4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_RXG", _IOC_WRITE, 0x71ea, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_TXG", _IOC_WRITE, 0x71eb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SERIAL", _IOC_READ, 0x71c2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER", _IOC_WRITE, 0x71c7, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", _IOC_WRITE, 0x71dd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_LED", _IOC_WRITE, 0x71ce, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SIGCTL", _IOC_WRITE, 0x71e9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_TESTRAM", _IOC_NONE, 0x71c6, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_TONE_CADENCE", _IOC_WRITE, 0x71ca, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VERSION", _IOC_READ, 0x71da, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VMWI", _IOC_READ, 0x71d8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_WRITE_WAIT", _IOC_READ, 0x71e5, 0x04 },
{ "linux/joystick.h", "JSIOCGAXES", _IOC_READ, 0x6a11, 0x01 },
{ "linux/joystick.h", "JSIOCGAXMAP", _IOC_READ, 0x6a32, 0x40 },
{ "linux/joystick.h", "JSIOCGBTNMAP", _IOC_READ, 0x6a34, 0x400 },
@@ -1338,6 +1304,8 @@
{ "linux/kd.h", "PIO_UNIMAP", 0, 0x4B67, 0 },
{ "linux/kd.h", "PIO_UNIMAPCLR", 0, 0x4B68, 0 },
{ "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_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 },
@@ -1346,15 +1314,19 @@
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_WAVE_CONTROL", _IOC_WRITE, 0x4b10, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_EVENT", _IOC_WRITE, 0x4b09, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b03, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_FREE_MEMORY_OF_GPU", _IOC_WRITE, 0x4b17, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_CLOCK_COUNTERS", _IOC_READ|_IOC_WRITE, 0x4b05, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES", _IOC_READ, 0x4b06, 0x190 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", _IOC_READ|_IOC_WRITE, 0x4b14, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_TILE_CONFIG", _IOC_READ|_IOC_WRITE, 0x4b12, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_VERSION", _IOC_READ, 0x4b01, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_MAP_MEMORY_TO_GPU", _IOC_READ|_IOC_WRITE, 0x4b18, 0x18 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_RESET_EVENT", _IOC_WRITE, 0x4b0b, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_EVENT", _IOC_WRITE, 0x4b0a, 0x08 },
{ "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_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 },
{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
@@ -1552,6 +1524,7 @@
{ "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
+{ "linux/perf_event.h", "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", _IOC_WRITE, 0x240b, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PAUSE_OUTPUT", _IOC_WRITE, 0x2409, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PERIOD", _IOC_WRITE, 0x2404, 0x08 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_QUERY_BPF", _IOC_READ|_IOC_WRITE, 0x240a, 0x04 },
@@ -1680,6 +1653,7 @@
{ "linux/random.h", "RNDCLEARPOOL", _IOC_NONE, 0x5206, 0x00 },
{ "linux/random.h", "RNDGETENTCNT", _IOC_READ, 0x5200, 0x04 },
{ "linux/random.h", "RNDGETPOOL", _IOC_READ, 0x5202, 0x08 },
+{ "linux/random.h", "RNDRESEEDCRNG", _IOC_NONE, 0x5207, 0x00 },
{ "linux/random.h", "RNDZAPENTCNT", _IOC_NONE, 0x5204, 0x00 },
{ "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 },
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
@@ -2022,53 +1996,6 @@
{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
-{ "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
-{ "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_CHECK", _IOC_WRITE, 0x7182, 0x04 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_LIST", _IOC_READ, 0x7181, 0x04 },
-{ "linux/telephony.h", "PHONE_CPT_STOP", _IOC_NONE, 0x71a4, 0x00 },
-{ "linux/telephony.h", "PHONE_DIALTONE", _IOC_NONE, 0x71a3, 0x00 },
-{ "linux/telephony.h", "PHONE_DTMF_OOB", _IOC_WRITE, 0x7199, 0x04 },
-{ "linux/telephony.h", "PHONE_DTMF_READY", _IOC_READ, 0x7196, 0x04 },
-{ "linux/telephony.h", "PHONE_EXCEPTION", _IOC_READ, 0x719a, 0x04 },
-{ "linux/telephony.h", "PHONE_FRAME", _IOC_WRITE, 0x718d, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF", _IOC_READ, 0x7197, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF_ASCII", _IOC_READ, 0x7198, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", _IOC_NONE, 0x719f, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_ON_TIME", _IOC_NONE, 0x719e, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_STATE", _IOC_NONE, 0x71a0, 0x00 },
-{ "linux/telephony.h", "PHONE_HOOKSTATE", _IOC_NONE, 0x7184, 0x00 },
-{ "linux/telephony.h", "PHONE_MAXRINGS", _IOC_WRITE, 0x7185, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_CODEC", _IOC_WRITE, 0x7190, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_DEPTH", _IOC_WRITE, 0x7193, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_LEVEL", _IOC_NONE, 0x7195, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_START", _IOC_NONE, 0x7191, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_STOP", _IOC_NONE, 0x7192, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_TONE", _IOC_WRITE, 0x719b, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME", _IOC_WRITE, 0x7194, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", _IOC_WRITE, 0x71dc, 0x04 },
-{ "linux/telephony.h", "PHONE_PSTN_GET_STATE", _IOC_NONE, 0x71a5, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_LINETEST", _IOC_NONE, 0x71a8, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_SET_STATE", _IOC_WRITE, 0x71a4, 0x04 },
-{ "linux/telephony.h", "PHONE_QUERY_CODEC", _IOC_READ|_IOC_WRITE, 0x71a7, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_CODEC", _IOC_WRITE, 0x7189, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_DEPTH", _IOC_WRITE, 0x718c, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_LEVEL", _IOC_NONE, 0x718f, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_START", _IOC_NONE, 0x718a, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_STOP", _IOC_NONE, 0x718b, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME", _IOC_WRITE, 0x718e, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", _IOC_WRITE, 0x71db, 0x04 },
-{ "linux/telephony.h", "PHONE_RING", _IOC_NONE, 0x7183, 0x00 },
-{ "linux/telephony.h", "PHONE_RINGBACK", _IOC_NONE, 0x71a2, 0x00 },
-{ "linux/telephony.h", "PHONE_RING_CADENCE", _IOC_WRITE, 0x7186, 0x02 },
-{ "linux/telephony.h", "PHONE_RING_START", _IOC_WRITE, 0x7187, 0x04 },
-{ "linux/telephony.h", "PHONE_RING_STOP", _IOC_NONE, 0x7188, 0x00 },
-{ "linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", _IOC_WRITE, 0x719d, 0x04 },
-{ "linux/telephony.h", "PHONE_SET_TONE_ON_TIME", _IOC_WRITE, 0x719c, 0x04 },
-{ "linux/telephony.h", "PHONE_VAD", _IOC_WRITE, 0x71a9, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK", _IOC_WRITE, 0x71aa, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK_DURATION", _IOC_WRITE, 0x71a6, 0x04 },
{ "linux/timerfd.h", "TFD_IOC_SET_TICKS", _IOC_WRITE, 0x5400, 0x08 },
{ "linux/toshiba.h", "TOSHIBA_ACPI_SCI", _IOC_READ|_IOC_WRITE, 0x7491, 0x18 },
{ "linux/toshiba.h", "TOSH_SMM", _IOC_READ|_IOC_WRITE, 0x7490, 0x18 },
@@ -2199,6 +2126,7 @@
{ "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_PCI_HOT_RESET_INFO", _IOC_NONE, 0x3b70, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_REGION_INFO", _IOC_NONE, 0x3b6c, 0x00 },
+{ "linux/vfio.h", "VFIO_DEVICE_IOEVENTFD", _IOC_NONE, 0x3b74, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_PCI_HOT_RESET", _IOC_NONE, 0x3b71, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_QUERY_GFX_PLANE", _IOC_NONE, 0x3b72, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_RESET", _IOC_NONE, 0x3b6f, 0x00 },
@@ -2537,7 +2465,7 @@
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
-{ "rdma/rdma_user_ioctl.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x10 },
+{ "rdma/rdma_user_ioctl_cmds.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x18 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
index b53bf88..8b05c75 100644
--- a/linux/32/syscallent.h
+++ b/linux/32/syscallent.h
@@ -282,6 +282,7 @@
[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), "io_pgetevents" },
#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 b31b321..e4b4a66 100644
--- a/linux/64/ioctls_inc.h
+++ b/linux/64/ioctls_inc.h
@@ -283,6 +283,7 @@
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_ADD_CONFIG", _IOC_WRITE, 0x6477, 0x48 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_REMOVE_CONFIG", _IOC_WRITE, 0x6478, 0x08 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_QUERY", _IOC_READ|_IOC_WRITE, 0x6479, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
@@ -422,8 +423,11 @@
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6449, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_LABEL_BO", _IOC_READ|_IOC_WRITE, 0x644a, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_CREATE", _IOC_READ|_IOC_WRITE, 0x644c, 0x18 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_DESTROY", _IOC_READ|_IOC_WRITE, 0x644d, 0x04 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_GET_VALUES", _IOC_READ|_IOC_WRITE, 0x644e, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SET_TILING", _IOC_READ|_IOC_WRITE, 0x6448, 0x10 },
-{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa8 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
@@ -1160,6 +1164,7 @@
{ "linux/if_tun.h", "TUNSETVNETHDRSZ", _IOC_WRITE, 0x54d8, 0x04 },
{ "linux/if_tun.h", "TUNSETVNETLE", _IOC_WRITE, 0x54dc, 0x04 },
{ "linux/iio/events.h", "IIO_GET_EVENT_FD_IOCTL", _IOC_READ, 0x6990, 0x04 },
+{ "linux/inotify.h", "INOTIFY_IOC_SETNEXTWD", _IOC_WRITE, 0x4900, 0x04 },
{ "linux/input.h", "EVIOCGEFFECTS", _IOC_READ, 0x4584, 0x04 },
{ "linux/input.h", "EVIOCGID", _IOC_READ, 0x4502, 0x08 },
{ "linux/input.h", "EVIOCGKEYCODE", _IOC_READ, 0x4504, 0x08 },
@@ -1197,6 +1202,9 @@
{ "linux/ipmi.h", "IPMICTL_SET_TIMING_PARMS_CMD", _IOC_READ, 0x6916, 0x08 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", _IOC_READ, 0x690f, 0x02 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD_CHANS", _IOC_READ, 0x691d, 0x0c },
+{ "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 },
@@ -1238,48 +1246,6 @@
{ "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 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", _IOC_NONE, 0x71cd, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_START", _IOC_WRITE, 0x71cb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_STOP", _IOC_NONE, 0x71cc, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_CARDTYPE", _IOC_READ, 0x71c1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CID", _IOC_READ, 0x71d4, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_CIDCW", _IOC_WRITE, 0x71d9, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_AGAIN", _IOC_WRITE, 0x71d2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", _IOC_WRITE, 0x71d0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", _IOC_NONE, 0x71e7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", _IOC_READ, 0x71e6, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_IDLE", _IOC_NONE, 0x71c5, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_RESET", _IOC_NONE, 0x71c0, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_TYPE", _IOC_READ, 0x71c3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_VERSION", _IOC_READ, 0x71c4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", _IOC_WRITE, 0x71e8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", _IOC_WRITE, 0x71d6, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_READ", _IOC_READ, 0x71e2, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", _IOC_READ, 0x71e3, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", _IOC_WRITE, 0x71c8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_HZ", _IOC_WRITE, 0x71e0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INIT_TONE", _IOC_WRITE, 0x71c9, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_START", _IOC_WRITE, 0x71fd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", _IOC_WRITE, 0x71fe, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_MIXER", _IOC_WRITE, 0x71cf, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PLAY_CID", _IOC_NONE, 0x71d7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_PORT", _IOC_WRITE, 0x71d1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_POTS_PSTN", _IOC_WRITE, 0x71d5, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", _IOC_NONE, 0x71d3, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_RATE", _IOC_WRITE, 0x71e1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_READ_WAIT", _IOC_READ, 0x71e4, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_SC_RXG", _IOC_WRITE, 0x71ea, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_TXG", _IOC_WRITE, 0x71eb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SERIAL", _IOC_READ, 0x71c2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER", _IOC_WRITE, 0x71c7, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", _IOC_WRITE, 0x71dd, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_SET_LED", _IOC_WRITE, 0x71ce, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SIGCTL", _IOC_WRITE, 0x71e9, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_TESTRAM", _IOC_NONE, 0x71c6, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_TONE_CADENCE", _IOC_WRITE, 0x71ca, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_VERSION", _IOC_READ, 0x71da, 0x08 },
-{ "linux/ixjuser.h", "IXJCTL_VMWI", _IOC_READ, 0x71d8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_WRITE_WAIT", _IOC_READ, 0x71e5, 0x08 },
{ "linux/joystick.h", "JSIOCGAXES", _IOC_READ, 0x6a11, 0x01 },
{ "linux/joystick.h", "JSIOCGAXMAP", _IOC_READ, 0x6a32, 0x40 },
{ "linux/joystick.h", "JSIOCGBTNMAP", _IOC_READ, 0x6a34, 0x400 },
@@ -1338,6 +1304,8 @@
{ "linux/kd.h", "PIO_UNIMAP", 0, 0x4B67, 0 },
{ "linux/kd.h", "PIO_UNIMAPCLR", 0, 0x4B68, 0 },
{ "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_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 },
@@ -1346,15 +1314,19 @@
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_WAVE_CONTROL", _IOC_WRITE, 0x4b10, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_EVENT", _IOC_WRITE, 0x4b09, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b03, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_FREE_MEMORY_OF_GPU", _IOC_WRITE, 0x4b17, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_CLOCK_COUNTERS", _IOC_READ|_IOC_WRITE, 0x4b05, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES", _IOC_READ, 0x4b06, 0x190 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", _IOC_READ|_IOC_WRITE, 0x4b14, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_TILE_CONFIG", _IOC_READ|_IOC_WRITE, 0x4b12, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_VERSION", _IOC_READ, 0x4b01, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_MAP_MEMORY_TO_GPU", _IOC_READ|_IOC_WRITE, 0x4b18, 0x18 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_RESET_EVENT", _IOC_WRITE, 0x4b0b, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_EVENT", _IOC_WRITE, 0x4b0a, 0x08 },
{ "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_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 },
{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
@@ -1552,6 +1524,7 @@
{ "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x08 },
+{ "linux/perf_event.h", "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", _IOC_WRITE, 0x240b, 0x08 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PAUSE_OUTPUT", _IOC_WRITE, 0x2409, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PERIOD", _IOC_WRITE, 0x2404, 0x08 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_QUERY_BPF", _IOC_READ|_IOC_WRITE, 0x240a, 0x08 },
@@ -1680,6 +1653,7 @@
{ "linux/random.h", "RNDCLEARPOOL", _IOC_NONE, 0x5206, 0x00 },
{ "linux/random.h", "RNDGETENTCNT", _IOC_READ, 0x5200, 0x04 },
{ "linux/random.h", "RNDGETPOOL", _IOC_READ, 0x5202, 0x08 },
+{ "linux/random.h", "RNDRESEEDCRNG", _IOC_NONE, 0x5207, 0x00 },
{ "linux/random.h", "RNDZAPENTCNT", _IOC_NONE, 0x5204, 0x00 },
{ "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 },
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
@@ -2022,53 +1996,6 @@
{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
-{ "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
-{ "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_CHECK", _IOC_WRITE, 0x7182, 0x08 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_LIST", _IOC_READ, 0x7181, 0x08 },
-{ "linux/telephony.h", "PHONE_CPT_STOP", _IOC_NONE, 0x71a4, 0x00 },
-{ "linux/telephony.h", "PHONE_DIALTONE", _IOC_NONE, 0x71a3, 0x00 },
-{ "linux/telephony.h", "PHONE_DTMF_OOB", _IOC_WRITE, 0x7199, 0x04 },
-{ "linux/telephony.h", "PHONE_DTMF_READY", _IOC_READ, 0x7196, 0x04 },
-{ "linux/telephony.h", "PHONE_EXCEPTION", _IOC_READ, 0x719a, 0x04 },
-{ "linux/telephony.h", "PHONE_FRAME", _IOC_WRITE, 0x718d, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF", _IOC_READ, 0x7197, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF_ASCII", _IOC_READ, 0x7198, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", _IOC_NONE, 0x719f, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_ON_TIME", _IOC_NONE, 0x719e, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_STATE", _IOC_NONE, 0x71a0, 0x00 },
-{ "linux/telephony.h", "PHONE_HOOKSTATE", _IOC_NONE, 0x7184, 0x00 },
-{ "linux/telephony.h", "PHONE_MAXRINGS", _IOC_WRITE, 0x7185, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_CODEC", _IOC_WRITE, 0x7190, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_DEPTH", _IOC_WRITE, 0x7193, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_LEVEL", _IOC_NONE, 0x7195, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_START", _IOC_NONE, 0x7191, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_STOP", _IOC_NONE, 0x7192, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_TONE", _IOC_WRITE, 0x719b, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME", _IOC_WRITE, 0x7194, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", _IOC_WRITE, 0x71dc, 0x04 },
-{ "linux/telephony.h", "PHONE_PSTN_GET_STATE", _IOC_NONE, 0x71a5, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_LINETEST", _IOC_NONE, 0x71a8, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_SET_STATE", _IOC_WRITE, 0x71a4, 0x04 },
-{ "linux/telephony.h", "PHONE_QUERY_CODEC", _IOC_READ|_IOC_WRITE, 0x71a7, 0x08 },
-{ "linux/telephony.h", "PHONE_REC_CODEC", _IOC_WRITE, 0x7189, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_DEPTH", _IOC_WRITE, 0x718c, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_LEVEL", _IOC_NONE, 0x718f, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_START", _IOC_NONE, 0x718a, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_STOP", _IOC_NONE, 0x718b, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME", _IOC_WRITE, 0x718e, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", _IOC_WRITE, 0x71db, 0x04 },
-{ "linux/telephony.h", "PHONE_RING", _IOC_NONE, 0x7183, 0x00 },
-{ "linux/telephony.h", "PHONE_RINGBACK", _IOC_NONE, 0x71a2, 0x00 },
-{ "linux/telephony.h", "PHONE_RING_CADENCE", _IOC_WRITE, 0x7186, 0x02 },
-{ "linux/telephony.h", "PHONE_RING_START", _IOC_WRITE, 0x7187, 0x08 },
-{ "linux/telephony.h", "PHONE_RING_STOP", _IOC_NONE, 0x7188, 0x00 },
-{ "linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", _IOC_WRITE, 0x719d, 0x04 },
-{ "linux/telephony.h", "PHONE_SET_TONE_ON_TIME", _IOC_WRITE, 0x719c, 0x04 },
-{ "linux/telephony.h", "PHONE_VAD", _IOC_WRITE, 0x71a9, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK", _IOC_WRITE, 0x71aa, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK_DURATION", _IOC_WRITE, 0x71a6, 0x04 },
{ "linux/timerfd.h", "TFD_IOC_SET_TICKS", _IOC_WRITE, 0x5400, 0x08 },
{ "linux/toshiba.h", "TOSHIBA_ACPI_SCI", _IOC_READ|_IOC_WRITE, 0x7491, 0x18 },
{ "linux/toshiba.h", "TOSH_SMM", _IOC_READ|_IOC_WRITE, 0x7490, 0x18 },
@@ -2199,6 +2126,7 @@
{ "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_PCI_HOT_RESET_INFO", _IOC_NONE, 0x3b70, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_REGION_INFO", _IOC_NONE, 0x3b6c, 0x00 },
+{ "linux/vfio.h", "VFIO_DEVICE_IOEVENTFD", _IOC_NONE, 0x3b74, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_PCI_HOT_RESET", _IOC_NONE, 0x3b71, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_QUERY_GFX_PLANE", _IOC_NONE, 0x3b72, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_RESET", _IOC_NONE, 0x3b6f, 0x00 },
@@ -2537,7 +2465,7 @@
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
-{ "rdma/rdma_user_ioctl.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x10 },
+{ "rdma/rdma_user_ioctl_cmds.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x18 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h
index 241d944..f25c62e 100644
--- a/linux/64/syscallent.h
+++ b/linux/64/syscallent.h
@@ -275,3 +275,4 @@
[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), "io_pgetevents" },
diff --git a/linux/aarch64/errnoent1.h b/linux/aarch64/errnoent1.h
deleted file mode 100644
index a0394d4..0000000
--- a/linux/aarch64/errnoent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* ARM personality */
-#include "errnoent.h"
diff --git a/linux/aarch64/signalent1.h b/linux/aarch64/signalent1.h
deleted file mode 100644
index 093cba7..0000000
--- a/linux/aarch64/signalent1.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "signalent.h"
diff --git a/linux/alpha/set_error.c b/linux/alpha/set_error.c
index 169277b..78a247e 100644
--- a/linux/alpha/set_error.c
+++ b/linux/alpha/set_error.c
@@ -1,8 +1,8 @@
static int
arch_set_error(struct tcb *tcp)
{
- alpha_r0 = tcp->u_error;
- return upoke(tcp, REG_R0, alpha_r0);
+ return upoke(tcp, REG_A3, (alpha_a3 = 1))
+ || upoke(tcp, REG_R0, (alpha_r0 = tcp->u_error));
}
static int
diff --git a/linux/arm/raw_syscall.h b/linux/arm/raw_syscall.h
index 69c7e23..ec534ec 100644
--- a/linux/arm/raw_syscall.h
+++ b/linux/arm/raw_syscall.h
@@ -36,12 +36,27 @@
raw_syscall_0(const kernel_ulong_t nr, kernel_ulong_t *err)
{
*err = 0;
+
+#ifdef __thumb__ /* && FRAME_POINTERS_ENABLED */
+
+ register kernel_ulong_t rt;
+ register kernel_ulong_t r0 __asm__("r0");
+ __asm__ __volatile__("mov %1,r7; mov r7,%2; swi 0x0; mov r7,%1"
+ : "=r"(r0), "=&r"(rt)
+ : "r"(nr)
+ : "memory");
+
+#else
+
register kernel_ulong_t r7 __asm__("r7") = nr;
register kernel_ulong_t r0 __asm__("r0");
__asm__ __volatile__("swi 0x0"
: "=r"(r0)
: "r"(r7)
: "memory");
+
+#endif
+
return r0;
}
# define raw_syscall_0 raw_syscall_0
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
index 76edf99..568d946 100644
--- a/linux/arm/syscallent.h
+++ b/linux/arm/syscallent.h
@@ -423,6 +423,7 @@
[395] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" },
[396] = { 1, 0, SEN(pkey_free), "pkey_free" },
[397] = { 5, TD|TF|TSTA, SEN(statx), "statx" },
+[398] = { 4, 0, SEN(rseq), "rseq" },
#ifdef __ARM_EABI__
# define ARM_FIRST_SHUFFLED_SYSCALL 400
diff --git a/linux/dummy.h b/linux/dummy.h
index 40c0726..9f0b4d3 100644
--- a/linux/dummy.h
+++ b/linux/dummy.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 1993 Branko Lankester <[email protected]>
* Copyright (c) 1993, 1994, 1995 Rick Sladkey <[email protected]>
- * Copyright (c) 1995-2017 The strace developers.
+ * Copyright (c) 1995-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@
#endif
/* still unfinished */
+#define sys_rseq printargs
#define sys_vm86 printargs
#define sys_vm86old printargs
diff --git a/linux/i386/ioctls_arch0.h b/linux/i386/ioctls_arch0.h
index 28df19d..5b6d3f3 100644
--- a/linux/i386/ioctls_arch0.h
+++ b/linux/i386/ioctls_arch0.h
@@ -58,6 +58,7 @@
{ "linux/kvm.h", "KVM_GET_XCRS", _IOC_READ, 0xaea6, 0x188 },
{ "linux/kvm.h", "KVM_GET_XSAVE", _IOC_READ, 0xaea4, 0x1000 },
{ "linux/kvm.h", "KVM_HAS_DEVICE_ATTR", _IOC_WRITE, 0xaee3, 0x18 },
+{ "linux/kvm.h", "KVM_HYPERV_EVENTFD", _IOC_WRITE, 0xaebd, 0x18 },
{ "linux/kvm.h", "KVM_INTERRUPT", _IOC_WRITE, 0xae86, 0x04 },
{ "linux/kvm.h", "KVM_IOEVENTFD", _IOC_WRITE, 0xae79, 0x40 },
{ "linux/kvm.h", "KVM_IRQFD", _IOC_WRITE, 0xae76, 0x20 },
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
index b00e1d8..fbe6cf8 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -411,6 +411,8 @@
[382] = { 1, 0, SEN(pkey_free), "pkey_free" },
[383] = { 5, TD|TF|TSTA, SEN(statx), "statx" },
[384] = { 2, TP, SEN(arch_prctl), "arch_prctl" },
+[385] = { 6, 0, SEN(io_pgetevents), "io_pgetevents" },
+[386] = { 4, 0, SEN(rseq), "rseq" },
#define SYS_socket_subcall 400
#include "subcall.h"
diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
index 33b3e8d..e3210fb 100644
--- a/linux/ia64/syscallent.h
+++ b/linux/ia64/syscallent.h
@@ -27,21 +27,6 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/*
- * IA-32 syscalls that have pointer arguments which are incompatible
- * with 64-bit layout get redirected to printargs.
- */
-#if CST > 0
-# undef SYS_FUNC_NAME
-# define SYS_FUNC_NAME(syscall_name) printargs
-# include "../i386/syscallent.h"
-# undef SYS_FUNC_NAME
-# define SYS_FUNC_NAME(syscall_name) MPERS_FUNC_NAME(syscall_name)
-#endif
-
-/* You must be careful to check ../i386/syscallent.h so that this table
- starts where that one leaves off.
-*/
[1024] = { 0, 0, SEN(printargs), "ni_syscall" },
[1025] = { 1, TP|SE, SEN(exit), "exit" },
[1026] = { 3, TD, SEN(read), "read" },
diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
index c7d35ad..6cc86df 100644
--- a/linux/mips/syscallent-n32.h
+++ b/linux/mips/syscallent-n32.h
@@ -38,7 +38,7 @@
[6035] = { 2, 0, SEN(getitimer), "getitimer" },
[6036] = { 3, 0, SEN(setitimer), "setitimer" },
[6037] = { 1, 0, SEN(alarm), "alarm" },
-[6038] = { 0, NF, SEN(getpid), "getpid" },
+[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" },
@@ -100,16 +100,16 @@
[6097] = { 1, 0, SEN(sysinfo), "sysinfo" },
[6098] = { 1, 0, SEN(times), "times" },
[6099] = { 4, 0, SEN(ptrace), "ptrace" },
-[6100] = { 0, NF, SEN(getuid), "getuid" },
+[6100] = { 0, PU|NF, SEN(getuid), "getuid" },
[6101] = { 3, 0, SEN(syslog), "syslog" },
-[6102] = { 0, NF, SEN(getgid), "getgid" },
+[6102] = { 0, PU|NF, SEN(getgid), "getgid" },
[6103] = { 1, 0, SEN(setuid), "setuid" },
[6104] = { 1, 0, SEN(setgid), "setgid" },
-[6105] = { 0, NF, SEN(geteuid), "geteuid" },
-[6106] = { 0, NF, SEN(getegid), "getegid" },
+[6105] = { 0, PU|NF, SEN(geteuid), "geteuid" },
+[6106] = { 0, PU|NF, SEN(getegid), "getegid" },
[6107] = { 2, 0, SEN(setpgid), "setpgid" },
-[6108] = { 0, NF, SEN(getppid), "getppid" },
-[6109] = { 0, 0, SEN(getpgrp), "getpgrp" },
+[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" },
@@ -178,7 +178,7 @@
[6175] = { 5, TN, SEN(putpmsg), "putpmsg" },
[6176] = { 0, 0, SEN(afs_syscall), "afs_syscall" },
[6177] = { 0, 0, SEN(printargs), "reserved177" },
-[6178] = { 0, NF, SEN(gettid), "gettid" },
+[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" },
diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h
index 3e55848..892e92e 100644
--- a/linux/mips/syscallent-n64.h
+++ b/linux/mips/syscallent-n64.h
@@ -38,7 +38,7 @@
[5035] = { 2, 0, SEN(getitimer), "getitimer" },
[5036] = { 3, 0, SEN(setitimer), "setitimer" },
[5037] = { 1, 0, SEN(alarm), "alarm" },
-[5038] = { 0, NF, SEN(getpid), "getpid" },
+[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" },
@@ -100,16 +100,16 @@
[5097] = { 1, 0, SEN(sysinfo), "sysinfo" },
[5098] = { 1, 0, SEN(times), "times" },
[5099] = { 4, 0, SEN(ptrace), "ptrace" },
-[5100] = { 0, NF, SEN(getuid), "getuid" },
+[5100] = { 0, PU|NF, SEN(getuid), "getuid" },
[5101] = { 3, 0, SEN(syslog), "syslog" },
-[5102] = { 0, NF, SEN(getgid), "getgid" },
+[5102] = { 0, PU|NF, SEN(getgid), "getgid" },
[5103] = { 1, 0, SEN(setuid), "setuid" },
[5104] = { 1, 0, SEN(setgid), "setgid" },
-[5105] = { 0, NF, SEN(geteuid), "geteuid" },
-[5106] = { 0, NF, SEN(getegid), "getegid" },
+[5105] = { 0, PU|NF, SEN(geteuid), "geteuid" },
+[5106] = { 0, PU|NF, SEN(getegid), "getegid" },
[5107] = { 2, 0, SEN(setpgid), "setpgid" },
-[5108] = { 0, NF, SEN(getppid), "getppid" },
-[5109] = { 0, 0, SEN(getpgrp), "getpgrp" },
+[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" },
@@ -178,7 +178,7 @@
[5175] = { 5, TN, SEN(putpmsg), "putpmsg" },
[5176] = { 0, 0, SEN(afs_syscall), "afs_syscall" },
[5177] = { 0, 0, SEN(printargs), "reserved177" },
-[5178] = { 0, NF, SEN(gettid), "gettid" },
+[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" },
diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h
index 4041907..66cf0cd 100644
--- a/linux/mips/syscallent-o32.h
+++ b/linux/mips/syscallent-o32.h
@@ -21,11 +21,11 @@
[4017] = { 0, TM, SEN(break), "break" },
[4018] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" },
[4019] = { 3, TD, SEN(lseek), "lseek" },
-[4020] = { 0, NF, SEN(getpid), "getpid" },
+[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, NF, SEN(getuid), "getuid" },
+[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" },
@@ -48,10 +48,10 @@
[4044] = { 0, 0, SEN(prof), "prof" },
[4045] = { 1, TM|SI, SEN(brk), "brk" },
[4046] = { 1, 0, SEN(setgid), "setgid" },
-[4047] = { 0, NF, SEN(getgid), "getgid" },
+[4047] = { 0, PU|NF, SEN(getgid), "getgid" },
[4048] = { 2, TS, SEN(signal), "signal" },
-[4049] = { 0, NF, SEN(geteuid), "geteuid" },
-[4050] = { 0, NF, SEN(getegid), "getegid" },
+[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" },
@@ -65,8 +65,8 @@
[4061] = { 1, TF, SEN(chroot), "chroot" },
[4062] = { 2, TSFA, SEN(ustat), "ustat" },
[4063] = { 2, TD, SEN(dup2), "dup2" },
-[4064] = { 0, NF, SEN(getppid), "getppid" },
-[4065] = { 0, 0, SEN(getpgrp), "getpgrp" },
+[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" },
@@ -223,7 +223,7 @@
[4219] = { 3, TD, SEN(getdents64), "getdents64" },
[4220] = { 3, TD, SEN(fcntl64), "fcntl64" },
[4221] = { },
-[4222] = { 0, NF, SEN(gettid), "gettid" },
+[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" },
diff --git a/linux/powerpc/set_error.c b/linux/powerpc/set_error.c
index 38ae32b..602ca15 100644
--- a/linux/powerpc/set_error.c
+++ b/linux/powerpc/set_error.c
@@ -2,8 +2,10 @@
arch_set_error(struct tcb *tcp)
{
ppc_regs.gpr[3] = tcp->u_error;
+ ppc_regs.ccr |= 0x10000000;
#ifdef HAVE_GETREGS_OLD
- return upoke(tcp, sizeof(long) * (PT_R0 + 3), ppc_regs.gpr[3]);
+ return upoke(tcp, sizeof(long) * PT_CCR, ppc_regs.ccr) ||
+ upoke(tcp, sizeof(long) * (PT_R0 + 3), ppc_regs.gpr[3]);
#else
return set_regs(tcp->pid);
#endif
diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
index d0bcbba..3333794 100644
--- a/linux/powerpc/syscallent.h
+++ b/linux/powerpc/syscallent.h
@@ -414,6 +414,7 @@
[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" },
+[387] = { 4, 0, SEN(rseq), "rseq" },
#define SYS_socket_subcall 400
#include "subcall.h"
diff --git a/linux/powerpc64/errnoent1.h b/linux/powerpc64/errnoent1.h
deleted file mode 100644
index c0f7787..0000000
--- a/linux/powerpc64/errnoent1.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "errnoent.h"
diff --git a/linux/powerpc64/signalent1.h b/linux/powerpc64/signalent1.h
deleted file mode 100644
index 093cba7..0000000
--- a/linux/powerpc64/signalent1.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "signalent.h"
diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h
index 74362c6..6bdd4c1 100644
--- a/linux/powerpc64/syscallent.h
+++ b/linux/powerpc64/syscallent.h
@@ -409,6 +409,7 @@
[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" },
+[387] = { 4, 0, SEN(rseq), "rseq" },
#define SYS_socket_subcall 400
#include "subcall.h"
diff --git a/linux/riscv/errnoent1.h b/linux/riscv/errnoent1.h
deleted file mode 100644
index 2a5c728..0000000
--- a/linux/riscv/errnoent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* RISC-V rv32 and rv64 */
-#include "../errnoent.h"
diff --git a/linux/riscv/signalent1.h b/linux/riscv/signalent1.h
deleted file mode 100644
index 39891b8..0000000
--- a/linux/riscv/signalent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* RISC-V rv32 and rv64 */
-#include "../signalent.h"
diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
index b7e768e..b39779d 100644
--- a/linux/s390/syscallent.h
+++ b/linux/s390/syscallent.h
@@ -410,6 +410,7 @@
[378] = { 2, 0, SEN(s390_guarded_storage), "s390_guarded_storage" },
[379] = { 5, TD|TF|TSTA, SEN(statx), "statx" },
[380] = { 4, 0, SEN(s390_sthyi), "s390_sthyi" },
+[381] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" },
#define SYS_socket_subcall 400
#include "subcall.h"
diff --git a/linux/s390x/errnoent1.h b/linux/s390x/errnoent1.h
deleted file mode 100644
index c0f7787..0000000
--- a/linux/s390x/errnoent1.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "errnoent.h"
diff --git a/linux/s390x/signalent1.h b/linux/s390x/signalent1.h
deleted file mode 100644
index 093cba7..0000000
--- a/linux/s390x/signalent1.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "signalent.h"
diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
index d16ee94..c4251eb 100644
--- a/linux/s390x/syscallent.h
+++ b/linux/s390x/syscallent.h
@@ -394,6 +394,7 @@
[378] = { 2, 0, SEN(s390_guarded_storage), "s390_guarded_storage" },
[379] = { 5, TD|TF|TSTA, SEN(statx), "statx" },
[380] = { 4, 0, SEN(s390_sthyi), "s390_sthyi" },
+[381] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" },
#define SYS_socket_subcall 400
#include "subcall.h"
diff --git a/linux/sparc64/errnoent1.h b/linux/sparc64/errnoent1.h
deleted file mode 100644
index c0f7787..0000000
--- a/linux/sparc64/errnoent1.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "errnoent.h"
diff --git a/linux/sparc64/signalent1.h b/linux/sparc64/signalent1.h
deleted file mode 100644
index 093cba7..0000000
--- a/linux/sparc64/signalent1.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "signalent.h"
diff --git a/linux/tile/errnoent1.h b/linux/tile/errnoent1.h
deleted file mode 100644
index 091df78..0000000
--- a/linux/tile/errnoent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* tilegx32/tilepro */
-#include "errnoent.h"
diff --git a/linux/tile/signalent1.h b/linux/tile/signalent1.h
deleted file mode 100644
index 62f1193..0000000
--- a/linux/tile/signalent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* tilegx32/tilepro */
-#include "signalent.h"
diff --git a/linux/x32/errnoent1.h b/linux/x32/errnoent1.h
deleted file mode 100644
index d32435a..0000000
--- a/linux/x32/errnoent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* i386 personality */
-#include "errnoent.h"
diff --git a/linux/x32/ioctls_inc0.h b/linux/x32/ioctls_inc0.h
index 7356681..1d9c6f3 100644
--- a/linux/x32/ioctls_inc0.h
+++ b/linux/x32/ioctls_inc0.h
@@ -283,6 +283,7 @@
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_ADD_CONFIG", _IOC_WRITE, 0x6477, 0x48 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_REMOVE_CONFIG", _IOC_WRITE, 0x6478, 0x08 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_QUERY", _IOC_READ|_IOC_WRITE, 0x6479, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
{ "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
@@ -422,8 +423,11 @@
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6449, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_LABEL_BO", _IOC_READ|_IOC_WRITE, 0x644a, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_CREATE", _IOC_READ|_IOC_WRITE, 0x644c, 0x18 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_DESTROY", _IOC_READ|_IOC_WRITE, 0x644d, 0x04 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_PERFMON_GET_VALUES", _IOC_READ|_IOC_WRITE, 0x644e, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SET_TILING", _IOC_READ|_IOC_WRITE, 0x6448, 0x10 },
-{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
+{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa8 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
@@ -1160,6 +1164,7 @@
{ "linux/if_tun.h", "TUNSETVNETHDRSZ", _IOC_WRITE, 0x54d8, 0x04 },
{ "linux/if_tun.h", "TUNSETVNETLE", _IOC_WRITE, 0x54dc, 0x04 },
{ "linux/iio/events.h", "IIO_GET_EVENT_FD_IOCTL", _IOC_READ, 0x6990, 0x04 },
+{ "linux/inotify.h", "INOTIFY_IOC_SETNEXTWD", _IOC_WRITE, 0x4900, 0x04 },
{ "linux/input.h", "EVIOCGEFFECTS", _IOC_READ, 0x4584, 0x04 },
{ "linux/input.h", "EVIOCGID", _IOC_READ, 0x4502, 0x08 },
{ "linux/input.h", "EVIOCGKEYCODE", _IOC_READ, 0x4504, 0x08 },
@@ -1197,6 +1202,9 @@
{ "linux/ipmi.h", "IPMICTL_SET_TIMING_PARMS_CMD", _IOC_READ, 0x6916, 0x08 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", _IOC_READ, 0x690f, 0x02 },
{ "linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD_CHANS", _IOC_READ, 0x691d, 0x0c },
+{ "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 },
@@ -1238,48 +1246,6 @@
{ "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 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", _IOC_NONE, 0x71cd, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_START", _IOC_WRITE, 0x71cb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_AEC_STOP", _IOC_NONE, 0x71cc, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_CARDTYPE", _IOC_READ, 0x71c1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CID", _IOC_READ, 0x71d4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_CIDCW", _IOC_WRITE, 0x71d9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_AGAIN", _IOC_WRITE, 0x71d2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", _IOC_WRITE, 0x71d0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", _IOC_NONE, 0x71e7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", _IOC_READ, 0x71e6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_IDLE", _IOC_NONE, 0x71c5, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_RESET", _IOC_NONE, 0x71c0, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_TYPE", _IOC_READ, 0x71c3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DSP_VERSION", _IOC_READ, 0x71c4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", _IOC_WRITE, 0x71e8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", _IOC_WRITE, 0x71d6, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_READ", _IOC_READ, 0x71e2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", _IOC_READ, 0x71e3, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", _IOC_WRITE, 0x71c8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_HZ", _IOC_WRITE, 0x71e0, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INIT_TONE", _IOC_WRITE, 0x71c9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_START", _IOC_WRITE, 0x71fd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", _IOC_WRITE, 0x71fe, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_MIXER", _IOC_WRITE, 0x71cf, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PLAY_CID", _IOC_NONE, 0x71d7, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_PORT", _IOC_WRITE, 0x71d1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_POTS_PSTN", _IOC_WRITE, 0x71d5, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", _IOC_NONE, 0x71d3, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_RATE", _IOC_WRITE, 0x71e1, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_READ_WAIT", _IOC_READ, 0x71e4, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_RXG", _IOC_WRITE, 0x71ea, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SC_TXG", _IOC_WRITE, 0x71eb, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SERIAL", _IOC_READ, 0x71c2, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER", _IOC_WRITE, 0x71c7, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", _IOC_WRITE, 0x71dd, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SET_LED", _IOC_WRITE, 0x71ce, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_SIGCTL", _IOC_WRITE, 0x71e9, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_TESTRAM", _IOC_NONE, 0x71c6, 0x00 },
-{ "linux/ixjuser.h", "IXJCTL_TONE_CADENCE", _IOC_WRITE, 0x71ca, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VERSION", _IOC_READ, 0x71da, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_VMWI", _IOC_READ, 0x71d8, 0x04 },
-{ "linux/ixjuser.h", "IXJCTL_WRITE_WAIT", _IOC_READ, 0x71e5, 0x04 },
{ "linux/joystick.h", "JSIOCGAXES", _IOC_READ, 0x6a11, 0x01 },
{ "linux/joystick.h", "JSIOCGAXMAP", _IOC_READ, 0x6a32, 0x40 },
{ "linux/joystick.h", "JSIOCGBTNMAP", _IOC_READ, 0x6a34, 0x400 },
@@ -1338,6 +1304,8 @@
{ "linux/kd.h", "PIO_UNIMAP", 0, 0x4B67, 0 },
{ "linux/kd.h", "PIO_UNIMAPCLR", 0, 0x4B68, 0 },
{ "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_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 },
@@ -1346,15 +1314,19 @@
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_WAVE_CONTROL", _IOC_WRITE, 0x4b10, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_EVENT", _IOC_WRITE, 0x4b09, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_DESTROY_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b03, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_FREE_MEMORY_OF_GPU", _IOC_WRITE, 0x4b17, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_CLOCK_COUNTERS", _IOC_READ|_IOC_WRITE, 0x4b05, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES", _IOC_READ, 0x4b06, 0x190 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_PROCESS_APERTURES_NEW", _IOC_READ|_IOC_WRITE, 0x4b14, 0x10 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_TILE_CONFIG", _IOC_READ|_IOC_WRITE, 0x4b12, 0x28 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_GET_VERSION", _IOC_READ, 0x4b01, 0x08 },
+{ "linux/kfd_ioctl.h", "AMDKFD_IOC_MAP_MEMORY_TO_GPU", _IOC_READ|_IOC_WRITE, 0x4b18, 0x18 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_RESET_EVENT", _IOC_WRITE, 0x4b0b, 0x08 },
{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_EVENT", _IOC_WRITE, 0x4b0a, 0x08 },
{ "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_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 },
{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
@@ -1552,6 +1524,7 @@
{ "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
+{ "linux/perf_event.h", "PERF_EVENT_IOC_MODIFY_ATTRIBUTES", _IOC_WRITE, 0x240b, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PAUSE_OUTPUT", _IOC_WRITE, 0x2409, 0x04 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_PERIOD", _IOC_WRITE, 0x2404, 0x08 },
{ "linux/perf_event.h", "PERF_EVENT_IOC_QUERY_BPF", _IOC_READ|_IOC_WRITE, 0x240a, 0x04 },
@@ -1680,6 +1653,7 @@
{ "linux/random.h", "RNDCLEARPOOL", _IOC_NONE, 0x5206, 0x00 },
{ "linux/random.h", "RNDGETENTCNT", _IOC_READ, 0x5200, 0x04 },
{ "linux/random.h", "RNDGETPOOL", _IOC_READ, 0x5202, 0x08 },
+{ "linux/random.h", "RNDRESEEDCRNG", _IOC_NONE, 0x5207, 0x00 },
{ "linux/random.h", "RNDZAPENTCNT", _IOC_NONE, 0x5204, 0x00 },
{ "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 },
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
@@ -2022,53 +1996,6 @@
{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
-{ "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
-{ "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_CHECK", _IOC_WRITE, 0x7182, 0x04 },
-{ "linux/telephony.h", "PHONE_CAPABILITIES_LIST", _IOC_READ, 0x7181, 0x04 },
-{ "linux/telephony.h", "PHONE_CPT_STOP", _IOC_NONE, 0x71a4, 0x00 },
-{ "linux/telephony.h", "PHONE_DIALTONE", _IOC_NONE, 0x71a3, 0x00 },
-{ "linux/telephony.h", "PHONE_DTMF_OOB", _IOC_WRITE, 0x7199, 0x04 },
-{ "linux/telephony.h", "PHONE_DTMF_READY", _IOC_READ, 0x7196, 0x04 },
-{ "linux/telephony.h", "PHONE_EXCEPTION", _IOC_READ, 0x719a, 0x04 },
-{ "linux/telephony.h", "PHONE_FRAME", _IOC_WRITE, 0x718d, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF", _IOC_READ, 0x7197, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_DTMF_ASCII", _IOC_READ, 0x7198, 0x04 },
-{ "linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", _IOC_NONE, 0x719f, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_ON_TIME", _IOC_NONE, 0x719e, 0x00 },
-{ "linux/telephony.h", "PHONE_GET_TONE_STATE", _IOC_NONE, 0x71a0, 0x00 },
-{ "linux/telephony.h", "PHONE_HOOKSTATE", _IOC_NONE, 0x7184, 0x00 },
-{ "linux/telephony.h", "PHONE_MAXRINGS", _IOC_WRITE, 0x7185, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_CODEC", _IOC_WRITE, 0x7190, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_DEPTH", _IOC_WRITE, 0x7193, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_LEVEL", _IOC_NONE, 0x7195, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_START", _IOC_NONE, 0x7191, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_STOP", _IOC_NONE, 0x7192, 0x00 },
-{ "linux/telephony.h", "PHONE_PLAY_TONE", _IOC_WRITE, 0x719b, 0x01 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME", _IOC_WRITE, 0x7194, 0x04 },
-{ "linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", _IOC_WRITE, 0x71dc, 0x04 },
-{ "linux/telephony.h", "PHONE_PSTN_GET_STATE", _IOC_NONE, 0x71a5, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_LINETEST", _IOC_NONE, 0x71a8, 0x00 },
-{ "linux/telephony.h", "PHONE_PSTN_SET_STATE", _IOC_WRITE, 0x71a4, 0x04 },
-{ "linux/telephony.h", "PHONE_QUERY_CODEC", _IOC_READ|_IOC_WRITE, 0x71a7, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_CODEC", _IOC_WRITE, 0x7189, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_DEPTH", _IOC_WRITE, 0x718c, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_LEVEL", _IOC_NONE, 0x718f, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_START", _IOC_NONE, 0x718a, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_STOP", _IOC_NONE, 0x718b, 0x00 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME", _IOC_WRITE, 0x718e, 0x04 },
-{ "linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", _IOC_WRITE, 0x71db, 0x04 },
-{ "linux/telephony.h", "PHONE_RING", _IOC_NONE, 0x7183, 0x00 },
-{ "linux/telephony.h", "PHONE_RINGBACK", _IOC_NONE, 0x71a2, 0x00 },
-{ "linux/telephony.h", "PHONE_RING_CADENCE", _IOC_WRITE, 0x7186, 0x02 },
-{ "linux/telephony.h", "PHONE_RING_START", _IOC_WRITE, 0x7187, 0x04 },
-{ "linux/telephony.h", "PHONE_RING_STOP", _IOC_NONE, 0x7188, 0x00 },
-{ "linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", _IOC_WRITE, 0x719d, 0x04 },
-{ "linux/telephony.h", "PHONE_SET_TONE_ON_TIME", _IOC_WRITE, 0x719c, 0x04 },
-{ "linux/telephony.h", "PHONE_VAD", _IOC_WRITE, 0x71a9, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK", _IOC_WRITE, 0x71aa, 0x04 },
-{ "linux/telephony.h", "PHONE_WINK_DURATION", _IOC_WRITE, 0x71a6, 0x04 },
{ "linux/timerfd.h", "TFD_IOC_SET_TICKS", _IOC_WRITE, 0x5400, 0x08 },
{ "linux/toshiba.h", "TOSHIBA_ACPI_SCI", _IOC_READ|_IOC_WRITE, 0x7491, 0x18 },
{ "linux/toshiba.h", "TOSH_SMM", _IOC_READ|_IOC_WRITE, 0x7490, 0x18 },
@@ -2199,6 +2126,7 @@
{ "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_PCI_HOT_RESET_INFO", _IOC_NONE, 0x3b70, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_GET_REGION_INFO", _IOC_NONE, 0x3b6c, 0x00 },
+{ "linux/vfio.h", "VFIO_DEVICE_IOEVENTFD", _IOC_NONE, 0x3b74, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_PCI_HOT_RESET", _IOC_NONE, 0x3b71, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_QUERY_GFX_PLANE", _IOC_NONE, 0x3b72, 0x00 },
{ "linux/vfio.h", "VFIO_DEVICE_RESET", _IOC_NONE, 0x3b6f, 0x00 },
@@ -2537,7 +2465,7 @@
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
-{ "rdma/rdma_user_ioctl.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x10 },
+{ "rdma/rdma_user_ioctl_cmds.h", "RDMA_VERBS_IOCTL", _IOC_READ|_IOC_WRITE, 0x1b01, 0x18 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
{ "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/x32/signalent1.h b/linux/x32/signalent1.h
deleted file mode 100644
index fdae15f..0000000
--- a/linux/x32/signalent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* i386 personality */
-#include "signalent.h"
diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h
index e448dc5..072a2c3 100644
--- a/linux/x32/syscallent.h
+++ b/linux/x32/syscallent.h
@@ -11,14 +11,14 @@
[ 10] = { 3, TM|SI, SEN(mprotect), "mprotect" },
[ 11] = { 2, TM|SI, SEN(munmap), "munmap" },
[ 12] = { 1, TM|SI, SEN(brk), "brk" },
-[ 13] = { 4, TS, SEN(printargs), "64:rt_sigaction" },
+[ 13] = { 4, TS, SEN(printargs), "rt_sigaction#64" },
[ 14] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" },
-[ 15] = { 0, TS, SEN(rt_sigreturn), "64:rt_sigreturn" },
-[ 16] = { 3, TD, SEN(printargs), "64:ioctl" },
+[ 15] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn#64" },
+[ 16] = { 3, TD, SEN(printargs), "ioctl#64" },
[ 17] = { 4, TD, SEN(pread), "pread64" },
[ 18] = { 4, TD, SEN(pwrite), "pwrite64" },
-[ 19] = { 3, TD, SEN(printargs), "64:readv" },
-[ 20] = { 3, TD, SEN(printargs), "64:writev" },
+[ 19] = { 3, TD, SEN(printargs), "readv#64" },
+[ 20] = { 3, TD, SEN(printargs), "writev#64" },
[ 21] = { 2, TF, SEN(access), "access" },
[ 22] = { 1, TD, SEN(pipe), "pipe" },
[ 23] = { 5, TD, SEN(select), "select" },
@@ -43,21 +43,21 @@
[ 42] = { 3, TN, SEN(connect), "connect" },
[ 43] = { 3, TN, SEN(accept), "accept" },
[ 44] = { 6, TN, SEN(sendto), "sendto" },
-[ 45] = { 6, TN, SEN(printargs), "64:recvfrom" },
-[ 46] = { 3, TN, SEN(printargs), "64:sendmsg" },
-[ 47] = { 3, TN, SEN(printargs), "64:recvmsg" },
+[ 45] = { 6, TN, SEN(printargs), "recvfrom#64" },
+[ 46] = { 3, TN, SEN(printargs), "sendmsg#64" },
+[ 47] = { 3, TN, SEN(printargs), "recvmsg#64" },
[ 48] = { 2, TN, SEN(shutdown), "shutdown" },
[ 49] = { 3, TN, SEN(bind), "bind" },
[ 50] = { 2, TN, SEN(listen), "listen" },
[ 51] = { 3, TN, SEN(getsockname), "getsockname" },
[ 52] = { 3, TN, SEN(getpeername), "getpeername" },
[ 53] = { 4, TN, SEN(socketpair), "socketpair" },
-[ 54] = { 5, TN, SEN(printargs), "64:setsockopt" },
-[ 55] = { 5, TN, SEN(printargs), "64:getsockopt" },
+[ 54] = { 5, TN, SEN(printargs), "setsockopt#64" },
+[ 55] = { 5, TN, SEN(printargs), "getsockopt#64" },
[ 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(printargs), "64:execve" },
+[ 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" },
@@ -99,7 +99,7 @@
[ 98] = { 2, 0, SEN(getrusage), "getrusage" },
[ 99] = { 1, 0, SEN(sysinfo), "sysinfo" },
[100] = { 1, 0, SEN(times), "times" },
-[101] = { 4, 0, SEN(printargs), "64:ptrace" },
+[101] = { 4, 0, SEN(printargs), "ptrace#64" },
[102] = { 0, PU|NF, SEN(getuid), "getuid" },
[103] = { 3, 0, SEN(syslog), "syslog" },
[104] = { 0, PU|NF, SEN(getgid), "getgid" },
@@ -125,14 +125,14 @@
[124] = { 1, 0, SEN(getsid), "getsid" },
[125] = { 2, 0, SEN(capget), "capget" },
[126] = { 2, 0, SEN(capset), "capset" },
-[127] = { 2, TS, SEN(printargs), "64:rt_sigpending" },
-[128] = { 4, TS, SEN(printargs), "64:rt_sigtimedwait" },
-[129] = { 3, TS, SEN(printargs), "64:rt_sigqueueinfo" },
+[127] = { 2, TS, SEN(printargs), "rt_sigpending#64" },
+[128] = { 4, TS, SEN(printargs), "rt_sigtimedwait#64" },
+[129] = { 3, TS, SEN(printargs), "rt_sigqueueinfo#64" },
[130] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" },
-[131] = { 2, TS, SEN(printargs), "64:sigaltstack" },
+[131] = { 2, TS, SEN(printargs), "sigaltstack#64" },
[132] = { 2, TF, SEN(utime), "utime" },
[133] = { 3, TF, SEN(mknod), "mknod" },
-[134] = { 1, TF, SEN(printargs), "64:uselib" },
+[134] = { 1, TF, SEN(printargs), "uselib#64" },
[135] = { 1, NF, SEN(personality), "personality" },
[136] = { 2, TSFA, SEN(ustat), "ustat" },
[137] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" },
@@ -154,7 +154,7 @@
[153] = { 0, 0, SEN(vhangup), "vhangup" },
[154] = { 3, 0, SEN(modify_ldt), "modify_ldt" },
[155] = { 2, TF, SEN(pivotroot), "pivot_root" },
-[156] = { 1, 0, SEN(printargs), "64:_sysctl" },
+[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(adjtimex), "adjtimex" },
@@ -172,13 +172,13 @@
[171] = { 2, 0, SEN(setdomainname), "setdomainname" },
[172] = { 1, 0, SEN(iopl), "iopl" },
[173] = { 3, 0, SEN(ioperm), "ioperm" },
-[174] = { 2, 0, SEN(printargs), "64:create_module" },
+[174] = { 2, 0, SEN(printargs), "create_module#64" },
[175] = { 3, 0, SEN(init_module), "init_module" },
[176] = { 2, 0, SEN(delete_module), "delete_module" },
-[177] = { 1, 0, SEN(printargs), "64:get_kernel_syms" },
-[178] = { 5, 0, SEN(printargs), "64:query_module" },
+[177] = { 1, 0, SEN(printargs), "get_kernel_syms#64" },
+[178] = { 5, 0, SEN(printargs), "query_module#64" },
[179] = { 4, TF, SEN(quotactl), "quotactl" },
-[180] = { 3, 0, SEN(printargs), "64:nfsservctl" },
+[180] = { 3, 0, SEN(printargs), "nfsservctl#64" },
[181] = { 5, TN, SEN(getpmsg), "getpmsg" },
[182] = { 5, TN, SEN(putpmsg), "putpmsg" },
[183] = { 5, 0, SEN(afs_syscall), "afs_syscall" },
@@ -203,24 +203,24 @@
[202] = { 6, 0, SEN(futex), "futex" },
[203] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
[204] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
-[205] = { 1, 0, SEN(printargs), "64:set_thread_area" },
-[206] = { 2, TM, SEN(printargs), "64:io_setup" },
+[205] = { 1, 0, SEN(printargs), "set_thread_area#64" },
+[206] = { 2, TM, SEN(printargs), "io_setup#64" },
[207] = { 1, TM, SEN(io_destroy), "io_destroy" },
[208] = { 5, 0, SEN(io_getevents), "io_getevents" },
-[209] = { 3, 0, SEN(printargs), "64:io_submit" },
+[209] = { 3, 0, SEN(printargs), "io_submit#64" },
[210] = { 3, 0, SEN(io_cancel), "io_cancel" },
-[211] = { 1, 0, SEN(printargs), "64:get_thread_area" },
+[211] = { 1, 0, SEN(printargs), "get_thread_area#64" },
[212] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" },
[213] = { 1, TD, SEN(epoll_create), "epoll_create" },
-[214] = { 4, 0, SEN(printargs), "64:epoll_ctl_old" },
-[215] = { 4, 0, SEN(printargs), "64:epoll_wait_old" },
+[214] = { 4, 0, SEN(printargs), "epoll_ctl_old#64" },
+[215] = { 4, 0, SEN(printargs), "epoll_wait_old#64" },
[216] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" },
[217] = { 3, TD, SEN(getdents64), "getdents64" },
[218] = { 1, 0, SEN(set_tid_address), "set_tid_address" },
[219] = { 0, 0, SEN(restart_syscall), "restart_syscall" },
[220] = { 4, TI, SEN(semtimedop), "semtimedop" },
[221] = { 4, TD, SEN(fadvise64), "fadvise64" },
-[222] = { 3, 0, SEN(printargs), "64:timer_create" },
+[222] = { 3, 0, SEN(printargs), "timer_create#64" },
[223] = { 4, 0, SEN(timer_settime), "timer_settime" },
[224] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
[225] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
@@ -234,7 +234,7 @@
[233] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" },
[234] = { 3, TS, SEN(tgkill), "tgkill" },
[235] = { 2, TF, SEN(utimes), "utimes" },
-[236] = { 5, 0, SEN(printargs), "64:vserver" },
+[236] = { 5, 0, SEN(printargs), "vserver#64" },
[237] = { 6, TM, SEN(mbind), "mbind" },
[238] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[239] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
@@ -242,10 +242,10 @@
[241] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[242] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[243] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
-[244] = { 2, 0, SEN(printargs), "64:mq_notify" },
+[244] = { 2, 0, SEN(printargs), "mq_notify#64" },
[245] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
-[246] = { 4, 0, SEN(printargs), "64:kexec_load" },
-[247] = { 5, TP, SEN(printargs), "64:waitid" },
+[246] = { 4, 0, SEN(printargs), "kexec_load#64" },
+[247] = { 5, TP, SEN(printargs), "waitid#64" },
[248] = { 5, 0, SEN(add_key), "add_key" },
[249] = { 4, 0, SEN(request_key), "request_key" },
[250] = { 5, 0, SEN(keyctl), "keyctl" },
@@ -271,13 +271,13 @@
[270] = { 6, TD, SEN(pselect6), "pselect6" },
[271] = { 5, TD, SEN(ppoll), "ppoll" },
[272] = { 1, TP, SEN(unshare), "unshare" },
-[273] = { 2, 0, SEN(printargs), "64:set_robust_list" },
-[274] = { 3, 0, SEN(printargs), "64:get_robust_list" },
+[273] = { 2, 0, SEN(printargs), "set_robust_list#64" },
+[274] = { 3, 0, SEN(printargs), "get_robust_list#64" },
[275] = { 6, TD, SEN(splice), "splice" },
[276] = { 4, TD, SEN(tee), "tee" },
[277] = { 4, TD, SEN(sync_file_range), "sync_file_range" },
-[278] = { 4, TD, SEN(printargs), "64:vmsplice" },
-[279] = { 6, TM, SEN(printargs), "64:move_pages" },
+[278] = { 4, TD, SEN(printargs), "vmsplice#64" },
+[279] = { 6, TM, SEN(printargs), "move_pages#64" },
[280] = { 4, TD|TF, SEN(utimensat), "utimensat" },
[281] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" },
[282] = { 3, TD|TS, SEN(signalfd), "signalfd" },
@@ -293,11 +293,11 @@
[292] = { 3, TD, SEN(dup3), "dup3" },
[293] = { 2, TD, SEN(pipe2), "pipe2" },
[294] = { 1, TD, SEN(inotify_init1), "inotify_init1" },
-[295] = { 4, TD, SEN(printargs), "64:preadv" },
-[296] = { 4, TD, SEN(printargs), "64:pwritev" },
-[297] = { 4, TP|TS, SEN(printargs), "64:rt_tgsigqueueinfo" },
+[295] = { 4, TD, SEN(printargs), "preadv#64" },
+[296] = { 4, TD, SEN(printargs), "pwritev#64" },
+[297] = { 4, TP|TS, SEN(printargs), "rt_tgsigqueueinfo#64" },
[298] = { 5, TD, SEN(perf_event_open), "perf_event_open" },
-[299] = { 5, TN, SEN(printargs), "64:recvmmsg" },
+[299] = { 5, TN, SEN(printargs), "recvmmsg#64" },
[300] = { 2, TD, SEN(fanotify_init), "fanotify_init" },
[301] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[302] = { 4, 0, SEN(prlimit64), "prlimit64" },
@@ -305,11 +305,11 @@
[304] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" },
[305] = { 2, 0, SEN(clock_adjtime), "clock_adjtime" },
[306] = { 1, TD, SEN(syncfs), "syncfs" },
-[307] = { 4, TN, SEN(printargs), "64:sendmmsg" },
+[307] = { 4, TN, SEN(printargs), "sendmmsg#64" },
[308] = { 2, TD, SEN(setns), "setns" },
[309] = { 3, 0, SEN(getcpu), "getcpu" },
-[310] = { 6, 0, SEN(printargs), "64:process_vm_readv" },
-[311] = { 6, 0, SEN(printargs), "64:process_vm_writev" },
+[310] = { 6, 0, SEN(printargs), "process_vm_readv#64" },
+[311] = { 6, 0, SEN(printargs), "process_vm_writev#64" },
[312] = { 5, 0, SEN(kcmp), "kcmp" },
[313] = { 3, TD, SEN(finit_module), "finit_module" },
[314] = { 3, 0, SEN(sched_setattr), "sched_setattr" },
@@ -320,18 +320,19 @@
[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(printargs), "64:execveat" },
+[322] = { 5, TD|TF|TP|SE|SI, SEN(printargs), "execveat#64" },
[323] = { 1, TD, SEN(userfaultfd), "userfaultfd" },
[324] = { 2, 0, SEN(membarrier), "membarrier" },
[325] = { 3, TM, SEN(mlock2), "mlock2" },
[326] = { 6, TD, SEN(copy_file_range), "copy_file_range" },
-[327] = { 6, TD, SEN(printargs), "64:preadv2" },
-[328] = { 6, TD, SEN(printargs), "64:pwritev2" },
+[327] = { 6, TD, SEN(printargs), "preadv2#64" },
+[328] = { 6, TD, SEN(printargs), "pwritev2#64" },
[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" },
-[333 ... 511] = { },
+[333] = { 6, 0, SEN(io_pgetevents), "io_pgetevents" },
+[334 ... 511] = { },
/*
* x32-specific system call numbers start at 512 to avoid cache impact
* for native 64-bit operation.
@@ -372,3 +373,4 @@
[545] = { 5, CST|TD|TF|TP|SE|SI, SEN(execveat), "execveat" },
[546] = { 5, TD, SEN(preadv2), "preadv2" },
[547] = { 5, TD, SEN(pwritev2), "pwritev2" },
+[334] = { 4, 0, SEN(rseq), "rseq" },
diff --git a/linux/x86_64/errnoent1.h b/linux/x86_64/errnoent1.h
deleted file mode 100644
index d32435a..0000000
--- a/linux/x86_64/errnoent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* i386 personality */
-#include "errnoent.h"
diff --git a/linux/x86_64/errnoent2.h b/linux/x86_64/errnoent2.h
deleted file mode 100644
index 2192ec8..0000000
--- a/linux/x86_64/errnoent2.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* x32 personality */
-#include "errnoent.h"
diff --git a/linux/x86_64/ioctls_arch0.h b/linux/x86_64/ioctls_arch0.h
index 8d6abab..3399500 100644
--- a/linux/x86_64/ioctls_arch0.h
+++ b/linux/x86_64/ioctls_arch0.h
@@ -58,6 +58,7 @@
{ "linux/kvm.h", "KVM_GET_XCRS", _IOC_READ, 0xaea6, 0x188 },
{ "linux/kvm.h", "KVM_GET_XSAVE", _IOC_READ, 0xaea4, 0x1000 },
{ "linux/kvm.h", "KVM_HAS_DEVICE_ATTR", _IOC_WRITE, 0xaee3, 0x18 },
+{ "linux/kvm.h", "KVM_HYPERV_EVENTFD", _IOC_WRITE, 0xaebd, 0x18 },
{ "linux/kvm.h", "KVM_INTERRUPT", _IOC_WRITE, 0xae86, 0x04 },
{ "linux/kvm.h", "KVM_IOEVENTFD", _IOC_WRITE, 0xae79, 0x40 },
{ "linux/kvm.h", "KVM_IRQFD", _IOC_WRITE, 0xae76, 0x20 },
diff --git a/linux/x86_64/signalent1.h b/linux/x86_64/signalent1.h
deleted file mode 100644
index fdae15f..0000000
--- a/linux/x86_64/signalent1.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* i386 personality */
-#include "signalent.h"
diff --git a/linux/x86_64/signalent2.h b/linux/x86_64/signalent2.h
deleted file mode 100644
index 6b32d62..0000000
--- a/linux/x86_64/signalent2.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* x32 personality */
-#include "signalent.h"
diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
index 8d95c1d..63ec52e 100644
--- a/linux/x86_64/syscallent.h
+++ b/linux/x86_64/syscallent.h
@@ -331,3 +331,5 @@
[330] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" },
[331] = { 1, 0, SEN(pkey_free), "pkey_free" },
[332] = { 5, TD|TF|TSTA, SEN(statx), "statx" },
+[333] = { 6, 0, SEN(io_pgetevents), "io_pgetevents" },
+[334] = { 4, 0, SEN(rseq), "rseq" },
diff --git a/m32_printer_decls.h b/m32_printer_decls.h
index bd1dee3..52018a7 100644
--- a/m32_printer_decls.h
+++ b/m32_printer_decls.h
@@ -1,4 +1,4 @@
-/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
+/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i perf_ioctl.c.mpers.i print_aio_sigset.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
extern int m32_block_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
extern int m32_btrfs_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
extern int m32_evdev_write_ioctl_mpers(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
@@ -17,6 +17,8 @@
extern int m32_hdio_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
extern int m32_loop_ioctl(struct tcb *tcp, const unsigned int code, const kernel_ulong_t arg);
extern int m32_mtd_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
+extern int m32_perf_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
+extern void m32_print_aio_sigset(struct tcb *tcp, const kernel_ulong_t addr);
extern void m32_print_group_req(struct tcb *const tcp, const kernel_ulong_t addr, const int len);
extern void m32_printmqattr(struct tcb *const tcp, const kernel_ulong_t addr, const _Bool decode_flags);
extern void m32_tprint_msgbuf(struct tcb *const tcp, const kernel_ulong_t addr, const kernel_ulong_t count);
diff --git a/m32_printer_defs.h b/m32_printer_defs.h
index 9551ea9..8345175 100644
--- a/m32_printer_defs.h
+++ b/m32_printer_defs.h
@@ -1,4 +1,4 @@
-/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
+/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i perf_ioctl.c.mpers.i print_aio_sigset.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
.block_ioctl = m32_block_ioctl,
.btrfs_ioctl = m32_btrfs_ioctl,
.evdev_write_ioctl_mpers = m32_evdev_write_ioctl_mpers,
@@ -17,6 +17,8 @@
.hdio_ioctl = m32_hdio_ioctl,
.loop_ioctl = m32_loop_ioctl,
.mtd_ioctl = m32_mtd_ioctl,
+.perf_ioctl = m32_perf_ioctl,
+.print_aio_sigset = m32_print_aio_sigset,
.print_group_req = m32_print_group_req,
.printmqattr = m32_printmqattr,
.tprint_msgbuf = m32_tprint_msgbuf,
diff --git a/m32_type_defs.h b/m32_type_defs.h
index d379ecd..a20665d 100644
--- a/m32_type_defs.h
+++ b/m32_type_defs.h
@@ -70,6 +70,9 @@
#ifdef MPERS_m32_struct_mtd_oob_buf
# define struct_mtd_oob_buf MPERS_m32_struct_mtd_oob_buf
#endif
+#ifdef MPERS_m32_strace_aio_sigset
+# define strace_aio_sigset MPERS_m32_strace_aio_sigset
+#endif
#ifdef MPERS_m32_struct_group_req
# define struct_group_req MPERS_m32_struct_group_req
#endif
diff --git a/m4/bpf_attr.m4 b/m4/bpf_attr.m4
index a90373b..16cdb97 100644
--- a/m4/bpf_attr.m4
+++ b/m4/bpf_attr.m4
@@ -1,13 +1,38 @@
dnl Generated by ./m4/gen_bpf_attr_m4.sh from bpf_attr.h; do not edit.
AC_DEFUN([st_BPF_ATTR], [dnl
AC_CHECK_MEMBERS(m4_normalize([
+ struct bpf_map_info.id,
+ struct bpf_map_info.ifindex,
+ struct bpf_map_info.key_size,
+ struct bpf_map_info.map_flags,
+ struct bpf_map_info.max_entries,
+ struct bpf_map_info.name,
+ struct bpf_map_info.type,
+ struct bpf_map_info.value_size,
+ struct bpf_prog_info.created_by_uid,
+ struct bpf_prog_info.id,
+ struct bpf_prog_info.ifindex,
+ struct bpf_prog_info.jited_prog_insns,
+ struct bpf_prog_info.jited_prog_len,
+ struct bpf_prog_info.load_time,
+ struct bpf_prog_info.map_ids,
+ struct bpf_prog_info.name,
+ struct bpf_prog_info.nr_map_ids,
+ struct bpf_prog_info.tag,
+ struct bpf_prog_info.type,
+ struct bpf_prog_info.xlated_prog_insns,
+ struct bpf_prog_info.xlated_prog_len,
union bpf_attr.attach_bpf_fd,
union bpf_attr.attach_flags,
union bpf_attr.attach_type,
union bpf_attr.bpf_fd,
union bpf_attr.dummy,
+ union bpf_attr.expected_attach_type,
union bpf_attr.file_flags,
union bpf_attr.flags,
+ union bpf_attr.info.bpf_fd,
+ union bpf_attr.info.info,
+ union bpf_attr.info.info_len,
union bpf_attr.inner_map_fd,
union bpf_attr.insn_cnt,
union bpf_attr.insns,
@@ -21,6 +46,8 @@
union bpf_attr.map_fd,
union bpf_attr.map_flags,
union bpf_attr.map_id,
+ union bpf_attr.map_ifindex,
+ union bpf_attr.map_name,
union bpf_attr.map_type,
union bpf_attr.max_entries,
union bpf_attr.next_id,
@@ -30,11 +57,19 @@
union bpf_attr.pathname,
union bpf_attr.prog_flags,
union bpf_attr.prog_id,
+ union bpf_attr.prog_ifindex,
+ union bpf_attr.prog_name,
union bpf_attr.prog_type,
+ union bpf_attr.query.attach_flags,
+ union bpf_attr.query.attach_type,
+ union bpf_attr.query.prog_cnt,
+ union bpf_attr.query.prog_ids,
+ union bpf_attr.query.query_flags,
+ union bpf_attr.query.target_fd,
+ union bpf_attr.raw_tracepoint.name,
+ union bpf_attr.raw_tracepoint.prog_fd,
union bpf_attr.start_id,
union bpf_attr.target_fd,
- union bpf_attr.value,
- union bpf_attr.value_size,
union bpf_attr.test.data_in,
union bpf_attr.test.data_out,
union bpf_attr.test.data_size_in,
@@ -43,9 +78,8 @@
union bpf_attr.test.prog_fd,
union bpf_attr.test.repeat,
union bpf_attr.test.retval,
- union bpf_attr.info.bpf_fd,
- union bpf_attr.info.info,
- union bpf_attr.info.info_len,
+ union bpf_attr.value,
+ union bpf_attr.value_size,
union bpf_attr.dummy
]),,, [#include <linux/bpf.h>])
])
diff --git a/m4/st_demangle.m4 b/m4/st_demangle.m4
new file mode 100644
index 0000000..cf3d2d1
--- /dev/null
+++ b/m4/st_demangle.m4
@@ -0,0 +1,82 @@
+#!/usr/bin/m4
+#
+# Copyright (c) 2017-2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+AC_DEFUN([st_DEMANGLE], [dnl
+
+AC_ARG_WITH([libiberty],
+ [AS_HELP_STRING([--with-libiberty],
+ [use libiberty to demangle symbols in stack trace])],
+ [case "${withval}" in
+ yes|no|check) ;;
+ *) with_libiberty=yes
+ libiberty_CPPFLAGS="-I${withval}/include"
+ libiberty_LDFLAGS="-L${withval}/lib" ;;
+ esac],
+ [with_libiberty=check]
+)
+
+libiberty_CPPFLAGS=
+libiberty_LDFLAGS=
+libiberty_LIBS=
+use_libiberty=no
+
+AS_IF([test "x$with_libiberty" != xno],
+ [saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $libiberty_CPPFLAGS"
+ AC_CHECK_HEADERS([demangle.h libiberty/demangle.h],
+ [saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $libiberty_LDFLAGS"
+ AC_CHECK_LIB([iberty],[cplus_demangle],
+ [libiberty_LIBS="-liberty"
+ use_libiberty=yes
+ ],
+ [if test "x$with_libiberty" != xcheck; then
+ AC_MSG_FAILURE([failed to find cplus_demangle in libiberty])
+ fi
+ ]
+ )
+ LDFLAGS="$saved_LDFLAGS"
+ ],
+ [if test "x$with_libiberty" != xcheck; then
+ AC_MSG_FAILURE([failed to find demangle.h])
+ fi
+ ]
+ )
+ CPPFLAGS="$saved_CPPFLAGS"
+ ]
+)
+
+AC_MSG_CHECKING([whether to enable symbols demangling in stack trace])
+if test "x$use_libiberty" = xyes; then
+ AC_DEFINE([USE_DEMANGLE], 1, [Do symbols demangling in stack trace])
+ AC_SUBST(libiberty_LIBS)
+ AC_SUBST(libiberty_LDFLAGS)
+ AC_SUBST(libiberty_CPPFLAGS)
+fi
+AC_MSG_RESULT([$use_libiberty])
+
+])
diff --git a/m4/st_libdw.m4 b/m4/st_libdw.m4
new file mode 100644
index 0000000..f33ec35
--- /dev/null
+++ b/m4/st_libdw.m4
@@ -0,0 +1,113 @@
+#!/usr/bin/m4
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+AC_DEFUN([st_ARG_LIBDW], [dnl
+
+: ${libdw_CPPFLAGS=}
+: ${libdw_CFLAGS=}
+: ${libdw_LDFLAGS=}
+: ${libdw_LIBS=}
+
+AC_ARG_WITH([libdw],
+ [AS_HELP_STRING([--with-libdw],
+ [use libdw to implement stack tracing support]
+ )
+ ],
+ [case "${withval}" in
+ yes|no|check) ;;
+ *) libdw_CPPFLAGS="-I${withval}/include"
+ libdw_LDFLAGS="-L${withval}/lib"
+ with_libdw=yes ;;
+ esac
+ ],
+ [with_libdw=check]
+ )
+
+])
+
+AC_DEFUN([st_LIBDW], [dnl
+
+have_libdw=
+
+AS_IF([test "x$with_libdw" != xno && test "x$use_unwinder" = x],
+ [saved_CPPFLAGS="$CPPFLAGS"
+ saved_CFLAGS="$CFLAGS"
+ CPPFLAGS="$CPPFLAGS $libdw_CPPFLAGS"
+ CFLAGS="$CFLAGS $libdw_CFLAGS"
+
+ AC_CHECK_HEADERS([elfutils/libdwfl.h],
+ [AC_CHECK_LIB([dw], [dwfl_linux_proc_attach],
+ [libdw_LIBS="-ldw $libdw_LIBS"
+ AC_CACHE_CHECK([for elfutils version],
+ [st_cv_ELFUTILS_VERSION],
+ [[st_cv_ELFUTILS_VERSION="$(echo _ELFUTILS_VERSION |
+ $CPP $CPPFLAGS -P -imacros elfutils/version.h - |
+ grep '^[0-9]')"
+ test -n "$st_cv_ELFUTILS_VERSION" ||
+ st_cv_ELFUTILS_VERSION=0
+ ]]
+ )
+ AS_IF([test "$st_cv_ELFUTILS_VERSION" -ge 164],
+ [have_libdw=yes],
+ [AS_IF([test "x$with_libdw" = xyes],
+ [AC_MSG_ERROR([elfutils version >= 164 is required for stack tracing support])],
+ [AC_MSG_WARN([elfutils version >= 164 is required for stack tracing support])]
+ )
+ ]
+ )
+ ],
+ [AS_IF([test "x$with_libdw" = xyes],
+ [AC_MSG_FAILURE([failed to find dwfl_linux_proc_attach in libdw])],
+ )
+ ],
+ [$libdw_LDFLAGS $libdw_LIBS]
+ )
+ ],
+ [AS_IF([test "x$with_libdw" = xyes],
+ [AC_MSG_FAILURE([failed to find elfutils/libdwfl.h])]
+ )
+ ]
+ )
+
+ CFLAGS="$saved_CFLAGS"
+ CPPFLAGS="$saved_CPPFLAGS"
+ ]
+)
+
+AS_IF([test "x$have_libdw" = xyes],
+ [use_unwinder=libdw
+ AC_DEFINE([USE_LIBDW], 1,
+ [Whether to use libdw for stack tracing]
+ )
+ AC_SUBST(libdw_CPPFLAGS)
+ AC_SUBST(libdw_CFLAGS)
+ AC_SUBST(libdw_LDFLAGS)
+ AC_SUBST(libdw_LIBS)
+ ]
+ )
+
+])
diff --git a/m4/st_libunwind.m4 b/m4/st_libunwind.m4
new file mode 100644
index 0000000..f68f9cb
--- /dev/null
+++ b/m4/st_libunwind.m4
@@ -0,0 +1,119 @@
+#!/usr/bin/m4
+#
+# Copyright (c) 2013-2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+AC_DEFUN([st_ARG_LIBUNWIND], [dnl
+
+AC_ARG_WITH([libunwind],
+ [AS_HELP_STRING([--with-libunwind],
+ [use libunwind to implement stack tracing support])],
+ [case "${withval}" in
+ yes|no|check) ;;
+ *) with_libunwind=yes
+ libunwind_CPPFLAGS="-I${withval}/include"
+ libunwind_LDFLAGS="-L${withval}/lib" ;;
+ esac],
+ [with_libunwind=check]
+)
+
+])
+
+AC_DEFUN([st_LIBUNWIND], [dnl
+
+libunwind_CPPFLAGS=
+libunwind_LDFLAGS=
+libunwind_LIBS=
+
+AS_IF([test "x$with_libunwind" != xno && test "x$use_unwinder" = x],
+ [saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
+
+ AC_CHECK_HEADERS([libunwind-ptrace.h],
+ [saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
+
+ AC_CHECK_LIB([unwind], [backtrace],
+ [libunwind_LIBS="-lunwind $libunwind_LIBS"
+
+ AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
+ saved_LIBS="$LIBS"
+ LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
+
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
+ [[return !unw_create_addr_space(0, 0)]])
+ ],
+ [AC_MSG_RESULT([yes])
+ libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
+
+ AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
+ [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
+ use_unwinder=libunwind
+ ],
+ [if test "x$with_libunwind" != xcheck; then
+ AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace])
+ fi
+ ],
+ [$libunwind_LIBS]
+ )
+ ],
+ [AC_MSG_RESULT([no])
+ if test "x$with_libunwind" != xcheck; then
+ AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic])
+ fi
+ ]
+ )
+
+ LIBS="$saved_LIBS"
+ ],
+ [if test "x$with_libunwind" != xcheck; then
+ AC_MSG_FAILURE([failed to find libunwind])
+ fi
+ ],
+ [$libunwind_LIBS]
+ )
+
+ LDFLAGS="$saved_LDFLAGS"
+ ],
+ [if test "x$with_libunwind" != xcheck; then
+ AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
+ fi
+ ]
+ )
+
+ CPPFLAGS="$saved_CPPFLAGS"
+ ]
+)
+
+if test "x$use_unwinder" = xlibunwind; then
+ AC_DEFINE([USE_LIBUNWIND], 1,
+ [Whether to use libunwind for stack tracing])
+ AC_SUBST(libunwind_LIBS)
+ AC_SUBST(libunwind_LDFLAGS)
+ AC_SUBST(libunwind_CPPFLAGS)
+fi
+
+])
diff --git a/m4/st_stacktrace.m4 b/m4/st_stacktrace.m4
new file mode 100644
index 0000000..35b50e7
--- /dev/null
+++ b/m4/st_stacktrace.m4
@@ -0,0 +1,78 @@
+#!/usr/bin/m4
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+AC_DEFUN([st_STACKTRACE], [dnl
+
+AC_ARG_ENABLE([stacktrace],
+ [AS_HELP_STRING([--enable-stacktrace=yes|no|check],
+ [whether to enable stack tracing support, default is check])],
+ [case "$enableval" in
+ yes|no|check) enable_stacktrace="$enableval" ;;
+ *) AC_MSG_ERROR([bad value $enableval for enable-stacktrace option.
+ Valid options are: yes, no, check.])
+ ;;
+ esac],
+ [enable_stacktrace=check])
+
+use_unwinder=
+dnl Whether to enable stack tracing support?
+
+AS_IF([test x"$enable_stacktrace" != xno],
+ [st_ARG_LIBDW
+ st_ARG_LIBUNWIND
+ AS_IF([test "x$with_libdw" = xyes && test "x$with_libunwind" = xyes],
+ [AC_MSG_ERROR([--with-libdw=yes and --with-libunwind=yes are mutually exclusive])],
+ [test "x$with_libdw" = xyes], [with_libunwind=no],
+ [test "x$with_libunwind" = xyes], [with_libdw=no]
+ )
+ AS_IF([test "x$use_unwinder" = x], [st_LIBDW])
+ AS_IF([test "x$use_unwinder" = x], [st_LIBUNWIND])
+ AS_IF([test x"$enable_stacktrace$use_unwinder" = xyes],
+ [AC_MSG_ERROR([stack tracing support requires an unwinder])]
+ )
+ ]
+ )
+
+AC_MSG_CHECKING([whether to enable stack tracing support])
+AM_CONDITIONAL([ENABLE_STACKTRACE], [test "x$use_unwinder" != x])
+AM_CONDITIONAL([USE_LIBDW], [test "x$use_unwinder" = xlibdw])
+AM_CONDITIONAL([USE_LIBUNWIND], [test "x$use_unwinder" = xlibunwind])
+
+use_libiberty=
+AS_IF([test "x$use_unwinder" != x],
+ [AC_DEFINE([ENABLE_STACKTRACE], [1],
+ [Define to enable stack tracing support])
+ AC_DEFINE_UNQUOTED([USE_UNWINDER], ["$use_unwinder"],
+ [The unwinder to use for stack tracing support])
+ AC_MSG_RESULT([yes, using $use_unwinder])
+ dnl As stack tracing support is enabled, check for a demangler.
+ st_DEMANGLE],
+ [AC_MSG_RESULT([no])])
+
+AM_CONDITIONAL([USE_DEMANGLE], [test "x$use_libiberty" = xyes])
+
+])
diff --git a/macros.h b/macros.h
index d7e116e..f5334ef 100644
--- a/macros.h
+++ b/macros.h
@@ -35,6 +35,8 @@
#define ARRAY_SIZE(a_) (sizeof(a_) / sizeof((a_)[0]) + MUST_BE_ARRAY(a_))
+#define ARRSZ_PAIR(a_) a_, ARRAY_SIZE(a_)
+
#define STRINGIFY(...) #__VA_ARGS__
#define STRINGIFY_VAL(...) STRINGIFY(__VA_ARGS__)
diff --git a/mem.c b/mem.c
index f79d67c..3e37da1 100644
--- a/mem.c
+++ b/mem.c
@@ -40,8 +40,18 @@
{
static unsigned long pagesize;
- if (!pagesize)
- pagesize = sysconf(_SC_PAGESIZE);
+ if (!pagesize) {
+ long ret = sysconf(_SC_PAGESIZE);
+
+ if (ret < 0)
+ perror_func_msg_and_die("sysconf(_SC_PAGESIZE)");
+ if (ret == 0)
+ error_func_msg_and_die("sysconf(_SC_PAGESIZE) "
+ "returned 0");
+
+ pagesize = (unsigned long) ret;
+ }
+
return pagesize;
}
@@ -350,7 +360,7 @@
unsigned int entry;
print_array(tcp, map, nmemb, &entry, sizeof(entry),
- umoven_or_printaddr, print_protmap_entry, 0);
+ tfetch_mem, print_protmap_entry, 0);
return RVAL_DECODED;
}
diff --git a/mmap_cache.c b/mmap_cache.c
index 19f88ab..631133b 100644
--- a/mmap_cache.c
+++ b/mmap_cache.c
@@ -30,19 +30,61 @@
#include "largefile_wrappers.h"
#include "mmap_cache.h"
+#include "mmap_notify.h"
#include "xstring.h"
static unsigned int mmap_cache_generation;
-static bool use_mmap_cache;
-extern void mmap_cache_enable(void)
+static void
+mmap_cache_invalidate(struct tcb *tcp, void *unused)
{
- use_mmap_cache = true;
+#if SUPPORTED_PERSONALITIES > 1
+ if (tcp->currpers != DEFAULT_PERSONALITY) {
+ /* disable stack trace */
+ return;
+ }
+#endif
+ mmap_cache_generation++;
+ debug_func_msg("tgen=%u, ggen=%u, tcp=%p, cache=%p",
+ tcp->mmap_cache ? tcp->mmap_cache->generation : 0,
+ mmap_cache_generation, tcp,
+ tcp->mmap_cache ? tcp->mmap_cache->entry : 0);
}
-extern bool mmap_cache_is_enabled(void)
+void
+mmap_cache_enable(void)
{
- return use_mmap_cache;
+ static bool use_mmap_cache;
+
+ if (!use_mmap_cache) {
+ mmap_notify_register_client(mmap_cache_invalidate, NULL);
+ use_mmap_cache = true;
+ }
+}
+
+/* deleting the cache */
+static void
+delete_mmap_cache(struct tcb *tcp, const char *caller)
+{
+ debug_func_msg("tgen=%u, ggen=%u, tcp=%p, cache=%p, caller=%s",
+ tcp->mmap_cache ? tcp->mmap_cache->generation : 0,
+ mmap_cache_generation, tcp,
+ tcp->mmap_cache ? tcp->mmap_cache->entry : 0, caller);
+
+ if (!tcp->mmap_cache)
+ return;
+
+ while (tcp->mmap_cache->size) {
+ unsigned int i = --tcp->mmap_cache->size;
+ free(tcp->mmap_cache->entry[i].binary_filename);
+ tcp->mmap_cache->entry[i].binary_filename = NULL;
+ }
+
+ free(tcp->mmap_cache->entry);
+ tcp->mmap_cache->entry = NULL;
+
+ free(tcp->mmap_cache);
+ tcp->mmap_cache = NULL;
}
/*
@@ -51,25 +93,35 @@
* The cache must be refreshed after syscalls that affect memory mappings,
* e.g. mmap, mprotect, munmap, execve.
*/
-static void
-build_mmap_cache(struct tcb *tcp)
+extern enum mmap_cache_rebuild_result
+mmap_cache_rebuild_if_invalid(struct tcb *tcp, const char *caller)
{
- FILE *fp;
- struct mmap_cache_t *cache_head = NULL;
- /* start with a small dynamically-allocated array and then expand it */
- size_t cur_array_size = 0;
- char filename[sizeof("/proc/4294967296/maps")];
- char buffer[PATH_MAX + 80];
+ if (tcp->mmap_cache
+ && tcp->mmap_cache->generation != mmap_cache_generation)
+ delete_mmap_cache(tcp, caller);
+ if (tcp->mmap_cache)
+ return MMAP_CACHE_REBUILD_READY;
+
+ char filename[sizeof("/proc/4294967296/maps")];
xsprintf(filename, "/proc/%u/maps", tcp->pid);
- fp = fopen_stream(filename, "r");
+
+ FILE *fp = fopen_stream(filename, "r");
if (!fp) {
perror_msg("fopen: %s", filename);
- return;
+ return MMAP_CACHE_REBUILD_NOCACHE;
}
+ struct mmap_cache_t cache = {
+ .free_fn = delete_mmap_cache,
+ .generation = mmap_cache_generation
+ };
+
+ /* start with a small dynamically-allocated array and then expand it */
+ size_t allocated = 0;
+ char buffer[PATH_MAX + 80];
+
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
- struct mmap_cache_t *entry;
unsigned long start_addr, end_addr, mmap_offset;
char read_bit;
char write_bit;
@@ -101,12 +153,13 @@
break;
}
+ struct mmap_cache_entry_t *entry;
/*
* sanity check to make sure that we're storing
* non-overlapping regions in ascending order
*/
- if (tcp->mmap_cache_size > 0) {
- entry = &cache_head[tcp->mmap_cache_size - 1];
+ if (cache.size > 0) {
+ entry = &cache.entry[cache.size - 1];
if (entry->start_addr == start_addr &&
entry->end_addr == end_addr) {
/* duplicate entry, e.g. [vsyscall] */
@@ -124,11 +177,11 @@
}
}
- if (tcp->mmap_cache_size >= cur_array_size)
- cache_head = xgrowarray(cache_head, &cur_array_size,
- sizeof(*cache_head));
+ if (cache.size >= allocated)
+ cache.entry = xgrowarray(cache.entry, &allocated,
+ sizeof(*cache.entry));
- entry = &cache_head[tcp->mmap_cache_size];
+ entry = &cache.entry[cache.size];
entry->start_addr = start_addr;
entry->end_addr = end_addr;
entry->mmap_offset = mmap_offset;
@@ -142,89 +195,40 @@
entry->major = major;
entry->minor = minor;
entry->binary_filename = xstrdup(binary_path);
- tcp->mmap_cache_size++;
+ cache.size++;
}
fclose(fp);
- tcp->mmap_cache = cache_head;
- tcp->mmap_cache_generation = mmap_cache_generation;
- debug_func_msg("tgen=%u, ggen=%u, tcp=%p, cache=%p",
- tcp->mmap_cache_generation,
- mmap_cache_generation,
- tcp, tcp->mmap_cache);
-}
+ if (!cache.size)
+ return MMAP_CACHE_REBUILD_NOCACHE;
-/* deleting the cache */
-extern void
-mmap_cache_delete(struct tcb *tcp, const char *caller)
-{
- unsigned int i;
+ tcp->mmap_cache = xmalloc(sizeof(*tcp->mmap_cache));
+ memcpy(tcp->mmap_cache, &cache, sizeof(cache));
debug_func_msg("tgen=%u, ggen=%u, tcp=%p, cache=%p, caller=%s",
- tcp->mmap_cache_generation,
- mmap_cache_generation,
- tcp, tcp->mmap_cache, caller);
+ tcp->mmap_cache->generation, mmap_cache_generation,
+ tcp, tcp->mmap_cache->entry, caller);
- for (i = 0; i < tcp->mmap_cache_size; i++) {
- free(tcp->mmap_cache[i].binary_filename);
- tcp->mmap_cache[i].binary_filename = NULL;
- }
- free(tcp->mmap_cache);
- tcp->mmap_cache = NULL;
- tcp->mmap_cache_size = 0;
+ return MMAP_CACHE_REBUILD_RENEWED;
}
-extern enum mmap_cache_rebuild_result
-mmap_cache_rebuild_if_invalid(struct tcb *tcp, const char *caller)
-{
- enum mmap_cache_rebuild_result r = MMAP_CACHE_REBUILD_READY;
- if ((tcp->mmap_cache_generation != mmap_cache_generation)
- && tcp->mmap_cache)
- mmap_cache_delete(tcp, caller);
-
- if (!tcp->mmap_cache) {
- r = MMAP_CACHE_REBUILD_RENEWED;
- build_mmap_cache(tcp);
- }
-
- if (!(tcp->mmap_cache && tcp->mmap_cache_size))
- r = MMAP_CACHE_REBUILD_NOCACHE;
-
- return r;
-}
-
-void
-mmap_cache_invalidate(struct tcb *tcp)
-{
-#if SUPPORTED_PERSONALITIES > 1
- if (tcp->currpers != DEFAULT_PERSONALITY) {
- /* disable stack trace */
- return;
- }
-#endif
- mmap_cache_generation++;
- debug_func_msg("tgen=%u, ggen=%u, tcp=%p, cache=%p",
- tcp->mmap_cache_generation,
- mmap_cache_generation,
- tcp, tcp->mmap_cache);
-}
-
-struct mmap_cache_t *
+struct mmap_cache_entry_t *
mmap_cache_search(struct tcb *tcp, unsigned long ip)
{
+ if (!tcp->mmap_cache)
+ return NULL;
+
int lower = 0;
- int upper = (int) tcp->mmap_cache_size - 1;
+ int upper = (int) tcp->mmap_cache->size - 1;
while (lower <= upper) {
- struct mmap_cache_t *cur_mmap_cache;
int mid = (upper + lower) / 2;
+ struct mmap_cache_entry_t *entry = &tcp->mmap_cache->entry[mid];
- cur_mmap_cache = &tcp->mmap_cache[mid];
-
- if (ip >= cur_mmap_cache->start_addr &&
- ip < cur_mmap_cache->end_addr)
- return cur_mmap_cache;
- else if (ip < cur_mmap_cache->start_addr)
+ if (ip >= entry->start_addr &&
+ ip < entry->end_addr)
+ return entry;
+ else if (ip < entry->start_addr)
upper = mid - 1;
else
lower = mid + 1;
diff --git a/mmap_cache.h b/mmap_cache.h
index 265f8ec..90a939f 100644
--- a/mmap_cache.h
+++ b/mmap_cache.h
@@ -31,7 +31,15 @@
* Keep a sorted array of cache entries,
* so that we can binary search through it.
*/
+
struct mmap_cache_t {
+ struct mmap_cache_entry_t *entry;
+ void (*free_fn)(struct tcb *, const char *caller);
+ unsigned int size;
+ unsigned int generation;
+};
+
+struct mmap_cache_entry_t {
/**
* example entry:
* 7fabbb09b000-7fabbb09f000 r-xp 00179000 fc:00 1180246 /lib/libc-2.11.1.so
@@ -68,19 +76,10 @@
extern void
mmap_cache_enable(void);
-extern bool
-mmap_cache_is_enabled(void);
-
-extern void
-mmap_cache_invalidate(struct tcb *);
-
-extern void
-mmap_cache_delete(struct tcb *, const char *caller);
-
extern enum mmap_cache_rebuild_result
mmap_cache_rebuild_if_invalid(struct tcb *, const char *caller);
-extern struct mmap_cache_t *
+extern struct mmap_cache_entry_t *
mmap_cache_search(struct tcb *, unsigned long ip);
#endif /* !STRACE_MMAP_CACHE_H */
diff --git a/mmap_notify.c b/mmap_notify.c
new file mode 100644
index 0000000..034a6d9
--- /dev/null
+++ b/mmap_notify.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2018 The strace developers.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "mmap_notify.h"
+
+struct mmap_notify_client {
+ mmap_notify_fn fn;
+ void *data;
+ struct mmap_notify_client *next;
+};
+
+static struct mmap_notify_client *clients;
+
+void
+mmap_notify_register_client(mmap_notify_fn fn, void *data)
+{
+ struct mmap_notify_client *client = xmalloc(sizeof(*client));
+ client->fn = fn;
+ client->data = data;
+ client->next = clients;
+ clients = client;
+}
+
+void
+mmap_notify_report(struct tcb *tcp)
+{
+ struct mmap_notify_client *client;
+
+ for (client = clients; client; client = client->next)
+ client->fn(tcp, client->data);
+}
diff --git a/mmap_notify.h b/mmap_notify.h
new file mode 100644
index 0000000..8cf44c4
--- /dev/null
+++ b/mmap_notify.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 The strace developers.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_MMAP_NOTIFY_H
+#define STRACE_MMAP_NOTIFY_H
+
+#include "defs.h"
+
+typedef void (*mmap_notify_fn)(struct tcb *, void *);
+
+extern void
+mmap_notify_register_client(mmap_notify_fn, void *);
+
+extern void
+mmap_notify_report (struct tcb *);
+
+#endif /* !STRACE_MMAP_NOTIFY_H */
diff --git a/mmsghdr.c b/mmsghdr.c
index 9b78a1e..23e616a 100644
--- a/mmsghdr.c
+++ b/mmsghdr.c
@@ -34,18 +34,13 @@
#include "xstring.h"
#include <limits.h>
-static int
-fetch_struct_mmsghdr_or_printaddr(struct tcb *const tcp,
+static bool
+fetch_struct_mmsghdr_for_print(struct tcb *const tcp,
const kernel_ulong_t addr,
const unsigned int len, void *const mh)
{
- if ((entering(tcp) || !syserror(tcp))
- && fetch_struct_mmsghdr(tcp, addr, mh)) {
- return 0;
- } else {
- printaddr(addr);
- return -1;
- }
+ return (entering(tcp) || !syserror(tcp)) &&
+ fetch_struct_mmsghdr(tcp, addr, mh);
}
struct print_struct_mmsghdr_config {
@@ -146,7 +141,7 @@
}
print_array(tcp, addr, vlen, &mmsg, sizeof_struct_mmsghdr(),
- fetch_struct_mmsghdr_or_printaddr,
+ fetch_struct_mmsghdr_for_print,
print_struct_mmsghdr, &c);
}
diff --git a/mount.c b/mount.c
index 7df0e68..7b8d88d 100644
--- a/mount.c
+++ b/mount.c
@@ -5,7 +5,7 @@
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
* Copyright (c) 2005 Roland McGrath <[email protected]>
* Copyright (c) 2007-2015 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2014-2017 The strace developers.
+ * Copyright (c) 2014-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -70,7 +70,7 @@
tprints(", ");
if (old_magic) {
- tprints("MS_MGC_VAL");
+ print_xlat(MS_MGC_VAL);
if (flags)
tprints("|");
}
diff --git a/mpers-m32/kernel_dirent.d1 b/mpers-m32/kernel_dirent.d1
index a7e2a71..83b6410 100644
--- a/mpers-m32/kernel_dirent.d1
+++ b/mpers-m32/kernel_dirent.d1
@@ -1,89 +1,90 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xb4 (32-bit)
+ Length: 0xb5 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/kernel_dirent.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/kernel_dirent.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x57): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 36
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x10e): kernel_dirent
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 56
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_byte_size : 12
- <3d> DW_AT_decl_file : 2
- <3e> DW_AT_decl_line : 51
- <2><3f>: Abbrev Number: 5 (DW_TAG_member)
- <40> DW_AT_name : (indirect string, offset: 0xa3): d_ino
- <44> DW_AT_type : <0x78>
- <48> DW_AT_decl_file : 2
- <49> DW_AT_decl_line : 52
- <4a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4d>: Abbrev Number: 5 (DW_TAG_member)
- <4e> DW_AT_name : (indirect string, offset: 0xdb): d_off
- <52> DW_AT_type : <0x78>
- <56> DW_AT_decl_file : 2
- <57> DW_AT_decl_line : 53
- <58> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5b>: Abbrev Number: 5 (DW_TAG_member)
- <5c> DW_AT_name : (indirect string, offset: 0xe1): d_reclen
- <60> DW_AT_type : <0x95>
- <64> DW_AT_decl_file : 2
- <65> DW_AT_decl_line : 54
- <66> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><69>: Abbrev Number: 5 (DW_TAG_member)
- <6a> DW_AT_name : (indirect string, offset: 0xf9): d_name
- <6e> DW_AT_type : <0x9c>
- <72> DW_AT_decl_file : 2
- <73> DW_AT_decl_line : 55
- <74> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><77>: Abbrev Number: 0
- <1><78>: Abbrev Number: 3 (DW_TAG_typedef)
- <79> DW_AT_type : <0x83>
- <7d> DW_AT_name : (indirect string, offset: 0xcc): kernel_ulong_t
- <81> DW_AT_decl_file : 2
- <82> DW_AT_decl_line : 37
- <1><83>: Abbrev Number: 3 (DW_TAG_typedef)
- <84> DW_AT_type : <0x8e>
- <88> DW_AT_name : (indirect string, offset: 0xbb): __kernel_ulong_t
- <8c> DW_AT_decl_file : 1
- <8d> DW_AT_decl_line : 24
- <1><8e>: Abbrev Number: 6 (DW_TAG_base_type)
- <8f> DW_AT_name : (indirect string, offset: 0xa9): long unsigned int
- <93> DW_AT_encoding : 7 (unsigned)
- <94> DW_AT_byte_size : 4
- <1><95>: Abbrev Number: 6 (DW_TAG_base_type)
- <96> DW_AT_name : (indirect string, offset: 0xea): unsigned short
- <9a> DW_AT_encoding : 7 (unsigned)
- <9b> DW_AT_byte_size : 2
- <1><9c>: Abbrev Number: 7 (DW_TAG_array_type)
- <9d> DW_AT_type : <0xa9>
- <2><a1>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <a2> DW_AT_type : <0xb0>
- <a6> DW_AT_lower_bound : 0
- <a7> DW_AT_count : 1
- <2><a8>: Abbrev Number: 0
- <1><a9>: Abbrev Number: 6 (DW_TAG_base_type)
- <aa> DW_AT_name : (indirect string, offset: 0x100): char
- <ae> DW_AT_encoding : 8 (unsigned char)
- <af> DW_AT_byte_size : 1
- <1><b0>: Abbrev Number: 9 (DW_TAG_base_type)
- <b1> DW_AT_name : (indirect string, offset: 0x105): sizetype
- <b5> DW_AT_byte_size : 8
- <b6> DW_AT_encoding : 7 (unsigned)
- <1><b7>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x121): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 36
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1d8): kernel_dirent
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 56
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_byte_size : 12
+ <3e> DW_AT_decl_file : 2
+ <3f> DW_AT_decl_line : 51
+ <2><40>: Abbrev Number: 5 (DW_TAG_member)
+ <41> DW_AT_name : (indirect string, offset: 0x16d): d_ino
+ <45> DW_AT_type : <0x79>
+ <49> DW_AT_decl_file : 2
+ <4a> DW_AT_decl_line : 52
+ <4b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4e>: Abbrev Number: 5 (DW_TAG_member)
+ <4f> DW_AT_name : (indirect string, offset: 0x1a5): d_off
+ <53> DW_AT_type : <0x79>
+ <57> DW_AT_decl_file : 2
+ <58> DW_AT_decl_line : 53
+ <59> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><5c>: Abbrev Number: 5 (DW_TAG_member)
+ <5d> DW_AT_name : (indirect string, offset: 0x1ab): d_reclen
+ <61> DW_AT_type : <0x96>
+ <65> DW_AT_decl_file : 2
+ <66> DW_AT_decl_line : 54
+ <67> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6a>: Abbrev Number: 5 (DW_TAG_member)
+ <6b> DW_AT_name : (indirect string, offset: 0x1c3): d_name
+ <6f> DW_AT_type : <0x9d>
+ <73> DW_AT_decl_file : 2
+ <74> DW_AT_decl_line : 55
+ <75> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><78>: Abbrev Number: 0
+ <1><79>: Abbrev Number: 3 (DW_TAG_typedef)
+ <7a> DW_AT_type : <0x84>
+ <7e> DW_AT_name : (indirect string, offset: 0x196): kernel_ulong_t
+ <82> DW_AT_decl_file : 2
+ <83> DW_AT_decl_line : 37
+ <1><84>: Abbrev Number: 3 (DW_TAG_typedef)
+ <85> DW_AT_type : <0x8f>
+ <89> DW_AT_name : (indirect string, offset: 0x185): __kernel_ulong_t
+ <8d> DW_AT_decl_file : 1
+ <8e> DW_AT_decl_line : 24
+ <1><8f>: Abbrev Number: 6 (DW_TAG_base_type)
+ <90> DW_AT_name : (indirect string, offset: 0x173): long unsigned int
+ <94> DW_AT_encoding : 7 (unsigned)
+ <95> DW_AT_byte_size : 4
+ <1><96>: Abbrev Number: 6 (DW_TAG_base_type)
+ <97> DW_AT_name : (indirect string, offset: 0x1b4): unsigned short
+ <9b> DW_AT_encoding : 7 (unsigned)
+ <9c> DW_AT_byte_size : 2
+ <1><9d>: Abbrev Number: 7 (DW_TAG_array_type)
+ <9e> DW_AT_type : <0xaa>
+ <2><a2>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <a3> DW_AT_type : <0xb1>
+ <a7> DW_AT_lower_bound : 0
+ <a8> DW_AT_count : 1
+ <2><a9>: Abbrev Number: 0
+ <1><aa>: Abbrev Number: 6 (DW_TAG_base_type)
+ <ab> DW_AT_name : (indirect string, offset: 0x1ca): char
+ <af> DW_AT_encoding : 8 (unsigned char)
+ <b0> DW_AT_byte_size : 1
+ <1><b1>: Abbrev Number: 9 (DW_TAG_base_type)
+ <b2> DW_AT_name : (indirect string, offset: 0x1cf): sizetype
+ <b6> DW_AT_byte_size : 8
+ <b7> DW_AT_encoding : 7 (unsigned)
+ <1><b8>: Abbrev Number: 0
diff --git a/mpers-m32/kernel_dirent.d2 b/mpers-m32/kernel_dirent.d2
index 906d78a..904ca4f 100644
--- a/mpers-m32/kernel_dirent.d2
+++ b/mpers-m32/kernel_dirent.d2
@@ -1,87 +1,87 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 36
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x10e): kernel_dirent
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1d8): kernel_dirent
DW_AT_decl_file : 2
DW_AT_decl_line : 56
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 12
DW_AT_decl_file : 2
DW_AT_decl_line : 51
-<2><3f>
+<2><40>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa3): d_ino
-DW_AT_type : <0x78>
+DW_AT_name : (indirect string, offset: 0x16d): d_ino
+DW_AT_type : <0x79>
DW_AT_decl_file : 2
DW_AT_decl_line : 52
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4d>
+<2><4e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdb): d_off
-DW_AT_type : <0x78>
+DW_AT_name : (indirect string, offset: 0x1a5): d_off
+DW_AT_type : <0x79>
DW_AT_decl_file : 2
DW_AT_decl_line : 53
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5b>
+<2><5c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): d_reclen
-DW_AT_type : <0x95>
+DW_AT_name : (indirect string, offset: 0x1ab): d_reclen
+DW_AT_type : <0x96>
DW_AT_decl_file : 2
DW_AT_decl_line : 54
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><69>
+<2><6a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf9): d_name
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x1c3): d_name
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 55
DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<1><78>
+<1><79>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x83>
-DW_AT_name : (indirect string, offset: 0xcc): kernel_ulong_t
+DW_AT_type : <0x84>
+DW_AT_name : (indirect string, offset: 0x196): kernel_ulong_t
DW_AT_decl_file : 2
DW_AT_decl_line : 37
-<1><83>
+<1><84>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x8e>
-DW_AT_name : (indirect string, offset: 0xbb): __kernel_ulong_t
+DW_AT_type : <0x8f>
+DW_AT_name : (indirect string, offset: 0x185): __kernel_ulong_t
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><8e>
+<1><8f>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa9): long unsigned int
+DW_AT_name : (indirect string, offset: 0x173): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><95>
+<1><96>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xea): unsigned short
+DW_AT_name : (indirect string, offset: 0x1b4): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><9c>
+<1><9d>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0xa9>
-<2><a1>
+DW_AT_type : <0xaa>
+<2><a2>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0xb0>
+DW_AT_type : <0xb1>
DW_AT_lower_bound : 0
DW_AT_count : 1
-<1><a9>
+<1><aa>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x100): char
+DW_AT_name : (indirect string, offset: 0x1ca): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><b0>
+<1><b1>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x105): sizetype
+DW_AT_name : (indirect string, offset: 0x1cf): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
diff --git a/mpers-m32/mq_attr_t.d1 b/mpers-m32/mq_attr_t.d1
index 192ce5c..38805c5 100644
--- a/mpers-m32/mq_attr_t.d1
+++ b/mpers-m32/mq_attr_t.d1
@@ -1,83 +1,84 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xad (32-bit)
+ Length: 0xae (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/mq_attr_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/mq_attr_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x53): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 43
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xfd): mq_attr_t
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 39
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xf5): mq_attr
- <40> DW_AT_byte_size : 32
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 24
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9f): mq_flags
- <48> DW_AT_type : <0x8a>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 25
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xc1): mq_maxmsg
- <56> DW_AT_type : <0x8a>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 26
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xcb): mq_msgsize
- <64> DW_AT_type : <0x8a>
- <68> DW_AT_decl_file : 2
- <69> DW_AT_decl_line : 27
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xd6): mq_curmsgs
- <72> DW_AT_type : <0x8a>
- <76> DW_AT_decl_file : 2
- <77> DW_AT_decl_line : 28
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xe1): __reserved
- <80> DW_AT_type : <0x9c>
- <84> DW_AT_decl_file : 2
- <85> DW_AT_decl_line : 29
- <86> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><89>: Abbrev Number: 0
- <1><8a>: Abbrev Number: 3 (DW_TAG_typedef)
- <8b> DW_AT_type : <0x95>
- <8f> DW_AT_name : (indirect string, offset: 0xb1): __kernel_long_t
- <93> DW_AT_decl_file : 1
- <94> DW_AT_decl_line : 23
- <1><95>: Abbrev Number: 6 (DW_TAG_base_type)
- <96> DW_AT_name : (indirect string, offset: 0xa8): long int
- <9a> DW_AT_encoding : 5 (signed)
- <9b> DW_AT_byte_size : 4
- <1><9c>: Abbrev Number: 7 (DW_TAG_array_type)
- <9d> DW_AT_type : <0x8a>
- <2><a1>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <a2> DW_AT_type : <0xa9>
- <a6> DW_AT_lower_bound : 0
- <a7> DW_AT_count : 4
- <2><a8>: Abbrev Number: 0
- <1><a9>: Abbrev Number: 9 (DW_TAG_base_type)
- <aa> DW_AT_name : (indirect string, offset: 0xec): sizetype
- <ae> DW_AT_byte_size : 8
- <af> DW_AT_encoding : 7 (unsigned)
- <1><b0>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11d): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 43
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1c7): mq_attr_t
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 39
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1bf): mq_attr
+ <41> DW_AT_byte_size : 32
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 24
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x169): mq_flags
+ <49> DW_AT_type : <0x8b>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 25
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x18b): mq_maxmsg
+ <57> DW_AT_type : <0x8b>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 26
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x195): mq_msgsize
+ <65> DW_AT_type : <0x8b>
+ <69> DW_AT_decl_file : 2
+ <6a> DW_AT_decl_line : 27
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1a0): mq_curmsgs
+ <73> DW_AT_type : <0x8b>
+ <77> DW_AT_decl_file : 2
+ <78> DW_AT_decl_line : 28
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1ab): __reserved
+ <81> DW_AT_type : <0x9d>
+ <85> DW_AT_decl_file : 2
+ <86> DW_AT_decl_line : 29
+ <87> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><8a>: Abbrev Number: 0
+ <1><8b>: Abbrev Number: 3 (DW_TAG_typedef)
+ <8c> DW_AT_type : <0x96>
+ <90> DW_AT_name : (indirect string, offset: 0x17b): __kernel_long_t
+ <94> DW_AT_decl_file : 1
+ <95> DW_AT_decl_line : 23
+ <1><96>: Abbrev Number: 6 (DW_TAG_base_type)
+ <97> DW_AT_name : (indirect string, offset: 0x172): long int
+ <9b> DW_AT_encoding : 5 (signed)
+ <9c> DW_AT_byte_size : 4
+ <1><9d>: Abbrev Number: 7 (DW_TAG_array_type)
+ <9e> DW_AT_type : <0x8b>
+ <2><a2>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <a3> DW_AT_type : <0xaa>
+ <a7> DW_AT_lower_bound : 0
+ <a8> DW_AT_count : 4
+ <2><a9>: Abbrev Number: 0
+ <1><aa>: Abbrev Number: 9 (DW_TAG_base_type)
+ <ab> DW_AT_name : (indirect string, offset: 0x1b6): sizetype
+ <af> DW_AT_byte_size : 8
+ <b0> DW_AT_encoding : 7 (unsigned)
+ <1><b1>: Abbrev Number: 0
diff --git a/mpers-m32/mq_attr_t.d2 b/mpers-m32/mq_attr_t.d2
index be61833..12be562 100644
--- a/mpers-m32/mq_attr_t.d2
+++ b/mpers-m32/mq_attr_t.d2
@@ -1,79 +1,79 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 43
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xfd): mq_attr_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1c7): mq_attr_t
DW_AT_decl_file : 3
DW_AT_decl_line : 39
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xf5): mq_attr
+DW_AT_name : (indirect string, offset: 0x1bf): mq_attr
DW_AT_byte_size : 32
DW_AT_decl_file : 2
DW_AT_decl_line : 24
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9f): mq_flags
-DW_AT_type : <0x8a>
+DW_AT_name : (indirect string, offset: 0x169): mq_flags
+DW_AT_type : <0x8b>
DW_AT_decl_file : 2
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc1): mq_maxmsg
-DW_AT_type : <0x8a>
+DW_AT_name : (indirect string, offset: 0x18b): mq_maxmsg
+DW_AT_type : <0x8b>
DW_AT_decl_file : 2
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcb): mq_msgsize
-DW_AT_type : <0x8a>
+DW_AT_name : (indirect string, offset: 0x195): mq_msgsize
+DW_AT_type : <0x8b>
DW_AT_decl_file : 2
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd6): mq_curmsgs
-DW_AT_type : <0x8a>
+DW_AT_name : (indirect string, offset: 0x1a0): mq_curmsgs
+DW_AT_type : <0x8b>
DW_AT_decl_file : 2
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): __reserved
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x1ab): __reserved
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<1><8a>
+<1><8b>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x95>
-DW_AT_name : (indirect string, offset: 0xb1): __kernel_long_t
+DW_AT_type : <0x96>
+DW_AT_name : (indirect string, offset: 0x17b): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><95>
+<1><96>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa8): long int
+DW_AT_name : (indirect string, offset: 0x172): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><9c>
+<1><9d>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x8a>
-<2><a1>
+DW_AT_type : <0x8b>
+<2><a2>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0xa9>
+DW_AT_type : <0xaa>
DW_AT_lower_bound : 0
DW_AT_count : 4
-<1><a9>
+<1><aa>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xec): sizetype
+DW_AT_name : (indirect string, offset: 0x1b6): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
diff --git a/mpers-m32/msgbuf_t.d1 b/mpers-m32/msgbuf_t.d1
index 3e5b353..cd3f2df 100644
--- a/mpers-m32/msgbuf_t.d1
+++ b/mpers-m32/msgbuf_t.d1
@@ -1,69 +1,70 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x8a (32-bit)
+ Length: 0x8b (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/msgbuf_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/msgbuf_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x52): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8d): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 39
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xd8): msgbuf_t
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 38
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xd1): msgbuf
- <40> DW_AT_byte_size : 8
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 43
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9e): mtype
- <48> DW_AT_type : <0x60>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 44
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xbd): mtext
- <56> DW_AT_type : <0x72>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 45
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 0
- <1><60>: Abbrev Number: 3 (DW_TAG_typedef)
- <61> DW_AT_type : <0x6b>
- <65> DW_AT_name : (indirect string, offset: 0xad): __kernel_long_t
- <69> DW_AT_decl_file : 1
- <6a> DW_AT_decl_line : 23
- <1><6b>: Abbrev Number: 6 (DW_TAG_base_type)
- <6c> DW_AT_name : (indirect string, offset: 0xa4): long int
- <70> DW_AT_encoding : 5 (signed)
- <71> DW_AT_byte_size : 4
- <1><72>: Abbrev Number: 7 (DW_TAG_array_type)
- <73> DW_AT_type : <0x7f>
- <2><77>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <78> DW_AT_type : <0x86>
- <7c> DW_AT_lower_bound : 0
- <7d> DW_AT_count : 1
- <2><7e>: Abbrev Number: 0
- <1><7f>: Abbrev Number: 6 (DW_TAG_base_type)
- <80> DW_AT_name : (indirect string, offset: 0xc3): char
- <84> DW_AT_encoding : 8 (unsigned char)
- <85> DW_AT_byte_size : 1
- <1><86>: Abbrev Number: 9 (DW_TAG_base_type)
- <87> DW_AT_name : (indirect string, offset: 0xc8): sizetype
- <8b> DW_AT_byte_size : 8
- <8c> DW_AT_encoding : 7 (unsigned)
- <1><8d>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11c): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x157): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 39
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1a2): msgbuf_t
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 38
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x19b): msgbuf
+ <41> DW_AT_byte_size : 8
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 43
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x168): mtype
+ <49> DW_AT_type : <0x61>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 44
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x187): mtext
+ <57> DW_AT_type : <0x73>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 45
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 0
+ <1><61>: Abbrev Number: 3 (DW_TAG_typedef)
+ <62> DW_AT_type : <0x6c>
+ <66> DW_AT_name : (indirect string, offset: 0x177): __kernel_long_t
+ <6a> DW_AT_decl_file : 1
+ <6b> DW_AT_decl_line : 23
+ <1><6c>: Abbrev Number: 6 (DW_TAG_base_type)
+ <6d> DW_AT_name : (indirect string, offset: 0x16e): long int
+ <71> DW_AT_encoding : 5 (signed)
+ <72> DW_AT_byte_size : 4
+ <1><73>: Abbrev Number: 7 (DW_TAG_array_type)
+ <74> DW_AT_type : <0x80>
+ <2><78>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <79> DW_AT_type : <0x87>
+ <7d> DW_AT_lower_bound : 0
+ <7e> DW_AT_count : 1
+ <2><7f>: Abbrev Number: 0
+ <1><80>: Abbrev Number: 6 (DW_TAG_base_type)
+ <81> DW_AT_name : (indirect string, offset: 0x18d): char
+ <85> DW_AT_encoding : 8 (unsigned char)
+ <86> DW_AT_byte_size : 1
+ <1><87>: Abbrev Number: 9 (DW_TAG_base_type)
+ <88> DW_AT_name : (indirect string, offset: 0x192): sizetype
+ <8c> DW_AT_byte_size : 8
+ <8d> DW_AT_encoding : 7 (unsigned)
+ <1><8e>: Abbrev Number: 0
diff --git a/mpers-m32/msgbuf_t.d2 b/mpers-m32/msgbuf_t.d2
index 38a10dd..f7929c7 100644
--- a/mpers-m32/msgbuf_t.d2
+++ b/mpers-m32/msgbuf_t.d2
@@ -1,63 +1,63 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8d): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x157): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 39
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xd8): msgbuf_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1a2): msgbuf_t
DW_AT_decl_file : 3
DW_AT_decl_line : 38
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xd1): msgbuf
+DW_AT_name : (indirect string, offset: 0x19b): msgbuf
DW_AT_byte_size : 8
DW_AT_decl_file : 2
DW_AT_decl_line : 43
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9e): mtype
-DW_AT_type : <0x60>
+DW_AT_name : (indirect string, offset: 0x168): mtype
+DW_AT_type : <0x61>
DW_AT_decl_file : 2
DW_AT_decl_line : 44
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbd): mtext
-DW_AT_type : <0x72>
+DW_AT_name : (indirect string, offset: 0x187): mtext
+DW_AT_type : <0x73>
DW_AT_decl_file : 2
DW_AT_decl_line : 45
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><60>
+<1><61>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x6b>
-DW_AT_name : (indirect string, offset: 0xad): __kernel_long_t
+DW_AT_type : <0x6c>
+DW_AT_name : (indirect string, offset: 0x177): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><6b>
+<1><6c>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa4): long int
+DW_AT_name : (indirect string, offset: 0x16e): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><72>
+<1><73>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x7f>
-<2><77>
+DW_AT_type : <0x80>
+<2><78>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x86>
+DW_AT_type : <0x87>
DW_AT_lower_bound : 0
DW_AT_count : 1
-<1><7f>
+<1><80>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc3): char
+DW_AT_name : (indirect string, offset: 0x18d): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><86>
+<1><87>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc8): sizetype
+DW_AT_name : (indirect string, offset: 0x192): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
diff --git a/mpers-m32/msqid_ds_t.d1 b/mpers-m32/msqid_ds_t.d1
index 7d750ef..4124b20 100644
--- a/mpers-m32/msqid_ds_t.d1
+++ b/mpers-m32/msqid_ds_t.d1
@@ -1,246 +1,247 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x214 (32-bit)
+ Length: 0x215 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/msqid_ds_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/msqid_ds_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x54): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8f): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 5
- <29> DW_AT_decl_line : 49
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x238): msqid_ds_t
- <39> DW_AT_decl_file : 5
- <3a> DW_AT_decl_line : 42
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x22d): msqid64_ds
- <40> DW_AT_byte_size : 76
- <41> DW_AT_decl_file : 4
- <42> DW_AT_decl_line : 22
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa0): msg_perm
- <48> DW_AT_type : <0xde>
- <4c> DW_AT_decl_file : 4
- <4d> DW_AT_decl_line : 23
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0x190): msg_stime
- <56> DW_AT_type : <0x1ef>
- <5a> DW_AT_decl_file : 4
- <5b> DW_AT_decl_line : 24
- <5c> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0x1c3): msg_rtime
- <64> DW_AT_type : <0x1ef>
- <68> DW_AT_decl_file : 4
- <69> DW_AT_decl_line : 28
- <6a> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0x1cd): msg_ctime
- <72> DW_AT_type : <0x1ef>
- <76> DW_AT_decl_file : 4
- <77> DW_AT_decl_line : 32
- <78> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0x1d7): msg_cbytes
- <80> DW_AT_type : <0x1dd>
- <84> DW_AT_decl_file : 4
- <85> DW_AT_decl_line : 36
- <86> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x1e2): msg_qnum
- <8e> DW_AT_type : <0x1dd>
- <92> DW_AT_decl_file : 4
- <93> DW_AT_decl_line : 37
- <94> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x1eb): msg_qbytes
- <9c> DW_AT_type : <0x1dd>
- <a0> DW_AT_decl_file : 4
- <a1> DW_AT_decl_line : 38
- <a2> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x1f6): msg_lspid
- <aa> DW_AT_type : <0x20c>
- <ae> DW_AT_decl_file : 4
- <af> DW_AT_decl_line : 39
- <b0> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x20f): msg_lrpid
- <b8> DW_AT_type : <0x20c>
- <bc> DW_AT_decl_file : 4
- <bd> DW_AT_decl_line : 40
- <be> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x219): __unused4
- <c6> DW_AT_type : <0x1dd>
- <ca> DW_AT_decl_file : 4
- <cb> DW_AT_decl_line : 41
- <cc> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x223): __unused5
- <d4> DW_AT_type : <0x1dd>
- <d8> DW_AT_decl_file : 4
- <d9> DW_AT_decl_line : 42
- <da> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
- <2><dd>: Abbrev Number: 0
- <1><de>: Abbrev Number: 4 (DW_TAG_structure_type)
- <df> DW_AT_name : (indirect string, offset: 0x185): ipc64_perm
- <e3> DW_AT_byte_size : 36
- <e4> DW_AT_decl_file : 2
- <e5> DW_AT_decl_line : 21
- <2><e6>: Abbrev Number: 5 (DW_TAG_member)
- <e7> DW_AT_name : (indirect string, offset: 0xa9): key
- <eb> DW_AT_type : <0x181>
- <ef> DW_AT_decl_file : 2
- <f0> DW_AT_decl_line : 22
- <f1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><f4>: Abbrev Number: 5 (DW_TAG_member)
- <f5> DW_AT_name : (indirect string, offset: 0xc0): uid
- <f9> DW_AT_type : <0x193>
- <fd> DW_AT_decl_file : 2
- <fe> DW_AT_decl_line : 23
- <ff> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><102>: Abbrev Number: 5 (DW_TAG_member)
- <103> DW_AT_name : (indirect string, offset: 0xe2): gid
- <107> DW_AT_type : <0x1a5>
- <10b> DW_AT_decl_file : 2
- <10c> DW_AT_decl_line : 24
- <10d> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><110>: Abbrev Number: 5 (DW_TAG_member)
- <111> DW_AT_name : (indirect string, offset: 0xf7): cuid
- <115> DW_AT_type : <0x193>
- <119> DW_AT_decl_file : 2
- <11a> DW_AT_decl_line : 25
- <11b> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><11e>: Abbrev Number: 5 (DW_TAG_member)
- <11f> DW_AT_name : (indirect string, offset: 0xfc): cgid
- <123> DW_AT_type : <0x1a5>
- <127> DW_AT_decl_file : 2
- <128> DW_AT_decl_line : 26
- <129> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><12c>: Abbrev Number: 5 (DW_TAG_member)
- <12d> DW_AT_name : (indirect string, offset: 0x101): mode
- <131> DW_AT_type : <0x1b0>
- <135> DW_AT_decl_file : 2
- <136> DW_AT_decl_line : 27
- <137> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><13a>: Abbrev Number: 5 (DW_TAG_member)
- <13b> DW_AT_name : (indirect string, offset: 0x116): __pad1
- <13f> DW_AT_type : <0x1bb>
- <143> DW_AT_decl_file : 2
- <144> DW_AT_decl_line : 28
- <145> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><148>: Abbrev Number: 5 (DW_TAG_member)
- <149> DW_AT_name : (indirect string, offset: 0x134): seq
- <14d> DW_AT_type : <0x1d6>
- <151> DW_AT_decl_file : 2
- <152> DW_AT_decl_line : 29
- <153> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><156>: Abbrev Number: 5 (DW_TAG_member)
- <157> DW_AT_name : (indirect string, offset: 0x147): __pad2
- <15b> DW_AT_type : <0x1d6>
- <15f> DW_AT_decl_file : 2
- <160> DW_AT_decl_line : 30
- <161> DW_AT_data_member_location: 2 byte block: 23 1a (DW_OP_plus_uconst: 26)
- <2><164>: Abbrev Number: 5 (DW_TAG_member)
- <165> DW_AT_name : (indirect string, offset: 0x14e): __unused1
- <169> DW_AT_type : <0x1dd>
- <16d> DW_AT_decl_file : 2
- <16e> DW_AT_decl_line : 31
- <16f> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><172>: Abbrev Number: 5 (DW_TAG_member)
- <173> DW_AT_name : (indirect string, offset: 0x17b): __unused2
- <177> DW_AT_type : <0x1dd>
- <17b> DW_AT_decl_file : 2
- <17c> DW_AT_decl_line : 32
- <17d> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><180>: Abbrev Number: 0
- <1><181>: Abbrev Number: 3 (DW_TAG_typedef)
- <182> DW_AT_type : <0x18c>
- <186> DW_AT_name : (indirect string, offset: 0xb1): __kernel_key_t
- <18a> DW_AT_decl_file : 1
- <18b> DW_AT_decl_line : 28
- <1><18c>: Abbrev Number: 6 (DW_TAG_base_type)
- <18d> DW_AT_name : (indirect string, offset: 0xad): int
- <191> DW_AT_encoding : 5 (signed)
- <192> DW_AT_byte_size : 4
- <1><193>: Abbrev Number: 3 (DW_TAG_typedef)
- <194> DW_AT_type : <0x19e>
- <198> DW_AT_name : (indirect string, offset: 0xd1): __kernel_uid32_t
- <19c> DW_AT_decl_file : 3
- <19d> DW_AT_decl_line : 49
- <1><19e>: Abbrev Number: 6 (DW_TAG_base_type)
- <19f> DW_AT_name : (indirect string, offset: 0xc4): unsigned int
- <1a3> DW_AT_encoding : 7 (unsigned)
- <1a4> DW_AT_byte_size : 4
- <1><1a5>: Abbrev Number: 3 (DW_TAG_typedef)
- <1a6> DW_AT_type : <0x19e>
- <1aa> DW_AT_name : (indirect string, offset: 0xe6): __kernel_gid32_t
- <1ae> DW_AT_decl_file : 3
- <1af> DW_AT_decl_line : 50
- <1><1b0>: Abbrev Number: 3 (DW_TAG_typedef)
- <1b1> DW_AT_type : <0x19e>
- <1b5> DW_AT_name : (indirect string, offset: 0x106): __kernel_mode_t
- <1b9> DW_AT_decl_file : 3
- <1ba> DW_AT_decl_line : 30
- <1><1bb>: Abbrev Number: 7 (DW_TAG_array_type)
- <1bc> DW_AT_type : <0x1c8>
- <2><1c0>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <1c1> DW_AT_type : <0x1cf>
- <1c5> DW_AT_lower_bound : 0
- <1c6> DW_AT_count : 0
- <2><1c7>: Abbrev Number: 0
- <1><1c8>: Abbrev Number: 6 (DW_TAG_base_type)
- <1c9> DW_AT_name : (indirect string, offset: 0x11d): unsigned char
- <1cd> DW_AT_encoding : 8 (unsigned char)
- <1ce> DW_AT_byte_size : 1
- <1><1cf>: Abbrev Number: 9 (DW_TAG_base_type)
- <1d0> DW_AT_name : (indirect string, offset: 0x12b): sizetype
- <1d4> DW_AT_byte_size : 8
- <1d5> DW_AT_encoding : 7 (unsigned)
- <1><1d6>: Abbrev Number: 6 (DW_TAG_base_type)
- <1d7> DW_AT_name : (indirect string, offset: 0x138): unsigned short
- <1db> DW_AT_encoding : 7 (unsigned)
- <1dc> DW_AT_byte_size : 2
- <1><1dd>: Abbrev Number: 3 (DW_TAG_typedef)
- <1de> DW_AT_type : <0x1e8>
- <1e2> DW_AT_name : (indirect string, offset: 0x16a): __kernel_ulong_t
- <1e6> DW_AT_decl_file : 3
- <1e7> DW_AT_decl_line : 24
- <1><1e8>: Abbrev Number: 6 (DW_TAG_base_type)
- <1e9> DW_AT_name : (indirect string, offset: 0x158): long unsigned int
- <1ed> DW_AT_encoding : 7 (unsigned)
- <1ee> DW_AT_byte_size : 4
- <1><1ef>: Abbrev Number: 3 (DW_TAG_typedef)
- <1f0> DW_AT_type : <0x1fa>
- <1f4> DW_AT_name : (indirect string, offset: 0x1b3): __kernel_time_t
- <1f8> DW_AT_decl_file : 3
- <1f9> DW_AT_decl_line : 77
- <1><1fa>: Abbrev Number: 3 (DW_TAG_typedef)
- <1fb> DW_AT_type : <0x205>
- <1ff> DW_AT_name : (indirect string, offset: 0x1a3): __kernel_long_t
- <203> DW_AT_decl_file : 3
- <204> DW_AT_decl_line : 23
- <1><205>: Abbrev Number: 6 (DW_TAG_base_type)
- <206> DW_AT_name : (indirect string, offset: 0x19a): long int
- <20a> DW_AT_encoding : 5 (signed)
- <20b> DW_AT_byte_size : 4
- <1><20c>: Abbrev Number: 3 (DW_TAG_typedef)
- <20d> DW_AT_type : <0x18c>
- <211> DW_AT_name : (indirect string, offset: 0x200): __kernel_pid_t
- <215> DW_AT_decl_file : 3
- <216> DW_AT_decl_line : 33
- <1><217>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11e): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x159): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 5
+ <2a> DW_AT_decl_line : 49
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x302): msqid_ds_t
+ <3a> DW_AT_decl_file : 5
+ <3b> DW_AT_decl_line : 42
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x2f7): msqid64_ds
+ <41> DW_AT_byte_size : 76
+ <42> DW_AT_decl_file : 4
+ <43> DW_AT_decl_line : 22
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16a): msg_perm
+ <49> DW_AT_type : <0xdf>
+ <4d> DW_AT_decl_file : 4
+ <4e> DW_AT_decl_line : 23
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x25a): msg_stime
+ <57> DW_AT_type : <0x1f0>
+ <5b> DW_AT_decl_file : 4
+ <5c> DW_AT_decl_line : 24
+ <5d> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x28d): msg_rtime
+ <65> DW_AT_type : <0x1f0>
+ <69> DW_AT_decl_file : 4
+ <6a> DW_AT_decl_line : 28
+ <6b> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x297): msg_ctime
+ <73> DW_AT_type : <0x1f0>
+ <77> DW_AT_decl_file : 4
+ <78> DW_AT_decl_line : 32
+ <79> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x2a1): msg_cbytes
+ <81> DW_AT_type : <0x1de>
+ <85> DW_AT_decl_file : 4
+ <86> DW_AT_decl_line : 36
+ <87> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x2ac): msg_qnum
+ <8f> DW_AT_type : <0x1de>
+ <93> DW_AT_decl_file : 4
+ <94> DW_AT_decl_line : 37
+ <95> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x2b5): msg_qbytes
+ <9d> DW_AT_type : <0x1de>
+ <a1> DW_AT_decl_file : 4
+ <a2> DW_AT_decl_line : 38
+ <a3> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x2c0): msg_lspid
+ <ab> DW_AT_type : <0x20d>
+ <af> DW_AT_decl_file : 4
+ <b0> DW_AT_decl_line : 39
+ <b1> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x2d9): msg_lrpid
+ <b9> DW_AT_type : <0x20d>
+ <bd> DW_AT_decl_file : 4
+ <be> DW_AT_decl_line : 40
+ <bf> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x2e3): __unused4
+ <c7> DW_AT_type : <0x1de>
+ <cb> DW_AT_decl_file : 4
+ <cc> DW_AT_decl_line : 41
+ <cd> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x2ed): __unused5
+ <d5> DW_AT_type : <0x1de>
+ <d9> DW_AT_decl_file : 4
+ <da> DW_AT_decl_line : 42
+ <db> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
+ <2><de>: Abbrev Number: 0
+ <1><df>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <e0> DW_AT_name : (indirect string, offset: 0x24f): ipc64_perm
+ <e4> DW_AT_byte_size : 36
+ <e5> DW_AT_decl_file : 2
+ <e6> DW_AT_decl_line : 21
+ <2><e7>: Abbrev Number: 5 (DW_TAG_member)
+ <e8> DW_AT_name : (indirect string, offset: 0x173): key
+ <ec> DW_AT_type : <0x182>
+ <f0> DW_AT_decl_file : 2
+ <f1> DW_AT_decl_line : 22
+ <f2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><f5>: Abbrev Number: 5 (DW_TAG_member)
+ <f6> DW_AT_name : (indirect string, offset: 0x18a): uid
+ <fa> DW_AT_type : <0x194>
+ <fe> DW_AT_decl_file : 2
+ <ff> DW_AT_decl_line : 23
+ <100> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><103>: Abbrev Number: 5 (DW_TAG_member)
+ <104> DW_AT_name : (indirect string, offset: 0x1ac): gid
+ <108> DW_AT_type : <0x1a6>
+ <10c> DW_AT_decl_file : 2
+ <10d> DW_AT_decl_line : 24
+ <10e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><111>: Abbrev Number: 5 (DW_TAG_member)
+ <112> DW_AT_name : (indirect string, offset: 0x1c1): cuid
+ <116> DW_AT_type : <0x194>
+ <11a> DW_AT_decl_file : 2
+ <11b> DW_AT_decl_line : 25
+ <11c> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><11f>: Abbrev Number: 5 (DW_TAG_member)
+ <120> DW_AT_name : (indirect string, offset: 0x1c6): cgid
+ <124> DW_AT_type : <0x1a6>
+ <128> DW_AT_decl_file : 2
+ <129> DW_AT_decl_line : 26
+ <12a> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><12d>: Abbrev Number: 5 (DW_TAG_member)
+ <12e> DW_AT_name : (indirect string, offset: 0x1cb): mode
+ <132> DW_AT_type : <0x1b1>
+ <136> DW_AT_decl_file : 2
+ <137> DW_AT_decl_line : 27
+ <138> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><13b>: Abbrev Number: 5 (DW_TAG_member)
+ <13c> DW_AT_name : (indirect string, offset: 0x1e0): __pad1
+ <140> DW_AT_type : <0x1bc>
+ <144> DW_AT_decl_file : 2
+ <145> DW_AT_decl_line : 28
+ <146> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><149>: Abbrev Number: 5 (DW_TAG_member)
+ <14a> DW_AT_name : (indirect string, offset: 0x1fe): seq
+ <14e> DW_AT_type : <0x1d7>
+ <152> DW_AT_decl_file : 2
+ <153> DW_AT_decl_line : 29
+ <154> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><157>: Abbrev Number: 5 (DW_TAG_member)
+ <158> DW_AT_name : (indirect string, offset: 0x211): __pad2
+ <15c> DW_AT_type : <0x1d7>
+ <160> DW_AT_decl_file : 2
+ <161> DW_AT_decl_line : 30
+ <162> DW_AT_data_member_location: 2 byte block: 23 1a (DW_OP_plus_uconst: 26)
+ <2><165>: Abbrev Number: 5 (DW_TAG_member)
+ <166> DW_AT_name : (indirect string, offset: 0x218): __unused1
+ <16a> DW_AT_type : <0x1de>
+ <16e> DW_AT_decl_file : 2
+ <16f> DW_AT_decl_line : 31
+ <170> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><173>: Abbrev Number: 5 (DW_TAG_member)
+ <174> DW_AT_name : (indirect string, offset: 0x245): __unused2
+ <178> DW_AT_type : <0x1de>
+ <17c> DW_AT_decl_file : 2
+ <17d> DW_AT_decl_line : 32
+ <17e> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><181>: Abbrev Number: 0
+ <1><182>: Abbrev Number: 3 (DW_TAG_typedef)
+ <183> DW_AT_type : <0x18d>
+ <187> DW_AT_name : (indirect string, offset: 0x17b): __kernel_key_t
+ <18b> DW_AT_decl_file : 1
+ <18c> DW_AT_decl_line : 28
+ <1><18d>: Abbrev Number: 6 (DW_TAG_base_type)
+ <18e> DW_AT_name : (indirect string, offset: 0x177): int
+ <192> DW_AT_encoding : 5 (signed)
+ <193> DW_AT_byte_size : 4
+ <1><194>: Abbrev Number: 3 (DW_TAG_typedef)
+ <195> DW_AT_type : <0x19f>
+ <199> DW_AT_name : (indirect string, offset: 0x19b): __kernel_uid32_t
+ <19d> DW_AT_decl_file : 3
+ <19e> DW_AT_decl_line : 49
+ <1><19f>: Abbrev Number: 6 (DW_TAG_base_type)
+ <1a0> DW_AT_name : (indirect string, offset: 0x18e): unsigned int
+ <1a4> DW_AT_encoding : 7 (unsigned)
+ <1a5> DW_AT_byte_size : 4
+ <1><1a6>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1a7> DW_AT_type : <0x19f>
+ <1ab> DW_AT_name : (indirect string, offset: 0x1b0): __kernel_gid32_t
+ <1af> DW_AT_decl_file : 3
+ <1b0> DW_AT_decl_line : 50
+ <1><1b1>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1b2> DW_AT_type : <0x19f>
+ <1b6> DW_AT_name : (indirect string, offset: 0x1d0): __kernel_mode_t
+ <1ba> DW_AT_decl_file : 3
+ <1bb> DW_AT_decl_line : 30
+ <1><1bc>: Abbrev Number: 7 (DW_TAG_array_type)
+ <1bd> DW_AT_type : <0x1c9>
+ <2><1c1>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <1c2> DW_AT_type : <0x1d0>
+ <1c6> DW_AT_lower_bound : 0
+ <1c7> DW_AT_count : 0
+ <2><1c8>: Abbrev Number: 0
+ <1><1c9>: Abbrev Number: 6 (DW_TAG_base_type)
+ <1ca> DW_AT_name : (indirect string, offset: 0x1e7): unsigned char
+ <1ce> DW_AT_encoding : 8 (unsigned char)
+ <1cf> DW_AT_byte_size : 1
+ <1><1d0>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1d1> DW_AT_name : (indirect string, offset: 0x1f5): sizetype
+ <1d5> DW_AT_byte_size : 8
+ <1d6> DW_AT_encoding : 7 (unsigned)
+ <1><1d7>: Abbrev Number: 6 (DW_TAG_base_type)
+ <1d8> DW_AT_name : (indirect string, offset: 0x202): unsigned short
+ <1dc> DW_AT_encoding : 7 (unsigned)
+ <1dd> DW_AT_byte_size : 2
+ <1><1de>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1df> DW_AT_type : <0x1e9>
+ <1e3> DW_AT_name : (indirect string, offset: 0x234): __kernel_ulong_t
+ <1e7> DW_AT_decl_file : 3
+ <1e8> DW_AT_decl_line : 24
+ <1><1e9>: Abbrev Number: 6 (DW_TAG_base_type)
+ <1ea> DW_AT_name : (indirect string, offset: 0x222): long unsigned int
+ <1ee> DW_AT_encoding : 7 (unsigned)
+ <1ef> DW_AT_byte_size : 4
+ <1><1f0>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1f1> DW_AT_type : <0x1fb>
+ <1f5> DW_AT_name : (indirect string, offset: 0x27d): __kernel_time_t
+ <1f9> DW_AT_decl_file : 3
+ <1fa> DW_AT_decl_line : 77
+ <1><1fb>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1fc> DW_AT_type : <0x206>
+ <200> DW_AT_name : (indirect string, offset: 0x26d): __kernel_long_t
+ <204> DW_AT_decl_file : 3
+ <205> DW_AT_decl_line : 23
+ <1><206>: Abbrev Number: 6 (DW_TAG_base_type)
+ <207> DW_AT_name : (indirect string, offset: 0x264): long int
+ <20b> DW_AT_encoding : 5 (signed)
+ <20c> DW_AT_byte_size : 4
+ <1><20d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <20e> DW_AT_type : <0x18d>
+ <212> DW_AT_name : (indirect string, offset: 0x2ca): __kernel_pid_t
+ <216> DW_AT_decl_file : 3
+ <217> DW_AT_decl_line : 33
+ <1><218>: Abbrev Number: 0
diff --git a/mpers-m32/msqid_ds_t.d2 b/mpers-m32/msqid_ds_t.d2
index e1f1686..67fad36 100644
--- a/mpers-m32/msqid_ds_t.d2
+++ b/mpers-m32/msqid_ds_t.d2
@@ -1,271 +1,271 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8f): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x159): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 5
DW_AT_decl_line : 49
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x238): msqid_ds_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x302): msqid_ds_t
DW_AT_decl_file : 5
DW_AT_decl_line : 42
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x22d): msqid64_ds
+DW_AT_name : (indirect string, offset: 0x2f7): msqid64_ds
DW_AT_byte_size : 76
DW_AT_decl_file : 4
DW_AT_decl_line : 22
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa0): msg_perm
-DW_AT_type : <0xde>
+DW_AT_name : (indirect string, offset: 0x16a): msg_perm
+DW_AT_type : <0xdf>
DW_AT_decl_file : 4
DW_AT_decl_line : 23
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x190): msg_stime
-DW_AT_type : <0x1ef>
+DW_AT_name : (indirect string, offset: 0x25a): msg_stime
+DW_AT_type : <0x1f0>
DW_AT_decl_file : 4
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1c3): msg_rtime
-DW_AT_type : <0x1ef>
+DW_AT_name : (indirect string, offset: 0x28d): msg_rtime
+DW_AT_type : <0x1f0>
DW_AT_decl_file : 4
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1cd): msg_ctime
-DW_AT_type : <0x1ef>
+DW_AT_name : (indirect string, offset: 0x297): msg_ctime
+DW_AT_type : <0x1f0>
DW_AT_decl_file : 4
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d7): msg_cbytes
-DW_AT_type : <0x1dd>
+DW_AT_name : (indirect string, offset: 0x2a1): msg_cbytes
+DW_AT_type : <0x1de>
DW_AT_decl_file : 4
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e2): msg_qnum
-DW_AT_type : <0x1dd>
+DW_AT_name : (indirect string, offset: 0x2ac): msg_qnum
+DW_AT_type : <0x1de>
DW_AT_decl_file : 4
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1eb): msg_qbytes
-DW_AT_type : <0x1dd>
+DW_AT_name : (indirect string, offset: 0x2b5): msg_qbytes
+DW_AT_type : <0x1de>
DW_AT_decl_file : 4
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f6): msg_lspid
-DW_AT_type : <0x20c>
+DW_AT_name : (indirect string, offset: 0x2c0): msg_lspid
+DW_AT_type : <0x20d>
DW_AT_decl_file : 4
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x20f): msg_lrpid
-DW_AT_type : <0x20c>
+DW_AT_name : (indirect string, offset: 0x2d9): msg_lrpid
+DW_AT_type : <0x20d>
DW_AT_decl_file : 4
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x219): __unused4
-DW_AT_type : <0x1dd>
+DW_AT_name : (indirect string, offset: 0x2e3): __unused4
+DW_AT_type : <0x1de>
DW_AT_decl_file : 4
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x223): __unused5
-DW_AT_type : <0x1dd>
+DW_AT_name : (indirect string, offset: 0x2ed): __unused5
+DW_AT_type : <0x1de>
DW_AT_decl_file : 4
DW_AT_decl_line : 42
DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
-<1><de>
+<1><df>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x185): ipc64_perm
+DW_AT_name : (indirect string, offset: 0x24f): ipc64_perm
DW_AT_byte_size : 36
DW_AT_decl_file : 2
DW_AT_decl_line : 21
-<2><e6>
+<2><e7>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa9): key
-DW_AT_type : <0x181>
+DW_AT_name : (indirect string, offset: 0x173): key
+DW_AT_type : <0x182>
DW_AT_decl_file : 2
DW_AT_decl_line : 22
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><f4>
+<2><f5>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc0): uid
-DW_AT_type : <0x193>
+DW_AT_name : (indirect string, offset: 0x18a): uid
+DW_AT_type : <0x194>
DW_AT_decl_file : 2
DW_AT_decl_line : 23
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><102>
+<2><103>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe2): gid
-DW_AT_type : <0x1a5>
+DW_AT_name : (indirect string, offset: 0x1ac): gid
+DW_AT_type : <0x1a6>
DW_AT_decl_file : 2
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><110>
+<2><111>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf7): cuid
-DW_AT_type : <0x193>
+DW_AT_name : (indirect string, offset: 0x1c1): cuid
+DW_AT_type : <0x194>
DW_AT_decl_file : 2
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><11e>
+<2><11f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfc): cgid
-DW_AT_type : <0x1a5>
+DW_AT_name : (indirect string, offset: 0x1c6): cgid
+DW_AT_type : <0x1a6>
DW_AT_decl_file : 2
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><12c>
+<2><12d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x101): mode
-DW_AT_type : <0x1b0>
+DW_AT_name : (indirect string, offset: 0x1cb): mode
+DW_AT_type : <0x1b1>
DW_AT_decl_file : 2
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><13a>
+<2><13b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x116): __pad1
-DW_AT_type : <0x1bb>
+DW_AT_name : (indirect string, offset: 0x1e0): __pad1
+DW_AT_type : <0x1bc>
DW_AT_decl_file : 2
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><148>
+<2><149>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x134): seq
-DW_AT_type : <0x1d6>
+DW_AT_name : (indirect string, offset: 0x1fe): seq
+DW_AT_type : <0x1d7>
DW_AT_decl_file : 2
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><156>
+<2><157>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x147): __pad2
-DW_AT_type : <0x1d6>
+DW_AT_name : (indirect string, offset: 0x211): __pad2
+DW_AT_type : <0x1d7>
DW_AT_decl_file : 2
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 1a (DW_OP_plus_uconst: 26)
-<2><164>
+<2><165>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14e): __unused1
-DW_AT_type : <0x1dd>
+DW_AT_name : (indirect string, offset: 0x218): __unused1
+DW_AT_type : <0x1de>
DW_AT_decl_file : 2
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><172>
+<2><173>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17b): __unused2
-DW_AT_type : <0x1dd>
+DW_AT_name : (indirect string, offset: 0x245): __unused2
+DW_AT_type : <0x1de>
DW_AT_decl_file : 2
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<1><181>
+<1><182>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x18c>
-DW_AT_name : (indirect string, offset: 0xb1): __kernel_key_t
+DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x17b): __kernel_key_t
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><18c>
+<1><18d>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xad): int
+DW_AT_name : (indirect string, offset: 0x177): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><193>
+<1><194>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x19e>
-DW_AT_name : (indirect string, offset: 0xd1): __kernel_uid32_t
+DW_AT_type : <0x19f>
+DW_AT_name : (indirect string, offset: 0x19b): __kernel_uid32_t
DW_AT_decl_file : 3
DW_AT_decl_line : 49
-<1><19e>
+<1><19f>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc4): unsigned int
+DW_AT_name : (indirect string, offset: 0x18e): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><1a5>
+<1><1a6>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x19e>
-DW_AT_name : (indirect string, offset: 0xe6): __kernel_gid32_t
+DW_AT_type : <0x19f>
+DW_AT_name : (indirect string, offset: 0x1b0): __kernel_gid32_t
DW_AT_decl_file : 3
DW_AT_decl_line : 50
-<1><1b0>
+<1><1b1>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x19e>
-DW_AT_name : (indirect string, offset: 0x106): __kernel_mode_t
+DW_AT_type : <0x19f>
+DW_AT_name : (indirect string, offset: 0x1d0): __kernel_mode_t
DW_AT_decl_file : 3
DW_AT_decl_line : 30
-<1><1bb>
+<1><1bc>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x1c8>
-<2><1c0>
+DW_AT_type : <0x1c9>
+<2><1c1>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x1cf>
+DW_AT_type : <0x1d0>
DW_AT_lower_bound : 0
DW_AT_count : 0
-<1><1c8>
+<1><1c9>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x11d): unsigned char
+DW_AT_name : (indirect string, offset: 0x1e7): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><1cf>
+<1><1d0>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x12b): sizetype
+DW_AT_name : (indirect string, offset: 0x1f5): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><1d6>
+<1><1d7>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x138): unsigned short
+DW_AT_name : (indirect string, offset: 0x202): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><1dd>
+<1><1de>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1e8>
-DW_AT_name : (indirect string, offset: 0x16a): __kernel_ulong_t
+DW_AT_type : <0x1e9>
+DW_AT_name : (indirect string, offset: 0x234): __kernel_ulong_t
DW_AT_decl_file : 3
DW_AT_decl_line : 24
-<1><1e8>
+<1><1e9>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x158): long unsigned int
+DW_AT_name : (indirect string, offset: 0x222): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><1ef>
+<1><1f0>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1fa>
-DW_AT_name : (indirect string, offset: 0x1b3): __kernel_time_t
+DW_AT_type : <0x1fb>
+DW_AT_name : (indirect string, offset: 0x27d): __kernel_time_t
DW_AT_decl_file : 3
DW_AT_decl_line : 77
-<1><1fa>
+<1><1fb>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x205>
-DW_AT_name : (indirect string, offset: 0x1a3): __kernel_long_t
+DW_AT_type : <0x206>
+DW_AT_name : (indirect string, offset: 0x26d): __kernel_long_t
DW_AT_decl_file : 3
DW_AT_decl_line : 23
-<1><205>
+<1><206>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x19a): long int
+DW_AT_name : (indirect string, offset: 0x264): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><20c>
+<1><20d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x18c>
-DW_AT_name : (indirect string, offset: 0x200): __kernel_pid_t
+DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x2ca): __kernel_pid_t
DW_AT_decl_file : 3
DW_AT_decl_line : 33
diff --git a/mpers-m32/rusage_t.d1 b/mpers-m32/rusage_t.d1
index 63b19c4..16af0eb 100644
--- a/mpers-m32/rusage_t.d1
+++ b/mpers-m32/rusage_t.d1
@@ -1,166 +1,167 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x16e (32-bit)
+ Length: 0x16f (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/rusage_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/rusage_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x52): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8d): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 38
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x197): rusage_t
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 36
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x190): rusage
- <40> DW_AT_byte_size : 72
- <41> DW_AT_decl_file : 3
- <42> DW_AT_decl_line : 27
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9e): ru_utime
- <48> DW_AT_type : <0x124>
- <4c> DW_AT_decl_file : 3
- <4d> DW_AT_decl_line : 28
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xfc): ru_stime
- <56> DW_AT_type : <0x124>
- <5a> DW_AT_decl_file : 3
- <5b> DW_AT_decl_line : 29
- <5c> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0x105): ru_maxrss
- <64> DW_AT_type : <0x154>
- <68> DW_AT_decl_file : 3
- <69> DW_AT_decl_line : 30
- <6a> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0x10f): ru_ixrss
- <72> DW_AT_type : <0x154>
- <76> DW_AT_decl_file : 3
- <77> DW_AT_decl_line : 31
- <78> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0x118): ru_idrss
- <80> DW_AT_type : <0x154>
- <84> DW_AT_decl_file : 3
- <85> DW_AT_decl_line : 32
- <86> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x121): ru_isrss
- <8e> DW_AT_type : <0x154>
- <92> DW_AT_decl_file : 3
- <93> DW_AT_decl_line : 33
- <94> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x12a): ru_minflt
- <9c> DW_AT_type : <0x154>
- <a0> DW_AT_decl_file : 3
- <a1> DW_AT_decl_line : 34
- <a2> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x134): ru_majflt
- <aa> DW_AT_type : <0x154>
- <ae> DW_AT_decl_file : 3
- <af> DW_AT_decl_line : 35
- <b0> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x13e): ru_nswap
- <b8> DW_AT_type : <0x154>
- <bc> DW_AT_decl_file : 3
- <bd> DW_AT_decl_line : 36
- <be> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x147): ru_inblock
- <c6> DW_AT_type : <0x154>
- <ca> DW_AT_decl_file : 3
- <cb> DW_AT_decl_line : 37
- <cc> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x152): ru_oublock
- <d4> DW_AT_type : <0x154>
- <d8> DW_AT_decl_file : 3
- <d9> DW_AT_decl_line : 38
- <da> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><dd>: Abbrev Number: 5 (DW_TAG_member)
- <de> DW_AT_name : (indirect string, offset: 0x15d): ru_msgsnd
- <e2> DW_AT_type : <0x154>
- <e6> DW_AT_decl_file : 3
- <e7> DW_AT_decl_line : 39
- <e8> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><eb>: Abbrev Number: 5 (DW_TAG_member)
- <ec> DW_AT_name : (indirect string, offset: 0x167): ru_msgrcv
- <f0> DW_AT_type : <0x154>
- <f4> DW_AT_decl_file : 3
- <f5> DW_AT_decl_line : 40
- <f6> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><f9>: Abbrev Number: 5 (DW_TAG_member)
- <fa> DW_AT_name : (indirect string, offset: 0x171): ru_nsignals
- <fe> DW_AT_type : <0x154>
- <102> DW_AT_decl_file : 3
- <103> DW_AT_decl_line : 41
- <104> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><107>: Abbrev Number: 5 (DW_TAG_member)
- <108> DW_AT_name : (indirect string, offset: 0x17d): ru_nvcsw
- <10c> DW_AT_type : <0x154>
- <110> DW_AT_decl_file : 3
- <111> DW_AT_decl_line : 42
- <112> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><115>: Abbrev Number: 5 (DW_TAG_member)
- <116> DW_AT_name : (indirect string, offset: 0x186): ru_nivcsw
- <11a> DW_AT_type : <0x154>
- <11e> DW_AT_decl_file : 3
- <11f> DW_AT_decl_line : 43
- <120> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
- <2><123>: Abbrev Number: 0
- <1><124>: Abbrev Number: 4 (DW_TAG_structure_type)
- <125> DW_AT_name : (indirect string, offset: 0xf4): timeval
- <129> DW_AT_byte_size : 8
- <12a> DW_AT_decl_file : 2
- <12b> DW_AT_decl_line : 29
- <2><12c>: Abbrev Number: 5 (DW_TAG_member)
- <12d> DW_AT_name : (indirect string, offset: 0xa7): tv_sec
- <131> DW_AT_type : <0x149>
- <135> DW_AT_decl_file : 2
- <136> DW_AT_decl_line : 30
- <137> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><13a>: Abbrev Number: 5 (DW_TAG_member)
- <13b> DW_AT_name : (indirect string, offset: 0xd7): tv_usec
- <13f> DW_AT_type : <0x166>
- <143> DW_AT_decl_file : 2
- <144> DW_AT_decl_line : 31
- <145> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><148>: Abbrev Number: 0
- <1><149>: Abbrev Number: 3 (DW_TAG_typedef)
- <14a> DW_AT_type : <0x154>
- <14e> DW_AT_name : (indirect string, offset: 0xc7): __kernel_time_t
- <152> DW_AT_decl_file : 1
- <153> DW_AT_decl_line : 77
- <1><154>: Abbrev Number: 3 (DW_TAG_typedef)
- <155> DW_AT_type : <0x15f>
- <159> DW_AT_name : (indirect string, offset: 0xb7): __kernel_long_t
- <15d> DW_AT_decl_file : 1
- <15e> DW_AT_decl_line : 23
- <1><15f>: Abbrev Number: 6 (DW_TAG_base_type)
- <160> DW_AT_name : (indirect string, offset: 0xae): long int
- <164> DW_AT_encoding : 5 (signed)
- <165> DW_AT_byte_size : 4
- <1><166>: Abbrev Number: 3 (DW_TAG_typedef)
- <167> DW_AT_type : <0x154>
- <16b> DW_AT_name : (indirect string, offset: 0xdf): __kernel_suseconds_t
- <16f> DW_AT_decl_file : 1
- <170> DW_AT_decl_line : 43
- <1><171>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11c): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x157): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 38
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x261): rusage_t
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 36
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x25a): rusage
+ <41> DW_AT_byte_size : 72
+ <42> DW_AT_decl_file : 3
+ <43> DW_AT_decl_line : 27
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x168): ru_utime
+ <49> DW_AT_type : <0x125>
+ <4d> DW_AT_decl_file : 3
+ <4e> DW_AT_decl_line : 28
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x1c6): ru_stime
+ <57> DW_AT_type : <0x125>
+ <5b> DW_AT_decl_file : 3
+ <5c> DW_AT_decl_line : 29
+ <5d> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x1cf): ru_maxrss
+ <65> DW_AT_type : <0x155>
+ <69> DW_AT_decl_file : 3
+ <6a> DW_AT_decl_line : 30
+ <6b> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1d9): ru_ixrss
+ <73> DW_AT_type : <0x155>
+ <77> DW_AT_decl_file : 3
+ <78> DW_AT_decl_line : 31
+ <79> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1e2): ru_idrss
+ <81> DW_AT_type : <0x155>
+ <85> DW_AT_decl_file : 3
+ <86> DW_AT_decl_line : 32
+ <87> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1eb): ru_isrss
+ <8f> DW_AT_type : <0x155>
+ <93> DW_AT_decl_file : 3
+ <94> DW_AT_decl_line : 33
+ <95> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1f4): ru_minflt
+ <9d> DW_AT_type : <0x155>
+ <a1> DW_AT_decl_file : 3
+ <a2> DW_AT_decl_line : 34
+ <a3> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1fe): ru_majflt
+ <ab> DW_AT_type : <0x155>
+ <af> DW_AT_decl_file : 3
+ <b0> DW_AT_decl_line : 35
+ <b1> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x208): ru_nswap
+ <b9> DW_AT_type : <0x155>
+ <bd> DW_AT_decl_file : 3
+ <be> DW_AT_decl_line : 36
+ <bf> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x211): ru_inblock
+ <c7> DW_AT_type : <0x155>
+ <cb> DW_AT_decl_file : 3
+ <cc> DW_AT_decl_line : 37
+ <cd> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x21c): ru_oublock
+ <d5> DW_AT_type : <0x155>
+ <d9> DW_AT_decl_file : 3
+ <da> DW_AT_decl_line : 38
+ <db> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><de>: Abbrev Number: 5 (DW_TAG_member)
+ <df> DW_AT_name : (indirect string, offset: 0x227): ru_msgsnd
+ <e3> DW_AT_type : <0x155>
+ <e7> DW_AT_decl_file : 3
+ <e8> DW_AT_decl_line : 39
+ <e9> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><ec>: Abbrev Number: 5 (DW_TAG_member)
+ <ed> DW_AT_name : (indirect string, offset: 0x231): ru_msgrcv
+ <f1> DW_AT_type : <0x155>
+ <f5> DW_AT_decl_file : 3
+ <f6> DW_AT_decl_line : 40
+ <f7> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><fa>: Abbrev Number: 5 (DW_TAG_member)
+ <fb> DW_AT_name : (indirect string, offset: 0x23b): ru_nsignals
+ <ff> DW_AT_type : <0x155>
+ <103> DW_AT_decl_file : 3
+ <104> DW_AT_decl_line : 41
+ <105> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><108>: Abbrev Number: 5 (DW_TAG_member)
+ <109> DW_AT_name : (indirect string, offset: 0x247): ru_nvcsw
+ <10d> DW_AT_type : <0x155>
+ <111> DW_AT_decl_file : 3
+ <112> DW_AT_decl_line : 42
+ <113> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><116>: Abbrev Number: 5 (DW_TAG_member)
+ <117> DW_AT_name : (indirect string, offset: 0x250): ru_nivcsw
+ <11b> DW_AT_type : <0x155>
+ <11f> DW_AT_decl_file : 3
+ <120> DW_AT_decl_line : 43
+ <121> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
+ <2><124>: Abbrev Number: 0
+ <1><125>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <126> DW_AT_name : (indirect string, offset: 0x1be): timeval
+ <12a> DW_AT_byte_size : 8
+ <12b> DW_AT_decl_file : 2
+ <12c> DW_AT_decl_line : 29
+ <2><12d>: Abbrev Number: 5 (DW_TAG_member)
+ <12e> DW_AT_name : (indirect string, offset: 0x171): tv_sec
+ <132> DW_AT_type : <0x14a>
+ <136> DW_AT_decl_file : 2
+ <137> DW_AT_decl_line : 30
+ <138> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><13b>: Abbrev Number: 5 (DW_TAG_member)
+ <13c> DW_AT_name : (indirect string, offset: 0x1a1): tv_usec
+ <140> DW_AT_type : <0x167>
+ <144> DW_AT_decl_file : 2
+ <145> DW_AT_decl_line : 31
+ <146> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><149>: Abbrev Number: 0
+ <1><14a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <14b> DW_AT_type : <0x155>
+ <14f> DW_AT_name : (indirect string, offset: 0x191): __kernel_time_t
+ <153> DW_AT_decl_file : 1
+ <154> DW_AT_decl_line : 77
+ <1><155>: Abbrev Number: 3 (DW_TAG_typedef)
+ <156> DW_AT_type : <0x160>
+ <15a> DW_AT_name : (indirect string, offset: 0x181): __kernel_long_t
+ <15e> DW_AT_decl_file : 1
+ <15f> DW_AT_decl_line : 23
+ <1><160>: Abbrev Number: 6 (DW_TAG_base_type)
+ <161> DW_AT_name : (indirect string, offset: 0x178): long int
+ <165> DW_AT_encoding : 5 (signed)
+ <166> DW_AT_byte_size : 4
+ <1><167>: Abbrev Number: 3 (DW_TAG_typedef)
+ <168> DW_AT_type : <0x155>
+ <16c> DW_AT_name : (indirect string, offset: 0x1a9): __kernel_suseconds_t
+ <170> DW_AT_decl_file : 1
+ <171> DW_AT_decl_line : 43
+ <1><172>: Abbrev Number: 0
diff --git a/mpers-m32/rusage_t.d2 b/mpers-m32/rusage_t.d2
index 23776a7..3ba0e0c 100644
--- a/mpers-m32/rusage_t.d2
+++ b/mpers-m32/rusage_t.d2
@@ -1,175 +1,175 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8d): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x157): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 38
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x197): rusage_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x261): rusage_t
DW_AT_decl_file : 4
DW_AT_decl_line : 36
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x190): rusage
+DW_AT_name : (indirect string, offset: 0x25a): rusage
DW_AT_byte_size : 72
DW_AT_decl_file : 3
DW_AT_decl_line : 27
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9e): ru_utime
-DW_AT_type : <0x124>
+DW_AT_name : (indirect string, offset: 0x168): ru_utime
+DW_AT_type : <0x125>
DW_AT_decl_file : 3
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfc): ru_stime
-DW_AT_type : <0x124>
+DW_AT_name : (indirect string, offset: 0x1c6): ru_stime
+DW_AT_type : <0x125>
DW_AT_decl_file : 3
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x105): ru_maxrss
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x1cf): ru_maxrss
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10f): ru_ixrss
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x1d9): ru_ixrss
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x118): ru_idrss
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x1e2): ru_idrss
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x121): ru_isrss
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x1eb): ru_isrss
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12a): ru_minflt
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x1f4): ru_minflt
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x134): ru_majflt
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x1fe): ru_majflt
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13e): ru_nswap
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x208): ru_nswap
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x147): ru_inblock
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x211): ru_inblock
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x152): ru_oublock
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x21c): ru_oublock
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><dd>
+<2><de>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15d): ru_msgsnd
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x227): ru_msgsnd
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><eb>
+<2><ec>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x167): ru_msgrcv
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x231): ru_msgrcv
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><f9>
+<2><fa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x171): ru_nsignals
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x23b): ru_nsignals
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><107>
+<2><108>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17d): ru_nvcsw
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x247): ru_nvcsw
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 42
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<2><115>
+<2><116>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x186): ru_nivcsw
-DW_AT_type : <0x154>
+DW_AT_name : (indirect string, offset: 0x250): ru_nivcsw
+DW_AT_type : <0x155>
DW_AT_decl_file : 3
DW_AT_decl_line : 43
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
-<1><124>
+<1><125>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xf4): timeval
+DW_AT_name : (indirect string, offset: 0x1be): timeval
DW_AT_byte_size : 8
DW_AT_decl_file : 2
DW_AT_decl_line : 29
-<2><12c>
+<2><12d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa7): tv_sec
-DW_AT_type : <0x149>
+DW_AT_name : (indirect string, offset: 0x171): tv_sec
+DW_AT_type : <0x14a>
DW_AT_decl_file : 2
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><13a>
+<2><13b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd7): tv_usec
-DW_AT_type : <0x166>
+DW_AT_name : (indirect string, offset: 0x1a1): tv_usec
+DW_AT_type : <0x167>
DW_AT_decl_file : 2
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><149>
+<1><14a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x154>
-DW_AT_name : (indirect string, offset: 0xc7): __kernel_time_t
+DW_AT_type : <0x155>
+DW_AT_name : (indirect string, offset: 0x191): __kernel_time_t
DW_AT_decl_file : 1
DW_AT_decl_line : 77
-<1><154>
+<1><155>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x15f>
-DW_AT_name : (indirect string, offset: 0xb7): __kernel_long_t
+DW_AT_type : <0x160>
+DW_AT_name : (indirect string, offset: 0x181): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><15f>
+<1><160>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xae): long int
+DW_AT_name : (indirect string, offset: 0x178): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><166>
+<1><167>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x154>
-DW_AT_name : (indirect string, offset: 0xdf): __kernel_suseconds_t
+DW_AT_type : <0x155>
+DW_AT_name : (indirect string, offset: 0x1a9): __kernel_suseconds_t
DW_AT_decl_file : 1
DW_AT_decl_line : 43
diff --git a/mpers-m32/sample_struct.d1 b/mpers-m32/sample_struct.d1
index 5cbf0a6..0562c17 100644
--- a/mpers-m32/sample_struct.d1
+++ b/mpers-m32/sample_struct.d1
@@ -1,301 +1,302 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x272 (32-bit)
+ Length: 0x273 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/sample_struct.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/sample_struct.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x57): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 1
- <29> DW_AT_decl_line : 37
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x151): sample_struct
- <39> DW_AT_decl_file : 1
- <3a> DW_AT_decl_line : 36
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_byte_size : 1248
- <3e> DW_AT_decl_file : 1
- <3f> DW_AT_decl_line : 2
- <2><40>: Abbrev Number: 5 (DW_TAG_member)
- <41> DW_AT_name : (indirect string, offset: 0xa3): s
- <45> DW_AT_type : <0x4e>
- <49> DW_AT_decl_file : 1
- <4a> DW_AT_decl_line : 21
- <4b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4e>: Abbrev Number: 4 (DW_TAG_structure_type)
- <4f> DW_AT_byte_size : 480
- <51> DW_AT_decl_file : 1
- <52> DW_AT_decl_line : 3
- <3><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xa5): p
- <58> DW_AT_type : <0x1ca>
- <5c> DW_AT_decl_file : 1
- <5d> DW_AT_decl_line : 4
- <5e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><61>: Abbrev Number: 5 (DW_TAG_member)
- <62> DW_AT_name : (indirect string, offset: 0xa7): sc
- <66> DW_AT_type : <0x1cb>
- <6a> DW_AT_decl_file : 1
- <6b> DW_AT_decl_line : 5
- <6c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <3><6f>: Abbrev Number: 5 (DW_TAG_member)
- <70> DW_AT_name : (indirect string, offset: 0xaf): ss
- <74> DW_AT_type : <0x1d2>
- <78> DW_AT_decl_file : 1
- <79> DW_AT_decl_line : 7
- <7a> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
- <3><7d>: Abbrev Number: 5 (DW_TAG_member)
- <7e> DW_AT_name : (indirect string, offset: 0xb8): uc
- <82> DW_AT_type : <0x1d9>
- <86> DW_AT_decl_file : 1
- <87> DW_AT_decl_line : 8
- <88> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <3><8b>: Abbrev Number: 5 (DW_TAG_member)
- <8c> DW_AT_name : (indirect string, offset: 0xc9): si
- <90> DW_AT_type : <0x1e0>
- <94> DW_AT_decl_file : 1
- <95> DW_AT_decl_line : 10
- <96> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <3><99>: Abbrev Number: 5 (DW_TAG_member)
- <9a> DW_AT_name : (indirect string, offset: 0xd0): ui
- <9e> DW_AT_type : <0x1e7>
- <a2> DW_AT_decl_file : 1
- <a3> DW_AT_decl_line : 11
- <a4> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <3><a7>: Abbrev Number: 5 (DW_TAG_member)
- <a8> DW_AT_name : (indirect string, offset: 0xe0): sl
- <ac> DW_AT_type : <0x1ee>
- <b0> DW_AT_decl_file : 1
- <b1> DW_AT_decl_line : 12
- <b2> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <3><b5>: Abbrev Number: 5 (DW_TAG_member)
- <b6> DW_AT_name : (indirect string, offset: 0xec): us
- <ba> DW_AT_type : <0x1f5>
- <be> DW_AT_decl_file : 1
- <bf> DW_AT_decl_line : 13
- <c0> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <3><c3>: Abbrev Number: 6 (DW_TAG_member)
- <c4> DW_AT_name : (indirect string, offset: 0xfe): sll
- <c8> DW_AT_type : <0x1fc>
- <cc> DW_AT_decl_file : 1
- <cd> DW_AT_decl_line : 15
- <ce> Unknown AT value: 88: 8
- <cf> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <3><d2>: Abbrev Number: 5 (DW_TAG_member)
- <d3> DW_AT_name : (indirect string, offset: 0x110): ull
- <d7> DW_AT_type : <0x203>
- <db> DW_AT_decl_file : 1
- <dc> DW_AT_decl_line : 16
- <dd> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <3><e0>: Abbrev Number: 5 (DW_TAG_member)
- <e1> DW_AT_name : (indirect string, offset: 0x12b): ul
- <e5> DW_AT_type : <0x20a>
- <e9> DW_AT_decl_file : 1
- <ea> DW_AT_decl_line : 17
- <eb> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <3><ee>: Abbrev Number: 5 (DW_TAG_member)
- <ef> DW_AT_name : (indirect string, offset: 0x140): asl
- <f3> DW_AT_type : <0x211>
- <f7> DW_AT_decl_file : 1
- <f8> DW_AT_decl_line : 18
- <f9> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <3><fc>: Abbrev Number: 5 (DW_TAG_member)
- <fd> DW_AT_name : (indirect string, offset: 0x14d): f
- <101> DW_AT_type : <0x1cb>
- <105> DW_AT_decl_file : 1
- <106> DW_AT_decl_line : 19
- <107> DW_AT_data_member_location: 3 byte block: 23 d8 3 (DW_OP_plus_uconst: 472)
- <3><10b>: Abbrev Number: 0
- <2><10c>: Abbrev Number: 5 (DW_TAG_member)
- <10d> DW_AT_name : (indirect string, offset: 0x14f): u
- <111> DW_AT_type : <0x233>
- <115> DW_AT_decl_file : 1
- <116> DW_AT_decl_line : 34
- <117> DW_AT_data_member_location: 3 byte block: 23 e0 3 (DW_OP_plus_uconst: 480)
- <2><11b>: Abbrev Number: 7 (DW_TAG_union_type)
- <11c> DW_AT_byte_size : 128
- <11d> DW_AT_decl_file : 1
- <11e> DW_AT_decl_line : 22
- <3><11f>: Abbrev Number: 5 (DW_TAG_member)
- <120> DW_AT_name : (indirect string, offset: 0xfe): sll
- <124> DW_AT_type : <0x1fc>
- <128> DW_AT_decl_file : 1
- <129> DW_AT_decl_line : 23
- <12a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><12d>: Abbrev Number: 5 (DW_TAG_member)
- <12e> DW_AT_name : (indirect string, offset: 0x110): ull
- <132> DW_AT_type : <0x203>
- <136> DW_AT_decl_file : 1
- <137> DW_AT_decl_line : 24
- <138> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><13b>: Abbrev Number: 5 (DW_TAG_member)
- <13c> DW_AT_name : (indirect string, offset: 0xa5): p
- <140> DW_AT_type : <0x1ca>
- <144> DW_AT_decl_file : 1
- <145> DW_AT_decl_line : 25
- <146> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><149>: Abbrev Number: 5 (DW_TAG_member)
- <14a> DW_AT_name : (indirect string, offset: 0xe0): sl
- <14e> DW_AT_type : <0x1ee>
- <152> DW_AT_decl_file : 1
- <153> DW_AT_decl_line : 26
- <154> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><157>: Abbrev Number: 5 (DW_TAG_member)
- <158> DW_AT_name : (indirect string, offset: 0x12b): ul
- <15c> DW_AT_type : <0x20a>
- <160> DW_AT_decl_file : 1
- <161> DW_AT_decl_line : 27
- <162> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><165>: Abbrev Number: 5 (DW_TAG_member)
- <166> DW_AT_name : (indirect string, offset: 0xc9): si
- <16a> DW_AT_type : <0x1e0>
- <16e> DW_AT_decl_file : 1
- <16f> DW_AT_decl_line : 28
- <170> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><173>: Abbrev Number: 5 (DW_TAG_member)
- <174> DW_AT_name : (indirect string, offset: 0xd0): ui
- <178> DW_AT_type : <0x1e7>
- <17c> DW_AT_decl_file : 1
- <17d> DW_AT_decl_line : 29
- <17e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><181>: Abbrev Number: 5 (DW_TAG_member)
- <182> DW_AT_name : (indirect string, offset: 0xaf): ss
- <186> DW_AT_type : <0x247>
- <18a> DW_AT_decl_file : 1
- <18b> DW_AT_decl_line : 30
- <18c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><18f>: Abbrev Number: 5 (DW_TAG_member)
- <190> DW_AT_name : (indirect string, offset: 0xec): us
- <194> DW_AT_type : <0x25b>
- <198> DW_AT_decl_file : 1
- <199> DW_AT_decl_line : 31
- <19a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><19d>: Abbrev Number: 5 (DW_TAG_member)
- <19e> DW_AT_name : (indirect string, offset: 0xa7): sc
- <1a2> DW_AT_type : <0x1cb>
- <1a6> DW_AT_decl_file : 1
- <1a7> DW_AT_decl_line : 32
- <1a8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><1ab>: Abbrev Number: 5 (DW_TAG_member)
- <1ac> DW_AT_name : (indirect string, offset: 0xb8): uc
- <1b0> DW_AT_type : <0x1d9>
- <1b4> DW_AT_decl_file : 1
- <1b5> DW_AT_decl_line : 33
- <1b6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><1b9>: Abbrev Number: 0
- <2><1ba>: Abbrev Number: 5 (DW_TAG_member)
- <1bb> DW_AT_name : (indirect string, offset: 0x14d): f
- <1bf> DW_AT_type : <0x268>
- <1c3> DW_AT_decl_file : 1
- <1c4> DW_AT_decl_line : 35
- <1c5> DW_AT_data_member_location: 3 byte block: 23 e0 9 (DW_OP_plus_uconst: 1248)
- <2><1c9>: Abbrev Number: 0
- <1><1ca>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <1><1cb>: Abbrev Number: 9 (DW_TAG_base_type)
- <1cc> DW_AT_name : (indirect string, offset: 0xaa): char
- <1d0> DW_AT_encoding : 8 (unsigned char)
- <1d1> DW_AT_byte_size : 1
- <1><1d2>: Abbrev Number: 9 (DW_TAG_base_type)
- <1d3> DW_AT_name : (indirect string, offset: 0xb2): short
- <1d7> DW_AT_encoding : 5 (signed)
- <1d8> DW_AT_byte_size : 2
- <1><1d9>: Abbrev Number: 9 (DW_TAG_base_type)
- <1da> DW_AT_name : (indirect string, offset: 0xbb): unsigned char
- <1de> DW_AT_encoding : 8 (unsigned char)
- <1df> DW_AT_byte_size : 1
- <1><1e0>: Abbrev Number: 9 (DW_TAG_base_type)
- <1e1> DW_AT_name : (indirect string, offset: 0xcc): int
- <1e5> DW_AT_encoding : 5 (signed)
- <1e6> DW_AT_byte_size : 4
- <1><1e7>: Abbrev Number: 9 (DW_TAG_base_type)
- <1e8> DW_AT_name : (indirect string, offset: 0xd3): unsigned int
- <1ec> DW_AT_encoding : 7 (unsigned)
- <1ed> DW_AT_byte_size : 4
- <1><1ee>: Abbrev Number: 9 (DW_TAG_base_type)
- <1ef> DW_AT_name : (indirect string, offset: 0xe3): long int
- <1f3> DW_AT_encoding : 5 (signed)
- <1f4> DW_AT_byte_size : 4
- <1><1f5>: Abbrev Number: 9 (DW_TAG_base_type)
- <1f6> DW_AT_name : (indirect string, offset: 0xef): unsigned short
- <1fa> DW_AT_encoding : 7 (unsigned)
- <1fb> DW_AT_byte_size : 2
- <1><1fc>: Abbrev Number: 9 (DW_TAG_base_type)
- <1fd> DW_AT_name : (indirect string, offset: 0x102): long long int
- <201> DW_AT_encoding : 5 (signed)
- <202> DW_AT_byte_size : 8
- <1><203>: Abbrev Number: 9 (DW_TAG_base_type)
- <204> DW_AT_name : (indirect string, offset: 0x114): long long unsigned int
- <208> DW_AT_encoding : 7 (unsigned)
- <209> DW_AT_byte_size : 8
- <1><20a>: Abbrev Number: 9 (DW_TAG_base_type)
- <20b> DW_AT_name : (indirect string, offset: 0x12e): long unsigned int
- <20f> DW_AT_encoding : 7 (unsigned)
- <210> DW_AT_byte_size : 4
- <1><211>: Abbrev Number: 10 (DW_TAG_array_type)
- <212> DW_AT_type : <0x1ee>
- <2><216>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <217> DW_AT_type : <0x22c>
- <21b> DW_AT_lower_bound : 0
- <21c> DW_AT_count : 3
- <2><21d>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <21e> DW_AT_type : <0x22c>
- <222> DW_AT_lower_bound : 0
- <223> DW_AT_count : 5
- <2><224>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <225> DW_AT_type : <0x22c>
- <229> DW_AT_lower_bound : 0
- <22a> DW_AT_count : 7
- <2><22b>: Abbrev Number: 0
- <1><22c>: Abbrev Number: 12 (DW_TAG_base_type)
- <22d> DW_AT_name : (indirect string, offset: 0x144): sizetype
- <231> DW_AT_byte_size : 8
- <232> DW_AT_encoding : 7 (unsigned)
- <1><233>: Abbrev Number: 10 (DW_TAG_array_type)
- <234> DW_AT_type : <0x11b>
- <2><238>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <239> DW_AT_type : <0x22c>
- <23d> DW_AT_lower_bound : 0
- <23e> DW_AT_count : 3
- <2><23f>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <240> DW_AT_type : <0x22c>
- <244> DW_AT_lower_bound : 0
- <245> DW_AT_count : 2
- <2><246>: Abbrev Number: 0
- <1><247>: Abbrev Number: 10 (DW_TAG_array_type)
- <248> DW_AT_type : <0x1d2>
- <2><24c>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <24d> DW_AT_type : <0x22c>
- <251> DW_AT_lower_bound : 0
- <252> DW_AT_count : 7
- <2><253>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <254> DW_AT_type : <0x22c>
- <258> DW_AT_lower_bound : 0
- <259> DW_AT_count : 9
- <2><25a>: Abbrev Number: 0
- <1><25b>: Abbrev Number: 10 (DW_TAG_array_type)
- <25c> DW_AT_type : <0x1f5>
- <2><260>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <261> DW_AT_type : <0x22c>
- <265> DW_AT_lower_bound : 0
- <266> DW_AT_count : 4
- <2><267>: Abbrev Number: 0
- <1><268>: Abbrev Number: 10 (DW_TAG_array_type)
- <269> DW_AT_type : <0x1d2>
- <2><26d>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <26e> DW_AT_type : <0x22c>
- <272> DW_AT_lower_bound : 0
- <273> DW_AT_count : 0
- <2><274>: Abbrev Number: 0
- <1><275>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x121): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 1
+ <2a> DW_AT_decl_line : 37
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x21b): sample_struct
+ <3a> DW_AT_decl_file : 1
+ <3b> DW_AT_decl_line : 36
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_byte_size : 1248
+ <3f> DW_AT_decl_file : 1
+ <40> DW_AT_decl_line : 2
+ <2><41>: Abbrev Number: 5 (DW_TAG_member)
+ <42> DW_AT_name : (indirect string, offset: 0x16d): s
+ <46> DW_AT_type : <0x4f>
+ <4a> DW_AT_decl_file : 1
+ <4b> DW_AT_decl_line : 21
+ <4c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4f>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <50> DW_AT_byte_size : 480
+ <52> DW_AT_decl_file : 1
+ <53> DW_AT_decl_line : 3
+ <3><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x16f): p
+ <59> DW_AT_type : <0x1cb>
+ <5d> DW_AT_decl_file : 1
+ <5e> DW_AT_decl_line : 4
+ <5f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><62>: Abbrev Number: 5 (DW_TAG_member)
+ <63> DW_AT_name : (indirect string, offset: 0x171): sc
+ <67> DW_AT_type : <0x1cc>
+ <6b> DW_AT_decl_file : 1
+ <6c> DW_AT_decl_line : 5
+ <6d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <3><70>: Abbrev Number: 5 (DW_TAG_member)
+ <71> DW_AT_name : (indirect string, offset: 0x179): ss
+ <75> DW_AT_type : <0x1d3>
+ <79> DW_AT_decl_file : 1
+ <7a> DW_AT_decl_line : 7
+ <7b> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
+ <3><7e>: Abbrev Number: 5 (DW_TAG_member)
+ <7f> DW_AT_name : (indirect string, offset: 0x182): uc
+ <83> DW_AT_type : <0x1da>
+ <87> DW_AT_decl_file : 1
+ <88> DW_AT_decl_line : 8
+ <89> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <3><8c>: Abbrev Number: 5 (DW_TAG_member)
+ <8d> DW_AT_name : (indirect string, offset: 0x193): si
+ <91> DW_AT_type : <0x1e1>
+ <95> DW_AT_decl_file : 1
+ <96> DW_AT_decl_line : 10
+ <97> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <3><9a>: Abbrev Number: 5 (DW_TAG_member)
+ <9b> DW_AT_name : (indirect string, offset: 0x19a): ui
+ <9f> DW_AT_type : <0x1e8>
+ <a3> DW_AT_decl_file : 1
+ <a4> DW_AT_decl_line : 11
+ <a5> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <3><a8>: Abbrev Number: 5 (DW_TAG_member)
+ <a9> DW_AT_name : (indirect string, offset: 0x1aa): sl
+ <ad> DW_AT_type : <0x1ef>
+ <b1> DW_AT_decl_file : 1
+ <b2> DW_AT_decl_line : 12
+ <b3> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <3><b6>: Abbrev Number: 5 (DW_TAG_member)
+ <b7> DW_AT_name : (indirect string, offset: 0x1b6): us
+ <bb> DW_AT_type : <0x1f6>
+ <bf> DW_AT_decl_file : 1
+ <c0> DW_AT_decl_line : 13
+ <c1> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <3><c4>: Abbrev Number: 6 (DW_TAG_member)
+ <c5> DW_AT_name : (indirect string, offset: 0x1c8): sll
+ <c9> DW_AT_type : <0x1fd>
+ <cd> DW_AT_decl_file : 1
+ <ce> DW_AT_decl_line : 15
+ <cf> Unknown AT value: 88: 8
+ <d0> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <3><d3>: Abbrev Number: 5 (DW_TAG_member)
+ <d4> DW_AT_name : (indirect string, offset: 0x1da): ull
+ <d8> DW_AT_type : <0x204>
+ <dc> DW_AT_decl_file : 1
+ <dd> DW_AT_decl_line : 16
+ <de> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <3><e1>: Abbrev Number: 5 (DW_TAG_member)
+ <e2> DW_AT_name : (indirect string, offset: 0x1f5): ul
+ <e6> DW_AT_type : <0x20b>
+ <ea> DW_AT_decl_file : 1
+ <eb> DW_AT_decl_line : 17
+ <ec> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <3><ef>: Abbrev Number: 5 (DW_TAG_member)
+ <f0> DW_AT_name : (indirect string, offset: 0x20a): asl
+ <f4> DW_AT_type : <0x212>
+ <f8> DW_AT_decl_file : 1
+ <f9> DW_AT_decl_line : 18
+ <fa> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <3><fd>: Abbrev Number: 5 (DW_TAG_member)
+ <fe> DW_AT_name : (indirect string, offset: 0x217): f
+ <102> DW_AT_type : <0x1cc>
+ <106> DW_AT_decl_file : 1
+ <107> DW_AT_decl_line : 19
+ <108> DW_AT_data_member_location: 3 byte block: 23 d8 3 (DW_OP_plus_uconst: 472)
+ <3><10c>: Abbrev Number: 0
+ <2><10d>: Abbrev Number: 5 (DW_TAG_member)
+ <10e> DW_AT_name : (indirect string, offset: 0x219): u
+ <112> DW_AT_type : <0x234>
+ <116> DW_AT_decl_file : 1
+ <117> DW_AT_decl_line : 34
+ <118> DW_AT_data_member_location: 3 byte block: 23 e0 3 (DW_OP_plus_uconst: 480)
+ <2><11c>: Abbrev Number: 7 (DW_TAG_union_type)
+ <11d> DW_AT_byte_size : 128
+ <11e> DW_AT_decl_file : 1
+ <11f> DW_AT_decl_line : 22
+ <3><120>: Abbrev Number: 5 (DW_TAG_member)
+ <121> DW_AT_name : (indirect string, offset: 0x1c8): sll
+ <125> DW_AT_type : <0x1fd>
+ <129> DW_AT_decl_file : 1
+ <12a> DW_AT_decl_line : 23
+ <12b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><12e>: Abbrev Number: 5 (DW_TAG_member)
+ <12f> DW_AT_name : (indirect string, offset: 0x1da): ull
+ <133> DW_AT_type : <0x204>
+ <137> DW_AT_decl_file : 1
+ <138> DW_AT_decl_line : 24
+ <139> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><13c>: Abbrev Number: 5 (DW_TAG_member)
+ <13d> DW_AT_name : (indirect string, offset: 0x16f): p
+ <141> DW_AT_type : <0x1cb>
+ <145> DW_AT_decl_file : 1
+ <146> DW_AT_decl_line : 25
+ <147> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><14a>: Abbrev Number: 5 (DW_TAG_member)
+ <14b> DW_AT_name : (indirect string, offset: 0x1aa): sl
+ <14f> DW_AT_type : <0x1ef>
+ <153> DW_AT_decl_file : 1
+ <154> DW_AT_decl_line : 26
+ <155> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><158>: Abbrev Number: 5 (DW_TAG_member)
+ <159> DW_AT_name : (indirect string, offset: 0x1f5): ul
+ <15d> DW_AT_type : <0x20b>
+ <161> DW_AT_decl_file : 1
+ <162> DW_AT_decl_line : 27
+ <163> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><166>: Abbrev Number: 5 (DW_TAG_member)
+ <167> DW_AT_name : (indirect string, offset: 0x193): si
+ <16b> DW_AT_type : <0x1e1>
+ <16f> DW_AT_decl_file : 1
+ <170> DW_AT_decl_line : 28
+ <171> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><174>: Abbrev Number: 5 (DW_TAG_member)
+ <175> DW_AT_name : (indirect string, offset: 0x19a): ui
+ <179> DW_AT_type : <0x1e8>
+ <17d> DW_AT_decl_file : 1
+ <17e> DW_AT_decl_line : 29
+ <17f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><182>: Abbrev Number: 5 (DW_TAG_member)
+ <183> DW_AT_name : (indirect string, offset: 0x179): ss
+ <187> DW_AT_type : <0x248>
+ <18b> DW_AT_decl_file : 1
+ <18c> DW_AT_decl_line : 30
+ <18d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><190>: Abbrev Number: 5 (DW_TAG_member)
+ <191> DW_AT_name : (indirect string, offset: 0x1b6): us
+ <195> DW_AT_type : <0x25c>
+ <199> DW_AT_decl_file : 1
+ <19a> DW_AT_decl_line : 31
+ <19b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><19e>: Abbrev Number: 5 (DW_TAG_member)
+ <19f> DW_AT_name : (indirect string, offset: 0x171): sc
+ <1a3> DW_AT_type : <0x1cc>
+ <1a7> DW_AT_decl_file : 1
+ <1a8> DW_AT_decl_line : 32
+ <1a9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><1ac>: Abbrev Number: 5 (DW_TAG_member)
+ <1ad> DW_AT_name : (indirect string, offset: 0x182): uc
+ <1b1> DW_AT_type : <0x1da>
+ <1b5> DW_AT_decl_file : 1
+ <1b6> DW_AT_decl_line : 33
+ <1b7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><1ba>: Abbrev Number: 0
+ <2><1bb>: Abbrev Number: 5 (DW_TAG_member)
+ <1bc> DW_AT_name : (indirect string, offset: 0x217): f
+ <1c0> DW_AT_type : <0x269>
+ <1c4> DW_AT_decl_file : 1
+ <1c5> DW_AT_decl_line : 35
+ <1c6> DW_AT_data_member_location: 3 byte block: 23 e0 9 (DW_OP_plus_uconst: 1248)
+ <2><1ca>: Abbrev Number: 0
+ <1><1cb>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <1><1cc>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1cd> DW_AT_name : (indirect string, offset: 0x174): char
+ <1d1> DW_AT_encoding : 8 (unsigned char)
+ <1d2> DW_AT_byte_size : 1
+ <1><1d3>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1d4> DW_AT_name : (indirect string, offset: 0x17c): short
+ <1d8> DW_AT_encoding : 5 (signed)
+ <1d9> DW_AT_byte_size : 2
+ <1><1da>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1db> DW_AT_name : (indirect string, offset: 0x185): unsigned char
+ <1df> DW_AT_encoding : 8 (unsigned char)
+ <1e0> DW_AT_byte_size : 1
+ <1><1e1>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1e2> DW_AT_name : (indirect string, offset: 0x196): int
+ <1e6> DW_AT_encoding : 5 (signed)
+ <1e7> DW_AT_byte_size : 4
+ <1><1e8>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1e9> DW_AT_name : (indirect string, offset: 0x19d): unsigned int
+ <1ed> DW_AT_encoding : 7 (unsigned)
+ <1ee> DW_AT_byte_size : 4
+ <1><1ef>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1f0> DW_AT_name : (indirect string, offset: 0x1ad): long int
+ <1f4> DW_AT_encoding : 5 (signed)
+ <1f5> DW_AT_byte_size : 4
+ <1><1f6>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1f7> DW_AT_name : (indirect string, offset: 0x1b9): unsigned short
+ <1fb> DW_AT_encoding : 7 (unsigned)
+ <1fc> DW_AT_byte_size : 2
+ <1><1fd>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1fe> DW_AT_name : (indirect string, offset: 0x1cc): long long int
+ <202> DW_AT_encoding : 5 (signed)
+ <203> DW_AT_byte_size : 8
+ <1><204>: Abbrev Number: 9 (DW_TAG_base_type)
+ <205> DW_AT_name : (indirect string, offset: 0x1de): long long unsigned int
+ <209> DW_AT_encoding : 7 (unsigned)
+ <20a> DW_AT_byte_size : 8
+ <1><20b>: Abbrev Number: 9 (DW_TAG_base_type)
+ <20c> DW_AT_name : (indirect string, offset: 0x1f8): long unsigned int
+ <210> DW_AT_encoding : 7 (unsigned)
+ <211> DW_AT_byte_size : 4
+ <1><212>: Abbrev Number: 10 (DW_TAG_array_type)
+ <213> DW_AT_type : <0x1ef>
+ <2><217>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <218> DW_AT_type : <0x22d>
+ <21c> DW_AT_lower_bound : 0
+ <21d> DW_AT_count : 3
+ <2><21e>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <21f> DW_AT_type : <0x22d>
+ <223> DW_AT_lower_bound : 0
+ <224> DW_AT_count : 5
+ <2><225>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <226> DW_AT_type : <0x22d>
+ <22a> DW_AT_lower_bound : 0
+ <22b> DW_AT_count : 7
+ <2><22c>: Abbrev Number: 0
+ <1><22d>: Abbrev Number: 12 (DW_TAG_base_type)
+ <22e> DW_AT_name : (indirect string, offset: 0x20e): sizetype
+ <232> DW_AT_byte_size : 8
+ <233> DW_AT_encoding : 7 (unsigned)
+ <1><234>: Abbrev Number: 10 (DW_TAG_array_type)
+ <235> DW_AT_type : <0x11c>
+ <2><239>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <23a> DW_AT_type : <0x22d>
+ <23e> DW_AT_lower_bound : 0
+ <23f> DW_AT_count : 3
+ <2><240>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <241> DW_AT_type : <0x22d>
+ <245> DW_AT_lower_bound : 0
+ <246> DW_AT_count : 2
+ <2><247>: Abbrev Number: 0
+ <1><248>: Abbrev Number: 10 (DW_TAG_array_type)
+ <249> DW_AT_type : <0x1d3>
+ <2><24d>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <24e> DW_AT_type : <0x22d>
+ <252> DW_AT_lower_bound : 0
+ <253> DW_AT_count : 7
+ <2><254>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <255> DW_AT_type : <0x22d>
+ <259> DW_AT_lower_bound : 0
+ <25a> DW_AT_count : 9
+ <2><25b>: Abbrev Number: 0
+ <1><25c>: Abbrev Number: 10 (DW_TAG_array_type)
+ <25d> DW_AT_type : <0x1f6>
+ <2><261>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <262> DW_AT_type : <0x22d>
+ <266> DW_AT_lower_bound : 0
+ <267> DW_AT_count : 4
+ <2><268>: Abbrev Number: 0
+ <1><269>: Abbrev Number: 10 (DW_TAG_array_type)
+ <26a> DW_AT_type : <0x1d3>
+ <2><26e>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <26f> DW_AT_type : <0x22d>
+ <273> DW_AT_lower_bound : 0
+ <274> DW_AT_count : 0
+ <2><275>: Abbrev Number: 0
+ <1><276>: Abbrev Number: 0
diff --git a/mpers-m32/sample_struct.d2 b/mpers-m32/sample_struct.d2
index ceab522..6c539d7 100644
--- a/mpers-m32/sample_struct.d2
+++ b/mpers-m32/sample_struct.d2
@@ -1,336 +1,336 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 1
DW_AT_decl_line : 37
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x151): sample_struct
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x21b): sample_struct
DW_AT_decl_file : 1
DW_AT_decl_line : 36
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 1248
DW_AT_decl_file : 1
DW_AT_decl_line : 2
-<2><40>
+<2><41>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa3): s
-DW_AT_type : <0x4e>
+DW_AT_name : (indirect string, offset: 0x16d): s
+DW_AT_type : <0x4f>
DW_AT_decl_file : 1
DW_AT_decl_line : 21
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4e>
+<2><4f>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 480
DW_AT_decl_file : 1
DW_AT_decl_line : 3
-<3><53>
+<3><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa5): p
-DW_AT_type : <0x1ca>
+DW_AT_name : (indirect string, offset: 0x16f): p
+DW_AT_type : <0x1cb>
DW_AT_decl_file : 1
DW_AT_decl_line : 4
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><61>
+<3><62>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa7): sc
-DW_AT_type : <0x1cb>
+DW_AT_name : (indirect string, offset: 0x171): sc
+DW_AT_type : <0x1cc>
DW_AT_decl_file : 1
DW_AT_decl_line : 5
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<3><6f>
+<3><70>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xaf): ss
-DW_AT_type : <0x1d2>
+DW_AT_name : (indirect string, offset: 0x179): ss
+DW_AT_type : <0x1d3>
DW_AT_decl_file : 1
DW_AT_decl_line : 7
DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
-<3><7d>
+<3><7e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb8): uc
-DW_AT_type : <0x1d9>
+DW_AT_name : (indirect string, offset: 0x182): uc
+DW_AT_type : <0x1da>
DW_AT_decl_file : 1
DW_AT_decl_line : 8
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<3><8b>
+<3><8c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc9): si
-DW_AT_type : <0x1e0>
+DW_AT_name : (indirect string, offset: 0x193): si
+DW_AT_type : <0x1e1>
DW_AT_decl_file : 1
DW_AT_decl_line : 10
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<3><99>
+<3><9a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd0): ui
-DW_AT_type : <0x1e7>
+DW_AT_name : (indirect string, offset: 0x19a): ui
+DW_AT_type : <0x1e8>
DW_AT_decl_file : 1
DW_AT_decl_line : 11
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<3><a7>
+<3><a8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe0): sl
-DW_AT_type : <0x1ee>
+DW_AT_name : (indirect string, offset: 0x1aa): sl
+DW_AT_type : <0x1ef>
DW_AT_decl_file : 1
DW_AT_decl_line : 12
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<3><b5>
+<3><b6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xec): us
-DW_AT_type : <0x1f5>
+DW_AT_name : (indirect string, offset: 0x1b6): us
+DW_AT_type : <0x1f6>
DW_AT_decl_file : 1
DW_AT_decl_line : 13
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<3><c3>
+<3><c4>
Abbrev Number: 6 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfe): sll
-DW_AT_type : <0x1fc>
+DW_AT_name : (indirect string, offset: 0x1c8): sll
+DW_AT_type : <0x1fd>
DW_AT_decl_file : 1
DW_AT_decl_line : 15
Unknown AT value: 88: 8
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<3><d2>
+<3><d3>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x110): ull
-DW_AT_type : <0x203>
+DW_AT_name : (indirect string, offset: 0x1da): ull
+DW_AT_type : <0x204>
DW_AT_decl_file : 1
DW_AT_decl_line : 16
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<3><e0>
+<3><e1>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12b): ul
-DW_AT_type : <0x20a>
+DW_AT_name : (indirect string, offset: 0x1f5): ul
+DW_AT_type : <0x20b>
DW_AT_decl_file : 1
DW_AT_decl_line : 17
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<3><ee>
+<3><ef>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x140): asl
-DW_AT_type : <0x211>
+DW_AT_name : (indirect string, offset: 0x20a): asl
+DW_AT_type : <0x212>
DW_AT_decl_file : 1
DW_AT_decl_line : 18
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<3><fc>
+<3><fd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14d): f
-DW_AT_type : <0x1cb>
+DW_AT_name : (indirect string, offset: 0x217): f
+DW_AT_type : <0x1cc>
DW_AT_decl_file : 1
DW_AT_decl_line : 19
DW_AT_data_member_location: 3 byte block: 23 d8 3 (DW_OP_plus_uconst: 472)
-<2><10c>
+<2><10d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14f): u
-DW_AT_type : <0x233>
+DW_AT_name : (indirect string, offset: 0x219): u
+DW_AT_type : <0x234>
DW_AT_decl_file : 1
DW_AT_decl_line : 34
DW_AT_data_member_location: 3 byte block: 23 e0 3 (DW_OP_plus_uconst: 480)
-<2><11b>
+<2><11c>
Abbrev Number: 7 (DW_TAG_union_type)
DW_AT_byte_size : 128
DW_AT_decl_file : 1
DW_AT_decl_line : 22
-<3><11f>
+<3><120>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfe): sll
-DW_AT_type : <0x1fc>
+DW_AT_name : (indirect string, offset: 0x1c8): sll
+DW_AT_type : <0x1fd>
DW_AT_decl_file : 1
DW_AT_decl_line : 23
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><12d>
+<3><12e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x110): ull
-DW_AT_type : <0x203>
+DW_AT_name : (indirect string, offset: 0x1da): ull
+DW_AT_type : <0x204>
DW_AT_decl_file : 1
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><13b>
+<3><13c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa5): p
-DW_AT_type : <0x1ca>
+DW_AT_name : (indirect string, offset: 0x16f): p
+DW_AT_type : <0x1cb>
DW_AT_decl_file : 1
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><149>
+<3><14a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe0): sl
-DW_AT_type : <0x1ee>
+DW_AT_name : (indirect string, offset: 0x1aa): sl
+DW_AT_type : <0x1ef>
DW_AT_decl_file : 1
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><157>
+<3><158>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12b): ul
-DW_AT_type : <0x20a>
+DW_AT_name : (indirect string, offset: 0x1f5): ul
+DW_AT_type : <0x20b>
DW_AT_decl_file : 1
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><165>
+<3><166>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc9): si
-DW_AT_type : <0x1e0>
+DW_AT_name : (indirect string, offset: 0x193): si
+DW_AT_type : <0x1e1>
DW_AT_decl_file : 1
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><173>
+<3><174>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd0): ui
-DW_AT_type : <0x1e7>
+DW_AT_name : (indirect string, offset: 0x19a): ui
+DW_AT_type : <0x1e8>
DW_AT_decl_file : 1
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><181>
+<3><182>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xaf): ss
-DW_AT_type : <0x247>
+DW_AT_name : (indirect string, offset: 0x179): ss
+DW_AT_type : <0x248>
DW_AT_decl_file : 1
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><18f>
+<3><190>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xec): us
-DW_AT_type : <0x25b>
+DW_AT_name : (indirect string, offset: 0x1b6): us
+DW_AT_type : <0x25c>
DW_AT_decl_file : 1
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><19d>
+<3><19e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa7): sc
-DW_AT_type : <0x1cb>
+DW_AT_name : (indirect string, offset: 0x171): sc
+DW_AT_type : <0x1cc>
DW_AT_decl_file : 1
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><1ab>
+<3><1ac>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb8): uc
-DW_AT_type : <0x1d9>
+DW_AT_name : (indirect string, offset: 0x182): uc
+DW_AT_type : <0x1da>
DW_AT_decl_file : 1
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1ba>
+<2><1bb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14d): f
-DW_AT_type : <0x268>
+DW_AT_name : (indirect string, offset: 0x217): f
+DW_AT_type : <0x269>
DW_AT_decl_file : 1
DW_AT_decl_line : 35
DW_AT_data_member_location: 3 byte block: 23 e0 9 (DW_OP_plus_uconst: 1248)
-<1><1ca>
-Abbrev Number: 8 (DW_TAG_pointer_type)
<1><1cb>
+Abbrev Number: 8 (DW_TAG_pointer_type)
+<1><1cc>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xaa): char
+DW_AT_name : (indirect string, offset: 0x174): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><1d2>
+<1><1d3>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb2): short
+DW_AT_name : (indirect string, offset: 0x17c): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><1d9>
+<1><1da>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xbb): unsigned char
+DW_AT_name : (indirect string, offset: 0x185): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><1e0>
+<1><1e1>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xcc): int
+DW_AT_name : (indirect string, offset: 0x196): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><1e7>
+<1><1e8>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd3): unsigned int
+DW_AT_name : (indirect string, offset: 0x19d): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><1ee>
+<1><1ef>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe3): long int
+DW_AT_name : (indirect string, offset: 0x1ad): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><1f5>
+<1><1f6>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xef): unsigned short
+DW_AT_name : (indirect string, offset: 0x1b9): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><1fc>
+<1><1fd>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x102): long long int
+DW_AT_name : (indirect string, offset: 0x1cc): long long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 8
-<1><203>
+<1><204>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x114): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x1de): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><20a>
+<1><20b>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x12e): long unsigned int
+DW_AT_name : (indirect string, offset: 0x1f8): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><211>
+<1><212>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x1ee>
-<2><216>
+DW_AT_type : <0x1ef>
+<2><217>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 3
-<2><21d>
+<2><21e>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 5
-<2><224>
+<2><225>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 7
-<1><22c>
+<1><22d>
Abbrev Number: 12 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x144): sizetype
+DW_AT_name : (indirect string, offset: 0x20e): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><233>
+<1><234>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x11b>
-<2><238>
+DW_AT_type : <0x11c>
+<2><239>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 3
-<2><23f>
+<2><240>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 2
-<1><247>
+<1><248>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x1d2>
-<2><24c>
+DW_AT_type : <0x1d3>
+<2><24d>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 7
-<2><253>
+<2><254>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 9
-<1><25b>
+<1><25c>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x1f5>
-<2><260>
+DW_AT_type : <0x1f6>
+<2><261>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 4
-<1><268>
+<1><269>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x1d2>
-<2><26d>
+DW_AT_type : <0x1d3>
+<2><26e>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x22c>
+DW_AT_type : <0x22d>
DW_AT_lower_bound : 0
DW_AT_count : 0
diff --git a/mpers-m32/shmid_ds_t.d1 b/mpers-m32/shmid_ds_t.d1
index 721245d..a9ddc27 100644
--- a/mpers-m32/shmid_ds_t.d1
+++ b/mpers-m32/shmid_ds_t.d1
@@ -1,245 +1,246 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x211 (32-bit)
+ Length: 0x212 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/shmid_ds_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/shmid_ds_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x54): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8f): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 6
- <29> DW_AT_decl_line : 49
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x233): shmid_ds_t
- <39> DW_AT_decl_file : 6
- <3a> DW_AT_decl_line : 42
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x228): shmid64_ds
- <40> DW_AT_byte_size : 72
- <41> DW_AT_decl_file : 4
- <42> DW_AT_decl_line : 22
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa0): shm_perm
- <48> DW_AT_type : <0xd0>
- <4c> DW_AT_decl_file : 4
- <4d> DW_AT_decl_line : 23
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0x190): shm_segsz
- <56> DW_AT_type : <0x1e1>
- <5a> DW_AT_decl_file : 4
- <5b> DW_AT_decl_line : 24
- <5c> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0x1a1): shm_atime
- <64> DW_AT_type : <0x1ec>
- <68> DW_AT_decl_file : 4
- <69> DW_AT_decl_line : 25
- <6a> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0x1d4): shm_dtime
- <72> DW_AT_type : <0x1ec>
- <76> DW_AT_decl_file : 4
- <77> DW_AT_decl_line : 29
- <78> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0x1de): shm_ctime
- <80> DW_AT_type : <0x1ec>
- <84> DW_AT_decl_file : 4
- <85> DW_AT_decl_line : 33
- <86> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x1e8): shm_cpid
- <8e> DW_AT_type : <0x209>
- <92> DW_AT_decl_file : 4
- <93> DW_AT_decl_line : 37
- <94> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x200): shm_lpid
- <9c> DW_AT_type : <0x209>
- <a0> DW_AT_decl_file : 4
- <a1> DW_AT_decl_line : 38
- <a2> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x209): shm_nattch
- <aa> DW_AT_type : <0x1cf>
- <ae> DW_AT_decl_file : 4
- <af> DW_AT_decl_line : 39
- <b0> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x214): __unused4
- <b8> DW_AT_type : <0x1cf>
- <bc> DW_AT_decl_file : 4
- <bd> DW_AT_decl_line : 40
- <be> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x21e): __unused5
- <c6> DW_AT_type : <0x1cf>
- <ca> DW_AT_decl_file : 4
- <cb> DW_AT_decl_line : 41
- <cc> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
- <2><cf>: Abbrev Number: 0
- <1><d0>: Abbrev Number: 4 (DW_TAG_structure_type)
- <d1> DW_AT_name : (indirect string, offset: 0x185): ipc64_perm
- <d5> DW_AT_byte_size : 36
- <d6> DW_AT_decl_file : 2
- <d7> DW_AT_decl_line : 21
- <2><d8>: Abbrev Number: 5 (DW_TAG_member)
- <d9> DW_AT_name : (indirect string, offset: 0xa9): key
- <dd> DW_AT_type : <0x173>
- <e1> DW_AT_decl_file : 2
- <e2> DW_AT_decl_line : 22
- <e3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><e6>: Abbrev Number: 5 (DW_TAG_member)
- <e7> DW_AT_name : (indirect string, offset: 0xc0): uid
- <eb> DW_AT_type : <0x185>
- <ef> DW_AT_decl_file : 2
- <f0> DW_AT_decl_line : 23
- <f1> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><f4>: Abbrev Number: 5 (DW_TAG_member)
- <f5> DW_AT_name : (indirect string, offset: 0xe2): gid
- <f9> DW_AT_type : <0x197>
- <fd> DW_AT_decl_file : 2
- <fe> DW_AT_decl_line : 24
- <ff> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><102>: Abbrev Number: 5 (DW_TAG_member)
- <103> DW_AT_name : (indirect string, offset: 0xf7): cuid
- <107> DW_AT_type : <0x185>
- <10b> DW_AT_decl_file : 2
- <10c> DW_AT_decl_line : 25
- <10d> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><110>: Abbrev Number: 5 (DW_TAG_member)
- <111> DW_AT_name : (indirect string, offset: 0xfc): cgid
- <115> DW_AT_type : <0x197>
- <119> DW_AT_decl_file : 2
- <11a> DW_AT_decl_line : 26
- <11b> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><11e>: Abbrev Number: 5 (DW_TAG_member)
- <11f> DW_AT_name : (indirect string, offset: 0x101): mode
- <123> DW_AT_type : <0x1a2>
- <127> DW_AT_decl_file : 2
- <128> DW_AT_decl_line : 27
- <129> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><12c>: Abbrev Number: 5 (DW_TAG_member)
- <12d> DW_AT_name : (indirect string, offset: 0x116): __pad1
- <131> DW_AT_type : <0x1ad>
- <135> DW_AT_decl_file : 2
- <136> DW_AT_decl_line : 28
- <137> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><13a>: Abbrev Number: 5 (DW_TAG_member)
- <13b> DW_AT_name : (indirect string, offset: 0x134): seq
- <13f> DW_AT_type : <0x1c8>
- <143> DW_AT_decl_file : 2
- <144> DW_AT_decl_line : 29
- <145> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><148>: Abbrev Number: 5 (DW_TAG_member)
- <149> DW_AT_name : (indirect string, offset: 0x147): __pad2
- <14d> DW_AT_type : <0x1c8>
- <151> DW_AT_decl_file : 2
- <152> DW_AT_decl_line : 30
- <153> DW_AT_data_member_location: 2 byte block: 23 1a (DW_OP_plus_uconst: 26)
- <2><156>: Abbrev Number: 5 (DW_TAG_member)
- <157> DW_AT_name : (indirect string, offset: 0x14e): __unused1
- <15b> DW_AT_type : <0x1cf>
- <15f> DW_AT_decl_file : 2
- <160> DW_AT_decl_line : 31
- <161> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><164>: Abbrev Number: 5 (DW_TAG_member)
- <165> DW_AT_name : (indirect string, offset: 0x17b): __unused2
- <169> DW_AT_type : <0x1cf>
- <16d> DW_AT_decl_file : 2
- <16e> DW_AT_decl_line : 32
- <16f> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><172>: Abbrev Number: 0
- <1><173>: Abbrev Number: 3 (DW_TAG_typedef)
- <174> DW_AT_type : <0x17e>
- <178> DW_AT_name : (indirect string, offset: 0xb1): __kernel_key_t
- <17c> DW_AT_decl_file : 1
- <17d> DW_AT_decl_line : 28
- <1><17e>: Abbrev Number: 6 (DW_TAG_base_type)
- <17f> DW_AT_name : (indirect string, offset: 0xad): int
- <183> DW_AT_encoding : 5 (signed)
- <184> DW_AT_byte_size : 4
- <1><185>: Abbrev Number: 3 (DW_TAG_typedef)
- <186> DW_AT_type : <0x190>
- <18a> DW_AT_name : (indirect string, offset: 0xd1): __kernel_uid32_t
- <18e> DW_AT_decl_file : 3
- <18f> DW_AT_decl_line : 49
- <1><190>: Abbrev Number: 6 (DW_TAG_base_type)
- <191> DW_AT_name : (indirect string, offset: 0xc4): unsigned int
- <195> DW_AT_encoding : 7 (unsigned)
- <196> DW_AT_byte_size : 4
- <1><197>: Abbrev Number: 3 (DW_TAG_typedef)
- <198> DW_AT_type : <0x190>
- <19c> DW_AT_name : (indirect string, offset: 0xe6): __kernel_gid32_t
- <1a0> DW_AT_decl_file : 3
- <1a1> DW_AT_decl_line : 50
- <1><1a2>: Abbrev Number: 3 (DW_TAG_typedef)
- <1a3> DW_AT_type : <0x190>
- <1a7> DW_AT_name : (indirect string, offset: 0x106): __kernel_mode_t
- <1ab> DW_AT_decl_file : 3
- <1ac> DW_AT_decl_line : 30
- <1><1ad>: Abbrev Number: 7 (DW_TAG_array_type)
- <1ae> DW_AT_type : <0x1ba>
- <2><1b2>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <1b3> DW_AT_type : <0x1c1>
- <1b7> DW_AT_lower_bound : 0
- <1b8> DW_AT_count : 0
- <2><1b9>: Abbrev Number: 0
- <1><1ba>: Abbrev Number: 6 (DW_TAG_base_type)
- <1bb> DW_AT_name : (indirect string, offset: 0x11d): unsigned char
- <1bf> DW_AT_encoding : 8 (unsigned char)
- <1c0> DW_AT_byte_size : 1
- <1><1c1>: Abbrev Number: 9 (DW_TAG_base_type)
- <1c2> DW_AT_name : (indirect string, offset: 0x12b): sizetype
- <1c6> DW_AT_byte_size : 8
- <1c7> DW_AT_encoding : 7 (unsigned)
- <1><1c8>: Abbrev Number: 6 (DW_TAG_base_type)
- <1c9> DW_AT_name : (indirect string, offset: 0x138): unsigned short
- <1cd> DW_AT_encoding : 7 (unsigned)
- <1ce> DW_AT_byte_size : 2
- <1><1cf>: Abbrev Number: 3 (DW_TAG_typedef)
- <1d0> DW_AT_type : <0x1da>
- <1d4> DW_AT_name : (indirect string, offset: 0x16a): __kernel_ulong_t
- <1d8> DW_AT_decl_file : 3
- <1d9> DW_AT_decl_line : 24
- <1><1da>: Abbrev Number: 6 (DW_TAG_base_type)
- <1db> DW_AT_name : (indirect string, offset: 0x158): long unsigned int
- <1df> DW_AT_encoding : 7 (unsigned)
- <1e0> DW_AT_byte_size : 4
- <1><1e1>: Abbrev Number: 3 (DW_TAG_typedef)
- <1e2> DW_AT_type : <0x190>
- <1e6> DW_AT_name : (indirect string, offset: 0x19a): size_t
- <1ea> DW_AT_decl_file : 5
- <1eb> DW_AT_decl_line : 62
- <1><1ec>: Abbrev Number: 3 (DW_TAG_typedef)
- <1ed> DW_AT_type : <0x1f7>
- <1f1> DW_AT_name : (indirect string, offset: 0x1c4): __kernel_time_t
- <1f5> DW_AT_decl_file : 3
- <1f6> DW_AT_decl_line : 77
- <1><1f7>: Abbrev Number: 3 (DW_TAG_typedef)
- <1f8> DW_AT_type : <0x202>
- <1fc> DW_AT_name : (indirect string, offset: 0x1b4): __kernel_long_t
- <200> DW_AT_decl_file : 3
- <201> DW_AT_decl_line : 23
- <1><202>: Abbrev Number: 6 (DW_TAG_base_type)
- <203> DW_AT_name : (indirect string, offset: 0x1ab): long int
- <207> DW_AT_encoding : 5 (signed)
- <208> DW_AT_byte_size : 4
- <1><209>: Abbrev Number: 3 (DW_TAG_typedef)
- <20a> DW_AT_type : <0x17e>
- <20e> DW_AT_name : (indirect string, offset: 0x1f1): __kernel_pid_t
- <212> DW_AT_decl_file : 3
- <213> DW_AT_decl_line : 33
- <1><214>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11e): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x159): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 6
+ <2a> DW_AT_decl_line : 49
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x2fd): shmid_ds_t
+ <3a> DW_AT_decl_file : 6
+ <3b> DW_AT_decl_line : 42
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x2f2): shmid64_ds
+ <41> DW_AT_byte_size : 72
+ <42> DW_AT_decl_file : 4
+ <43> DW_AT_decl_line : 22
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16a): shm_perm
+ <49> DW_AT_type : <0xd1>
+ <4d> DW_AT_decl_file : 4
+ <4e> DW_AT_decl_line : 23
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x25a): shm_segsz
+ <57> DW_AT_type : <0x1e2>
+ <5b> DW_AT_decl_file : 4
+ <5c> DW_AT_decl_line : 24
+ <5d> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x26b): shm_atime
+ <65> DW_AT_type : <0x1ed>
+ <69> DW_AT_decl_file : 4
+ <6a> DW_AT_decl_line : 25
+ <6b> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x29e): shm_dtime
+ <73> DW_AT_type : <0x1ed>
+ <77> DW_AT_decl_file : 4
+ <78> DW_AT_decl_line : 29
+ <79> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x2a8): shm_ctime
+ <81> DW_AT_type : <0x1ed>
+ <85> DW_AT_decl_file : 4
+ <86> DW_AT_decl_line : 33
+ <87> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x2b2): shm_cpid
+ <8f> DW_AT_type : <0x20a>
+ <93> DW_AT_decl_file : 4
+ <94> DW_AT_decl_line : 37
+ <95> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x2ca): shm_lpid
+ <9d> DW_AT_type : <0x20a>
+ <a1> DW_AT_decl_file : 4
+ <a2> DW_AT_decl_line : 38
+ <a3> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x2d3): shm_nattch
+ <ab> DW_AT_type : <0x1d0>
+ <af> DW_AT_decl_file : 4
+ <b0> DW_AT_decl_line : 39
+ <b1> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x2de): __unused4
+ <b9> DW_AT_type : <0x1d0>
+ <bd> DW_AT_decl_file : 4
+ <be> DW_AT_decl_line : 40
+ <bf> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x2e8): __unused5
+ <c7> DW_AT_type : <0x1d0>
+ <cb> DW_AT_decl_file : 4
+ <cc> DW_AT_decl_line : 41
+ <cd> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
+ <2><d0>: Abbrev Number: 0
+ <1><d1>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <d2> DW_AT_name : (indirect string, offset: 0x24f): ipc64_perm
+ <d6> DW_AT_byte_size : 36
+ <d7> DW_AT_decl_file : 2
+ <d8> DW_AT_decl_line : 21
+ <2><d9>: Abbrev Number: 5 (DW_TAG_member)
+ <da> DW_AT_name : (indirect string, offset: 0x173): key
+ <de> DW_AT_type : <0x174>
+ <e2> DW_AT_decl_file : 2
+ <e3> DW_AT_decl_line : 22
+ <e4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><e7>: Abbrev Number: 5 (DW_TAG_member)
+ <e8> DW_AT_name : (indirect string, offset: 0x18a): uid
+ <ec> DW_AT_type : <0x186>
+ <f0> DW_AT_decl_file : 2
+ <f1> DW_AT_decl_line : 23
+ <f2> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><f5>: Abbrev Number: 5 (DW_TAG_member)
+ <f6> DW_AT_name : (indirect string, offset: 0x1ac): gid
+ <fa> DW_AT_type : <0x198>
+ <fe> DW_AT_decl_file : 2
+ <ff> DW_AT_decl_line : 24
+ <100> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><103>: Abbrev Number: 5 (DW_TAG_member)
+ <104> DW_AT_name : (indirect string, offset: 0x1c1): cuid
+ <108> DW_AT_type : <0x186>
+ <10c> DW_AT_decl_file : 2
+ <10d> DW_AT_decl_line : 25
+ <10e> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><111>: Abbrev Number: 5 (DW_TAG_member)
+ <112> DW_AT_name : (indirect string, offset: 0x1c6): cgid
+ <116> DW_AT_type : <0x198>
+ <11a> DW_AT_decl_file : 2
+ <11b> DW_AT_decl_line : 26
+ <11c> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><11f>: Abbrev Number: 5 (DW_TAG_member)
+ <120> DW_AT_name : (indirect string, offset: 0x1cb): mode
+ <124> DW_AT_type : <0x1a3>
+ <128> DW_AT_decl_file : 2
+ <129> DW_AT_decl_line : 27
+ <12a> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><12d>: Abbrev Number: 5 (DW_TAG_member)
+ <12e> DW_AT_name : (indirect string, offset: 0x1e0): __pad1
+ <132> DW_AT_type : <0x1ae>
+ <136> DW_AT_decl_file : 2
+ <137> DW_AT_decl_line : 28
+ <138> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><13b>: Abbrev Number: 5 (DW_TAG_member)
+ <13c> DW_AT_name : (indirect string, offset: 0x1fe): seq
+ <140> DW_AT_type : <0x1c9>
+ <144> DW_AT_decl_file : 2
+ <145> DW_AT_decl_line : 29
+ <146> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><149>: Abbrev Number: 5 (DW_TAG_member)
+ <14a> DW_AT_name : (indirect string, offset: 0x211): __pad2
+ <14e> DW_AT_type : <0x1c9>
+ <152> DW_AT_decl_file : 2
+ <153> DW_AT_decl_line : 30
+ <154> DW_AT_data_member_location: 2 byte block: 23 1a (DW_OP_plus_uconst: 26)
+ <2><157>: Abbrev Number: 5 (DW_TAG_member)
+ <158> DW_AT_name : (indirect string, offset: 0x218): __unused1
+ <15c> DW_AT_type : <0x1d0>
+ <160> DW_AT_decl_file : 2
+ <161> DW_AT_decl_line : 31
+ <162> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><165>: Abbrev Number: 5 (DW_TAG_member)
+ <166> DW_AT_name : (indirect string, offset: 0x245): __unused2
+ <16a> DW_AT_type : <0x1d0>
+ <16e> DW_AT_decl_file : 2
+ <16f> DW_AT_decl_line : 32
+ <170> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><173>: Abbrev Number: 0
+ <1><174>: Abbrev Number: 3 (DW_TAG_typedef)
+ <175> DW_AT_type : <0x17f>
+ <179> DW_AT_name : (indirect string, offset: 0x17b): __kernel_key_t
+ <17d> DW_AT_decl_file : 1
+ <17e> DW_AT_decl_line : 28
+ <1><17f>: Abbrev Number: 6 (DW_TAG_base_type)
+ <180> DW_AT_name : (indirect string, offset: 0x177): int
+ <184> DW_AT_encoding : 5 (signed)
+ <185> DW_AT_byte_size : 4
+ <1><186>: Abbrev Number: 3 (DW_TAG_typedef)
+ <187> DW_AT_type : <0x191>
+ <18b> DW_AT_name : (indirect string, offset: 0x19b): __kernel_uid32_t
+ <18f> DW_AT_decl_file : 3
+ <190> DW_AT_decl_line : 49
+ <1><191>: Abbrev Number: 6 (DW_TAG_base_type)
+ <192> DW_AT_name : (indirect string, offset: 0x18e): unsigned int
+ <196> DW_AT_encoding : 7 (unsigned)
+ <197> DW_AT_byte_size : 4
+ <1><198>: Abbrev Number: 3 (DW_TAG_typedef)
+ <199> DW_AT_type : <0x191>
+ <19d> DW_AT_name : (indirect string, offset: 0x1b0): __kernel_gid32_t
+ <1a1> DW_AT_decl_file : 3
+ <1a2> DW_AT_decl_line : 50
+ <1><1a3>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1a4> DW_AT_type : <0x191>
+ <1a8> DW_AT_name : (indirect string, offset: 0x1d0): __kernel_mode_t
+ <1ac> DW_AT_decl_file : 3
+ <1ad> DW_AT_decl_line : 30
+ <1><1ae>: Abbrev Number: 7 (DW_TAG_array_type)
+ <1af> DW_AT_type : <0x1bb>
+ <2><1b3>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <1b4> DW_AT_type : <0x1c2>
+ <1b8> DW_AT_lower_bound : 0
+ <1b9> DW_AT_count : 0
+ <2><1ba>: Abbrev Number: 0
+ <1><1bb>: Abbrev Number: 6 (DW_TAG_base_type)
+ <1bc> DW_AT_name : (indirect string, offset: 0x1e7): unsigned char
+ <1c0> DW_AT_encoding : 8 (unsigned char)
+ <1c1> DW_AT_byte_size : 1
+ <1><1c2>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1c3> DW_AT_name : (indirect string, offset: 0x1f5): sizetype
+ <1c7> DW_AT_byte_size : 8
+ <1c8> DW_AT_encoding : 7 (unsigned)
+ <1><1c9>: Abbrev Number: 6 (DW_TAG_base_type)
+ <1ca> DW_AT_name : (indirect string, offset: 0x202): unsigned short
+ <1ce> DW_AT_encoding : 7 (unsigned)
+ <1cf> DW_AT_byte_size : 2
+ <1><1d0>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1d1> DW_AT_type : <0x1db>
+ <1d5> DW_AT_name : (indirect string, offset: 0x234): __kernel_ulong_t
+ <1d9> DW_AT_decl_file : 3
+ <1da> DW_AT_decl_line : 24
+ <1><1db>: Abbrev Number: 6 (DW_TAG_base_type)
+ <1dc> DW_AT_name : (indirect string, offset: 0x222): long unsigned int
+ <1e0> DW_AT_encoding : 7 (unsigned)
+ <1e1> DW_AT_byte_size : 4
+ <1><1e2>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1e3> DW_AT_type : <0x191>
+ <1e7> DW_AT_name : (indirect string, offset: 0x264): size_t
+ <1eb> DW_AT_decl_file : 5
+ <1ec> DW_AT_decl_line : 62
+ <1><1ed>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1ee> DW_AT_type : <0x1f8>
+ <1f2> DW_AT_name : (indirect string, offset: 0x28e): __kernel_time_t
+ <1f6> DW_AT_decl_file : 3
+ <1f7> DW_AT_decl_line : 77
+ <1><1f8>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1f9> DW_AT_type : <0x203>
+ <1fd> DW_AT_name : (indirect string, offset: 0x27e): __kernel_long_t
+ <201> DW_AT_decl_file : 3
+ <202> DW_AT_decl_line : 23
+ <1><203>: Abbrev Number: 6 (DW_TAG_base_type)
+ <204> DW_AT_name : (indirect string, offset: 0x275): long int
+ <208> DW_AT_encoding : 5 (signed)
+ <209> DW_AT_byte_size : 4
+ <1><20a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <20b> DW_AT_type : <0x17f>
+ <20f> DW_AT_name : (indirect string, offset: 0x2bb): __kernel_pid_t
+ <213> DW_AT_decl_file : 3
+ <214> DW_AT_decl_line : 33
+ <1><215>: Abbrev Number: 0
diff --git a/mpers-m32/shmid_ds_t.d2 b/mpers-m32/shmid_ds_t.d2
index 47015eb..de60d60 100644
--- a/mpers-m32/shmid_ds_t.d2
+++ b/mpers-m32/shmid_ds_t.d2
@@ -1,270 +1,270 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8f): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x159): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 6
DW_AT_decl_line : 49
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x233): shmid_ds_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x2fd): shmid_ds_t
DW_AT_decl_file : 6
DW_AT_decl_line : 42
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x228): shmid64_ds
+DW_AT_name : (indirect string, offset: 0x2f2): shmid64_ds
DW_AT_byte_size : 72
DW_AT_decl_file : 4
DW_AT_decl_line : 22
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa0): shm_perm
-DW_AT_type : <0xd0>
+DW_AT_name : (indirect string, offset: 0x16a): shm_perm
+DW_AT_type : <0xd1>
DW_AT_decl_file : 4
DW_AT_decl_line : 23
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x190): shm_segsz
-DW_AT_type : <0x1e1>
+DW_AT_name : (indirect string, offset: 0x25a): shm_segsz
+DW_AT_type : <0x1e2>
DW_AT_decl_file : 4
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1a1): shm_atime
-DW_AT_type : <0x1ec>
+DW_AT_name : (indirect string, offset: 0x26b): shm_atime
+DW_AT_type : <0x1ed>
DW_AT_decl_file : 4
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d4): shm_dtime
-DW_AT_type : <0x1ec>
+DW_AT_name : (indirect string, offset: 0x29e): shm_dtime
+DW_AT_type : <0x1ed>
DW_AT_decl_file : 4
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1de): shm_ctime
-DW_AT_type : <0x1ec>
+DW_AT_name : (indirect string, offset: 0x2a8): shm_ctime
+DW_AT_type : <0x1ed>
DW_AT_decl_file : 4
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e8): shm_cpid
-DW_AT_type : <0x209>
+DW_AT_name : (indirect string, offset: 0x2b2): shm_cpid
+DW_AT_type : <0x20a>
DW_AT_decl_file : 4
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x200): shm_lpid
-DW_AT_type : <0x209>
+DW_AT_name : (indirect string, offset: 0x2ca): shm_lpid
+DW_AT_type : <0x20a>
DW_AT_decl_file : 4
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x209): shm_nattch
-DW_AT_type : <0x1cf>
+DW_AT_name : (indirect string, offset: 0x2d3): shm_nattch
+DW_AT_type : <0x1d0>
DW_AT_decl_file : 4
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x214): __unused4
-DW_AT_type : <0x1cf>
+DW_AT_name : (indirect string, offset: 0x2de): __unused4
+DW_AT_type : <0x1d0>
DW_AT_decl_file : 4
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x21e): __unused5
-DW_AT_type : <0x1cf>
+DW_AT_name : (indirect string, offset: 0x2e8): __unused5
+DW_AT_type : <0x1d0>
DW_AT_decl_file : 4
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
-<1><d0>
+<1><d1>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x185): ipc64_perm
+DW_AT_name : (indirect string, offset: 0x24f): ipc64_perm
DW_AT_byte_size : 36
DW_AT_decl_file : 2
DW_AT_decl_line : 21
-<2><d8>
+<2><d9>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa9): key
-DW_AT_type : <0x173>
+DW_AT_name : (indirect string, offset: 0x173): key
+DW_AT_type : <0x174>
DW_AT_decl_file : 2
DW_AT_decl_line : 22
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><e6>
+<2><e7>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc0): uid
-DW_AT_type : <0x185>
+DW_AT_name : (indirect string, offset: 0x18a): uid
+DW_AT_type : <0x186>
DW_AT_decl_file : 2
DW_AT_decl_line : 23
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><f4>
+<2><f5>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe2): gid
-DW_AT_type : <0x197>
+DW_AT_name : (indirect string, offset: 0x1ac): gid
+DW_AT_type : <0x198>
DW_AT_decl_file : 2
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><102>
+<2><103>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf7): cuid
-DW_AT_type : <0x185>
+DW_AT_name : (indirect string, offset: 0x1c1): cuid
+DW_AT_type : <0x186>
DW_AT_decl_file : 2
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><110>
+<2><111>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfc): cgid
-DW_AT_type : <0x197>
+DW_AT_name : (indirect string, offset: 0x1c6): cgid
+DW_AT_type : <0x198>
DW_AT_decl_file : 2
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><11e>
+<2><11f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x101): mode
-DW_AT_type : <0x1a2>
+DW_AT_name : (indirect string, offset: 0x1cb): mode
+DW_AT_type : <0x1a3>
DW_AT_decl_file : 2
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><12c>
+<2><12d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x116): __pad1
-DW_AT_type : <0x1ad>
+DW_AT_name : (indirect string, offset: 0x1e0): __pad1
+DW_AT_type : <0x1ae>
DW_AT_decl_file : 2
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><13a>
+<2><13b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x134): seq
-DW_AT_type : <0x1c8>
+DW_AT_name : (indirect string, offset: 0x1fe): seq
+DW_AT_type : <0x1c9>
DW_AT_decl_file : 2
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><148>
+<2><149>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x147): __pad2
-DW_AT_type : <0x1c8>
+DW_AT_name : (indirect string, offset: 0x211): __pad2
+DW_AT_type : <0x1c9>
DW_AT_decl_file : 2
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 1a (DW_OP_plus_uconst: 26)
-<2><156>
+<2><157>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14e): __unused1
-DW_AT_type : <0x1cf>
+DW_AT_name : (indirect string, offset: 0x218): __unused1
+DW_AT_type : <0x1d0>
DW_AT_decl_file : 2
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><164>
+<2><165>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17b): __unused2
-DW_AT_type : <0x1cf>
+DW_AT_name : (indirect string, offset: 0x245): __unused2
+DW_AT_type : <0x1d0>
DW_AT_decl_file : 2
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<1><173>
+<1><174>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x17e>
-DW_AT_name : (indirect string, offset: 0xb1): __kernel_key_t
+DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x17b): __kernel_key_t
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><17e>
+<1><17f>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xad): int
+DW_AT_name : (indirect string, offset: 0x177): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><185>
+<1><186>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x190>
-DW_AT_name : (indirect string, offset: 0xd1): __kernel_uid32_t
+DW_AT_type : <0x191>
+DW_AT_name : (indirect string, offset: 0x19b): __kernel_uid32_t
DW_AT_decl_file : 3
DW_AT_decl_line : 49
-<1><190>
+<1><191>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc4): unsigned int
+DW_AT_name : (indirect string, offset: 0x18e): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><197>
+<1><198>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x190>
-DW_AT_name : (indirect string, offset: 0xe6): __kernel_gid32_t
+DW_AT_type : <0x191>
+DW_AT_name : (indirect string, offset: 0x1b0): __kernel_gid32_t
DW_AT_decl_file : 3
DW_AT_decl_line : 50
-<1><1a2>
+<1><1a3>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x190>
-DW_AT_name : (indirect string, offset: 0x106): __kernel_mode_t
+DW_AT_type : <0x191>
+DW_AT_name : (indirect string, offset: 0x1d0): __kernel_mode_t
DW_AT_decl_file : 3
DW_AT_decl_line : 30
-<1><1ad>
+<1><1ae>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x1ba>
-<2><1b2>
+DW_AT_type : <0x1bb>
+<2><1b3>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x1c1>
+DW_AT_type : <0x1c2>
DW_AT_lower_bound : 0
DW_AT_count : 0
-<1><1ba>
+<1><1bb>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x11d): unsigned char
+DW_AT_name : (indirect string, offset: 0x1e7): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><1c1>
+<1><1c2>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x12b): sizetype
+DW_AT_name : (indirect string, offset: 0x1f5): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><1c8>
+<1><1c9>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x138): unsigned short
+DW_AT_name : (indirect string, offset: 0x202): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><1cf>
+<1><1d0>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1da>
-DW_AT_name : (indirect string, offset: 0x16a): __kernel_ulong_t
+DW_AT_type : <0x1db>
+DW_AT_name : (indirect string, offset: 0x234): __kernel_ulong_t
DW_AT_decl_file : 3
DW_AT_decl_line : 24
-<1><1da>
+<1><1db>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x158): long unsigned int
+DW_AT_name : (indirect string, offset: 0x222): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><1e1>
+<1><1e2>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x190>
-DW_AT_name : (indirect string, offset: 0x19a): size_t
+DW_AT_type : <0x191>
+DW_AT_name : (indirect string, offset: 0x264): size_t
DW_AT_decl_file : 5
DW_AT_decl_line : 62
-<1><1ec>
+<1><1ed>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1f7>
-DW_AT_name : (indirect string, offset: 0x1c4): __kernel_time_t
+DW_AT_type : <0x1f8>
+DW_AT_name : (indirect string, offset: 0x28e): __kernel_time_t
DW_AT_decl_file : 3
DW_AT_decl_line : 77
-<1><1f7>
+<1><1f8>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x202>
-DW_AT_name : (indirect string, offset: 0x1b4): __kernel_long_t
+DW_AT_type : <0x203>
+DW_AT_name : (indirect string, offset: 0x27e): __kernel_long_t
DW_AT_decl_file : 3
DW_AT_decl_line : 23
-<1><202>
+<1><203>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1ab): long int
+DW_AT_name : (indirect string, offset: 0x275): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><209>
+<1><20a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x17e>
-DW_AT_name : (indirect string, offset: 0x1f1): __kernel_pid_t
+DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x2bb): __kernel_pid_t
DW_AT_decl_file : 3
DW_AT_decl_line : 33
diff --git a/mpers-m32/siginfo_t.d1 b/mpers-m32/siginfo_t.d1
index 7cb5c2b..365ad3f 100644
--- a/mpers-m32/siginfo_t.d1
+++ b/mpers-m32/siginfo_t.d1
@@ -1,408 +1,409 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x348 (32-bit)
+ Length: 0x349 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/siginfo_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/siginfo_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x53): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 42
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x244): siginfo_t
- <39> DW_AT_decl_file : 1
- <3a> DW_AT_decl_line : 100
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x23c): siginfo
- <40> DW_AT_byte_size : 124
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 47
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9f): si_signo
- <48> DW_AT_type : <0x294>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 48
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xac): si_errno
- <56> DW_AT_type : <0x294>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 49
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xb5): si_code
- <64> DW_AT_type : <0x294>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 50
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xbd): _sifields
- <72> DW_AT_type : <0x7b>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 99
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 6 (DW_TAG_union_type)
- <7c> DW_AT_byte_size : 112
- <7d> DW_AT_decl_file : 1
- <7e> DW_AT_decl_line : 51
- <3><7f>: Abbrev Number: 5 (DW_TAG_member)
- <80> DW_AT_name : (indirect string, offset: 0xc7): _pad
- <84> DW_AT_type : <0x29b>
- <88> DW_AT_decl_file : 1
- <89> DW_AT_decl_line : 52
- <8a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><8d>: Abbrev Number: 5 (DW_TAG_member)
- <8e> DW_AT_name : (indirect string, offset: 0xd5): _kill
- <92> DW_AT_type : <0x9b>
- <96> DW_AT_decl_file : 1
- <97> DW_AT_decl_line : 56
- <98> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><9b>: Abbrev Number: 7 (DW_TAG_structure_type)
- <9c> DW_AT_byte_size : 8
- <9d> DW_AT_decl_file : 1
- <9e> DW_AT_decl_line : 53
- <4><9f>: Abbrev Number: 5 (DW_TAG_member)
- <a0> DW_AT_name : (indirect string, offset: 0xdb): _pid
- <a4> DW_AT_type : <0x2af>
- <a8> DW_AT_decl_file : 1
- <a9> DW_AT_decl_line : 54
- <aa> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><ad>: Abbrev Number: 5 (DW_TAG_member)
- <ae> DW_AT_name : (indirect string, offset: 0xef): _uid
- <b2> DW_AT_type : <0x2ba>
- <b6> DW_AT_decl_file : 1
- <b7> DW_AT_decl_line : 55
- <b8> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><bb>: Abbrev Number: 0
- <3><bc>: Abbrev Number: 5 (DW_TAG_member)
- <bd> DW_AT_name : (indirect string, offset: 0x112): _timer
- <c1> DW_AT_type : <0xca>
- <c5> DW_AT_decl_file : 1
- <c6> DW_AT_decl_line : 63
- <c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><ca>: Abbrev Number: 7 (DW_TAG_structure_type)
- <cb> DW_AT_byte_size : 16
- <cc> DW_AT_decl_file : 1
- <cd> DW_AT_decl_line : 57
- <4><ce>: Abbrev Number: 5 (DW_TAG_member)
- <cf> DW_AT_name : (indirect string, offset: 0x119): _tid
- <d3> DW_AT_type : <0x2cc>
- <d7> DW_AT_decl_file : 1
- <d8> DW_AT_decl_line : 58
- <d9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><dc>: Abbrev Number: 5 (DW_TAG_member)
- <dd> DW_AT_name : (indirect string, offset: 0x12f): _overrun
- <e1> DW_AT_type : <0x294>
- <e5> DW_AT_decl_file : 1
- <e6> DW_AT_decl_line : 59
- <e7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><ea>: Abbrev Number: 5 (DW_TAG_member)
- <eb> DW_AT_name : (indirect string, offset: 0xc7): _pad
- <ef> DW_AT_type : <0x2d7>
- <f3> DW_AT_decl_file : 1
- <f4> DW_AT_decl_line : 60
- <f5> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><f8>: Abbrev Number: 5 (DW_TAG_member)
- <f9> DW_AT_name : (indirect string, offset: 0x13d): _sigval
- <fd> DW_AT_type : <0x2eb>
- <101> DW_AT_decl_file : 1
- <102> DW_AT_decl_line : 61
- <103> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><106>: Abbrev Number: 5 (DW_TAG_member)
- <107> DW_AT_name : (indirect string, offset: 0x169): _sys_private
- <10b> DW_AT_type : <0x294>
- <10f> DW_AT_decl_file : 1
- <110> DW_AT_decl_line : 62
- <111> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <4><114>: Abbrev Number: 0
- <3><115>: Abbrev Number: 5 (DW_TAG_member)
- <116> DW_AT_name : (indirect string, offset: 0x176): _rt
- <11a> DW_AT_type : <0x123>
- <11e> DW_AT_decl_file : 1
- <11f> DW_AT_decl_line : 68
- <120> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><123>: Abbrev Number: 7 (DW_TAG_structure_type)
- <124> DW_AT_byte_size : 12
- <125> DW_AT_decl_file : 1
- <126> DW_AT_decl_line : 64
- <4><127>: Abbrev Number: 5 (DW_TAG_member)
- <128> DW_AT_name : (indirect string, offset: 0xdb): _pid
- <12c> DW_AT_type : <0x2af>
- <130> DW_AT_decl_file : 1
- <131> DW_AT_decl_line : 65
- <132> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><135>: Abbrev Number: 5 (DW_TAG_member)
- <136> DW_AT_name : (indirect string, offset: 0xef): _uid
- <13a> DW_AT_type : <0x2ba>
- <13e> DW_AT_decl_file : 1
- <13f> DW_AT_decl_line : 66
- <140> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><143>: Abbrev Number: 5 (DW_TAG_member)
- <144> DW_AT_name : (indirect string, offset: 0x13d): _sigval
- <148> DW_AT_type : <0x2eb>
- <14c> DW_AT_decl_file : 1
- <14d> DW_AT_decl_line : 67
- <14e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><151>: Abbrev Number: 0
- <3><152>: Abbrev Number: 5 (DW_TAG_member)
- <153> DW_AT_name : (indirect string, offset: 0x17a): _sigchld
- <157> DW_AT_type : <0x160>
- <15b> DW_AT_decl_file : 1
- <15c> DW_AT_decl_line : 75
- <15d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><160>: Abbrev Number: 7 (DW_TAG_structure_type)
- <161> DW_AT_byte_size : 20
- <162> DW_AT_decl_file : 1
- <163> DW_AT_decl_line : 69
- <4><164>: Abbrev Number: 5 (DW_TAG_member)
- <165> DW_AT_name : (indirect string, offset: 0xdb): _pid
- <169> DW_AT_type : <0x2af>
- <16d> DW_AT_decl_file : 1
- <16e> DW_AT_decl_line : 70
- <16f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><172>: Abbrev Number: 5 (DW_TAG_member)
- <173> DW_AT_name : (indirect string, offset: 0xef): _uid
- <177> DW_AT_type : <0x2ba>
- <17b> DW_AT_decl_file : 1
- <17c> DW_AT_decl_line : 71
- <17d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><180>: Abbrev Number: 5 (DW_TAG_member)
- <181> DW_AT_name : (indirect string, offset: 0x183): _status
- <185> DW_AT_type : <0x294>
- <189> DW_AT_decl_file : 1
- <18a> DW_AT_decl_line : 72
- <18b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><18e>: Abbrev Number: 5 (DW_TAG_member)
- <18f> DW_AT_name : (indirect string, offset: 0x18b): _utime
- <193> DW_AT_type : <0x31c>
- <197> DW_AT_decl_file : 1
- <198> DW_AT_decl_line : 73
- <199> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <4><19c>: Abbrev Number: 5 (DW_TAG_member)
- <19d> DW_AT_name : (indirect string, offset: 0x1bc): _stime
- <1a1> DW_AT_type : <0x31c>
- <1a5> DW_AT_decl_file : 1
- <1a6> DW_AT_decl_line : 74
- <1a7> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <4><1aa>: Abbrev Number: 0
- <3><1ab>: Abbrev Number: 5 (DW_TAG_member)
- <1ac> DW_AT_name : (indirect string, offset: 0x1c3): _sigfault
- <1b0> DW_AT_type : <0x1b9>
- <1b4> DW_AT_decl_file : 1
- <1b5> DW_AT_decl_line : 89
- <1b6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><1b9>: Abbrev Number: 7 (DW_TAG_structure_type)
- <1ba> DW_AT_byte_size : 16
- <1bb> DW_AT_decl_file : 1
- <1bc> DW_AT_decl_line : 76
- <4><1bd>: Abbrev Number: 5 (DW_TAG_member)
- <1be> DW_AT_name : (indirect string, offset: 0x1cd): _addr
- <1c2> DW_AT_type : <0x31b>
- <1c6> DW_AT_decl_file : 1
- <1c7> DW_AT_decl_line : 77
- <1c8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><1cb>: Abbrev Number: 5 (DW_TAG_member)
- <1cc> DW_AT_name : (indirect string, offset: 0x1d3): _addr_lsb
- <1d0> DW_AT_type : <0x339>
- <1d4> DW_AT_decl_file : 1
- <1d5> DW_AT_decl_line : 81
- <1d6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><1d9>: Abbrev Number: 8 (DW_TAG_member)
- <1da> DW_AT_type : <0x1e3>
- <1de> DW_AT_decl_file : 1
- <1df> DW_AT_decl_line : 82
- <1e0> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><1e3>: Abbrev Number: 6 (DW_TAG_union_type)
- <1e4> DW_AT_byte_size : 8
- <1e5> DW_AT_decl_file : 1
- <1e6> DW_AT_decl_line : 82
- <5><1e7>: Abbrev Number: 5 (DW_TAG_member)
- <1e8> DW_AT_name : (indirect string, offset: 0x1e3): _addr_bnd
- <1ec> DW_AT_type : <0x1f5>
- <1f0> DW_AT_decl_file : 1
- <1f1> DW_AT_decl_line : 86
- <1f2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <5><1f5>: Abbrev Number: 7 (DW_TAG_structure_type)
- <1f6> DW_AT_byte_size : 8
- <1f7> DW_AT_decl_file : 1
- <1f8> DW_AT_decl_line : 83
- <6><1f9>: Abbrev Number: 5 (DW_TAG_member)
- <1fa> DW_AT_name : (indirect string, offset: 0x1ed): _lower
- <1fe> DW_AT_type : <0x31b>
- <202> DW_AT_decl_file : 1
- <203> DW_AT_decl_line : 84
- <204> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <6><207>: Abbrev Number: 5 (DW_TAG_member)
- <208> DW_AT_name : (indirect string, offset: 0x1f4): _upper
- <20c> DW_AT_type : <0x31b>
- <210> DW_AT_decl_file : 1
- <211> DW_AT_decl_line : 85
- <212> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <6><215>: Abbrev Number: 0
- <5><216>: Abbrev Number: 5 (DW_TAG_member)
- <217> DW_AT_name : (indirect string, offset: 0x1fb): _pkey
- <21b> DW_AT_type : <0x340>
- <21f> DW_AT_decl_file : 1
- <220> DW_AT_decl_line : 87
- <221> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <5><224>: Abbrev Number: 0
- <4><225>: Abbrev Number: 0
- <3><226>: Abbrev Number: 5 (DW_TAG_member)
- <227> DW_AT_name : (indirect string, offset: 0x207): _sigpoll
- <22b> DW_AT_type : <0x234>
- <22f> DW_AT_decl_file : 1
- <230> DW_AT_decl_line : 93
- <231> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><234>: Abbrev Number: 7 (DW_TAG_structure_type)
- <235> DW_AT_byte_size : 8
- <236> DW_AT_decl_file : 1
- <237> DW_AT_decl_line : 90
- <4><238>: Abbrev Number: 5 (DW_TAG_member)
- <239> DW_AT_name : (indirect string, offset: 0x210): _band
- <23d> DW_AT_type : <0x332>
- <241> DW_AT_decl_file : 1
- <242> DW_AT_decl_line : 91
- <243> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><246>: Abbrev Number: 5 (DW_TAG_member)
- <247> DW_AT_name : (indirect string, offset: 0x216): _fd
- <24b> DW_AT_type : <0x294>
- <24f> DW_AT_decl_file : 1
- <250> DW_AT_decl_line : 92
- <251> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><254>: Abbrev Number: 0
- <3><255>: Abbrev Number: 5 (DW_TAG_member)
- <256> DW_AT_name : (indirect string, offset: 0x21a): _sigsys
- <25a> DW_AT_type : <0x263>
- <25e> DW_AT_decl_file : 1
- <25f> DW_AT_decl_line : 98
- <260> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><263>: Abbrev Number: 7 (DW_TAG_structure_type)
- <264> DW_AT_byte_size : 12
- <265> DW_AT_decl_file : 1
- <266> DW_AT_decl_line : 94
- <4><267>: Abbrev Number: 5 (DW_TAG_member)
- <268> DW_AT_name : (indirect string, offset: 0x222): _call_addr
- <26c> DW_AT_type : <0x31b>
- <270> DW_AT_decl_file : 1
- <271> DW_AT_decl_line : 95
- <272> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><275>: Abbrev Number: 5 (DW_TAG_member)
- <276> DW_AT_name : (indirect string, offset: 0x22d): _syscall
- <27a> DW_AT_type : <0x294>
- <27e> DW_AT_decl_file : 1
- <27f> DW_AT_decl_line : 96
- <280> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><283>: Abbrev Number: 5 (DW_TAG_member)
- <284> DW_AT_name : (indirect string, offset: 0x236): _arch
- <288> DW_AT_type : <0x2c5>
- <28c> DW_AT_decl_file : 1
- <28d> DW_AT_decl_line : 97
- <28e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><291>: Abbrev Number: 0
- <3><292>: Abbrev Number: 0
- <2><293>: Abbrev Number: 0
- <1><294>: Abbrev Number: 9 (DW_TAG_base_type)
- <295> DW_AT_name : (indirect string, offset: 0xa8): int
- <299> DW_AT_encoding : 5 (signed)
- <29a> DW_AT_byte_size : 4
- <1><29b>: Abbrev Number: 10 (DW_TAG_array_type)
- <29c> DW_AT_type : <0x294>
- <2><2a0>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <2a1> DW_AT_type : <0x2a8>
- <2a5> DW_AT_lower_bound : 0
- <2a6> DW_AT_count : 28
- <2><2a7>: Abbrev Number: 0
- <1><2a8>: Abbrev Number: 12 (DW_TAG_base_type)
- <2a9> DW_AT_name : (indirect string, offset: 0xcc): sizetype
- <2ad> DW_AT_byte_size : 8
- <2ae> DW_AT_encoding : 7 (unsigned)
- <1><2af>: Abbrev Number: 3 (DW_TAG_typedef)
- <2b0> DW_AT_type : <0x294>
- <2b4> DW_AT_name : (indirect string, offset: 0xe0): __kernel_pid_t
- <2b8> DW_AT_decl_file : 2
- <2b9> DW_AT_decl_line : 33
- <1><2ba>: Abbrev Number: 3 (DW_TAG_typedef)
- <2bb> DW_AT_type : <0x2c5>
- <2bf> DW_AT_name : (indirect string, offset: 0x101): __kernel_uid32_t
- <2c3> DW_AT_decl_file : 2
- <2c4> DW_AT_decl_line : 49
- <1><2c5>: Abbrev Number: 9 (DW_TAG_base_type)
- <2c6> DW_AT_name : (indirect string, offset: 0xf4): unsigned int
- <2ca> DW_AT_encoding : 7 (unsigned)
- <2cb> DW_AT_byte_size : 4
- <1><2cc>: Abbrev Number: 3 (DW_TAG_typedef)
- <2cd> DW_AT_type : <0x294>
- <2d1> DW_AT_name : (indirect string, offset: 0x11e): __kernel_timer_t
- <2d5> DW_AT_decl_file : 2
- <2d6> DW_AT_decl_line : 79
- <1><2d7>: Abbrev Number: 10 (DW_TAG_array_type)
- <2d8> DW_AT_type : <0x2e4>
- <2><2dc>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <2dd> DW_AT_type : <0x2a8>
- <2e1> DW_AT_lower_bound : 0
- <2e2> DW_AT_count : 0
- <2><2e3>: Abbrev Number: 0
- <1><2e4>: Abbrev Number: 9 (DW_TAG_base_type)
- <2e5> DW_AT_name : (indirect string, offset: 0x138): char
- <2e9> DW_AT_encoding : 8 (unsigned char)
- <2ea> DW_AT_byte_size : 1
- <1><2eb>: Abbrev Number: 3 (DW_TAG_typedef)
- <2ec> DW_AT_type : <0x2f6>
- <2f0> DW_AT_name : (indirect string, offset: 0x160): sigval_t
- <2f4> DW_AT_decl_file : 1
- <2f5> DW_AT_decl_line : 26
- <1><2f6>: Abbrev Number: 13 (DW_TAG_union_type)
- <2f7> DW_AT_name : (indirect string, offset: 0x159): sigval
- <2fb> DW_AT_byte_size : 4
- <2fc> DW_AT_decl_file : 1
- <2fd> DW_AT_decl_line : 23
- <2><2fe>: Abbrev Number: 5 (DW_TAG_member)
- <2ff> DW_AT_name : (indirect string, offset: 0x145): sival_int
- <303> DW_AT_type : <0x294>
- <307> DW_AT_decl_file : 1
- <308> DW_AT_decl_line : 24
- <309> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><30c>: Abbrev Number: 5 (DW_TAG_member)
- <30d> DW_AT_name : (indirect string, offset: 0x14f): sival_ptr
- <311> DW_AT_type : <0x31b>
- <315> DW_AT_decl_file : 1
- <316> DW_AT_decl_line : 25
- <317> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><31a>: Abbrev Number: 0
- <1><31b>: Abbrev Number: 14 (DW_TAG_pointer_type)
- <1><31c>: Abbrev Number: 3 (DW_TAG_typedef)
- <31d> DW_AT_type : <0x327>
- <321> DW_AT_name : (indirect string, offset: 0x1ab): __kernel_clock_t
- <325> DW_AT_decl_file : 2
- <326> DW_AT_decl_line : 78
- <1><327>: Abbrev Number: 3 (DW_TAG_typedef)
- <328> DW_AT_type : <0x332>
- <32c> DW_AT_name : (indirect string, offset: 0x19b): __kernel_long_t
- <330> DW_AT_decl_file : 2
- <331> DW_AT_decl_line : 23
- <1><332>: Abbrev Number: 9 (DW_TAG_base_type)
- <333> DW_AT_name : (indirect string, offset: 0x192): long int
- <337> DW_AT_encoding : 5 (signed)
- <338> DW_AT_byte_size : 4
- <1><339>: Abbrev Number: 9 (DW_TAG_base_type)
- <33a> DW_AT_name : (indirect string, offset: 0x1dd): short
- <33e> DW_AT_encoding : 5 (signed)
- <33f> DW_AT_byte_size : 2
- <1><340>: Abbrev Number: 3 (DW_TAG_typedef)
- <341> DW_AT_type : <0x2c5>
- <345> DW_AT_name : (indirect string, offset: 0x201): __u32
- <349> DW_AT_decl_file : 3
- <34a> DW_AT_decl_line : 28
- <1><34b>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11d): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 42
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x30e): siginfo_t
+ <3a> DW_AT_decl_file : 1
+ <3b> DW_AT_decl_line : 100
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x306): siginfo
+ <41> DW_AT_byte_size : 124
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 47
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x169): si_signo
+ <49> DW_AT_type : <0x295>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 48
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x176): si_errno
+ <57> DW_AT_type : <0x295>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 49
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x17f): si_code
+ <65> DW_AT_type : <0x295>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 50
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x187): _sifields
+ <73> DW_AT_type : <0x7c>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 99
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 6 (DW_TAG_union_type)
+ <7d> DW_AT_byte_size : 112
+ <7e> DW_AT_decl_file : 1
+ <7f> DW_AT_decl_line : 51
+ <3><80>: Abbrev Number: 5 (DW_TAG_member)
+ <81> DW_AT_name : (indirect string, offset: 0x191): _pad
+ <85> DW_AT_type : <0x29c>
+ <89> DW_AT_decl_file : 1
+ <8a> DW_AT_decl_line : 52
+ <8b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><8e>: Abbrev Number: 5 (DW_TAG_member)
+ <8f> DW_AT_name : (indirect string, offset: 0x19f): _kill
+ <93> DW_AT_type : <0x9c>
+ <97> DW_AT_decl_file : 1
+ <98> DW_AT_decl_line : 56
+ <99> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><9c>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <9d> DW_AT_byte_size : 8
+ <9e> DW_AT_decl_file : 1
+ <9f> DW_AT_decl_line : 53
+ <4><a0>: Abbrev Number: 5 (DW_TAG_member)
+ <a1> DW_AT_name : (indirect string, offset: 0x1a5): _pid
+ <a5> DW_AT_type : <0x2b0>
+ <a9> DW_AT_decl_file : 1
+ <aa> DW_AT_decl_line : 54
+ <ab> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><ae>: Abbrev Number: 5 (DW_TAG_member)
+ <af> DW_AT_name : (indirect string, offset: 0x1b9): _uid
+ <b3> DW_AT_type : <0x2bb>
+ <b7> DW_AT_decl_file : 1
+ <b8> DW_AT_decl_line : 55
+ <b9> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><bc>: Abbrev Number: 0
+ <3><bd>: Abbrev Number: 5 (DW_TAG_member)
+ <be> DW_AT_name : (indirect string, offset: 0x1dc): _timer
+ <c2> DW_AT_type : <0xcb>
+ <c6> DW_AT_decl_file : 1
+ <c7> DW_AT_decl_line : 63
+ <c8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><cb>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <cc> DW_AT_byte_size : 16
+ <cd> DW_AT_decl_file : 1
+ <ce> DW_AT_decl_line : 57
+ <4><cf>: Abbrev Number: 5 (DW_TAG_member)
+ <d0> DW_AT_name : (indirect string, offset: 0x1e3): _tid
+ <d4> DW_AT_type : <0x2cd>
+ <d8> DW_AT_decl_file : 1
+ <d9> DW_AT_decl_line : 58
+ <da> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><dd>: Abbrev Number: 5 (DW_TAG_member)
+ <de> DW_AT_name : (indirect string, offset: 0x1f9): _overrun
+ <e2> DW_AT_type : <0x295>
+ <e6> DW_AT_decl_file : 1
+ <e7> DW_AT_decl_line : 59
+ <e8> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><eb>: Abbrev Number: 5 (DW_TAG_member)
+ <ec> DW_AT_name : (indirect string, offset: 0x191): _pad
+ <f0> DW_AT_type : <0x2d8>
+ <f4> DW_AT_decl_file : 1
+ <f5> DW_AT_decl_line : 60
+ <f6> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><f9>: Abbrev Number: 5 (DW_TAG_member)
+ <fa> DW_AT_name : (indirect string, offset: 0x207): _sigval
+ <fe> DW_AT_type : <0x2ec>
+ <102> DW_AT_decl_file : 1
+ <103> DW_AT_decl_line : 61
+ <104> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><107>: Abbrev Number: 5 (DW_TAG_member)
+ <108> DW_AT_name : (indirect string, offset: 0x233): _sys_private
+ <10c> DW_AT_type : <0x295>
+ <110> DW_AT_decl_file : 1
+ <111> DW_AT_decl_line : 62
+ <112> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <4><115>: Abbrev Number: 0
+ <3><116>: Abbrev Number: 5 (DW_TAG_member)
+ <117> DW_AT_name : (indirect string, offset: 0x240): _rt
+ <11b> DW_AT_type : <0x124>
+ <11f> DW_AT_decl_file : 1
+ <120> DW_AT_decl_line : 68
+ <121> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><124>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <125> DW_AT_byte_size : 12
+ <126> DW_AT_decl_file : 1
+ <127> DW_AT_decl_line : 64
+ <4><128>: Abbrev Number: 5 (DW_TAG_member)
+ <129> DW_AT_name : (indirect string, offset: 0x1a5): _pid
+ <12d> DW_AT_type : <0x2b0>
+ <131> DW_AT_decl_file : 1
+ <132> DW_AT_decl_line : 65
+ <133> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><136>: Abbrev Number: 5 (DW_TAG_member)
+ <137> DW_AT_name : (indirect string, offset: 0x1b9): _uid
+ <13b> DW_AT_type : <0x2bb>
+ <13f> DW_AT_decl_file : 1
+ <140> DW_AT_decl_line : 66
+ <141> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><144>: Abbrev Number: 5 (DW_TAG_member)
+ <145> DW_AT_name : (indirect string, offset: 0x207): _sigval
+ <149> DW_AT_type : <0x2ec>
+ <14d> DW_AT_decl_file : 1
+ <14e> DW_AT_decl_line : 67
+ <14f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><152>: Abbrev Number: 0
+ <3><153>: Abbrev Number: 5 (DW_TAG_member)
+ <154> DW_AT_name : (indirect string, offset: 0x244): _sigchld
+ <158> DW_AT_type : <0x161>
+ <15c> DW_AT_decl_file : 1
+ <15d> DW_AT_decl_line : 75
+ <15e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><161>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <162> DW_AT_byte_size : 20
+ <163> DW_AT_decl_file : 1
+ <164> DW_AT_decl_line : 69
+ <4><165>: Abbrev Number: 5 (DW_TAG_member)
+ <166> DW_AT_name : (indirect string, offset: 0x1a5): _pid
+ <16a> DW_AT_type : <0x2b0>
+ <16e> DW_AT_decl_file : 1
+ <16f> DW_AT_decl_line : 70
+ <170> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><173>: Abbrev Number: 5 (DW_TAG_member)
+ <174> DW_AT_name : (indirect string, offset: 0x1b9): _uid
+ <178> DW_AT_type : <0x2bb>
+ <17c> DW_AT_decl_file : 1
+ <17d> DW_AT_decl_line : 71
+ <17e> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><181>: Abbrev Number: 5 (DW_TAG_member)
+ <182> DW_AT_name : (indirect string, offset: 0x24d): _status
+ <186> DW_AT_type : <0x295>
+ <18a> DW_AT_decl_file : 1
+ <18b> DW_AT_decl_line : 72
+ <18c> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><18f>: Abbrev Number: 5 (DW_TAG_member)
+ <190> DW_AT_name : (indirect string, offset: 0x255): _utime
+ <194> DW_AT_type : <0x31d>
+ <198> DW_AT_decl_file : 1
+ <199> DW_AT_decl_line : 73
+ <19a> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <4><19d>: Abbrev Number: 5 (DW_TAG_member)
+ <19e> DW_AT_name : (indirect string, offset: 0x286): _stime
+ <1a2> DW_AT_type : <0x31d>
+ <1a6> DW_AT_decl_file : 1
+ <1a7> DW_AT_decl_line : 74
+ <1a8> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <4><1ab>: Abbrev Number: 0
+ <3><1ac>: Abbrev Number: 5 (DW_TAG_member)
+ <1ad> DW_AT_name : (indirect string, offset: 0x28d): _sigfault
+ <1b1> DW_AT_type : <0x1ba>
+ <1b5> DW_AT_decl_file : 1
+ <1b6> DW_AT_decl_line : 89
+ <1b7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><1ba>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <1bb> DW_AT_byte_size : 16
+ <1bc> DW_AT_decl_file : 1
+ <1bd> DW_AT_decl_line : 76
+ <4><1be>: Abbrev Number: 5 (DW_TAG_member)
+ <1bf> DW_AT_name : (indirect string, offset: 0x297): _addr
+ <1c3> DW_AT_type : <0x31c>
+ <1c7> DW_AT_decl_file : 1
+ <1c8> DW_AT_decl_line : 77
+ <1c9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><1cc>: Abbrev Number: 5 (DW_TAG_member)
+ <1cd> DW_AT_name : (indirect string, offset: 0x29d): _addr_lsb
+ <1d1> DW_AT_type : <0x33a>
+ <1d5> DW_AT_decl_file : 1
+ <1d6> DW_AT_decl_line : 81
+ <1d7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><1da>: Abbrev Number: 8 (DW_TAG_member)
+ <1db> DW_AT_type : <0x1e4>
+ <1df> DW_AT_decl_file : 1
+ <1e0> DW_AT_decl_line : 82
+ <1e1> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><1e4>: Abbrev Number: 6 (DW_TAG_union_type)
+ <1e5> DW_AT_byte_size : 8
+ <1e6> DW_AT_decl_file : 1
+ <1e7> DW_AT_decl_line : 82
+ <5><1e8>: Abbrev Number: 5 (DW_TAG_member)
+ <1e9> DW_AT_name : (indirect string, offset: 0x2ad): _addr_bnd
+ <1ed> DW_AT_type : <0x1f6>
+ <1f1> DW_AT_decl_file : 1
+ <1f2> DW_AT_decl_line : 86
+ <1f3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <5><1f6>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <1f7> DW_AT_byte_size : 8
+ <1f8> DW_AT_decl_file : 1
+ <1f9> DW_AT_decl_line : 83
+ <6><1fa>: Abbrev Number: 5 (DW_TAG_member)
+ <1fb> DW_AT_name : (indirect string, offset: 0x2b7): _lower
+ <1ff> DW_AT_type : <0x31c>
+ <203> DW_AT_decl_file : 1
+ <204> DW_AT_decl_line : 84
+ <205> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <6><208>: Abbrev Number: 5 (DW_TAG_member)
+ <209> DW_AT_name : (indirect string, offset: 0x2be): _upper
+ <20d> DW_AT_type : <0x31c>
+ <211> DW_AT_decl_file : 1
+ <212> DW_AT_decl_line : 85
+ <213> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <6><216>: Abbrev Number: 0
+ <5><217>: Abbrev Number: 5 (DW_TAG_member)
+ <218> DW_AT_name : (indirect string, offset: 0x2c5): _pkey
+ <21c> DW_AT_type : <0x341>
+ <220> DW_AT_decl_file : 1
+ <221> DW_AT_decl_line : 87
+ <222> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <5><225>: Abbrev Number: 0
+ <4><226>: Abbrev Number: 0
+ <3><227>: Abbrev Number: 5 (DW_TAG_member)
+ <228> DW_AT_name : (indirect string, offset: 0x2d1): _sigpoll
+ <22c> DW_AT_type : <0x235>
+ <230> DW_AT_decl_file : 1
+ <231> DW_AT_decl_line : 93
+ <232> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><235>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <236> DW_AT_byte_size : 8
+ <237> DW_AT_decl_file : 1
+ <238> DW_AT_decl_line : 90
+ <4><239>: Abbrev Number: 5 (DW_TAG_member)
+ <23a> DW_AT_name : (indirect string, offset: 0x2da): _band
+ <23e> DW_AT_type : <0x333>
+ <242> DW_AT_decl_file : 1
+ <243> DW_AT_decl_line : 91
+ <244> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><247>: Abbrev Number: 5 (DW_TAG_member)
+ <248> DW_AT_name : (indirect string, offset: 0x2e0): _fd
+ <24c> DW_AT_type : <0x295>
+ <250> DW_AT_decl_file : 1
+ <251> DW_AT_decl_line : 92
+ <252> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><255>: Abbrev Number: 0
+ <3><256>: Abbrev Number: 5 (DW_TAG_member)
+ <257> DW_AT_name : (indirect string, offset: 0x2e4): _sigsys
+ <25b> DW_AT_type : <0x264>
+ <25f> DW_AT_decl_file : 1
+ <260> DW_AT_decl_line : 98
+ <261> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><264>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <265> DW_AT_byte_size : 12
+ <266> DW_AT_decl_file : 1
+ <267> DW_AT_decl_line : 94
+ <4><268>: Abbrev Number: 5 (DW_TAG_member)
+ <269> DW_AT_name : (indirect string, offset: 0x2ec): _call_addr
+ <26d> DW_AT_type : <0x31c>
+ <271> DW_AT_decl_file : 1
+ <272> DW_AT_decl_line : 95
+ <273> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><276>: Abbrev Number: 5 (DW_TAG_member)
+ <277> DW_AT_name : (indirect string, offset: 0x2f7): _syscall
+ <27b> DW_AT_type : <0x295>
+ <27f> DW_AT_decl_file : 1
+ <280> DW_AT_decl_line : 96
+ <281> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><284>: Abbrev Number: 5 (DW_TAG_member)
+ <285> DW_AT_name : (indirect string, offset: 0x300): _arch
+ <289> DW_AT_type : <0x2c6>
+ <28d> DW_AT_decl_file : 1
+ <28e> DW_AT_decl_line : 97
+ <28f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><292>: Abbrev Number: 0
+ <3><293>: Abbrev Number: 0
+ <2><294>: Abbrev Number: 0
+ <1><295>: Abbrev Number: 9 (DW_TAG_base_type)
+ <296> DW_AT_name : (indirect string, offset: 0x172): int
+ <29a> DW_AT_encoding : 5 (signed)
+ <29b> DW_AT_byte_size : 4
+ <1><29c>: Abbrev Number: 10 (DW_TAG_array_type)
+ <29d> DW_AT_type : <0x295>
+ <2><2a1>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <2a2> DW_AT_type : <0x2a9>
+ <2a6> DW_AT_lower_bound : 0
+ <2a7> DW_AT_count : 28
+ <2><2a8>: Abbrev Number: 0
+ <1><2a9>: Abbrev Number: 12 (DW_TAG_base_type)
+ <2aa> DW_AT_name : (indirect string, offset: 0x196): sizetype
+ <2ae> DW_AT_byte_size : 8
+ <2af> DW_AT_encoding : 7 (unsigned)
+ <1><2b0>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2b1> DW_AT_type : <0x295>
+ <2b5> DW_AT_name : (indirect string, offset: 0x1aa): __kernel_pid_t
+ <2b9> DW_AT_decl_file : 2
+ <2ba> DW_AT_decl_line : 33
+ <1><2bb>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2bc> DW_AT_type : <0x2c6>
+ <2c0> DW_AT_name : (indirect string, offset: 0x1cb): __kernel_uid32_t
+ <2c4> DW_AT_decl_file : 2
+ <2c5> DW_AT_decl_line : 49
+ <1><2c6>: Abbrev Number: 9 (DW_TAG_base_type)
+ <2c7> DW_AT_name : (indirect string, offset: 0x1be): unsigned int
+ <2cb> DW_AT_encoding : 7 (unsigned)
+ <2cc> DW_AT_byte_size : 4
+ <1><2cd>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2ce> DW_AT_type : <0x295>
+ <2d2> DW_AT_name : (indirect string, offset: 0x1e8): __kernel_timer_t
+ <2d6> DW_AT_decl_file : 2
+ <2d7> DW_AT_decl_line : 79
+ <1><2d8>: Abbrev Number: 10 (DW_TAG_array_type)
+ <2d9> DW_AT_type : <0x2e5>
+ <2><2dd>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <2de> DW_AT_type : <0x2a9>
+ <2e2> DW_AT_lower_bound : 0
+ <2e3> DW_AT_count : 0
+ <2><2e4>: Abbrev Number: 0
+ <1><2e5>: Abbrev Number: 9 (DW_TAG_base_type)
+ <2e6> DW_AT_name : (indirect string, offset: 0x202): char
+ <2ea> DW_AT_encoding : 8 (unsigned char)
+ <2eb> DW_AT_byte_size : 1
+ <1><2ec>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2ed> DW_AT_type : <0x2f7>
+ <2f1> DW_AT_name : (indirect string, offset: 0x22a): sigval_t
+ <2f5> DW_AT_decl_file : 1
+ <2f6> DW_AT_decl_line : 26
+ <1><2f7>: Abbrev Number: 13 (DW_TAG_union_type)
+ <2f8> DW_AT_name : (indirect string, offset: 0x223): sigval
+ <2fc> DW_AT_byte_size : 4
+ <2fd> DW_AT_decl_file : 1
+ <2fe> DW_AT_decl_line : 23
+ <2><2ff>: Abbrev Number: 5 (DW_TAG_member)
+ <300> DW_AT_name : (indirect string, offset: 0x20f): sival_int
+ <304> DW_AT_type : <0x295>
+ <308> DW_AT_decl_file : 1
+ <309> DW_AT_decl_line : 24
+ <30a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><30d>: Abbrev Number: 5 (DW_TAG_member)
+ <30e> DW_AT_name : (indirect string, offset: 0x219): sival_ptr
+ <312> DW_AT_type : <0x31c>
+ <316> DW_AT_decl_file : 1
+ <317> DW_AT_decl_line : 25
+ <318> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><31b>: Abbrev Number: 0
+ <1><31c>: Abbrev Number: 14 (DW_TAG_pointer_type)
+ <1><31d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <31e> DW_AT_type : <0x328>
+ <322> DW_AT_name : (indirect string, offset: 0x275): __kernel_clock_t
+ <326> DW_AT_decl_file : 2
+ <327> DW_AT_decl_line : 78
+ <1><328>: Abbrev Number: 3 (DW_TAG_typedef)
+ <329> DW_AT_type : <0x333>
+ <32d> DW_AT_name : (indirect string, offset: 0x265): __kernel_long_t
+ <331> DW_AT_decl_file : 2
+ <332> DW_AT_decl_line : 23
+ <1><333>: Abbrev Number: 9 (DW_TAG_base_type)
+ <334> DW_AT_name : (indirect string, offset: 0x25c): long int
+ <338> DW_AT_encoding : 5 (signed)
+ <339> DW_AT_byte_size : 4
+ <1><33a>: Abbrev Number: 9 (DW_TAG_base_type)
+ <33b> DW_AT_name : (indirect string, offset: 0x2a7): short
+ <33f> DW_AT_encoding : 5 (signed)
+ <340> DW_AT_byte_size : 2
+ <1><341>: Abbrev Number: 3 (DW_TAG_typedef)
+ <342> DW_AT_type : <0x2c6>
+ <346> DW_AT_name : (indirect string, offset: 0x2cb): __u32
+ <34a> DW_AT_decl_file : 3
+ <34b> DW_AT_decl_line : 28
+ <1><34c>: Abbrev Number: 0
diff --git a/mpers-m32/siginfo_t.d2 b/mpers-m32/siginfo_t.d2
index f1b6d09..4bf66db 100644
--- a/mpers-m32/siginfo_t.d2
+++ b/mpers-m32/siginfo_t.d2
@@ -1,452 +1,452 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 42
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x244): siginfo_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x30e): siginfo_t
DW_AT_decl_file : 1
DW_AT_decl_line : 100
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x23c): siginfo
+DW_AT_name : (indirect string, offset: 0x306): siginfo
DW_AT_byte_size : 124
DW_AT_decl_file : 1
DW_AT_decl_line : 47
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9f): si_signo
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x169): si_signo
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xac): si_errno
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x176): si_errno
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 49
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb5): si_code
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x17f): si_code
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 50
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbd): _sifields
-DW_AT_type : <0x7b>
+DW_AT_name : (indirect string, offset: 0x187): _sifields
+DW_AT_type : <0x7c>
DW_AT_decl_file : 1
DW_AT_decl_line : 99
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+<2><7c>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 112
DW_AT_decl_file : 1
DW_AT_decl_line : 51
-<3><7f>
+<3><80>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc7): _pad
-DW_AT_type : <0x29b>
+DW_AT_name : (indirect string, offset: 0x191): _pad
+DW_AT_type : <0x29c>
DW_AT_decl_file : 1
DW_AT_decl_line : 52
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><8d>
+<3><8e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd5): _kill
-DW_AT_type : <0x9b>
+DW_AT_name : (indirect string, offset: 0x19f): _kill
+DW_AT_type : <0x9c>
DW_AT_decl_file : 1
DW_AT_decl_line : 56
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><9b>
+<3><9c>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 53
-<4><9f>
+<4><a0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdb): _pid
-DW_AT_type : <0x2af>
+DW_AT_name : (indirect string, offset: 0x1a5): _pid
+DW_AT_type : <0x2b0>
DW_AT_decl_file : 1
DW_AT_decl_line : 54
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><ad>
+<4><ae>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xef): _uid
-DW_AT_type : <0x2ba>
+DW_AT_name : (indirect string, offset: 0x1b9): _uid
+DW_AT_type : <0x2bb>
DW_AT_decl_file : 1
DW_AT_decl_line : 55
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<3><bc>
+<3><bd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x112): _timer
-DW_AT_type : <0xca>
+DW_AT_name : (indirect string, offset: 0x1dc): _timer
+DW_AT_type : <0xcb>
DW_AT_decl_file : 1
DW_AT_decl_line : 63
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><ca>
+<3><cb>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
DW_AT_decl_line : 57
-<4><ce>
+<4><cf>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x119): _tid
-DW_AT_type : <0x2cc>
+DW_AT_name : (indirect string, offset: 0x1e3): _tid
+DW_AT_type : <0x2cd>
DW_AT_decl_file : 1
DW_AT_decl_line : 58
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><dc>
+<4><dd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12f): _overrun
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x1f9): _overrun
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 59
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><ea>
+<4><eb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc7): _pad
-DW_AT_type : <0x2d7>
+DW_AT_name : (indirect string, offset: 0x191): _pad
+DW_AT_type : <0x2d8>
DW_AT_decl_file : 1
DW_AT_decl_line : 60
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><f8>
+<4><f9>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13d): _sigval
-DW_AT_type : <0x2eb>
+DW_AT_name : (indirect string, offset: 0x207): _sigval
+DW_AT_type : <0x2ec>
DW_AT_decl_file : 1
DW_AT_decl_line : 61
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><106>
+<4><107>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x169): _sys_private
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x233): _sys_private
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 62
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<3><115>
+<3><116>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x176): _rt
-DW_AT_type : <0x123>
+DW_AT_name : (indirect string, offset: 0x240): _rt
+DW_AT_type : <0x124>
DW_AT_decl_file : 1
DW_AT_decl_line : 68
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><123>
+<3><124>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 12
DW_AT_decl_file : 1
DW_AT_decl_line : 64
-<4><127>
+<4><128>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdb): _pid
-DW_AT_type : <0x2af>
+DW_AT_name : (indirect string, offset: 0x1a5): _pid
+DW_AT_type : <0x2b0>
DW_AT_decl_file : 1
DW_AT_decl_line : 65
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><135>
+<4><136>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xef): _uid
-DW_AT_type : <0x2ba>
+DW_AT_name : (indirect string, offset: 0x1b9): _uid
+DW_AT_type : <0x2bb>
DW_AT_decl_file : 1
DW_AT_decl_line : 66
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><143>
+<4><144>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13d): _sigval
-DW_AT_type : <0x2eb>
+DW_AT_name : (indirect string, offset: 0x207): _sigval
+DW_AT_type : <0x2ec>
DW_AT_decl_file : 1
DW_AT_decl_line : 67
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<3><152>
+<3><153>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17a): _sigchld
-DW_AT_type : <0x160>
+DW_AT_name : (indirect string, offset: 0x244): _sigchld
+DW_AT_type : <0x161>
DW_AT_decl_file : 1
DW_AT_decl_line : 75
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><160>
+<3><161>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 20
DW_AT_decl_file : 1
DW_AT_decl_line : 69
-<4><164>
+<4><165>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdb): _pid
-DW_AT_type : <0x2af>
+DW_AT_name : (indirect string, offset: 0x1a5): _pid
+DW_AT_type : <0x2b0>
DW_AT_decl_file : 1
DW_AT_decl_line : 70
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><172>
+<4><173>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xef): _uid
-DW_AT_type : <0x2ba>
+DW_AT_name : (indirect string, offset: 0x1b9): _uid
+DW_AT_type : <0x2bb>
DW_AT_decl_file : 1
DW_AT_decl_line : 71
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><180>
+<4><181>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x183): _status
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x24d): _status
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 72
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><18e>
+<4><18f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x18b): _utime
-DW_AT_type : <0x31c>
+DW_AT_name : (indirect string, offset: 0x255): _utime
+DW_AT_type : <0x31d>
DW_AT_decl_file : 1
DW_AT_decl_line : 73
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<4><19c>
+<4><19d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1bc): _stime
-DW_AT_type : <0x31c>
+DW_AT_name : (indirect string, offset: 0x286): _stime
+DW_AT_type : <0x31d>
DW_AT_decl_file : 1
DW_AT_decl_line : 74
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<3><1ab>
+<3><1ac>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1c3): _sigfault
-DW_AT_type : <0x1b9>
+DW_AT_name : (indirect string, offset: 0x28d): _sigfault
+DW_AT_type : <0x1ba>
DW_AT_decl_file : 1
DW_AT_decl_line : 89
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><1b9>
+<3><1ba>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
DW_AT_decl_line : 76
-<4><1bd>
+<4><1be>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1cd): _addr
-DW_AT_type : <0x31b>
+DW_AT_name : (indirect string, offset: 0x297): _addr
+DW_AT_type : <0x31c>
DW_AT_decl_file : 1
DW_AT_decl_line : 77
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><1cb>
+<4><1cc>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d3): _addr_lsb
-DW_AT_type : <0x339>
+DW_AT_name : (indirect string, offset: 0x29d): _addr_lsb
+DW_AT_type : <0x33a>
DW_AT_decl_file : 1
DW_AT_decl_line : 81
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><1d9>
+<4><1da>
Abbrev Number: 8 (DW_TAG_member)
-DW_AT_type : <0x1e3>
+DW_AT_type : <0x1e4>
DW_AT_decl_file : 1
DW_AT_decl_line : 82
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><1e3>
+<4><1e4>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 82
-<5><1e7>
+<5><1e8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e3): _addr_bnd
-DW_AT_type : <0x1f5>
+DW_AT_name : (indirect string, offset: 0x2ad): _addr_bnd
+DW_AT_type : <0x1f6>
DW_AT_decl_file : 1
DW_AT_decl_line : 86
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<5><1f5>
+<5><1f6>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 83
-<6><1f9>
+<6><1fa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ed): _lower
-DW_AT_type : <0x31b>
+DW_AT_name : (indirect string, offset: 0x2b7): _lower
+DW_AT_type : <0x31c>
DW_AT_decl_file : 1
DW_AT_decl_line : 84
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<6><207>
+<6><208>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f4): _upper
-DW_AT_type : <0x31b>
+DW_AT_name : (indirect string, offset: 0x2be): _upper
+DW_AT_type : <0x31c>
DW_AT_decl_file : 1
DW_AT_decl_line : 85
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<5><216>
+<5><217>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1fb): _pkey
-DW_AT_type : <0x340>
+DW_AT_name : (indirect string, offset: 0x2c5): _pkey
+DW_AT_type : <0x341>
DW_AT_decl_file : 1
DW_AT_decl_line : 87
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><226>
+<3><227>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x207): _sigpoll
-DW_AT_type : <0x234>
+DW_AT_name : (indirect string, offset: 0x2d1): _sigpoll
+DW_AT_type : <0x235>
DW_AT_decl_file : 1
DW_AT_decl_line : 93
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><234>
+<3><235>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 90
-<4><238>
+<4><239>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x210): _band
-DW_AT_type : <0x332>
+DW_AT_name : (indirect string, offset: 0x2da): _band
+DW_AT_type : <0x333>
DW_AT_decl_file : 1
DW_AT_decl_line : 91
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><246>
+<4><247>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x216): _fd
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x2e0): _fd
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 92
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<3><255>
+<3><256>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x21a): _sigsys
-DW_AT_type : <0x263>
+DW_AT_name : (indirect string, offset: 0x2e4): _sigsys
+DW_AT_type : <0x264>
DW_AT_decl_file : 1
DW_AT_decl_line : 98
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><263>
+<3><264>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 12
DW_AT_decl_file : 1
DW_AT_decl_line : 94
-<4><267>
+<4><268>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x222): _call_addr
-DW_AT_type : <0x31b>
+DW_AT_name : (indirect string, offset: 0x2ec): _call_addr
+DW_AT_type : <0x31c>
DW_AT_decl_file : 1
DW_AT_decl_line : 95
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><275>
+<4><276>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x22d): _syscall
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x2f7): _syscall
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 96
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><283>
+<4><284>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x236): _arch
-DW_AT_type : <0x2c5>
+DW_AT_name : (indirect string, offset: 0x300): _arch
+DW_AT_type : <0x2c6>
DW_AT_decl_file : 1
DW_AT_decl_line : 97
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><294>
+<1><295>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa8): int
+DW_AT_name : (indirect string, offset: 0x172): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><29b>
+<1><29c>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x294>
-<2><2a0>
+DW_AT_type : <0x295>
+<2><2a1>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x2a8>
+DW_AT_type : <0x2a9>
DW_AT_lower_bound : 0
DW_AT_count : 28
-<1><2a8>
+<1><2a9>
Abbrev Number: 12 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xcc): sizetype
+DW_AT_name : (indirect string, offset: 0x196): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><2af>
+<1><2b0>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x294>
-DW_AT_name : (indirect string, offset: 0xe0): __kernel_pid_t
+DW_AT_type : <0x295>
+DW_AT_name : (indirect string, offset: 0x1aa): __kernel_pid_t
DW_AT_decl_file : 2
DW_AT_decl_line : 33
-<1><2ba>
+<1><2bb>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2c5>
-DW_AT_name : (indirect string, offset: 0x101): __kernel_uid32_t
+DW_AT_type : <0x2c6>
+DW_AT_name : (indirect string, offset: 0x1cb): __kernel_uid32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 49
-<1><2c5>
+<1><2c6>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf4): unsigned int
+DW_AT_name : (indirect string, offset: 0x1be): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><2cc>
+<1><2cd>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x294>
-DW_AT_name : (indirect string, offset: 0x11e): __kernel_timer_t
+DW_AT_type : <0x295>
+DW_AT_name : (indirect string, offset: 0x1e8): __kernel_timer_t
DW_AT_decl_file : 2
DW_AT_decl_line : 79
-<1><2d7>
+<1><2d8>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x2e4>
-<2><2dc>
+DW_AT_type : <0x2e5>
+<2><2dd>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x2a8>
+DW_AT_type : <0x2a9>
DW_AT_lower_bound : 0
DW_AT_count : 0
-<1><2e4>
+<1><2e5>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x138): char
+DW_AT_name : (indirect string, offset: 0x202): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><2eb>
+<1><2ec>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2f6>
-DW_AT_name : (indirect string, offset: 0x160): sigval_t
+DW_AT_type : <0x2f7>
+DW_AT_name : (indirect string, offset: 0x22a): sigval_t
DW_AT_decl_file : 1
DW_AT_decl_line : 26
-<1><2f6>
+<1><2f7>
Abbrev Number: 13 (DW_TAG_union_type)
-DW_AT_name : (indirect string, offset: 0x159): sigval
+DW_AT_name : (indirect string, offset: 0x223): sigval
DW_AT_byte_size : 4
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<2><2fe>
+<2><2ff>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x145): sival_int
-DW_AT_type : <0x294>
+DW_AT_name : (indirect string, offset: 0x20f): sival_int
+DW_AT_type : <0x295>
DW_AT_decl_file : 1
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><30c>
+<2><30d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14f): sival_ptr
-DW_AT_type : <0x31b>
+DW_AT_name : (indirect string, offset: 0x219): sival_ptr
+DW_AT_type : <0x31c>
DW_AT_decl_file : 1
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><31b>
-Abbrev Number: 14 (DW_TAG_pointer_type)
<1><31c>
+Abbrev Number: 14 (DW_TAG_pointer_type)
+<1><31d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x327>
-DW_AT_name : (indirect string, offset: 0x1ab): __kernel_clock_t
+DW_AT_type : <0x328>
+DW_AT_name : (indirect string, offset: 0x275): __kernel_clock_t
DW_AT_decl_file : 2
DW_AT_decl_line : 78
-<1><327>
+<1><328>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x332>
-DW_AT_name : (indirect string, offset: 0x19b): __kernel_long_t
+DW_AT_type : <0x333>
+DW_AT_name : (indirect string, offset: 0x265): __kernel_long_t
DW_AT_decl_file : 2
DW_AT_decl_line : 23
-<1><332>
+<1><333>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x192): long int
+DW_AT_name : (indirect string, offset: 0x25c): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><339>
+<1><33a>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1dd): short
+DW_AT_name : (indirect string, offset: 0x2a7): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><340>
+<1><341>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2c5>
-DW_AT_name : (indirect string, offset: 0x201): __u32
+DW_AT_type : <0x2c6>
+DW_AT_name : (indirect string, offset: 0x2cb): __u32
DW_AT_decl_file : 3
DW_AT_decl_line : 28
diff --git a/mpers-m32/stack_t.d1 b/mpers-m32/stack_t.d1
index 685aa00..e1fba23 100644
--- a/mpers-m32/stack_t.d1
+++ b/mpers-m32/stack_t.d1
@@ -1,65 +1,66 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x85 (32-bit)
+ Length: 0x86 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/stack_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/stack_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x51): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8c): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 39
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xd8): stack_t
- <39> DW_AT_decl_file : 1
- <3a> DW_AT_decl_line : 97
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xcc): sigaltstack
- <40> DW_AT_byte_size : 12
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 93
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9d): ss_sp
- <48> DW_AT_type : <0x6e>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 94
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xa3): ss_flags
- <56> DW_AT_type : <0x6f>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 95
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xb0): ss_size
- <64> DW_AT_type : <0x76>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 96
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 0
- <1><6e>: Abbrev Number: 6 (DW_TAG_pointer_type)
- <1><6f>: Abbrev Number: 7 (DW_TAG_base_type)
- <70> DW_AT_name : (indirect string, offset: 0xac): int
- <74> DW_AT_encoding : 5 (signed)
- <75> DW_AT_byte_size : 4
- <1><76>: Abbrev Number: 3 (DW_TAG_typedef)
- <77> DW_AT_type : <0x81>
- <7b> DW_AT_name : (indirect string, offset: 0xc5): size_t
- <7f> DW_AT_decl_file : 2
- <80> DW_AT_decl_line : 62
- <1><81>: Abbrev Number: 7 (DW_TAG_base_type)
- <82> DW_AT_name : (indirect string, offset: 0xb8): unsigned int
- <86> DW_AT_encoding : 7 (unsigned)
- <87> DW_AT_byte_size : 4
- <1><88>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11b): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x156): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 39
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1a2): stack_t
+ <3a> DW_AT_decl_file : 1
+ <3b> DW_AT_decl_line : 97
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x196): sigaltstack
+ <41> DW_AT_byte_size : 12
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 93
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x167): ss_sp
+ <49> DW_AT_type : <0x6f>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 94
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x16d): ss_flags
+ <57> DW_AT_type : <0x70>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 95
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x17a): ss_size
+ <65> DW_AT_type : <0x77>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 96
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 0
+ <1><6f>: Abbrev Number: 6 (DW_TAG_pointer_type)
+ <1><70>: Abbrev Number: 7 (DW_TAG_base_type)
+ <71> DW_AT_name : (indirect string, offset: 0x176): int
+ <75> DW_AT_encoding : 5 (signed)
+ <76> DW_AT_byte_size : 4
+ <1><77>: Abbrev Number: 3 (DW_TAG_typedef)
+ <78> DW_AT_type : <0x82>
+ <7c> DW_AT_name : (indirect string, offset: 0x18f): size_t
+ <80> DW_AT_decl_file : 2
+ <81> DW_AT_decl_line : 62
+ <1><82>: Abbrev Number: 7 (DW_TAG_base_type)
+ <83> DW_AT_name : (indirect string, offset: 0x182): unsigned int
+ <87> DW_AT_encoding : 7 (unsigned)
+ <88> DW_AT_byte_size : 4
+ <1><89>: Abbrev Number: 0
diff --git a/mpers-m32/stack_t.d2 b/mpers-m32/stack_t.d2
index 0890371..d9598d3 100644
--- a/mpers-m32/stack_t.d2
+++ b/mpers-m32/stack_t.d2
@@ -1,59 +1,59 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8c): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x156): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 39
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xd8): stack_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1a2): stack_t
DW_AT_decl_file : 1
DW_AT_decl_line : 97
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xcc): sigaltstack
+DW_AT_name : (indirect string, offset: 0x196): sigaltstack
DW_AT_byte_size : 12
DW_AT_decl_file : 1
DW_AT_decl_line : 93
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9d): ss_sp
-DW_AT_type : <0x6e>
+DW_AT_name : (indirect string, offset: 0x167): ss_sp
+DW_AT_type : <0x6f>
DW_AT_decl_file : 1
DW_AT_decl_line : 94
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa3): ss_flags
-DW_AT_type : <0x6f>
+DW_AT_name : (indirect string, offset: 0x16d): ss_flags
+DW_AT_type : <0x70>
DW_AT_decl_file : 1
DW_AT_decl_line : 95
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb0): ss_size
-DW_AT_type : <0x76>
+DW_AT_name : (indirect string, offset: 0x17a): ss_size
+DW_AT_type : <0x77>
DW_AT_decl_file : 1
DW_AT_decl_line : 96
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><6e>
-Abbrev Number: 6 (DW_TAG_pointer_type)
<1><6f>
+Abbrev Number: 6 (DW_TAG_pointer_type)
+<1><70>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xac): int
+DW_AT_name : (indirect string, offset: 0x176): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><76>
+<1><77>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x81>
-DW_AT_name : (indirect string, offset: 0xc5): size_t
+DW_AT_type : <0x82>
+DW_AT_name : (indirect string, offset: 0x18f): size_t
DW_AT_decl_file : 2
DW_AT_decl_line : 62
-<1><81>
+<1><82>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb8): unsigned int
+DW_AT_name : (indirect string, offset: 0x182): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
diff --git a/mpers-m32/strace_aio_sigset.c b/mpers-m32/strace_aio_sigset.c
new file mode 100644
index 0000000..6537f4c
--- /dev/null
+++ b/mpers-m32/strace_aio_sigset.c
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+
+
+typedef struct {
+ sigset_t *sigmask;
+ size_t sigsetsize;
+} strace_aio_sigset;
+
+strace_aio_sigset mpers_target_var;
diff --git a/mpers-m32/strace_aio_sigset.d1 b/mpers-m32/strace_aio_sigset.d1
new file mode 100644
index 0000000..d4d229f
--- /dev/null
+++ b/mpers-m32/strace_aio_sigset.d1
@@ -0,0 +1,87 @@
+Contents of the .debug_info section:
+
+ Compilation Unit @ offset 0x0:
+ Length: 0xaa (32-bit)
+ Version: 2
+ Abbrev Offset: 0x0
+ Pointer Size: 4
+ <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
+ <10> DW_AT_language : 12 (ANSI C99)
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/strace_aio_sigset.c
+ <16> DW_AT_stmt_list : 0x0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x125): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x160): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 36
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1c0): strace_aio_sigset
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 34
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_byte_size : 8
+ <3e> DW_AT_decl_file : 2
+ <3f> DW_AT_decl_line : 31
+ <2><40>: Abbrev Number: 5 (DW_TAG_member)
+ <41> DW_AT_name : (indirect string, offset: 0x171): sigmask
+ <45> DW_AT_type : <0x5d>
+ <49> DW_AT_decl_file : 2
+ <4a> DW_AT_decl_line : 32
+ <4b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4e>: Abbrev Number: 5 (DW_TAG_member)
+ <4f> DW_AT_name : (indirect string, offset: 0x1a1): sigsetsize
+ <53> DW_AT_type : <0x9b>
+ <57> DW_AT_decl_file : 2
+ <58> DW_AT_decl_line : 33
+ <59> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><5c>: Abbrev Number: 0
+ <1><5d>: Abbrev Number: 6 (DW_TAG_pointer_type)
+ <5e> DW_AT_type : <0x62>
+ <1><62>: Abbrev Number: 3 (DW_TAG_typedef)
+ <63> DW_AT_type : <0x6d>
+ <67> DW_AT_name : (indirect string, offset: 0x198): sigset_t
+ <6b> DW_AT_decl_file : 1
+ <6c> DW_AT_decl_line : 79
+ <1><6d>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <6e> DW_AT_byte_size : 4
+ <6f> DW_AT_decl_file : 1
+ <70> DW_AT_decl_line : 77
+ <2><71>: Abbrev Number: 5 (DW_TAG_member)
+ <72> DW_AT_name : (indirect string, offset: 0x179): sig
+ <76> DW_AT_type : <0x80>
+ <7a> DW_AT_decl_file : 1
+ <7b> DW_AT_decl_line : 78
+ <7c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><7f>: Abbrev Number: 0
+ <1><80>: Abbrev Number: 7 (DW_TAG_array_type)
+ <81> DW_AT_type : <0x8d>
+ <2><85>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <86> DW_AT_type : <0x94>
+ <8a> DW_AT_lower_bound : 0
+ <8b> DW_AT_count : 1
+ <2><8c>: Abbrev Number: 0
+ <1><8d>: Abbrev Number: 9 (DW_TAG_base_type)
+ <8e> DW_AT_name : (indirect string, offset: 0x17d): long unsigned int
+ <92> DW_AT_encoding : 7 (unsigned)
+ <93> DW_AT_byte_size : 4
+ <1><94>: Abbrev Number: 10 (DW_TAG_base_type)
+ <95> DW_AT_name : (indirect string, offset: 0x18f): sizetype
+ <99> DW_AT_byte_size : 8
+ <9a> DW_AT_encoding : 7 (unsigned)
+ <1><9b>: Abbrev Number: 3 (DW_TAG_typedef)
+ <9c> DW_AT_type : <0xa6>
+ <a0> DW_AT_name : (indirect string, offset: 0x1b9): size_t
+ <a4> DW_AT_decl_file : 3
+ <a5> DW_AT_decl_line : 62
+ <1><a6>: Abbrev Number: 9 (DW_TAG_base_type)
+ <a7> DW_AT_name : (indirect string, offset: 0x1ac): unsigned int
+ <ab> DW_AT_encoding : 7 (unsigned)
+ <ac> DW_AT_byte_size : 4
+ <1><ad>: Abbrev Number: 0
+
diff --git a/mpers-m32/strace_aio_sigset.d2 b/mpers-m32/strace_aio_sigset.d2
new file mode 100644
index 0000000..96e7f58
--- /dev/null
+++ b/mpers-m32/strace_aio_sigset.d2
@@ -0,0 +1,83 @@
+<1><1f>
+Abbrev Number: 2 (DW_TAG_variable)
+DW_AT_name : (indirect string, offset: 0x160): mpers_target_var
+DW_AT_type : <0x31>
+DW_AT_external : 1
+DW_AT_decl_file : 2
+DW_AT_decl_line : 36
+DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+<1><31>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1c0): strace_aio_sigset
+DW_AT_decl_file : 2
+DW_AT_decl_line : 34
+<1><3c>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_byte_size : 8
+DW_AT_decl_file : 2
+DW_AT_decl_line : 31
+<2><40>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x171): sigmask
+DW_AT_type : <0x5d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 32
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><4e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1a1): sigsetsize
+DW_AT_type : <0x9b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 33
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<1><5d>
+Abbrev Number: 6 (DW_TAG_pointer_type)
+DW_AT_type : <0x62>
+<1><62>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x6d>
+DW_AT_name : (indirect string, offset: 0x198): sigset_t
+DW_AT_decl_file : 1
+DW_AT_decl_line : 79
+<1><6d>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_byte_size : 4
+DW_AT_decl_file : 1
+DW_AT_decl_line : 77
+<2><71>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x179): sig
+DW_AT_type : <0x80>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 78
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><80>
+Abbrev Number: 7 (DW_TAG_array_type)
+DW_AT_type : <0x8d>
+<2><85>
+Abbrev Number: 8 (DW_TAG_subrange_type)
+DW_AT_type : <0x94>
+DW_AT_lower_bound : 0
+DW_AT_count : 1
+<1><8d>
+Abbrev Number: 9 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x17d): long unsigned int
+DW_AT_encoding : 7 (unsigned)
+DW_AT_byte_size : 4
+<1><94>
+Abbrev Number: 10 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x18f): sizetype
+DW_AT_byte_size : 8
+DW_AT_encoding : 7 (unsigned)
+<1><9b>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x1b9): size_t
+DW_AT_decl_file : 3
+DW_AT_decl_line : 62
+<1><a6>
+Abbrev Number: 9 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x1ac): unsigned int
+DW_AT_encoding : 7 (unsigned)
+DW_AT_byte_size : 4
diff --git a/mpers-m32/strace_aio_sigset.h b/mpers-m32/strace_aio_sigset.h
new file mode 100644
index 0000000..30c1f1e
--- /dev/null
+++ b/mpers-m32/strace_aio_sigset.h
@@ -0,0 +1,11 @@
+#include <stdint.h>
+#ifndef mpers_ptr_t_is_uint32_t
+typedef uint32_t mpers_ptr_t;
+#define mpers_ptr_t_is_uint32_t
+#endif
+typedef
+struct {
+mpers_ptr_t sigmask;
+uint32_t sigsetsize;
+} ATTRIBUTE_PACKED m32_strace_aio_sigset;
+#define MPERS_m32_strace_aio_sigset m32_strace_aio_sigset
diff --git a/mpers-m32/struct_blk_user_trace_setup.d1 b/mpers-m32/struct_blk_user_trace_setup.d1
index 2612d98..2da14e2 100644
--- a/mpers-m32/struct_blk_user_trace_setup.d1
+++ b/mpers-m32/struct_blk_user_trace_setup.d1
@@ -1,132 +1,133 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x115 (32-bit)
+ Length: 0x116 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_blk_user_trace_setup.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_blk_user_trace_setup.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x65): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0xa0): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 1
- <29> DW_AT_decl_line : 65
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x177): struct_blk_user_trace_setup
- <39> DW_AT_decl_file : 1
- <3a> DW_AT_decl_line : 63
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x162): blk_user_trace_setup
- <40> DW_AT_byte_size : 72
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 55
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xb1): name
- <48> DW_AT_type : <0xa6>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 56
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xc4): act_mask
- <56> DW_AT_type : <0xc1>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 57
- <5c> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xf0): buf_size
- <64> DW_AT_type : <0xde>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 58
- <6a> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0x11a): buf_nr
- <72> DW_AT_type : <0xde>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 59
- <78> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0x121): start_lba
- <80> DW_AT_type : <0xfb>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 60
- <86> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x156): end_lba
- <8e> DW_AT_type : <0xfb>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 61
- <94> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x15e): pid
- <9c> DW_AT_type : <0xde>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 62
- <a2> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><a5>: Abbrev Number: 0
- <1><a6>: Abbrev Number: 6 (DW_TAG_array_type)
- <a7> DW_AT_type : <0xb3>
- <2><ab>: Abbrev Number: 7 (DW_TAG_subrange_type)
- <ac> DW_AT_type : <0xba>
- <b0> DW_AT_lower_bound : 0
- <b1> DW_AT_count : 32
- <2><b2>: Abbrev Number: 0
- <1><b3>: Abbrev Number: 8 (DW_TAG_base_type)
- <b4> DW_AT_name : (indirect string, offset: 0xb6): char
- <b8> DW_AT_encoding : 8 (unsigned char)
- <b9> DW_AT_byte_size : 1
- <1><ba>: Abbrev Number: 9 (DW_TAG_base_type)
- <bb> DW_AT_name : (indirect string, offset: 0xbb): sizetype
- <bf> DW_AT_byte_size : 8
- <c0> DW_AT_encoding : 7 (unsigned)
- <1><c1>: Abbrev Number: 3 (DW_TAG_typedef)
- <c2> DW_AT_type : <0xcc>
- <c6> DW_AT_name : (indirect string, offset: 0xe7): uint16_t
- <ca> DW_AT_decl_file : 2
- <cb> DW_AT_decl_line : 62
- <1><cc>: Abbrev Number: 3 (DW_TAG_typedef)
- <cd> DW_AT_type : <0xd7>
- <d1> DW_AT_name : (indirect string, offset: 0xdc): __uint16_t
- <d5> DW_AT_decl_file : 2
- <d6> DW_AT_decl_line : 39
- <1><d7>: Abbrev Number: 8 (DW_TAG_base_type)
- <d8> DW_AT_name : (indirect string, offset: 0xcd): unsigned short
- <dc> DW_AT_encoding : 7 (unsigned)
- <dd> DW_AT_byte_size : 2
- <1><de>: Abbrev Number: 3 (DW_TAG_typedef)
- <df> DW_AT_type : <0xe9>
- <e3> DW_AT_name : (indirect string, offset: 0x111): uint32_t
- <e7> DW_AT_decl_file : 2
- <e8> DW_AT_decl_line : 65
- <1><e9>: Abbrev Number: 3 (DW_TAG_typedef)
- <ea> DW_AT_type : <0xf4>
- <ee> DW_AT_name : (indirect string, offset: 0x106): __uint32_t
- <f2> DW_AT_decl_file : 2
- <f3> DW_AT_decl_line : 41
- <1><f4>: Abbrev Number: 8 (DW_TAG_base_type)
- <f5> DW_AT_name : (indirect string, offset: 0xf9): unsigned int
- <f9> DW_AT_encoding : 7 (unsigned)
- <fa> DW_AT_byte_size : 4
- <1><fb>: Abbrev Number: 3 (DW_TAG_typedef)
- <fc> DW_AT_type : <0x106>
- <100> DW_AT_name : (indirect string, offset: 0x14d): uint64_t
- <104> DW_AT_decl_file : 2
- <105> DW_AT_decl_line : 68
- <1><106>: Abbrev Number: 3 (DW_TAG_typedef)
- <107> DW_AT_type : <0x111>
- <10b> DW_AT_name : (indirect string, offset: 0x142): __uint64_t
- <10f> DW_AT_decl_file : 2
- <110> DW_AT_decl_line : 47
- <1><111>: Abbrev Number: 8 (DW_TAG_base_type)
- <112> DW_AT_name : (indirect string, offset: 0x12b): long long unsigned int
- <116> DW_AT_encoding : 7 (unsigned)
- <117> DW_AT_byte_size : 8
- <1><118>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12f): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x16a): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 1
+ <2a> DW_AT_decl_line : 65
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x241): struct_blk_user_trace_setup
+ <3a> DW_AT_decl_file : 1
+ <3b> DW_AT_decl_line : 63
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x22c): blk_user_trace_setup
+ <41> DW_AT_byte_size : 72
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 55
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x17b): name
+ <49> DW_AT_type : <0xa7>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 56
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x18e): act_mask
+ <57> DW_AT_type : <0xc2>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 57
+ <5d> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x1ba): buf_size
+ <65> DW_AT_type : <0xdf>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 58
+ <6b> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1e4): buf_nr
+ <73> DW_AT_type : <0xdf>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 59
+ <79> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1eb): start_lba
+ <81> DW_AT_type : <0xfc>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 60
+ <87> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x220): end_lba
+ <8f> DW_AT_type : <0xfc>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 61
+ <95> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x228): pid
+ <9d> DW_AT_type : <0xdf>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 62
+ <a3> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><a6>: Abbrev Number: 0
+ <1><a7>: Abbrev Number: 6 (DW_TAG_array_type)
+ <a8> DW_AT_type : <0xb4>
+ <2><ac>: Abbrev Number: 7 (DW_TAG_subrange_type)
+ <ad> DW_AT_type : <0xbb>
+ <b1> DW_AT_lower_bound : 0
+ <b2> DW_AT_count : 32
+ <2><b3>: Abbrev Number: 0
+ <1><b4>: Abbrev Number: 8 (DW_TAG_base_type)
+ <b5> DW_AT_name : (indirect string, offset: 0x180): char
+ <b9> DW_AT_encoding : 8 (unsigned char)
+ <ba> DW_AT_byte_size : 1
+ <1><bb>: Abbrev Number: 9 (DW_TAG_base_type)
+ <bc> DW_AT_name : (indirect string, offset: 0x185): sizetype
+ <c0> DW_AT_byte_size : 8
+ <c1> DW_AT_encoding : 7 (unsigned)
+ <1><c2>: Abbrev Number: 3 (DW_TAG_typedef)
+ <c3> DW_AT_type : <0xcd>
+ <c7> DW_AT_name : (indirect string, offset: 0x1b1): uint16_t
+ <cb> DW_AT_decl_file : 2
+ <cc> DW_AT_decl_line : 62
+ <1><cd>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ce> DW_AT_type : <0xd8>
+ <d2> DW_AT_name : (indirect string, offset: 0x1a6): __uint16_t
+ <d6> DW_AT_decl_file : 2
+ <d7> DW_AT_decl_line : 39
+ <1><d8>: Abbrev Number: 8 (DW_TAG_base_type)
+ <d9> DW_AT_name : (indirect string, offset: 0x197): unsigned short
+ <dd> DW_AT_encoding : 7 (unsigned)
+ <de> DW_AT_byte_size : 2
+ <1><df>: Abbrev Number: 3 (DW_TAG_typedef)
+ <e0> DW_AT_type : <0xea>
+ <e4> DW_AT_name : (indirect string, offset: 0x1db): uint32_t
+ <e8> DW_AT_decl_file : 2
+ <e9> DW_AT_decl_line : 65
+ <1><ea>: Abbrev Number: 3 (DW_TAG_typedef)
+ <eb> DW_AT_type : <0xf5>
+ <ef> DW_AT_name : (indirect string, offset: 0x1d0): __uint32_t
+ <f3> DW_AT_decl_file : 2
+ <f4> DW_AT_decl_line : 41
+ <1><f5>: Abbrev Number: 8 (DW_TAG_base_type)
+ <f6> DW_AT_name : (indirect string, offset: 0x1c3): unsigned int
+ <fa> DW_AT_encoding : 7 (unsigned)
+ <fb> DW_AT_byte_size : 4
+ <1><fc>: Abbrev Number: 3 (DW_TAG_typedef)
+ <fd> DW_AT_type : <0x107>
+ <101> DW_AT_name : (indirect string, offset: 0x217): uint64_t
+ <105> DW_AT_decl_file : 2
+ <106> DW_AT_decl_line : 68
+ <1><107>: Abbrev Number: 3 (DW_TAG_typedef)
+ <108> DW_AT_type : <0x112>
+ <10c> DW_AT_name : (indirect string, offset: 0x20c): __uint64_t
+ <110> DW_AT_decl_file : 2
+ <111> DW_AT_decl_line : 47
+ <1><112>: Abbrev Number: 8 (DW_TAG_base_type)
+ <113> DW_AT_name : (indirect string, offset: 0x1f5): long long unsigned int
+ <117> DW_AT_encoding : 7 (unsigned)
+ <118> DW_AT_byte_size : 8
+ <1><119>: Abbrev Number: 0
diff --git a/mpers-m32/struct_blk_user_trace_setup.d2 b/mpers-m32/struct_blk_user_trace_setup.d2
index 72a56f1..5486514 100644
--- a/mpers-m32/struct_blk_user_trace_setup.d2
+++ b/mpers-m32/struct_blk_user_trace_setup.d2
@@ -1,138 +1,138 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0xa0): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x16a): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 1
DW_AT_decl_line : 65
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x177): struct_blk_user_trace_setup
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x241): struct_blk_user_trace_setup
DW_AT_decl_file : 1
DW_AT_decl_line : 63
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x162): blk_user_trace_setup
+DW_AT_name : (indirect string, offset: 0x22c): blk_user_trace_setup
DW_AT_byte_size : 72
DW_AT_decl_file : 1
DW_AT_decl_line : 55
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb1): name
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x17b): name
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 56
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc4): act_mask
-DW_AT_type : <0xc1>
+DW_AT_name : (indirect string, offset: 0x18e): act_mask
+DW_AT_type : <0xc2>
DW_AT_decl_file : 1
DW_AT_decl_line : 57
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): buf_size
-DW_AT_type : <0xde>
+DW_AT_name : (indirect string, offset: 0x1ba): buf_size
+DW_AT_type : <0xdf>
DW_AT_decl_file : 1
DW_AT_decl_line : 58
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11a): buf_nr
-DW_AT_type : <0xde>
+DW_AT_name : (indirect string, offset: 0x1e4): buf_nr
+DW_AT_type : <0xdf>
DW_AT_decl_file : 1
DW_AT_decl_line : 59
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x121): start_lba
-DW_AT_type : <0xfb>
+DW_AT_name : (indirect string, offset: 0x1eb): start_lba
+DW_AT_type : <0xfc>
DW_AT_decl_file : 1
DW_AT_decl_line : 60
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x156): end_lba
-DW_AT_type : <0xfb>
+DW_AT_name : (indirect string, offset: 0x220): end_lba
+DW_AT_type : <0xfc>
DW_AT_decl_file : 1
DW_AT_decl_line : 61
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): pid
-DW_AT_type : <0xde>
+DW_AT_name : (indirect string, offset: 0x228): pid
+DW_AT_type : <0xdf>
DW_AT_decl_file : 1
DW_AT_decl_line : 62
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<1><a6>
+<1><a7>
Abbrev Number: 6 (DW_TAG_array_type)
-DW_AT_type : <0xb3>
-<2><ab>
+DW_AT_type : <0xb4>
+<2><ac>
Abbrev Number: 7 (DW_TAG_subrange_type)
-DW_AT_type : <0xba>
+DW_AT_type : <0xbb>
DW_AT_lower_bound : 0
DW_AT_count : 32
-<1><b3>
+<1><b4>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb6): char
+DW_AT_name : (indirect string, offset: 0x180): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><ba>
+<1><bb>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xbb): sizetype
+DW_AT_name : (indirect string, offset: 0x185): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><c1>
+<1><c2>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xcc>
-DW_AT_name : (indirect string, offset: 0xe7): uint16_t
+DW_AT_type : <0xcd>
+DW_AT_name : (indirect string, offset: 0x1b1): uint16_t
DW_AT_decl_file : 2
DW_AT_decl_line : 62
-<1><cc>
+<1><cd>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xd7>
-DW_AT_name : (indirect string, offset: 0xdc): __uint16_t
+DW_AT_type : <0xd8>
+DW_AT_name : (indirect string, offset: 0x1a6): __uint16_t
DW_AT_decl_file : 2
DW_AT_decl_line : 39
-<1><d7>
+<1><d8>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xcd): unsigned short
+DW_AT_name : (indirect string, offset: 0x197): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><de>
+<1><df>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xe9>
-DW_AT_name : (indirect string, offset: 0x111): uint32_t
+DW_AT_type : <0xea>
+DW_AT_name : (indirect string, offset: 0x1db): uint32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 65
-<1><e9>
+<1><ea>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xf4>
-DW_AT_name : (indirect string, offset: 0x106): __uint32_t
+DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1d0): __uint32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 41
-<1><f4>
+<1><f5>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf9): unsigned int
+DW_AT_name : (indirect string, offset: 0x1c3): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><fb>
+<1><fc>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x106>
-DW_AT_name : (indirect string, offset: 0x14d): uint64_t
+DW_AT_type : <0x107>
+DW_AT_name : (indirect string, offset: 0x217): uint64_t
DW_AT_decl_file : 2
DW_AT_decl_line : 68
-<1><106>
+<1><107>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x111>
-DW_AT_name : (indirect string, offset: 0x142): __uint64_t
+DW_AT_type : <0x112>
+DW_AT_name : (indirect string, offset: 0x20c): __uint64_t
DW_AT_decl_file : 2
DW_AT_decl_line : 47
-<1><111>
+<1><112>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x12b): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x1f5): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
diff --git a/mpers-m32/struct_blkpg_ioctl_arg.d1 b/mpers-m32/struct_blkpg_ioctl_arg.d1
index 08c96a7..e733c61 100644
--- a/mpers-m32/struct_blkpg_ioctl_arg.d1
+++ b/mpers-m32/struct_blkpg_ioctl_arg.d1
@@ -1,61 +1,62 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x7d (32-bit)
+ Length: 0x7e (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_blkpg_ioctl_arg.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_blkpg_ioctl_arg.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x60): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x9b): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 1
- <29> DW_AT_decl_line : 65
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xc6): struct_blkpg_ioctl_arg
- <39> DW_AT_decl_file : 1
- <3a> DW_AT_decl_line : 41
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_byte_size : 16
- <3d> DW_AT_decl_file : 1
- <3e> DW_AT_decl_line : 36
- <2><3f>: Abbrev Number: 5 (DW_TAG_member)
- <40> DW_AT_name : (indirect string, offset: 0xac): op
- <44> DW_AT_type : <0x78>
- <48> DW_AT_decl_file : 1
- <49> DW_AT_decl_line : 37
- <4a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4d>: Abbrev Number: 5 (DW_TAG_member)
- <4e> DW_AT_name : (indirect string, offset: 0xb3): flags
- <52> DW_AT_type : <0x78>
- <56> DW_AT_decl_file : 1
- <57> DW_AT_decl_line : 38
- <58> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5b>: Abbrev Number: 5 (DW_TAG_member)
- <5c> DW_AT_name : (indirect string, offset: 0xb9): datalen
- <60> DW_AT_type : <0x78>
- <64> DW_AT_decl_file : 1
- <65> DW_AT_decl_line : 39
- <66> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><69>: Abbrev Number: 5 (DW_TAG_member)
- <6a> DW_AT_name : (indirect string, offset: 0xc1): data
- <6e> DW_AT_type : <0x7f>
- <72> DW_AT_decl_file : 1
- <73> DW_AT_decl_line : 40
- <74> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><77>: Abbrev Number: 0
- <1><78>: Abbrev Number: 6 (DW_TAG_base_type)
- <79> DW_AT_name : (indirect string, offset: 0xaf): int
- <7d> DW_AT_encoding : 5 (signed)
- <7e> DW_AT_byte_size : 4
- <1><7f>: Abbrev Number: 7 (DW_TAG_pointer_type)
- <1><80>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12a): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x165): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 1
+ <2a> DW_AT_decl_line : 65
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x190): struct_blkpg_ioctl_arg
+ <3a> DW_AT_decl_file : 1
+ <3b> DW_AT_decl_line : 41
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_byte_size : 16
+ <3e> DW_AT_decl_file : 1
+ <3f> DW_AT_decl_line : 36
+ <2><40>: Abbrev Number: 5 (DW_TAG_member)
+ <41> DW_AT_name : (indirect string, offset: 0x176): op
+ <45> DW_AT_type : <0x79>
+ <49> DW_AT_decl_file : 1
+ <4a> DW_AT_decl_line : 37
+ <4b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4e>: Abbrev Number: 5 (DW_TAG_member)
+ <4f> DW_AT_name : (indirect string, offset: 0x17d): flags
+ <53> DW_AT_type : <0x79>
+ <57> DW_AT_decl_file : 1
+ <58> DW_AT_decl_line : 38
+ <59> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><5c>: Abbrev Number: 5 (DW_TAG_member)
+ <5d> DW_AT_name : (indirect string, offset: 0x183): datalen
+ <61> DW_AT_type : <0x79>
+ <65> DW_AT_decl_file : 1
+ <66> DW_AT_decl_line : 39
+ <67> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6a>: Abbrev Number: 5 (DW_TAG_member)
+ <6b> DW_AT_name : (indirect string, offset: 0x18b): data
+ <6f> DW_AT_type : <0x80>
+ <73> DW_AT_decl_file : 1
+ <74> DW_AT_decl_line : 40
+ <75> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><78>: Abbrev Number: 0
+ <1><79>: Abbrev Number: 6 (DW_TAG_base_type)
+ <7a> DW_AT_name : (indirect string, offset: 0x179): int
+ <7e> DW_AT_encoding : 5 (signed)
+ <7f> DW_AT_byte_size : 4
+ <1><80>: Abbrev Number: 7 (DW_TAG_pointer_type)
+ <1><81>: Abbrev Number: 0
diff --git a/mpers-m32/struct_blkpg_ioctl_arg.d2 b/mpers-m32/struct_blkpg_ioctl_arg.d2
index 78211cf..8063ebe 100644
--- a/mpers-m32/struct_blkpg_ioctl_arg.d2
+++ b/mpers-m32/struct_blkpg_ioctl_arg.d2
@@ -1,54 +1,54 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x9b): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x165): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 1
DW_AT_decl_line : 65
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xc6): struct_blkpg_ioctl_arg
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x190): struct_blkpg_ioctl_arg
DW_AT_decl_file : 1
DW_AT_decl_line : 41
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
DW_AT_decl_line : 36
-<2><3f>
+<2><40>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xac): op
-DW_AT_type : <0x78>
+DW_AT_name : (indirect string, offset: 0x176): op
+DW_AT_type : <0x79>
DW_AT_decl_file : 1
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4d>
+<2><4e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb3): flags
-DW_AT_type : <0x78>
+DW_AT_name : (indirect string, offset: 0x17d): flags
+DW_AT_type : <0x79>
DW_AT_decl_file : 1
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5b>
+<2><5c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb9): datalen
-DW_AT_type : <0x78>
+DW_AT_name : (indirect string, offset: 0x183): datalen
+DW_AT_type : <0x79>
DW_AT_decl_file : 1
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><69>
+<2><6a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc1): data
-DW_AT_type : <0x7f>
+DW_AT_name : (indirect string, offset: 0x18b): data
+DW_AT_type : <0x80>
DW_AT_decl_file : 1
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><78>
+<1><79>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xaf): int
+DW_AT_name : (indirect string, offset: 0x179): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><7f>
+<1><80>
Abbrev Number: 7 (DW_TAG_pointer_type)
diff --git a/mpers-m32/struct_blkpg_partition.d1 b/mpers-m32/struct_blkpg_partition.d1
index 7d2243d..65f42f6 100644
--- a/mpers-m32/struct_blkpg_partition.d1
+++ b/mpers-m32/struct_blkpg_partition.d1
@@ -1,95 +1,96 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xc2 (32-bit)
+ Length: 0xc3 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_blkpg_partition.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_blkpg_partition.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x60): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x9b): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 2
- <29> DW_AT_decl_line : 65
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xff): struct_blkpg_partition
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 52
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_byte_size : 152
- <3d> DW_AT_decl_file : 2
- <3e> DW_AT_decl_line : 45
- <2><3f>: Abbrev Number: 5 (DW_TAG_member)
- <40> DW_AT_name : (indirect string, offset: 0xac): start
- <44> DW_AT_type : <0x86>
- <48> DW_AT_decl_file : 2
- <49> DW_AT_decl_line : 46
- <4a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4d>: Abbrev Number: 5 (DW_TAG_member)
- <4e> DW_AT_name : (indirect string, offset: 0xd2): length
- <52> DW_AT_type : <0x86>
- <56> DW_AT_decl_file : 2
- <57> DW_AT_decl_line : 47
- <58> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><5b>: Abbrev Number: 5 (DW_TAG_member)
- <5c> DW_AT_name : (indirect string, offset: 0xd9): pno
- <60> DW_AT_type : <0xa3>
- <64> DW_AT_decl_file : 2
- <65> DW_AT_decl_line : 48
- <66> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><69>: Abbrev Number: 5 (DW_TAG_member)
- <6a> DW_AT_name : (indirect string, offset: 0xe1): devname
- <6e> DW_AT_type : <0xaa>
- <72> DW_AT_decl_file : 2
- <73> DW_AT_decl_line : 49
- <74> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><77>: Abbrev Number: 5 (DW_TAG_member)
- <78> DW_AT_name : (indirect string, offset: 0xf7): volname
- <7c> DW_AT_type : <0xaa>
- <80> DW_AT_decl_file : 2
- <81> DW_AT_decl_line : 51
- <82> DW_AT_data_member_location: 2 byte block: 23 54 (DW_OP_plus_uconst: 84)
- <2><85>: Abbrev Number: 0
- <1><86>: Abbrev Number: 3 (DW_TAG_typedef)
- <87> DW_AT_type : <0x91>
- <8b> DW_AT_name : (indirect string, offset: 0xca): int64_t
- <8f> DW_AT_decl_file : 1
- <90> DW_AT_decl_line : 67
- <1><91>: Abbrev Number: 3 (DW_TAG_typedef)
- <92> DW_AT_type : <0x9c>
- <96> DW_AT_name : (indirect string, offset: 0xc0): __int64_t
- <9a> DW_AT_decl_file : 1
- <9b> DW_AT_decl_line : 46
- <1><9c>: Abbrev Number: 6 (DW_TAG_base_type)
- <9d> DW_AT_name : (indirect string, offset: 0xb2): long long int
- <a1> DW_AT_encoding : 5 (signed)
- <a2> DW_AT_byte_size : 8
- <1><a3>: Abbrev Number: 6 (DW_TAG_base_type)
- <a4> DW_AT_name : (indirect string, offset: 0xdd): int
- <a8> DW_AT_encoding : 5 (signed)
- <a9> DW_AT_byte_size : 4
- <1><aa>: Abbrev Number: 7 (DW_TAG_array_type)
- <ab> DW_AT_type : <0xb7>
- <2><af>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <b0> DW_AT_type : <0xbe>
- <b4> DW_AT_lower_bound : 0
- <b5> DW_AT_count : 64
- <2><b6>: Abbrev Number: 0
- <1><b7>: Abbrev Number: 6 (DW_TAG_base_type)
- <b8> DW_AT_name : (indirect string, offset: 0xe9): char
- <bc> DW_AT_encoding : 8 (unsigned char)
- <bd> DW_AT_byte_size : 1
- <1><be>: Abbrev Number: 9 (DW_TAG_base_type)
- <bf> DW_AT_name : (indirect string, offset: 0xee): sizetype
- <c3> DW_AT_byte_size : 8
- <c4> DW_AT_encoding : 7 (unsigned)
- <1><c5>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12a): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x165): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 65
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1c9): struct_blkpg_partition
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 52
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_byte_size : 152
+ <3e> DW_AT_decl_file : 2
+ <3f> DW_AT_decl_line : 45
+ <2><40>: Abbrev Number: 5 (DW_TAG_member)
+ <41> DW_AT_name : (indirect string, offset: 0x176): start
+ <45> DW_AT_type : <0x87>
+ <49> DW_AT_decl_file : 2
+ <4a> DW_AT_decl_line : 46
+ <4b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4e>: Abbrev Number: 5 (DW_TAG_member)
+ <4f> DW_AT_name : (indirect string, offset: 0x19c): length
+ <53> DW_AT_type : <0x87>
+ <57> DW_AT_decl_file : 2
+ <58> DW_AT_decl_line : 47
+ <59> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><5c>: Abbrev Number: 5 (DW_TAG_member)
+ <5d> DW_AT_name : (indirect string, offset: 0x1a3): pno
+ <61> DW_AT_type : <0xa4>
+ <65> DW_AT_decl_file : 2
+ <66> DW_AT_decl_line : 48
+ <67> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><6a>: Abbrev Number: 5 (DW_TAG_member)
+ <6b> DW_AT_name : (indirect string, offset: 0x1ab): devname
+ <6f> DW_AT_type : <0xab>
+ <73> DW_AT_decl_file : 2
+ <74> DW_AT_decl_line : 49
+ <75> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><78>: Abbrev Number: 5 (DW_TAG_member)
+ <79> DW_AT_name : (indirect string, offset: 0x1c1): volname
+ <7d> DW_AT_type : <0xab>
+ <81> DW_AT_decl_file : 2
+ <82> DW_AT_decl_line : 51
+ <83> DW_AT_data_member_location: 2 byte block: 23 54 (DW_OP_plus_uconst: 84)
+ <2><86>: Abbrev Number: 0
+ <1><87>: Abbrev Number: 3 (DW_TAG_typedef)
+ <88> DW_AT_type : <0x92>
+ <8c> DW_AT_name : (indirect string, offset: 0x194): int64_t
+ <90> DW_AT_decl_file : 1
+ <91> DW_AT_decl_line : 67
+ <1><92>: Abbrev Number: 3 (DW_TAG_typedef)
+ <93> DW_AT_type : <0x9d>
+ <97> DW_AT_name : (indirect string, offset: 0x18a): __int64_t
+ <9b> DW_AT_decl_file : 1
+ <9c> DW_AT_decl_line : 46
+ <1><9d>: Abbrev Number: 6 (DW_TAG_base_type)
+ <9e> DW_AT_name : (indirect string, offset: 0x17c): long long int
+ <a2> DW_AT_encoding : 5 (signed)
+ <a3> DW_AT_byte_size : 8
+ <1><a4>: Abbrev Number: 6 (DW_TAG_base_type)
+ <a5> DW_AT_name : (indirect string, offset: 0x1a7): int
+ <a9> DW_AT_encoding : 5 (signed)
+ <aa> DW_AT_byte_size : 4
+ <1><ab>: Abbrev Number: 7 (DW_TAG_array_type)
+ <ac> DW_AT_type : <0xb8>
+ <2><b0>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <b1> DW_AT_type : <0xbf>
+ <b5> DW_AT_lower_bound : 0
+ <b6> DW_AT_count : 64
+ <2><b7>: Abbrev Number: 0
+ <1><b8>: Abbrev Number: 6 (DW_TAG_base_type)
+ <b9> DW_AT_name : (indirect string, offset: 0x1b3): char
+ <bd> DW_AT_encoding : 8 (unsigned char)
+ <be> DW_AT_byte_size : 1
+ <1><bf>: Abbrev Number: 9 (DW_TAG_base_type)
+ <c0> DW_AT_name : (indirect string, offset: 0x1b8): sizetype
+ <c4> DW_AT_byte_size : 8
+ <c5> DW_AT_encoding : 7 (unsigned)
+ <1><c6>: Abbrev Number: 0
diff --git a/mpers-m32/struct_blkpg_partition.d2 b/mpers-m32/struct_blkpg_partition.d2
index eecf846..d7e9cff 100644
--- a/mpers-m32/struct_blkpg_partition.d2
+++ b/mpers-m32/struct_blkpg_partition.d2
@@ -1,94 +1,94 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x9b): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x165): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 2
DW_AT_decl_line : 65
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xff): struct_blkpg_partition
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1c9): struct_blkpg_partition
DW_AT_decl_file : 2
DW_AT_decl_line : 52
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 152
DW_AT_decl_file : 2
DW_AT_decl_line : 45
-<2><3f>
+<2><40>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xac): start
-DW_AT_type : <0x86>
+DW_AT_name : (indirect string, offset: 0x176): start
+DW_AT_type : <0x87>
DW_AT_decl_file : 2
DW_AT_decl_line : 46
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4d>
+<2><4e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd2): length
-DW_AT_type : <0x86>
+DW_AT_name : (indirect string, offset: 0x19c): length
+DW_AT_type : <0x87>
DW_AT_decl_file : 2
DW_AT_decl_line : 47
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><5b>
+<2><5c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd9): pno
-DW_AT_type : <0xa3>
+DW_AT_name : (indirect string, offset: 0x1a3): pno
+DW_AT_type : <0xa4>
DW_AT_decl_file : 2
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><69>
+<2><6a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): devname
-DW_AT_type : <0xaa>
+DW_AT_name : (indirect string, offset: 0x1ab): devname
+DW_AT_type : <0xab>
DW_AT_decl_file : 2
DW_AT_decl_line : 49
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><77>
+<2><78>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf7): volname
-DW_AT_type : <0xaa>
+DW_AT_name : (indirect string, offset: 0x1c1): volname
+DW_AT_type : <0xab>
DW_AT_decl_file : 2
DW_AT_decl_line : 51
DW_AT_data_member_location: 2 byte block: 23 54 (DW_OP_plus_uconst: 84)
-<1><86>
+<1><87>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x91>
-DW_AT_name : (indirect string, offset: 0xca): int64_t
+DW_AT_type : <0x92>
+DW_AT_name : (indirect string, offset: 0x194): int64_t
DW_AT_decl_file : 1
DW_AT_decl_line : 67
-<1><91>
+<1><92>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x9c>
-DW_AT_name : (indirect string, offset: 0xc0): __int64_t
+DW_AT_type : <0x9d>
+DW_AT_name : (indirect string, offset: 0x18a): __int64_t
DW_AT_decl_file : 1
DW_AT_decl_line : 46
-<1><9c>
+<1><9d>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb2): long long int
+DW_AT_name : (indirect string, offset: 0x17c): long long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 8
-<1><a3>
+<1><a4>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xdd): int
+DW_AT_name : (indirect string, offset: 0x1a7): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><aa>
+<1><ab>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0xb7>
-<2><af>
+DW_AT_type : <0xb8>
+<2><b0>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0xbe>
+DW_AT_type : <0xbf>
DW_AT_lower_bound : 0
DW_AT_count : 64
-<1><b7>
+<1><b8>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe9): char
+DW_AT_name : (indirect string, offset: 0x1b3): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><be>
+<1><bf>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xee): sizetype
+DW_AT_name : (indirect string, offset: 0x1b8): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
diff --git a/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d1 b/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d1
index 9e4477f..9ba90ad 100644
--- a/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d1
+++ b/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d1
@@ -1,181 +1,182 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x17f (32-bit)
+ Length: 0x180 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_btrfs_ioctl_dev_replace_args.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_btrfs_ioctl_dev_replace_args.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x6d): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0xa8): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 47
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x21c): struct_btrfs_ioctl_dev_replace_args
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 37
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x1ff): btrfs_ioctl_dev_replace_args
- <40> DW_AT_byte_size : 2600
- <42> DW_AT_decl_file : 2
- <43> DW_AT_decl_line : 137
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xb9): cmd
- <49> DW_AT_type : <0x9c>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 138
- <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><52>: Abbrev Number: 5 (DW_TAG_member)
- <53> DW_AT_name : (indirect string, offset: 0xda): result
- <57> DW_AT_type : <0x9c>
- <5b> DW_AT_decl_file : 2
- <5c> DW_AT_decl_line : 139
- <5d> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><60>: Abbrev Number: 6 (DW_TAG_member)
- <61> DW_AT_type : <0x6a>
- <65> DW_AT_decl_file : 2
- <66> DW_AT_decl_line : 140
- <67> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><6a>: Abbrev Number: 7 (DW_TAG_union_type)
- <6b> DW_AT_byte_size : 2072
- <6d> DW_AT_decl_file : 2
- <6e> DW_AT_decl_line : 140
- <3><6f>: Abbrev Number: 5 (DW_TAG_member)
- <70> DW_AT_name : (indirect string, offset: 0xe1): start
- <74> DW_AT_type : <0xae>
- <78> DW_AT_decl_file : 2
- <79> DW_AT_decl_line : 141
- <7a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><7d>: Abbrev Number: 5 (DW_TAG_member)
- <7e> DW_AT_name : (indirect string, offset: 0x167): status
- <82> DW_AT_type : <0x118>
- <86> DW_AT_decl_file : 2
- <87> DW_AT_decl_line : 142
- <88> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><8b>: Abbrev Number: 0
- <2><8c>: Abbrev Number: 5 (DW_TAG_member)
- <8d> DW_AT_name : (indirect string, offset: 0x1f9): spare
- <91> DW_AT_type : <0x175>
- <95> DW_AT_decl_file : 2
- <96> DW_AT_decl_line : 144
- <97> DW_AT_data_member_location: 3 byte block: 23 a8 10 (DW_OP_plus_uconst: 2088)
- <2><9b>: Abbrev Number: 0
- <1><9c>: Abbrev Number: 3 (DW_TAG_typedef)
- <9d> DW_AT_type : <0xa7>
- <a1> DW_AT_name : (indirect string, offset: 0xd4): __u64
- <a5> DW_AT_decl_file : 1
- <a6> DW_AT_decl_line : 31
- <1><a7>: Abbrev Number: 8 (DW_TAG_base_type)
- <a8> DW_AT_name : (indirect string, offset: 0xbd): long long unsigned int
- <ac> DW_AT_encoding : 7 (unsigned)
- <ad> DW_AT_byte_size : 8
- <1><ae>: Abbrev Number: 4 (DW_TAG_structure_type)
- <af> DW_AT_name : (indirect string, offset: 0x142): btrfs_ioctl_dev_replace_start_params
- <b3> DW_AT_byte_size : 2072
- <b5> DW_AT_decl_file : 2
- <b6> DW_AT_decl_line : 111
- <2><b7>: Abbrev Number: 5 (DW_TAG_member)
- <b8> DW_AT_name : (indirect string, offset: 0xe7): srcdevid
- <bc> DW_AT_type : <0x9c>
- <c0> DW_AT_decl_file : 2
- <c1> DW_AT_decl_line : 112
- <c2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><c5>: Abbrev Number: 5 (DW_TAG_member)
- <c6> DW_AT_name : (indirect string, offset: 0xf0): cont_reading_from_srcdev_mode
- <ca> DW_AT_type : <0x9c>
- <ce> DW_AT_decl_file : 2
- <cf> DW_AT_decl_line : 113
- <d0> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><d3>: Abbrev Number: 5 (DW_TAG_member)
- <d4> DW_AT_name : (indirect string, offset: 0x10e): srcdev_name
- <d8> DW_AT_type : <0xf1>
- <dc> DW_AT_decl_file : 2
- <dd> DW_AT_decl_line : 114
- <de> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><e1>: Abbrev Number: 5 (DW_TAG_member)
- <e2> DW_AT_name : (indirect string, offset: 0x136): tgtdev_name
- <e6> DW_AT_type : <0xf1>
- <ea> DW_AT_decl_file : 2
- <eb> DW_AT_decl_line : 115
- <ec> DW_AT_data_member_location: 3 byte block: 23 91 8 (DW_OP_plus_uconst: 1041)
- <2><f0>: Abbrev Number: 0
- <1><f1>: Abbrev Number: 9 (DW_TAG_array_type)
- <f2> DW_AT_type : <0xff>
- <2><f6>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <f7> DW_AT_type : <0x111>
- <fb> DW_AT_lower_bound : 0
- <fc> DW_AT_count : 1025
- <2><fe>: Abbrev Number: 0
- <1><ff>: Abbrev Number: 3 (DW_TAG_typedef)
- <100> DW_AT_type : <0x10a>
- <104> DW_AT_name : (indirect string, offset: 0x128): __u8
- <108> DW_AT_decl_file : 1
- <109> DW_AT_decl_line : 24
- <1><10a>: Abbrev Number: 8 (DW_TAG_base_type)
- <10b> DW_AT_name : (indirect string, offset: 0x11a): unsigned char
- <10f> DW_AT_encoding : 8 (unsigned char)
- <110> DW_AT_byte_size : 1
- <1><111>: Abbrev Number: 11 (DW_TAG_base_type)
- <112> DW_AT_name : (indirect string, offset: 0x12d): sizetype
- <116> DW_AT_byte_size : 8
- <117> DW_AT_encoding : 7 (unsigned)
- <1><118>: Abbrev Number: 12 (DW_TAG_structure_type)
- <119> DW_AT_name : (indirect string, offset: 0x1d3): btrfs_ioctl_dev_replace_status_params
- <11d> DW_AT_byte_size : 48
- <11e> DW_AT_decl_file : 2
- <11f> DW_AT_decl_line : 122
- <2><120>: Abbrev Number: 5 (DW_TAG_member)
- <121> DW_AT_name : (indirect string, offset: 0x16e): replace_state
- <125> DW_AT_type : <0x9c>
- <129> DW_AT_decl_file : 2
- <12a> DW_AT_decl_line : 123
- <12b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><12e>: Abbrev Number: 5 (DW_TAG_member)
- <12f> DW_AT_name : (indirect string, offset: 0x17c): progress_1000
- <133> DW_AT_type : <0x9c>
- <137> DW_AT_decl_file : 2
- <138> DW_AT_decl_line : 124
- <139> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><13c>: Abbrev Number: 5 (DW_TAG_member)
- <13d> DW_AT_name : (indirect string, offset: 0x18a): time_started
- <141> DW_AT_type : <0x9c>
- <145> DW_AT_decl_file : 2
- <146> DW_AT_decl_line : 125
- <147> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><14a>: Abbrev Number: 5 (DW_TAG_member)
- <14b> DW_AT_name : (indirect string, offset: 0x197): time_stopped
- <14f> DW_AT_type : <0x9c>
- <153> DW_AT_decl_file : 2
- <154> DW_AT_decl_line : 126
- <155> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><158>: Abbrev Number: 5 (DW_TAG_member)
- <159> DW_AT_name : (indirect string, offset: 0x1a4): num_write_errors
- <15d> DW_AT_type : <0x9c>
- <161> DW_AT_decl_file : 2
- <162> DW_AT_decl_line : 127
- <163> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><166>: Abbrev Number: 5 (DW_TAG_member)
- <167> DW_AT_name : (indirect string, offset: 0x1b5): num_uncorrectable_read_errors
- <16b> DW_AT_type : <0x9c>
- <16f> DW_AT_decl_file : 2
- <170> DW_AT_decl_line : 128
- <171> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><174>: Abbrev Number: 0
- <1><175>: Abbrev Number: 9 (DW_TAG_array_type)
- <176> DW_AT_type : <0x9c>
- <2><17a>: Abbrev Number: 13 (DW_TAG_subrange_type)
- <17b> DW_AT_type : <0x111>
- <17f> DW_AT_lower_bound : 0
- <180> DW_AT_count : 64
- <2><181>: Abbrev Number: 0
- <1><182>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x137): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x172): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 47
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x2e6): struct_btrfs_ioctl_dev_replace_args
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 37
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x2c9): btrfs_ioctl_dev_replace_args
+ <41> DW_AT_byte_size : 2600
+ <43> DW_AT_decl_file : 2
+ <44> DW_AT_decl_line : 137
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x183): cmd
+ <4a> DW_AT_type : <0x9d>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 138
+ <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><53>: Abbrev Number: 5 (DW_TAG_member)
+ <54> DW_AT_name : (indirect string, offset: 0x1a4): result
+ <58> DW_AT_type : <0x9d>
+ <5c> DW_AT_decl_file : 2
+ <5d> DW_AT_decl_line : 139
+ <5e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><61>: Abbrev Number: 6 (DW_TAG_member)
+ <62> DW_AT_type : <0x6b>
+ <66> DW_AT_decl_file : 2
+ <67> DW_AT_decl_line : 140
+ <68> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><6b>: Abbrev Number: 7 (DW_TAG_union_type)
+ <6c> DW_AT_byte_size : 2072
+ <6e> DW_AT_decl_file : 2
+ <6f> DW_AT_decl_line : 140
+ <3><70>: Abbrev Number: 5 (DW_TAG_member)
+ <71> DW_AT_name : (indirect string, offset: 0x1ab): start
+ <75> DW_AT_type : <0xaf>
+ <79> DW_AT_decl_file : 2
+ <7a> DW_AT_decl_line : 141
+ <7b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><7e>: Abbrev Number: 5 (DW_TAG_member)
+ <7f> DW_AT_name : (indirect string, offset: 0x231): status
+ <83> DW_AT_type : <0x119>
+ <87> DW_AT_decl_file : 2
+ <88> DW_AT_decl_line : 142
+ <89> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><8c>: Abbrev Number: 0
+ <2><8d>: Abbrev Number: 5 (DW_TAG_member)
+ <8e> DW_AT_name : (indirect string, offset: 0x2c3): spare
+ <92> DW_AT_type : <0x176>
+ <96> DW_AT_decl_file : 2
+ <97> DW_AT_decl_line : 144
+ <98> DW_AT_data_member_location: 3 byte block: 23 a8 10 (DW_OP_plus_uconst: 2088)
+ <2><9c>: Abbrev Number: 0
+ <1><9d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <9e> DW_AT_type : <0xa8>
+ <a2> DW_AT_name : (indirect string, offset: 0x19e): __u64
+ <a6> DW_AT_decl_file : 1
+ <a7> DW_AT_decl_line : 31
+ <1><a8>: Abbrev Number: 8 (DW_TAG_base_type)
+ <a9> DW_AT_name : (indirect string, offset: 0x187): long long unsigned int
+ <ad> DW_AT_encoding : 7 (unsigned)
+ <ae> DW_AT_byte_size : 8
+ <1><af>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <b0> DW_AT_name : (indirect string, offset: 0x20c): btrfs_ioctl_dev_replace_start_params
+ <b4> DW_AT_byte_size : 2072
+ <b6> DW_AT_decl_file : 2
+ <b7> DW_AT_decl_line : 111
+ <2><b8>: Abbrev Number: 5 (DW_TAG_member)
+ <b9> DW_AT_name : (indirect string, offset: 0x1b1): srcdevid
+ <bd> DW_AT_type : <0x9d>
+ <c1> DW_AT_decl_file : 2
+ <c2> DW_AT_decl_line : 112
+ <c3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><c6>: Abbrev Number: 5 (DW_TAG_member)
+ <c7> DW_AT_name : (indirect string, offset: 0x1ba): cont_reading_from_srcdev_mode
+ <cb> DW_AT_type : <0x9d>
+ <cf> DW_AT_decl_file : 2
+ <d0> DW_AT_decl_line : 113
+ <d1> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><d4>: Abbrev Number: 5 (DW_TAG_member)
+ <d5> DW_AT_name : (indirect string, offset: 0x1d8): srcdev_name
+ <d9> DW_AT_type : <0xf2>
+ <dd> DW_AT_decl_file : 2
+ <de> DW_AT_decl_line : 114
+ <df> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><e2>: Abbrev Number: 5 (DW_TAG_member)
+ <e3> DW_AT_name : (indirect string, offset: 0x200): tgtdev_name
+ <e7> DW_AT_type : <0xf2>
+ <eb> DW_AT_decl_file : 2
+ <ec> DW_AT_decl_line : 115
+ <ed> DW_AT_data_member_location: 3 byte block: 23 91 8 (DW_OP_plus_uconst: 1041)
+ <2><f1>: Abbrev Number: 0
+ <1><f2>: Abbrev Number: 9 (DW_TAG_array_type)
+ <f3> DW_AT_type : <0x100>
+ <2><f7>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <f8> DW_AT_type : <0x112>
+ <fc> DW_AT_lower_bound : 0
+ <fd> DW_AT_count : 1025
+ <2><ff>: Abbrev Number: 0
+ <1><100>: Abbrev Number: 3 (DW_TAG_typedef)
+ <101> DW_AT_type : <0x10b>
+ <105> DW_AT_name : (indirect string, offset: 0x1f2): __u8
+ <109> DW_AT_decl_file : 1
+ <10a> DW_AT_decl_line : 24
+ <1><10b>: Abbrev Number: 8 (DW_TAG_base_type)
+ <10c> DW_AT_name : (indirect string, offset: 0x1e4): unsigned char
+ <110> DW_AT_encoding : 8 (unsigned char)
+ <111> DW_AT_byte_size : 1
+ <1><112>: Abbrev Number: 11 (DW_TAG_base_type)
+ <113> DW_AT_name : (indirect string, offset: 0x1f7): sizetype
+ <117> DW_AT_byte_size : 8
+ <118> DW_AT_encoding : 7 (unsigned)
+ <1><119>: Abbrev Number: 12 (DW_TAG_structure_type)
+ <11a> DW_AT_name : (indirect string, offset: 0x29d): btrfs_ioctl_dev_replace_status_params
+ <11e> DW_AT_byte_size : 48
+ <11f> DW_AT_decl_file : 2
+ <120> DW_AT_decl_line : 122
+ <2><121>: Abbrev Number: 5 (DW_TAG_member)
+ <122> DW_AT_name : (indirect string, offset: 0x238): replace_state
+ <126> DW_AT_type : <0x9d>
+ <12a> DW_AT_decl_file : 2
+ <12b> DW_AT_decl_line : 123
+ <12c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><12f>: Abbrev Number: 5 (DW_TAG_member)
+ <130> DW_AT_name : (indirect string, offset: 0x246): progress_1000
+ <134> DW_AT_type : <0x9d>
+ <138> DW_AT_decl_file : 2
+ <139> DW_AT_decl_line : 124
+ <13a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><13d>: Abbrev Number: 5 (DW_TAG_member)
+ <13e> DW_AT_name : (indirect string, offset: 0x254): time_started
+ <142> DW_AT_type : <0x9d>
+ <146> DW_AT_decl_file : 2
+ <147> DW_AT_decl_line : 125
+ <148> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><14b>: Abbrev Number: 5 (DW_TAG_member)
+ <14c> DW_AT_name : (indirect string, offset: 0x261): time_stopped
+ <150> DW_AT_type : <0x9d>
+ <154> DW_AT_decl_file : 2
+ <155> DW_AT_decl_line : 126
+ <156> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><159>: Abbrev Number: 5 (DW_TAG_member)
+ <15a> DW_AT_name : (indirect string, offset: 0x26e): num_write_errors
+ <15e> DW_AT_type : <0x9d>
+ <162> DW_AT_decl_file : 2
+ <163> DW_AT_decl_line : 127
+ <164> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><167>: Abbrev Number: 5 (DW_TAG_member)
+ <168> DW_AT_name : (indirect string, offset: 0x27f): num_uncorrectable_read_errors
+ <16c> DW_AT_type : <0x9d>
+ <170> DW_AT_decl_file : 2
+ <171> DW_AT_decl_line : 128
+ <172> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><175>: Abbrev Number: 0
+ <1><176>: Abbrev Number: 9 (DW_TAG_array_type)
+ <177> DW_AT_type : <0x9d>
+ <2><17b>: Abbrev Number: 13 (DW_TAG_subrange_type)
+ <17c> DW_AT_type : <0x112>
+ <180> DW_AT_lower_bound : 0
+ <181> DW_AT_count : 64
+ <2><182>: Abbrev Number: 0
+ <1><183>: Abbrev Number: 0
diff --git a/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d2 b/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d2
index db709b8..c7bdfb6 100644
--- a/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d2
+++ b/mpers-m32/struct_btrfs_ioctl_dev_replace_args.d2
@@ -1,191 +1,191 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0xa8): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x172): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 47
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x21c): struct_btrfs_ioctl_dev_replace_args
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x2e6): struct_btrfs_ioctl_dev_replace_args
DW_AT_decl_file : 3
DW_AT_decl_line : 37
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1ff): btrfs_ioctl_dev_replace_args
+DW_AT_name : (indirect string, offset: 0x2c9): btrfs_ioctl_dev_replace_args
DW_AT_byte_size : 2600
DW_AT_decl_file : 2
DW_AT_decl_line : 137
-<2><44>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb9): cmd
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x183): cmd
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 138
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><52>
+<2><53>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xda): result
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x1a4): result
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 139
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><60>
+<2><61>
Abbrev Number: 6 (DW_TAG_member)
-DW_AT_type : <0x6a>
+DW_AT_type : <0x6b>
DW_AT_decl_file : 2
DW_AT_decl_line : 140
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><6a>
+<2><6b>
Abbrev Number: 7 (DW_TAG_union_type)
DW_AT_byte_size : 2072
DW_AT_decl_file : 2
DW_AT_decl_line : 140
-<3><6f>
+<3><70>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): start
-DW_AT_type : <0xae>
+DW_AT_name : (indirect string, offset: 0x1ab): start
+DW_AT_type : <0xaf>
DW_AT_decl_file : 2
DW_AT_decl_line : 141
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><7d>
+<3><7e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x167): status
-DW_AT_type : <0x118>
+DW_AT_name : (indirect string, offset: 0x231): status
+DW_AT_type : <0x119>
DW_AT_decl_file : 2
DW_AT_decl_line : 142
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><8c>
+<2><8d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f9): spare
-DW_AT_type : <0x175>
+DW_AT_name : (indirect string, offset: 0x2c3): spare
+DW_AT_type : <0x176>
DW_AT_decl_file : 2
DW_AT_decl_line : 144
DW_AT_data_member_location: 3 byte block: 23 a8 10 (DW_OP_plus_uconst: 2088)
-<1><9c>
+<1><9d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xa7>
-DW_AT_name : (indirect string, offset: 0xd4): __u64
+DW_AT_type : <0xa8>
+DW_AT_name : (indirect string, offset: 0x19e): __u64
DW_AT_decl_file : 1
DW_AT_decl_line : 31
-<1><a7>
+<1><a8>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xbd): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x187): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><ae>
+<1><af>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x142): btrfs_ioctl_dev_replace_start_params
+DW_AT_name : (indirect string, offset: 0x20c): btrfs_ioctl_dev_replace_start_params
DW_AT_byte_size : 2072
DW_AT_decl_file : 2
DW_AT_decl_line : 111
-<2><b7>
+<2><b8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe7): srcdevid
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x1b1): srcdevid
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 112
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><c5>
+<2><c6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): cont_reading_from_srcdev_mode
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x1ba): cont_reading_from_srcdev_mode
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 113
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><d3>
+<2><d4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10e): srcdev_name
-DW_AT_type : <0xf1>
+DW_AT_name : (indirect string, offset: 0x1d8): srcdev_name
+DW_AT_type : <0xf2>
DW_AT_decl_file : 2
DW_AT_decl_line : 114
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><e1>
+<2><e2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x136): tgtdev_name
-DW_AT_type : <0xf1>
+DW_AT_name : (indirect string, offset: 0x200): tgtdev_name
+DW_AT_type : <0xf2>
DW_AT_decl_file : 2
DW_AT_decl_line : 115
DW_AT_data_member_location: 3 byte block: 23 91 8 (DW_OP_plus_uconst: 1041)
-<1><f1>
+<1><f2>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0xff>
-<2><f6>
+DW_AT_type : <0x100>
+<2><f7>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0x111>
+DW_AT_type : <0x112>
DW_AT_lower_bound : 0
DW_AT_count : 1025
-<1><ff>
+<1><100>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x10a>
-DW_AT_name : (indirect string, offset: 0x128): __u8
+DW_AT_type : <0x10b>
+DW_AT_name : (indirect string, offset: 0x1f2): __u8
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><10a>
+<1><10b>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x11a): unsigned char
+DW_AT_name : (indirect string, offset: 0x1e4): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><111>
+<1><112>
Abbrev Number: 11 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x12d): sizetype
+DW_AT_name : (indirect string, offset: 0x1f7): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><118>
+<1><119>
Abbrev Number: 12 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1d3): btrfs_ioctl_dev_replace_status_params
+DW_AT_name : (indirect string, offset: 0x29d): btrfs_ioctl_dev_replace_status_params
DW_AT_byte_size : 48
DW_AT_decl_file : 2
DW_AT_decl_line : 122
-<2><120>
+<2><121>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x16e): replace_state
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x238): replace_state
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 123
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><12e>
+<2><12f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17c): progress_1000
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x246): progress_1000
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 124
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><13c>
+<2><13d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x18a): time_started
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x254): time_started
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 125
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><14a>
+<2><14b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x197): time_stopped
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x261): time_stopped
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 126
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><158>
+<2><159>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1a4): num_write_errors
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x26e): num_write_errors
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 127
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><166>
+<2><167>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1b5): num_uncorrectable_read_errors
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x27f): num_uncorrectable_read_errors
+DW_AT_type : <0x9d>
DW_AT_decl_file : 2
DW_AT_decl_line : 128
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<1><175>
+<1><176>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0x9c>
-<2><17a>
+DW_AT_type : <0x9d>
+<2><17b>
Abbrev Number: 13 (DW_TAG_subrange_type)
-DW_AT_type : <0x111>
+DW_AT_type : <0x112>
DW_AT_lower_bound : 0
DW_AT_count : 64
diff --git a/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d1 b/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d1
index 5a55888..747edf7 100644
--- a/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d1
+++ b/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d1
@@ -1,133 +1,134 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x11f (32-bit)
+ Length: 0x120 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_btrfs_ioctl_received_subvol_args.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_btrfs_ioctl_received_subvol_args.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x71): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0xac): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 47
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x16c): struct_btrfs_ioctl_received_subvol_args
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 41
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x14b): btrfs_ioctl_received_subvol_args
- <40> DW_AT_byte_size : 200
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 386
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xbd): uuid
- <49> DW_AT_type : <0xae>
- <4d> DW_AT_decl_file : 1
- <4e> DW_AT_decl_line : 387
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xd0): stransid
- <58> DW_AT_type : <0xc9>
- <5c> DW_AT_decl_file : 1
- <5d> DW_AT_decl_line : 388
- <5f> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xf6): rtransid
- <67> DW_AT_type : <0xc9>
- <6b> DW_AT_decl_file : 1
- <6c> DW_AT_decl_line : 389
- <6e> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0xff): stime
- <76> DW_AT_type : <0xdb>
- <7a> DW_AT_decl_file : 1
- <7b> DW_AT_decl_line : 390
- <7d> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><80>: Abbrev Number: 5 (DW_TAG_member)
- <81> DW_AT_name : (indirect string, offset: 0x136): rtime
- <85> DW_AT_type : <0xdb>
- <89> DW_AT_decl_file : 1
- <8a> DW_AT_decl_line : 391
- <8c> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><8f>: Abbrev Number: 5 (DW_TAG_member)
- <90> DW_AT_name : (indirect string, offset: 0x13c): flags
- <94> DW_AT_type : <0xc9>
- <98> DW_AT_decl_file : 1
- <99> DW_AT_decl_line : 392
- <9b> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><9e>: Abbrev Number: 5 (DW_TAG_member)
- <9f> DW_AT_name : (indirect string, offset: 0x142): reserved
- <a3> DW_AT_type : <0x115>
- <a7> DW_AT_decl_file : 1
- <a8> DW_AT_decl_line : 393
- <aa> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
- <2><ad>: Abbrev Number: 0
- <1><ae>: Abbrev Number: 6 (DW_TAG_array_type)
- <af> DW_AT_type : <0xbb>
- <2><b3>: Abbrev Number: 7 (DW_TAG_subrange_type)
- <b4> DW_AT_type : <0xc2>
- <b8> DW_AT_lower_bound : 0
- <b9> DW_AT_count : 16
- <2><ba>: Abbrev Number: 0
- <1><bb>: Abbrev Number: 8 (DW_TAG_base_type)
- <bc> DW_AT_name : (indirect string, offset: 0xc2): char
- <c0> DW_AT_encoding : 8 (unsigned char)
- <c1> DW_AT_byte_size : 1
- <1><c2>: Abbrev Number: 9 (DW_TAG_base_type)
- <c3> DW_AT_name : (indirect string, offset: 0xc7): sizetype
- <c7> DW_AT_byte_size : 8
- <c8> DW_AT_encoding : 7 (unsigned)
- <1><c9>: Abbrev Number: 3 (DW_TAG_typedef)
- <ca> DW_AT_type : <0xd4>
- <ce> DW_AT_name : (indirect string, offset: 0xf0): __u64
- <d2> DW_AT_decl_file : 2
- <d3> DW_AT_decl_line : 31
- <1><d4>: Abbrev Number: 8 (DW_TAG_base_type)
- <d5> DW_AT_name : (indirect string, offset: 0xd9): long long unsigned int
- <d9> DW_AT_encoding : 7 (unsigned)
- <da> DW_AT_byte_size : 8
- <1><db>: Abbrev Number: 4 (DW_TAG_structure_type)
- <dc> DW_AT_name : (indirect string, offset: 0x121): btrfs_ioctl_timespec
- <e0> DW_AT_byte_size : 16
- <e1> DW_AT_decl_file : 1
- <e2> DW_AT_decl_line : 382
- <2><e4>: Abbrev Number: 5 (DW_TAG_member)
- <e5> DW_AT_name : (indirect string, offset: 0x105): sec
- <e9> DW_AT_type : <0xc9>
- <ed> DW_AT_decl_file : 1
- <ee> DW_AT_decl_line : 383
- <f0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><f3>: Abbrev Number: 5 (DW_TAG_member)
- <f4> DW_AT_name : (indirect string, offset: 0x109): nsec
- <f8> DW_AT_type : <0x103>
- <fc> DW_AT_decl_file : 1
- <fd> DW_AT_decl_line : 384
- <ff> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><102>: Abbrev Number: 0
- <1><103>: Abbrev Number: 3 (DW_TAG_typedef)
- <104> DW_AT_type : <0x10e>
- <108> DW_AT_name : (indirect string, offset: 0x11b): __u32
- <10c> DW_AT_decl_file : 2
- <10d> DW_AT_decl_line : 28
- <1><10e>: Abbrev Number: 8 (DW_TAG_base_type)
- <10f> DW_AT_name : (indirect string, offset: 0x10e): unsigned int
- <113> DW_AT_encoding : 7 (unsigned)
- <114> DW_AT_byte_size : 4
- <1><115>: Abbrev Number: 6 (DW_TAG_array_type)
- <116> DW_AT_type : <0xc9>
- <2><11a>: Abbrev Number: 7 (DW_TAG_subrange_type)
- <11b> DW_AT_type : <0xc2>
- <11f> DW_AT_lower_bound : 0
- <120> DW_AT_count : 16
- <2><121>: Abbrev Number: 0
- <1><122>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x13b): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x176): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 47
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x236): struct_btrfs_ioctl_received_subvol_args
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 41
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x215): btrfs_ioctl_received_subvol_args
+ <41> DW_AT_byte_size : 200
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 388
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x187): uuid
+ <4a> DW_AT_type : <0xaf>
+ <4e> DW_AT_decl_file : 1
+ <4f> DW_AT_decl_line : 389
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x19a): stransid
+ <59> DW_AT_type : <0xca>
+ <5d> DW_AT_decl_file : 1
+ <5e> DW_AT_decl_line : 390
+ <60> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x1c0): rtransid
+ <68> DW_AT_type : <0xca>
+ <6c> DW_AT_decl_file : 1
+ <6d> DW_AT_decl_line : 391
+ <6f> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x1c9): stime
+ <77> DW_AT_type : <0xdc>
+ <7b> DW_AT_decl_file : 1
+ <7c> DW_AT_decl_line : 392
+ <7e> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><81>: Abbrev Number: 5 (DW_TAG_member)
+ <82> DW_AT_name : (indirect string, offset: 0x200): rtime
+ <86> DW_AT_type : <0xdc>
+ <8a> DW_AT_decl_file : 1
+ <8b> DW_AT_decl_line : 393
+ <8d> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><90>: Abbrev Number: 5 (DW_TAG_member)
+ <91> DW_AT_name : (indirect string, offset: 0x206): flags
+ <95> DW_AT_type : <0xca>
+ <99> DW_AT_decl_file : 1
+ <9a> DW_AT_decl_line : 394
+ <9c> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><9f>: Abbrev Number: 5 (DW_TAG_member)
+ <a0> DW_AT_name : (indirect string, offset: 0x20c): reserved
+ <a4> DW_AT_type : <0x116>
+ <a8> DW_AT_decl_file : 1
+ <a9> DW_AT_decl_line : 395
+ <ab> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
+ <2><ae>: Abbrev Number: 0
+ <1><af>: Abbrev Number: 6 (DW_TAG_array_type)
+ <b0> DW_AT_type : <0xbc>
+ <2><b4>: Abbrev Number: 7 (DW_TAG_subrange_type)
+ <b5> DW_AT_type : <0xc3>
+ <b9> DW_AT_lower_bound : 0
+ <ba> DW_AT_count : 16
+ <2><bb>: Abbrev Number: 0
+ <1><bc>: Abbrev Number: 8 (DW_TAG_base_type)
+ <bd> DW_AT_name : (indirect string, offset: 0x18c): char
+ <c1> DW_AT_encoding : 8 (unsigned char)
+ <c2> DW_AT_byte_size : 1
+ <1><c3>: Abbrev Number: 9 (DW_TAG_base_type)
+ <c4> DW_AT_name : (indirect string, offset: 0x191): sizetype
+ <c8> DW_AT_byte_size : 8
+ <c9> DW_AT_encoding : 7 (unsigned)
+ <1><ca>: Abbrev Number: 3 (DW_TAG_typedef)
+ <cb> DW_AT_type : <0xd5>
+ <cf> DW_AT_name : (indirect string, offset: 0x1ba): __u64
+ <d3> DW_AT_decl_file : 2
+ <d4> DW_AT_decl_line : 31
+ <1><d5>: Abbrev Number: 8 (DW_TAG_base_type)
+ <d6> DW_AT_name : (indirect string, offset: 0x1a3): long long unsigned int
+ <da> DW_AT_encoding : 7 (unsigned)
+ <db> DW_AT_byte_size : 8
+ <1><dc>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <dd> DW_AT_name : (indirect string, offset: 0x1eb): btrfs_ioctl_timespec
+ <e1> DW_AT_byte_size : 16
+ <e2> DW_AT_decl_file : 1
+ <e3> DW_AT_decl_line : 384
+ <2><e5>: Abbrev Number: 5 (DW_TAG_member)
+ <e6> DW_AT_name : (indirect string, offset: 0x1cf): sec
+ <ea> DW_AT_type : <0xca>
+ <ee> DW_AT_decl_file : 1
+ <ef> DW_AT_decl_line : 385
+ <f1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><f4>: Abbrev Number: 5 (DW_TAG_member)
+ <f5> DW_AT_name : (indirect string, offset: 0x1d3): nsec
+ <f9> DW_AT_type : <0x104>
+ <fd> DW_AT_decl_file : 1
+ <fe> DW_AT_decl_line : 386
+ <100> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><103>: Abbrev Number: 0
+ <1><104>: Abbrev Number: 3 (DW_TAG_typedef)
+ <105> DW_AT_type : <0x10f>
+ <109> DW_AT_name : (indirect string, offset: 0x1e5): __u32
+ <10d> DW_AT_decl_file : 2
+ <10e> DW_AT_decl_line : 28
+ <1><10f>: Abbrev Number: 8 (DW_TAG_base_type)
+ <110> DW_AT_name : (indirect string, offset: 0x1d8): unsigned int
+ <114> DW_AT_encoding : 7 (unsigned)
+ <115> DW_AT_byte_size : 4
+ <1><116>: Abbrev Number: 6 (DW_TAG_array_type)
+ <117> DW_AT_type : <0xca>
+ <2><11b>: Abbrev Number: 7 (DW_TAG_subrange_type)
+ <11c> DW_AT_type : <0xc3>
+ <120> DW_AT_lower_bound : 0
+ <121> DW_AT_count : 16
+ <2><122>: Abbrev Number: 0
+ <1><123>: Abbrev Number: 0
diff --git a/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d2 b/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d2
index 9cceb97..2d90829 100644
--- a/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d2
+++ b/mpers-m32/struct_btrfs_ioctl_received_subvol_args.d2
@@ -1,137 +1,137 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0xac): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x176): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 47
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x16c): struct_btrfs_ioctl_received_subvol_args
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x236): struct_btrfs_ioctl_received_subvol_args
DW_AT_decl_file : 3
DW_AT_decl_line : 41
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x14b): btrfs_ioctl_received_subvol_args
+DW_AT_name : (indirect string, offset: 0x215): btrfs_ioctl_received_subvol_args
DW_AT_byte_size : 200
DW_AT_decl_file : 1
-DW_AT_decl_line : 386
-<2><44>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbd): uuid
-DW_AT_type : <0xae>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 387
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd0): stransid
-DW_AT_type : <0xc9>
-DW_AT_decl_file : 1
DW_AT_decl_line : 388
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><62>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf6): rtransid
-DW_AT_type : <0xc9>
+DW_AT_name : (indirect string, offset: 0x187): uuid
+DW_AT_type : <0xaf>
DW_AT_decl_file : 1
DW_AT_decl_line : 389
-DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><71>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xff): stime
-DW_AT_type : <0xdb>
+DW_AT_name : (indirect string, offset: 0x19a): stransid
+DW_AT_type : <0xca>
DW_AT_decl_file : 1
DW_AT_decl_line : 390
-DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><80>
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><63>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x136): rtime
-DW_AT_type : <0xdb>
+DW_AT_name : (indirect string, offset: 0x1c0): rtransid
+DW_AT_type : <0xca>
DW_AT_decl_file : 1
DW_AT_decl_line : 391
-DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><8f>
+DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+<2><72>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13c): flags
-DW_AT_type : <0xc9>
+DW_AT_name : (indirect string, offset: 0x1c9): stime
+DW_AT_type : <0xdc>
DW_AT_decl_file : 1
DW_AT_decl_line : 392
-DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<2><9e>
+DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+<2><81>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x142): reserved
-DW_AT_type : <0x115>
+DW_AT_name : (indirect string, offset: 0x200): rtime
+DW_AT_type : <0xdc>
DW_AT_decl_file : 1
DW_AT_decl_line : 393
+DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+<2><90>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x206): flags
+DW_AT_type : <0xca>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 394
+DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+<2><9f>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x20c): reserved
+DW_AT_type : <0x116>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 395
DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
-<1><ae>
+<1><af>
Abbrev Number: 6 (DW_TAG_array_type)
-DW_AT_type : <0xbb>
-<2><b3>
+DW_AT_type : <0xbc>
+<2><b4>
Abbrev Number: 7 (DW_TAG_subrange_type)
-DW_AT_type : <0xc2>
+DW_AT_type : <0xc3>
DW_AT_lower_bound : 0
DW_AT_count : 16
-<1><bb>
+<1><bc>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc2): char
+DW_AT_name : (indirect string, offset: 0x18c): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><c2>
+<1><c3>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc7): sizetype
+DW_AT_name : (indirect string, offset: 0x191): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><c9>
+<1><ca>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xd4>
-DW_AT_name : (indirect string, offset: 0xf0): __u64
+DW_AT_type : <0xd5>
+DW_AT_name : (indirect string, offset: 0x1ba): __u64
DW_AT_decl_file : 2
DW_AT_decl_line : 31
-<1><d4>
+<1><d5>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd9): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x1a3): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><db>
+<1><dc>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x121): btrfs_ioctl_timespec
+DW_AT_name : (indirect string, offset: 0x1eb): btrfs_ioctl_timespec
DW_AT_byte_size : 16
DW_AT_decl_file : 1
-DW_AT_decl_line : 382
-<2><e4>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x105): sec
-DW_AT_type : <0xc9>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 383
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><f3>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x109): nsec
-DW_AT_type : <0x103>
-DW_AT_decl_file : 1
DW_AT_decl_line : 384
+<2><e5>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1cf): sec
+DW_AT_type : <0xca>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 385
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><f4>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1d3): nsec
+DW_AT_type : <0x104>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 386
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><103>
+<1><104>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x10e>
-DW_AT_name : (indirect string, offset: 0x11b): __u32
+DW_AT_type : <0x10f>
+DW_AT_name : (indirect string, offset: 0x1e5): __u32
DW_AT_decl_file : 2
DW_AT_decl_line : 28
-<1><10e>
+<1><10f>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x10e): unsigned int
+DW_AT_name : (indirect string, offset: 0x1d8): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><115>
+<1><116>
Abbrev Number: 6 (DW_TAG_array_type)
-DW_AT_type : <0xc9>
-<2><11a>
+DW_AT_type : <0xca>
+<2><11b>
Abbrev Number: 7 (DW_TAG_subrange_type)
-DW_AT_type : <0xc2>
+DW_AT_type : <0xc3>
DW_AT_lower_bound : 0
DW_AT_count : 16
diff --git a/mpers-m32/struct_btrfs_ioctl_send_args.d1 b/mpers-m32/struct_btrfs_ioctl_send_args.d1
index 04ee16f..dce241f 100644
--- a/mpers-m32/struct_btrfs_ioctl_send_args.d1
+++ b/mpers-m32/struct_btrfs_ioctl_send_args.d1
@@ -1,100 +1,101 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xd9 (32-bit)
+ Length: 0xda (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_btrfs_ioctl_send_args.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_btrfs_ioctl_send_args.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x66): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0xa1): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 47
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x147): struct_btrfs_ioctl_send_args
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 39
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x131): btrfs_ioctl_send_args
- <40> DW_AT_byte_size : 72
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 399
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xb2): send_fd
- <49> DW_AT_type : <0x9f>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 400
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xce): clone_sources_count
- <58> DW_AT_type : <0xb1>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 401
- <5f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xff): clone_sources
- <67> DW_AT_type : <0xc3>
- <6b> DW_AT_decl_file : 2
- <6c> DW_AT_decl_line : 402
- <6e> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0x10d): parent_root
- <76> DW_AT_type : <0xb1>
- <7a> DW_AT_decl_file : 2
- <7b> DW_AT_decl_line : 403
- <7d> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><80>: Abbrev Number: 5 (DW_TAG_member)
- <81> DW_AT_name : (indirect string, offset: 0x119): flags
- <85> DW_AT_type : <0xb1>
- <89> DW_AT_decl_file : 2
- <8a> DW_AT_decl_line : 404
- <8c> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><8f>: Abbrev Number: 5 (DW_TAG_member)
- <90> DW_AT_name : (indirect string, offset: 0x11f): reserved
- <94> DW_AT_type : <0xc8>
- <98> DW_AT_decl_file : 2
- <99> DW_AT_decl_line : 405
- <9b> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><9e>: Abbrev Number: 0
- <1><9f>: Abbrev Number: 3 (DW_TAG_typedef)
- <a0> DW_AT_type : <0xaa>
- <a4> DW_AT_name : (indirect string, offset: 0xc8): __s64
- <a8> DW_AT_decl_file : 1
- <a9> DW_AT_decl_line : 30
- <1><aa>: Abbrev Number: 6 (DW_TAG_base_type)
- <ab> DW_AT_name : (indirect string, offset: 0xba): long long int
- <af> DW_AT_encoding : 5 (signed)
- <b0> DW_AT_byte_size : 8
- <1><b1>: Abbrev Number: 3 (DW_TAG_typedef)
- <b2> DW_AT_type : <0xbc>
- <b6> DW_AT_name : (indirect string, offset: 0xf9): __u64
- <ba> DW_AT_decl_file : 1
- <bb> DW_AT_decl_line : 31
- <1><bc>: Abbrev Number: 6 (DW_TAG_base_type)
- <bd> DW_AT_name : (indirect string, offset: 0xe2): long long unsigned int
- <c1> DW_AT_encoding : 7 (unsigned)
- <c2> DW_AT_byte_size : 8
- <1><c3>: Abbrev Number: 7 (DW_TAG_pointer_type)
- <c4> DW_AT_type : <0xb1>
- <1><c8>: Abbrev Number: 8 (DW_TAG_array_type)
- <c9> DW_AT_type : <0xb1>
- <2><cd>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <ce> DW_AT_type : <0xd5>
- <d2> DW_AT_lower_bound : 0
- <d3> DW_AT_count : 4
- <2><d4>: Abbrev Number: 0
- <1><d5>: Abbrev Number: 10 (DW_TAG_base_type)
- <d6> DW_AT_name : (indirect string, offset: 0x128): sizetype
- <da> DW_AT_byte_size : 8
- <db> DW_AT_encoding : 7 (unsigned)
- <1><dc>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x130): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x16b): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 47
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x211): struct_btrfs_ioctl_send_args
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 39
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1fb): btrfs_ioctl_send_args
+ <41> DW_AT_byte_size : 72
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 401
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x17c): send_fd
+ <4a> DW_AT_type : <0xa0>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 402
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x198): clone_sources_count
+ <59> DW_AT_type : <0xb2>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 403
+ <60> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x1c9): clone_sources
+ <68> DW_AT_type : <0xc4>
+ <6c> DW_AT_decl_file : 2
+ <6d> DW_AT_decl_line : 404
+ <6f> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x1d7): parent_root
+ <77> DW_AT_type : <0xb2>
+ <7b> DW_AT_decl_file : 2
+ <7c> DW_AT_decl_line : 405
+ <7e> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><81>: Abbrev Number: 5 (DW_TAG_member)
+ <82> DW_AT_name : (indirect string, offset: 0x1e3): flags
+ <86> DW_AT_type : <0xb2>
+ <8a> DW_AT_decl_file : 2
+ <8b> DW_AT_decl_line : 406
+ <8d> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><90>: Abbrev Number: 5 (DW_TAG_member)
+ <91> DW_AT_name : (indirect string, offset: 0x1e9): reserved
+ <95> DW_AT_type : <0xc9>
+ <99> DW_AT_decl_file : 2
+ <9a> DW_AT_decl_line : 407
+ <9c> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><9f>: Abbrev Number: 0
+ <1><a0>: Abbrev Number: 3 (DW_TAG_typedef)
+ <a1> DW_AT_type : <0xab>
+ <a5> DW_AT_name : (indirect string, offset: 0x192): __s64
+ <a9> DW_AT_decl_file : 1
+ <aa> DW_AT_decl_line : 30
+ <1><ab>: Abbrev Number: 6 (DW_TAG_base_type)
+ <ac> DW_AT_name : (indirect string, offset: 0x184): long long int
+ <b0> DW_AT_encoding : 5 (signed)
+ <b1> DW_AT_byte_size : 8
+ <1><b2>: Abbrev Number: 3 (DW_TAG_typedef)
+ <b3> DW_AT_type : <0xbd>
+ <b7> DW_AT_name : (indirect string, offset: 0x1c3): __u64
+ <bb> DW_AT_decl_file : 1
+ <bc> DW_AT_decl_line : 31
+ <1><bd>: Abbrev Number: 6 (DW_TAG_base_type)
+ <be> DW_AT_name : (indirect string, offset: 0x1ac): long long unsigned int
+ <c2> DW_AT_encoding : 7 (unsigned)
+ <c3> DW_AT_byte_size : 8
+ <1><c4>: Abbrev Number: 7 (DW_TAG_pointer_type)
+ <c5> DW_AT_type : <0xb2>
+ <1><c9>: Abbrev Number: 8 (DW_TAG_array_type)
+ <ca> DW_AT_type : <0xb2>
+ <2><ce>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <cf> DW_AT_type : <0xd6>
+ <d3> DW_AT_lower_bound : 0
+ <d4> DW_AT_count : 4
+ <2><d5>: Abbrev Number: 0
+ <1><d6>: Abbrev Number: 10 (DW_TAG_base_type)
+ <d7> DW_AT_name : (indirect string, offset: 0x1f2): sizetype
+ <db> DW_AT_byte_size : 8
+ <dc> DW_AT_encoding : 7 (unsigned)
+ <1><dd>: Abbrev Number: 0
diff --git a/mpers-m32/struct_btrfs_ioctl_send_args.d2 b/mpers-m32/struct_btrfs_ioctl_send_args.d2
index e5dd66c..4b88319 100644
--- a/mpers-m32/struct_btrfs_ioctl_send_args.d2
+++ b/mpers-m32/struct_btrfs_ioctl_send_args.d2
@@ -1,100 +1,100 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0xa1): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x16b): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 47
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x147): struct_btrfs_ioctl_send_args
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x211): struct_btrfs_ioctl_send_args
DW_AT_decl_file : 3
DW_AT_decl_line : 39
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x131): btrfs_ioctl_send_args
+DW_AT_name : (indirect string, offset: 0x1fb): btrfs_ioctl_send_args
DW_AT_byte_size : 72
DW_AT_decl_file : 2
-DW_AT_decl_line : 399
-<2><44>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb2): send_fd
-DW_AT_type : <0x9f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 400
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xce): clone_sources_count
-DW_AT_type : <0xb1>
-DW_AT_decl_file : 2
DW_AT_decl_line : 401
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><62>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xff): clone_sources
-DW_AT_type : <0xc3>
+DW_AT_name : (indirect string, offset: 0x17c): send_fd
+DW_AT_type : <0xa0>
DW_AT_decl_file : 2
DW_AT_decl_line : 402
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><71>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10d): parent_root
-DW_AT_type : <0xb1>
+DW_AT_name : (indirect string, offset: 0x198): clone_sources_count
+DW_AT_type : <0xb2>
DW_AT_decl_file : 2
DW_AT_decl_line : 403
-DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><80>
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><63>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x119): flags
-DW_AT_type : <0xb1>
+DW_AT_name : (indirect string, offset: 0x1c9): clone_sources
+DW_AT_type : <0xc4>
DW_AT_decl_file : 2
DW_AT_decl_line : 404
-DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><8f>
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><72>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11f): reserved
-DW_AT_type : <0xc8>
+DW_AT_name : (indirect string, offset: 0x1d7): parent_root
+DW_AT_type : <0xb2>
DW_AT_decl_file : 2
DW_AT_decl_line : 405
+DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+<2><81>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1e3): flags
+DW_AT_type : <0xb2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 406
+DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+<2><90>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1e9): reserved
+DW_AT_type : <0xc9>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 407
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<1><9f>
+<1><a0>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xaa>
-DW_AT_name : (indirect string, offset: 0xc8): __s64
+DW_AT_type : <0xab>
+DW_AT_name : (indirect string, offset: 0x192): __s64
DW_AT_decl_file : 1
DW_AT_decl_line : 30
-<1><aa>
+<1><ab>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xba): long long int
+DW_AT_name : (indirect string, offset: 0x184): long long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 8
-<1><b1>
+<1><b2>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xbc>
-DW_AT_name : (indirect string, offset: 0xf9): __u64
+DW_AT_type : <0xbd>
+DW_AT_name : (indirect string, offset: 0x1c3): __u64
DW_AT_decl_file : 1
DW_AT_decl_line : 31
-<1><bc>
+<1><bd>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe2): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x1ac): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><c3>
+<1><c4>
Abbrev Number: 7 (DW_TAG_pointer_type)
-DW_AT_type : <0xb1>
-<1><c8>
+DW_AT_type : <0xb2>
+<1><c9>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0xb1>
-<2><cd>
+DW_AT_type : <0xb2>
+<2><ce>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0xd5>
+DW_AT_type : <0xd6>
DW_AT_lower_bound : 0
DW_AT_count : 4
-<1><d5>
+<1><d6>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x128): sizetype
+DW_AT_name : (indirect string, offset: 0x1f2): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
diff --git a/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d1 b/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d1
index 746a93c..c4f9723 100644
--- a/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d1
+++ b/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d1
@@ -1,238 +1,239 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x1eb (32-bit)
+ Length: 0x1ec (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_btrfs_ioctl_vol_args_v2.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_btrfs_ioctl_vol_args_v2.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x68): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0xa3): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 47
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x1c5): struct_btrfs_ioctl_vol_args_v2
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 43
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x1ad): btrfs_ioctl_vol_args_v2
- <40> DW_AT_byte_size : 4096
- <42> DW_AT_decl_file : 2
- <43> DW_AT_decl_line : 67
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xb4): fd
- <49> DW_AT_type : <0xe3>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 68
- <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><52>: Abbrev Number: 5 (DW_TAG_member)
- <53> DW_AT_name : (indirect string, offset: 0xcb): transid
- <57> DW_AT_type : <0xf5>
- <5b> DW_AT_decl_file : 2
- <5c> DW_AT_decl_line : 69
- <5d> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><60>: Abbrev Number: 5 (DW_TAG_member)
- <61> DW_AT_name : (indirect string, offset: 0xf0): flags
- <65> DW_AT_type : <0xf5>
- <69> DW_AT_decl_file : 2
- <6a> DW_AT_decl_line : 70
- <6b> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><6e>: Abbrev Number: 6 (DW_TAG_member)
- <6f> DW_AT_type : <0x78>
- <73> DW_AT_decl_file : 2
- <74> DW_AT_decl_line : 71
- <75> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><78>: Abbrev Number: 7 (DW_TAG_union_type)
- <79> DW_AT_byte_size : 32
- <7a> DW_AT_decl_file : 2
- <7b> DW_AT_decl_line : 71
- <3><7c>: Abbrev Number: 6 (DW_TAG_member)
- <7d> DW_AT_type : <0x86>
- <81> DW_AT_decl_file : 2
- <82> DW_AT_decl_line : 72
- <83> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><86>: Abbrev Number: 8 (DW_TAG_structure_type)
- <87> DW_AT_byte_size : 16
- <88> DW_AT_decl_file : 2
- <89> DW_AT_decl_line : 72
- <4><8a>: Abbrev Number: 5 (DW_TAG_member)
- <8b> DW_AT_name : (indirect string, offset: 0xf6): size
- <8f> DW_AT_type : <0xf5>
- <93> DW_AT_decl_file : 2
- <94> DW_AT_decl_line : 73
- <95> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><98>: Abbrev Number: 5 (DW_TAG_member)
- <99> DW_AT_name : (indirect string, offset: 0xfb): qgroup_inherit
- <9d> DW_AT_type : <0x107>
- <a1> DW_AT_decl_file : 2
- <a2> DW_AT_decl_line : 74
- <a3> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><a6>: Abbrev Number: 0
- <3><a7>: Abbrev Number: 5 (DW_TAG_member)
- <a8> DW_AT_name : (indirect string, offset: 0x196): unused
- <ac> DW_AT_type : <0x1cc>
- <b0> DW_AT_decl_file : 2
- <b1> DW_AT_decl_line : 76
- <b2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><b5>: Abbrev Number: 0
- <2><b6>: Abbrev Number: 6 (DW_TAG_member)
- <b7> DW_AT_type : <0xc0>
- <bb> DW_AT_decl_file : 2
- <bc> DW_AT_decl_line : 78
- <bd> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><c0>: Abbrev Number: 9 (DW_TAG_union_type)
- <c1> DW_AT_byte_size : 4040
- <c3> DW_AT_decl_file : 2
- <c4> DW_AT_decl_line : 78
- <3><c5>: Abbrev Number: 5 (DW_TAG_member)
- <c6> DW_AT_name : (indirect string, offset: 0x19d): name
- <ca> DW_AT_type : <0x1d9>
- <ce> DW_AT_decl_file : 2
- <cf> DW_AT_decl_line : 79
- <d0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><d3>: Abbrev Number: 5 (DW_TAG_member)
- <d4> DW_AT_name : (indirect string, offset: 0x1a7): devid
- <d8> DW_AT_type : <0xf5>
- <dc> DW_AT_decl_file : 2
- <dd> DW_AT_decl_line : 80
- <de> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><e1>: Abbrev Number: 0
- <2><e2>: Abbrev Number: 0
- <1><e3>: Abbrev Number: 3 (DW_TAG_typedef)
- <e4> DW_AT_type : <0xee>
- <e8> DW_AT_name : (indirect string, offset: 0xc5): __s64
- <ec> DW_AT_decl_file : 1
- <ed> DW_AT_decl_line : 30
- <1><ee>: Abbrev Number: 10 (DW_TAG_base_type)
- <ef> DW_AT_name : (indirect string, offset: 0xb7): long long int
- <f3> DW_AT_encoding : 5 (signed)
- <f4> DW_AT_byte_size : 8
- <1><f5>: Abbrev Number: 3 (DW_TAG_typedef)
- <f6> DW_AT_type : <0x100>
- <fa> DW_AT_name : (indirect string, offset: 0xea): __u64
- <fe> DW_AT_decl_file : 1
- <ff> DW_AT_decl_line : 31
- <1><100>: Abbrev Number: 10 (DW_TAG_base_type)
- <101> DW_AT_name : (indirect string, offset: 0xd3): long long unsigned int
- <105> DW_AT_encoding : 7 (unsigned)
- <106> DW_AT_byte_size : 8
- <1><107>: Abbrev Number: 11 (DW_TAG_pointer_type)
- <108> DW_AT_type : <0x10c>
- <1><10c>: Abbrev Number: 12 (DW_TAG_structure_type)
- <10d> DW_AT_name : (indirect string, offset: 0x181): btrfs_qgroup_inherit
- <111> DW_AT_byte_size : 72
- <112> DW_AT_decl_file : 2
- <113> DW_AT_decl_line : 51
- <2><114>: Abbrev Number: 5 (DW_TAG_member)
- <115> DW_AT_name : (indirect string, offset: 0xf0): flags
- <119> DW_AT_type : <0xf5>
- <11d> DW_AT_decl_file : 2
- <11e> DW_AT_decl_line : 52
- <11f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><122>: Abbrev Number: 5 (DW_TAG_member)
- <123> DW_AT_name : (indirect string, offset: 0x10a): num_qgroups
- <127> DW_AT_type : <0xf5>
- <12b> DW_AT_decl_file : 2
- <12c> DW_AT_decl_line : 53
- <12d> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><130>: Abbrev Number: 5 (DW_TAG_member)
- <131> DW_AT_name : (indirect string, offset: 0x116): num_ref_copies
- <135> DW_AT_type : <0xf5>
- <139> DW_AT_decl_file : 2
- <13a> DW_AT_decl_line : 54
- <13b> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><13e>: Abbrev Number: 5 (DW_TAG_member)
- <13f> DW_AT_name : (indirect string, offset: 0x125): num_excl_copies
- <143> DW_AT_type : <0xf5>
- <147> DW_AT_decl_file : 2
- <148> DW_AT_decl_line : 55
- <149> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><14c>: Abbrev Number: 5 (DW_TAG_member)
- <14d> DW_AT_name : (indirect string, offset: 0x135): lim
- <151> DW_AT_type : <0x169>
- <155> DW_AT_decl_file : 2
- <156> DW_AT_decl_line : 56
- <157> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><15a>: Abbrev Number: 5 (DW_TAG_member)
- <15b> DW_AT_name : (indirect string, offset: 0x170): qgroups
- <15f> DW_AT_type : <0x1b8>
- <163> DW_AT_decl_file : 2
- <164> DW_AT_decl_line : 57
- <165> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
- <2><168>: Abbrev Number: 0
- <1><169>: Abbrev Number: 12 (DW_TAG_structure_type)
- <16a> DW_AT_name : (indirect string, offset: 0x15d): btrfs_qgroup_limit
- <16e> DW_AT_byte_size : 40
- <16f> DW_AT_decl_file : 2
- <170> DW_AT_decl_line : 43
- <2><171>: Abbrev Number: 5 (DW_TAG_member)
- <172> DW_AT_name : (indirect string, offset: 0xf0): flags
- <176> DW_AT_type : <0xf5>
- <17a> DW_AT_decl_file : 2
- <17b> DW_AT_decl_line : 44
- <17c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><17f>: Abbrev Number: 5 (DW_TAG_member)
- <180> DW_AT_name : (indirect string, offset: 0x139): max_rfer
- <184> DW_AT_type : <0xf5>
- <188> DW_AT_decl_file : 2
- <189> DW_AT_decl_line : 45
- <18a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><18d>: Abbrev Number: 5 (DW_TAG_member)
- <18e> DW_AT_name : (indirect string, offset: 0x142): max_excl
- <192> DW_AT_type : <0xf5>
- <196> DW_AT_decl_file : 2
- <197> DW_AT_decl_line : 46
- <198> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><19b>: Abbrev Number: 5 (DW_TAG_member)
- <19c> DW_AT_name : (indirect string, offset: 0x14b): rsv_rfer
- <1a0> DW_AT_type : <0xf5>
- <1a4> DW_AT_decl_file : 2
- <1a5> DW_AT_decl_line : 47
- <1a6> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><1a9>: Abbrev Number: 5 (DW_TAG_member)
- <1aa> DW_AT_name : (indirect string, offset: 0x154): rsv_excl
- <1ae> DW_AT_type : <0xf5>
- <1b2> DW_AT_decl_file : 2
- <1b3> DW_AT_decl_line : 48
- <1b4> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><1b7>: Abbrev Number: 0
- <1><1b8>: Abbrev Number: 13 (DW_TAG_array_type)
- <1b9> DW_AT_type : <0xf5>
- <2><1bd>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <1be> DW_AT_type : <0x1c5>
- <1c2> DW_AT_lower_bound : 0
- <1c3> DW_AT_count : 0
- <2><1c4>: Abbrev Number: 0
- <1><1c5>: Abbrev Number: 15 (DW_TAG_base_type)
- <1c6> DW_AT_name : (indirect string, offset: 0x178): sizetype
- <1ca> DW_AT_byte_size : 8
- <1cb> DW_AT_encoding : 7 (unsigned)
- <1><1cc>: Abbrev Number: 13 (DW_TAG_array_type)
- <1cd> DW_AT_type : <0xf5>
- <2><1d1>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <1d2> DW_AT_type : <0x1c5>
- <1d6> DW_AT_lower_bound : 0
- <1d7> DW_AT_count : 4
- <2><1d8>: Abbrev Number: 0
- <1><1d9>: Abbrev Number: 13 (DW_TAG_array_type)
- <1da> DW_AT_type : <0x1e7>
- <2><1de>: Abbrev Number: 16 (DW_TAG_subrange_type)
- <1df> DW_AT_type : <0x1c5>
- <1e3> DW_AT_lower_bound : 0
- <1e4> DW_AT_count : 4040
- <2><1e6>: Abbrev Number: 0
- <1><1e7>: Abbrev Number: 10 (DW_TAG_base_type)
- <1e8> DW_AT_name : (indirect string, offset: 0x1a2): char
- <1ec> DW_AT_encoding : 8 (unsigned char)
- <1ed> DW_AT_byte_size : 1
- <1><1ee>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x132): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x16d): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 47
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x28f): struct_btrfs_ioctl_vol_args_v2
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 43
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x277): btrfs_ioctl_vol_args_v2
+ <41> DW_AT_byte_size : 4096
+ <43> DW_AT_decl_file : 2
+ <44> DW_AT_decl_line : 67
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x17e): fd
+ <4a> DW_AT_type : <0xe4>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 68
+ <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><53>: Abbrev Number: 5 (DW_TAG_member)
+ <54> DW_AT_name : (indirect string, offset: 0x195): transid
+ <58> DW_AT_type : <0xf6>
+ <5c> DW_AT_decl_file : 2
+ <5d> DW_AT_decl_line : 69
+ <5e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><61>: Abbrev Number: 5 (DW_TAG_member)
+ <62> DW_AT_name : (indirect string, offset: 0x1ba): flags
+ <66> DW_AT_type : <0xf6>
+ <6a> DW_AT_decl_file : 2
+ <6b> DW_AT_decl_line : 70
+ <6c> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><6f>: Abbrev Number: 6 (DW_TAG_member)
+ <70> DW_AT_type : <0x79>
+ <74> DW_AT_decl_file : 2
+ <75> DW_AT_decl_line : 71
+ <76> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><79>: Abbrev Number: 7 (DW_TAG_union_type)
+ <7a> DW_AT_byte_size : 32
+ <7b> DW_AT_decl_file : 2
+ <7c> DW_AT_decl_line : 71
+ <3><7d>: Abbrev Number: 6 (DW_TAG_member)
+ <7e> DW_AT_type : <0x87>
+ <82> DW_AT_decl_file : 2
+ <83> DW_AT_decl_line : 72
+ <84> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><87>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <88> DW_AT_byte_size : 16
+ <89> DW_AT_decl_file : 2
+ <8a> DW_AT_decl_line : 72
+ <4><8b>: Abbrev Number: 5 (DW_TAG_member)
+ <8c> DW_AT_name : (indirect string, offset: 0x1c0): size
+ <90> DW_AT_type : <0xf6>
+ <94> DW_AT_decl_file : 2
+ <95> DW_AT_decl_line : 73
+ <96> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><99>: Abbrev Number: 5 (DW_TAG_member)
+ <9a> DW_AT_name : (indirect string, offset: 0x1c5): qgroup_inherit
+ <9e> DW_AT_type : <0x108>
+ <a2> DW_AT_decl_file : 2
+ <a3> DW_AT_decl_line : 74
+ <a4> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><a7>: Abbrev Number: 0
+ <3><a8>: Abbrev Number: 5 (DW_TAG_member)
+ <a9> DW_AT_name : (indirect string, offset: 0x260): unused
+ <ad> DW_AT_type : <0x1cd>
+ <b1> DW_AT_decl_file : 2
+ <b2> DW_AT_decl_line : 76
+ <b3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><b6>: Abbrev Number: 0
+ <2><b7>: Abbrev Number: 6 (DW_TAG_member)
+ <b8> DW_AT_type : <0xc1>
+ <bc> DW_AT_decl_file : 2
+ <bd> DW_AT_decl_line : 78
+ <be> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><c1>: Abbrev Number: 9 (DW_TAG_union_type)
+ <c2> DW_AT_byte_size : 4040
+ <c4> DW_AT_decl_file : 2
+ <c5> DW_AT_decl_line : 78
+ <3><c6>: Abbrev Number: 5 (DW_TAG_member)
+ <c7> DW_AT_name : (indirect string, offset: 0x267): name
+ <cb> DW_AT_type : <0x1da>
+ <cf> DW_AT_decl_file : 2
+ <d0> DW_AT_decl_line : 79
+ <d1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><d4>: Abbrev Number: 5 (DW_TAG_member)
+ <d5> DW_AT_name : (indirect string, offset: 0x271): devid
+ <d9> DW_AT_type : <0xf6>
+ <dd> DW_AT_decl_file : 2
+ <de> DW_AT_decl_line : 80
+ <df> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><e2>: Abbrev Number: 0
+ <2><e3>: Abbrev Number: 0
+ <1><e4>: Abbrev Number: 3 (DW_TAG_typedef)
+ <e5> DW_AT_type : <0xef>
+ <e9> DW_AT_name : (indirect string, offset: 0x18f): __s64
+ <ed> DW_AT_decl_file : 1
+ <ee> DW_AT_decl_line : 30
+ <1><ef>: Abbrev Number: 10 (DW_TAG_base_type)
+ <f0> DW_AT_name : (indirect string, offset: 0x181): long long int
+ <f4> DW_AT_encoding : 5 (signed)
+ <f5> DW_AT_byte_size : 8
+ <1><f6>: Abbrev Number: 3 (DW_TAG_typedef)
+ <f7> DW_AT_type : <0x101>
+ <fb> DW_AT_name : (indirect string, offset: 0x1b4): __u64
+ <ff> DW_AT_decl_file : 1
+ <100> DW_AT_decl_line : 31
+ <1><101>: Abbrev Number: 10 (DW_TAG_base_type)
+ <102> DW_AT_name : (indirect string, offset: 0x19d): long long unsigned int
+ <106> DW_AT_encoding : 7 (unsigned)
+ <107> DW_AT_byte_size : 8
+ <1><108>: Abbrev Number: 11 (DW_TAG_pointer_type)
+ <109> DW_AT_type : <0x10d>
+ <1><10d>: Abbrev Number: 12 (DW_TAG_structure_type)
+ <10e> DW_AT_name : (indirect string, offset: 0x24b): btrfs_qgroup_inherit
+ <112> DW_AT_byte_size : 72
+ <113> DW_AT_decl_file : 2
+ <114> DW_AT_decl_line : 51
+ <2><115>: Abbrev Number: 5 (DW_TAG_member)
+ <116> DW_AT_name : (indirect string, offset: 0x1ba): flags
+ <11a> DW_AT_type : <0xf6>
+ <11e> DW_AT_decl_file : 2
+ <11f> DW_AT_decl_line : 52
+ <120> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><123>: Abbrev Number: 5 (DW_TAG_member)
+ <124> DW_AT_name : (indirect string, offset: 0x1d4): num_qgroups
+ <128> DW_AT_type : <0xf6>
+ <12c> DW_AT_decl_file : 2
+ <12d> DW_AT_decl_line : 53
+ <12e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><131>: Abbrev Number: 5 (DW_TAG_member)
+ <132> DW_AT_name : (indirect string, offset: 0x1e0): num_ref_copies
+ <136> DW_AT_type : <0xf6>
+ <13a> DW_AT_decl_file : 2
+ <13b> DW_AT_decl_line : 54
+ <13c> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><13f>: Abbrev Number: 5 (DW_TAG_member)
+ <140> DW_AT_name : (indirect string, offset: 0x1ef): num_excl_copies
+ <144> DW_AT_type : <0xf6>
+ <148> DW_AT_decl_file : 2
+ <149> DW_AT_decl_line : 55
+ <14a> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><14d>: Abbrev Number: 5 (DW_TAG_member)
+ <14e> DW_AT_name : (indirect string, offset: 0x1ff): lim
+ <152> DW_AT_type : <0x16a>
+ <156> DW_AT_decl_file : 2
+ <157> DW_AT_decl_line : 56
+ <158> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><15b>: Abbrev Number: 5 (DW_TAG_member)
+ <15c> DW_AT_name : (indirect string, offset: 0x23a): qgroups
+ <160> DW_AT_type : <0x1b9>
+ <164> DW_AT_decl_file : 2
+ <165> DW_AT_decl_line : 57
+ <166> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
+ <2><169>: Abbrev Number: 0
+ <1><16a>: Abbrev Number: 12 (DW_TAG_structure_type)
+ <16b> DW_AT_name : (indirect string, offset: 0x227): btrfs_qgroup_limit
+ <16f> DW_AT_byte_size : 40
+ <170> DW_AT_decl_file : 2
+ <171> DW_AT_decl_line : 43
+ <2><172>: Abbrev Number: 5 (DW_TAG_member)
+ <173> DW_AT_name : (indirect string, offset: 0x1ba): flags
+ <177> DW_AT_type : <0xf6>
+ <17b> DW_AT_decl_file : 2
+ <17c> DW_AT_decl_line : 44
+ <17d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><180>: Abbrev Number: 5 (DW_TAG_member)
+ <181> DW_AT_name : (indirect string, offset: 0x203): max_rfer
+ <185> DW_AT_type : <0xf6>
+ <189> DW_AT_decl_file : 2
+ <18a> DW_AT_decl_line : 45
+ <18b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><18e>: Abbrev Number: 5 (DW_TAG_member)
+ <18f> DW_AT_name : (indirect string, offset: 0x20c): max_excl
+ <193> DW_AT_type : <0xf6>
+ <197> DW_AT_decl_file : 2
+ <198> DW_AT_decl_line : 46
+ <199> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><19c>: Abbrev Number: 5 (DW_TAG_member)
+ <19d> DW_AT_name : (indirect string, offset: 0x215): rsv_rfer
+ <1a1> DW_AT_type : <0xf6>
+ <1a5> DW_AT_decl_file : 2
+ <1a6> DW_AT_decl_line : 47
+ <1a7> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><1aa>: Abbrev Number: 5 (DW_TAG_member)
+ <1ab> DW_AT_name : (indirect string, offset: 0x21e): rsv_excl
+ <1af> DW_AT_type : <0xf6>
+ <1b3> DW_AT_decl_file : 2
+ <1b4> DW_AT_decl_line : 48
+ <1b5> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><1b8>: Abbrev Number: 0
+ <1><1b9>: Abbrev Number: 13 (DW_TAG_array_type)
+ <1ba> DW_AT_type : <0xf6>
+ <2><1be>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <1bf> DW_AT_type : <0x1c6>
+ <1c3> DW_AT_lower_bound : 0
+ <1c4> DW_AT_count : 0
+ <2><1c5>: Abbrev Number: 0
+ <1><1c6>: Abbrev Number: 15 (DW_TAG_base_type)
+ <1c7> DW_AT_name : (indirect string, offset: 0x242): sizetype
+ <1cb> DW_AT_byte_size : 8
+ <1cc> DW_AT_encoding : 7 (unsigned)
+ <1><1cd>: Abbrev Number: 13 (DW_TAG_array_type)
+ <1ce> DW_AT_type : <0xf6>
+ <2><1d2>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <1d3> DW_AT_type : <0x1c6>
+ <1d7> DW_AT_lower_bound : 0
+ <1d8> DW_AT_count : 4
+ <2><1d9>: Abbrev Number: 0
+ <1><1da>: Abbrev Number: 13 (DW_TAG_array_type)
+ <1db> DW_AT_type : <0x1e8>
+ <2><1df>: Abbrev Number: 16 (DW_TAG_subrange_type)
+ <1e0> DW_AT_type : <0x1c6>
+ <1e4> DW_AT_lower_bound : 0
+ <1e5> DW_AT_count : 4040
+ <2><1e7>: Abbrev Number: 0
+ <1><1e8>: Abbrev Number: 10 (DW_TAG_base_type)
+ <1e9> DW_AT_name : (indirect string, offset: 0x26c): char
+ <1ed> DW_AT_encoding : 8 (unsigned char)
+ <1ee> DW_AT_byte_size : 1
+ <1><1ef>: Abbrev Number: 0
diff --git a/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d2 b/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d2
index 6ed8b10..1c7bbd5 100644
--- a/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d2
+++ b/mpers-m32/struct_btrfs_ioctl_vol_args_v2.d2
@@ -1,257 +1,257 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0xa3): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x16d): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 47
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x1c5): struct_btrfs_ioctl_vol_args_v2
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x28f): struct_btrfs_ioctl_vol_args_v2
DW_AT_decl_file : 3
DW_AT_decl_line : 43
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1ad): btrfs_ioctl_vol_args_v2
+DW_AT_name : (indirect string, offset: 0x277): btrfs_ioctl_vol_args_v2
DW_AT_byte_size : 4096
DW_AT_decl_file : 2
DW_AT_decl_line : 67
-<2><44>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb4): fd
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x17e): fd
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 68
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><52>
+<2><53>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcb): transid
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x195): transid
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 69
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><60>
+<2><61>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): flags
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1ba): flags
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 70
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><6e>
+<2><6f>
Abbrev Number: 6 (DW_TAG_member)
-DW_AT_type : <0x78>
+DW_AT_type : <0x79>
DW_AT_decl_file : 2
DW_AT_decl_line : 71
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><78>
+<2><79>
Abbrev Number: 7 (DW_TAG_union_type)
DW_AT_byte_size : 32
DW_AT_decl_file : 2
DW_AT_decl_line : 71
-<3><7c>
+<3><7d>
Abbrev Number: 6 (DW_TAG_member)
-DW_AT_type : <0x86>
+DW_AT_type : <0x87>
DW_AT_decl_file : 2
DW_AT_decl_line : 72
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><86>
+<3><87>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 2
DW_AT_decl_line : 72
-<4><8a>
+<4><8b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf6): size
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1c0): size
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 73
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><98>
+<4><99>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfb): qgroup_inherit
-DW_AT_type : <0x107>
+DW_AT_name : (indirect string, offset: 0x1c5): qgroup_inherit
+DW_AT_type : <0x108>
DW_AT_decl_file : 2
DW_AT_decl_line : 74
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<3><a7>
+<3><a8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x196): unused
-DW_AT_type : <0x1cc>
+DW_AT_name : (indirect string, offset: 0x260): unused
+DW_AT_type : <0x1cd>
DW_AT_decl_file : 2
DW_AT_decl_line : 76
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><b6>
+<2><b7>
Abbrev Number: 6 (DW_TAG_member)
-DW_AT_type : <0xc0>
+DW_AT_type : <0xc1>
DW_AT_decl_file : 2
DW_AT_decl_line : 78
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><c0>
+<2><c1>
Abbrev Number: 9 (DW_TAG_union_type)
DW_AT_byte_size : 4040
DW_AT_decl_file : 2
DW_AT_decl_line : 78
-<3><c5>
+<3><c6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x19d): name
-DW_AT_type : <0x1d9>
+DW_AT_name : (indirect string, offset: 0x267): name
+DW_AT_type : <0x1da>
DW_AT_decl_file : 2
DW_AT_decl_line : 79
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><d3>
+<3><d4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1a7): devid
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x271): devid
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 80
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><e3>
+<1><e4>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xee>
-DW_AT_name : (indirect string, offset: 0xc5): __s64
+DW_AT_type : <0xef>
+DW_AT_name : (indirect string, offset: 0x18f): __s64
DW_AT_decl_file : 1
DW_AT_decl_line : 30
-<1><ee>
+<1><ef>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb7): long long int
+DW_AT_name : (indirect string, offset: 0x181): long long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 8
-<1><f5>
+<1><f6>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x100>
-DW_AT_name : (indirect string, offset: 0xea): __u64
+DW_AT_type : <0x101>
+DW_AT_name : (indirect string, offset: 0x1b4): __u64
DW_AT_decl_file : 1
DW_AT_decl_line : 31
-<1><100>
+<1><101>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd3): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x19d): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><107>
+<1><108>
Abbrev Number: 11 (DW_TAG_pointer_type)
-DW_AT_type : <0x10c>
-<1><10c>
+DW_AT_type : <0x10d>
+<1><10d>
Abbrev Number: 12 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x181): btrfs_qgroup_inherit
+DW_AT_name : (indirect string, offset: 0x24b): btrfs_qgroup_inherit
DW_AT_byte_size : 72
DW_AT_decl_file : 2
DW_AT_decl_line : 51
-<2><114>
+<2><115>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): flags
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1ba): flags
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 52
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><122>
+<2><123>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10a): num_qgroups
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1d4): num_qgroups
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 53
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><130>
+<2><131>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x116): num_ref_copies
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1e0): num_ref_copies
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 54
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><13e>
+<2><13f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x125): num_excl_copies
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1ef): num_excl_copies
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 55
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><14c>
+<2><14d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x135): lim
-DW_AT_type : <0x169>
+DW_AT_name : (indirect string, offset: 0x1ff): lim
+DW_AT_type : <0x16a>
DW_AT_decl_file : 2
DW_AT_decl_line : 56
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><15a>
+<2><15b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x170): qgroups
-DW_AT_type : <0x1b8>
+DW_AT_name : (indirect string, offset: 0x23a): qgroups
+DW_AT_type : <0x1b9>
DW_AT_decl_file : 2
DW_AT_decl_line : 57
DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
-<1><169>
+<1><16a>
Abbrev Number: 12 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x15d): btrfs_qgroup_limit
+DW_AT_name : (indirect string, offset: 0x227): btrfs_qgroup_limit
DW_AT_byte_size : 40
DW_AT_decl_file : 2
DW_AT_decl_line : 43
-<2><171>
+<2><172>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): flags
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1ba): flags
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 44
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><17f>
+<2><180>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x139): max_rfer
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x203): max_rfer
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 45
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><18d>
+<2><18e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x142): max_excl
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x20c): max_excl
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 46
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><19b>
+<2><19c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14b): rsv_rfer
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x215): rsv_rfer
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 47
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><1a9>
+<2><1aa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x154): rsv_excl
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x21e): rsv_excl
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<1><1b8>
+<1><1b9>
Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0xf5>
-<2><1bd>
+DW_AT_type : <0xf6>
+<2><1be>
Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x1c5>
+DW_AT_type : <0x1c6>
DW_AT_lower_bound : 0
DW_AT_count : 0
-<1><1c5>
+<1><1c6>
Abbrev Number: 15 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x178): sizetype
+DW_AT_name : (indirect string, offset: 0x242): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><1cc>
+<1><1cd>
Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0xf5>
-<2><1d1>
+DW_AT_type : <0xf6>
+<2><1d2>
Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x1c5>
+DW_AT_type : <0x1c6>
DW_AT_lower_bound : 0
DW_AT_count : 4
-<1><1d9>
+<1><1da>
Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x1e7>
-<2><1de>
+DW_AT_type : <0x1e8>
+<2><1df>
Abbrev Number: 16 (DW_TAG_subrange_type)
-DW_AT_type : <0x1c5>
+DW_AT_type : <0x1c6>
DW_AT_lower_bound : 0
DW_AT_count : 4040
-<1><1e7>
+<1><1e8>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1a2): char
+DW_AT_name : (indirect string, offset: 0x26c): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
diff --git a/mpers-m32/struct_ff_effect.d1 b/mpers-m32/struct_ff_effect.d1
index 45c3928..7ac19e0 100644
--- a/mpers-m32/struct_ff_effect.d1
+++ b/mpers-m32/struct_ff_effect.d1
@@ -1,366 +1,367 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x30d (32-bit)
+ Length: 0x30e (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_ff_effect.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_ff_effect.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5a): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 42
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x2cd): struct_ff_effect
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 38
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x2c3): ff_effect
- <40> DW_AT_byte_size : 44
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 166
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa6): type
- <48> DW_AT_type : <0xe3>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 167
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xc0): id
- <56> DW_AT_type : <0xf5>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 168
- <5c> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xcf): direction
- <64> DW_AT_type : <0xe3>
- <68> DW_AT_decl_file : 2
- <69> DW_AT_decl_line : 169
- <6a> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xd9): trigger
- <72> DW_AT_type : <0x107>
- <76> DW_AT_decl_file : 2
- <77> DW_AT_decl_line : 170
- <78> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xfc): replay
- <80> DW_AT_type : <0x12c>
- <84> DW_AT_decl_file : 2
- <85> DW_AT_decl_line : 171
- <86> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x11a): u
- <8e> DW_AT_type : <0x97>
- <92> DW_AT_decl_file : 2
- <93> DW_AT_decl_line : 178
- <94> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><97>: Abbrev Number: 6 (DW_TAG_union_type)
- <98> DW_AT_byte_size : 28
- <99> DW_AT_decl_file : 2
- <9a> DW_AT_decl_line : 172
- <3><9b>: Abbrev Number: 5 (DW_TAG_member)
- <9c> DW_AT_name : (indirect string, offset: 0x11c): constant
- <a0> DW_AT_type : <0x151>
- <a4> DW_AT_decl_file : 2
- <a5> DW_AT_decl_line : 173
- <a6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><a9>: Abbrev Number: 5 (DW_TAG_member)
- <aa> DW_AT_name : (indirect string, offset: 0x185): ramp
- <ae> DW_AT_type : <0x1b7>
- <b2> DW_AT_decl_file : 2
- <b3> DW_AT_decl_line : 174
- <b4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><b7>: Abbrev Number: 5 (DW_TAG_member)
- <b8> DW_AT_name : (indirect string, offset: 0x1af): periodic
- <bc> DW_AT_type : <0x1ea>
- <c0> DW_AT_decl_file : 2
- <c1> DW_AT_decl_line : 175
- <c2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><c5>: Abbrev Number: 5 (DW_TAG_member)
- <c6> DW_AT_name : (indirect string, offset: 0x21c): condition
- <ca> DW_AT_type : <0x27a>
- <ce> DW_AT_decl_file : 2
- <cf> DW_AT_decl_line : 176
- <d0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><d3>: Abbrev Number: 5 (DW_TAG_member)
- <d4> DW_AT_name : (indirect string, offset: 0x28b): rumble
- <d8> DW_AT_type : <0x2eb>
- <dc> DW_AT_decl_file : 2
- <dd> DW_AT_decl_line : 177
- <de> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><e1>: Abbrev Number: 0
- <2><e2>: Abbrev Number: 0
- <1><e3>: Abbrev Number: 3 (DW_TAG_typedef)
- <e4> DW_AT_type : <0xee>
- <e8> DW_AT_name : (indirect string, offset: 0xba): __u16
- <ec> DW_AT_decl_file : 1
- <ed> DW_AT_decl_line : 26
- <1><ee>: Abbrev Number: 7 (DW_TAG_base_type)
- <ef> DW_AT_name : (indirect string, offset: 0xab): unsigned short
- <f3> DW_AT_encoding : 7 (unsigned)
- <f4> DW_AT_byte_size : 2
- <1><f5>: Abbrev Number: 3 (DW_TAG_typedef)
- <f6> DW_AT_type : <0x100>
- <fa> DW_AT_name : (indirect string, offset: 0xc9): __s16
- <fe> DW_AT_decl_file : 1
- <ff> DW_AT_decl_line : 25
- <1><100>: Abbrev Number: 7 (DW_TAG_base_type)
- <101> DW_AT_name : (indirect string, offset: 0xc3): short
- <105> DW_AT_encoding : 5 (signed)
- <106> DW_AT_byte_size : 2
- <1><107>: Abbrev Number: 4 (DW_TAG_structure_type)
- <108> DW_AT_name : (indirect string, offset: 0xf1): ff_trigger
- <10c> DW_AT_byte_size : 4
- <10d> DW_AT_decl_file : 2
- <10e> DW_AT_decl_line : 125
- <2><10f>: Abbrev Number: 5 (DW_TAG_member)
- <110> DW_AT_name : (indirect string, offset: 0xe1): button
- <114> DW_AT_type : <0xe3>
- <118> DW_AT_decl_file : 2
- <119> DW_AT_decl_line : 126
- <11a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><11d>: Abbrev Number: 5 (DW_TAG_member)
- <11e> DW_AT_name : (indirect string, offset: 0xe8): interval
- <122> DW_AT_type : <0xe3>
- <126> DW_AT_decl_file : 2
- <127> DW_AT_decl_line : 127
- <128> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><12b>: Abbrev Number: 0
- <1><12c>: Abbrev Number: 4 (DW_TAG_structure_type)
- <12d> DW_AT_name : (indirect string, offset: 0x110): ff_replay
- <131> DW_AT_byte_size : 4
- <132> DW_AT_decl_file : 2
- <133> DW_AT_decl_line : 121
- <2><134>: Abbrev Number: 5 (DW_TAG_member)
- <135> DW_AT_name : (indirect string, offset: 0x103): length
- <139> DW_AT_type : <0xe3>
- <13d> DW_AT_decl_file : 2
- <13e> DW_AT_decl_line : 122
- <13f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><142>: Abbrev Number: 5 (DW_TAG_member)
- <143> DW_AT_name : (indirect string, offset: 0x10a): delay
- <147> DW_AT_type : <0xe3>
- <14b> DW_AT_decl_file : 2
- <14c> DW_AT_decl_line : 123
- <14d> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><150>: Abbrev Number: 0
- <1><151>: Abbrev Number: 4 (DW_TAG_structure_type)
- <152> DW_AT_name : (indirect string, offset: 0x172): ff_constant_effect
- <156> DW_AT_byte_size : 10
- <157> DW_AT_decl_file : 2
- <158> DW_AT_decl_line : 135
- <2><159>: Abbrev Number: 5 (DW_TAG_member)
- <15a> DW_AT_name : (indirect string, offset: 0x125): level
- <15e> DW_AT_type : <0xf5>
- <162> DW_AT_decl_file : 2
- <163> DW_AT_decl_line : 136
- <164> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><167>: Abbrev Number: 5 (DW_TAG_member)
- <168> DW_AT_name : (indirect string, offset: 0x12b): envelope
- <16c> DW_AT_type : <0x176>
- <170> DW_AT_decl_file : 2
- <171> DW_AT_decl_line : 137
- <172> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><175>: Abbrev Number: 0
- <1><176>: Abbrev Number: 4 (DW_TAG_structure_type)
- <177> DW_AT_name : (indirect string, offset: 0x166): ff_envelope
- <17b> DW_AT_byte_size : 8
- <17c> DW_AT_decl_file : 2
- <17d> DW_AT_decl_line : 129
- <2><17e>: Abbrev Number: 5 (DW_TAG_member)
- <17f> DW_AT_name : (indirect string, offset: 0x134): attack_length
- <183> DW_AT_type : <0xe3>
- <187> DW_AT_decl_file : 2
- <188> DW_AT_decl_line : 130
- <189> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><18c>: Abbrev Number: 5 (DW_TAG_member)
- <18d> DW_AT_name : (indirect string, offset: 0x142): attack_level
- <191> DW_AT_type : <0xe3>
- <195> DW_AT_decl_file : 2
- <196> DW_AT_decl_line : 131
- <197> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><19a>: Abbrev Number: 5 (DW_TAG_member)
- <19b> DW_AT_name : (indirect string, offset: 0x14f): fade_length
- <19f> DW_AT_type : <0xe3>
- <1a3> DW_AT_decl_file : 2
- <1a4> DW_AT_decl_line : 132
- <1a5> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><1a8>: Abbrev Number: 5 (DW_TAG_member)
- <1a9> DW_AT_name : (indirect string, offset: 0x15b): fade_level
- <1ad> DW_AT_type : <0xe3>
- <1b1> DW_AT_decl_file : 2
- <1b2> DW_AT_decl_line : 133
- <1b3> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
- <2><1b6>: Abbrev Number: 0
- <1><1b7>: Abbrev Number: 4 (DW_TAG_structure_type)
- <1b8> DW_AT_name : (indirect string, offset: 0x1a0): ff_ramp_effect
- <1bc> DW_AT_byte_size : 12
- <1bd> DW_AT_decl_file : 2
- <1be> DW_AT_decl_line : 139
- <2><1bf>: Abbrev Number: 5 (DW_TAG_member)
- <1c0> DW_AT_name : (indirect string, offset: 0x18a): start_level
- <1c4> DW_AT_type : <0xf5>
- <1c8> DW_AT_decl_file : 2
- <1c9> DW_AT_decl_line : 140
- <1ca> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><1cd>: Abbrev Number: 5 (DW_TAG_member)
- <1ce> DW_AT_name : (indirect string, offset: 0x196): end_level
- <1d2> DW_AT_type : <0xf5>
- <1d6> DW_AT_decl_file : 2
- <1d7> DW_AT_decl_line : 141
- <1d8> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><1db>: Abbrev Number: 5 (DW_TAG_member)
- <1dc> DW_AT_name : (indirect string, offset: 0x12b): envelope
- <1e0> DW_AT_type : <0x176>
- <1e4> DW_AT_decl_file : 2
- <1e5> DW_AT_decl_line : 142
- <1e6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><1e9>: Abbrev Number: 0
- <1><1ea>: Abbrev Number: 4 (DW_TAG_structure_type)
- <1eb> DW_AT_name : (indirect string, offset: 0x209): ff_periodic_effect
- <1ef> DW_AT_byte_size : 28
- <1f0> DW_AT_decl_file : 2
- <1f1> DW_AT_decl_line : 152
- <2><1f2>: Abbrev Number: 5 (DW_TAG_member)
- <1f3> DW_AT_name : (indirect string, offset: 0x1b8): waveform
- <1f7> DW_AT_type : <0xe3>
- <1fb> DW_AT_decl_file : 2
- <1fc> DW_AT_decl_line : 153
- <1fd> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><200>: Abbrev Number: 5 (DW_TAG_member)
- <201> DW_AT_name : (indirect string, offset: 0x1c1): period
- <205> DW_AT_type : <0xe3>
- <209> DW_AT_decl_file : 2
- <20a> DW_AT_decl_line : 154
- <20b> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><20e>: Abbrev Number: 5 (DW_TAG_member)
- <20f> DW_AT_name : (indirect string, offset: 0x1c8): magnitude
- <213> DW_AT_type : <0xf5>
- <217> DW_AT_decl_file : 2
- <218> DW_AT_decl_line : 155
- <219> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><21c>: Abbrev Number: 5 (DW_TAG_member)
- <21d> DW_AT_name : (indirect string, offset: 0x1d2): offset
- <221> DW_AT_type : <0xf5>
- <225> DW_AT_decl_file : 2
- <226> DW_AT_decl_line : 156
- <227> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
- <2><22a>: Abbrev Number: 5 (DW_TAG_member)
- <22b> DW_AT_name : (indirect string, offset: 0x1d9): phase
- <22f> DW_AT_type : <0xe3>
- <233> DW_AT_decl_file : 2
- <234> DW_AT_decl_line : 157
- <235> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><238>: Abbrev Number: 5 (DW_TAG_member)
- <239> DW_AT_name : (indirect string, offset: 0x12b): envelope
- <23d> DW_AT_type : <0x176>
- <241> DW_AT_decl_file : 2
- <242> DW_AT_decl_line : 158
- <243> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><246>: Abbrev Number: 5 (DW_TAG_member)
- <247> DW_AT_name : (indirect string, offset: 0x1df): custom_len
- <24b> DW_AT_type : <0x263>
- <24f> DW_AT_decl_file : 2
- <250> DW_AT_decl_line : 159
- <251> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><254>: Abbrev Number: 5 (DW_TAG_member)
- <255> DW_AT_name : (indirect string, offset: 0x1fd): custom_data
- <259> DW_AT_type : <0x275>
- <25d> DW_AT_decl_file : 2
- <25e> DW_AT_decl_line : 160
- <25f> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><262>: Abbrev Number: 0
- <1><263>: Abbrev Number: 3 (DW_TAG_typedef)
- <264> DW_AT_type : <0x26e>
- <268> DW_AT_name : (indirect string, offset: 0x1f7): __u32
- <26c> DW_AT_decl_file : 1
- <26d> DW_AT_decl_line : 28
- <1><26e>: Abbrev Number: 7 (DW_TAG_base_type)
- <26f> DW_AT_name : (indirect string, offset: 0x1ea): unsigned int
- <273> DW_AT_encoding : 7 (unsigned)
- <274> DW_AT_byte_size : 4
- <1><275>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <276> DW_AT_type : <0xf5>
- <1><27a>: Abbrev Number: 9 (DW_TAG_array_type)
- <27b> DW_AT_type : <0x287>
- <2><27f>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <280> DW_AT_type : <0x2e4>
- <284> DW_AT_lower_bound : 0
- <285> DW_AT_count : 2
- <2><286>: Abbrev Number: 0
- <1><287>: Abbrev Number: 4 (DW_TAG_structure_type)
- <288> DW_AT_name : (indirect string, offset: 0x26e): ff_condition_effect
- <28c> DW_AT_byte_size : 12
- <28d> DW_AT_decl_file : 2
- <28e> DW_AT_decl_line : 144
- <2><28f>: Abbrev Number: 5 (DW_TAG_member)
- <290> DW_AT_name : (indirect string, offset: 0x226): right_saturation
- <294> DW_AT_type : <0xe3>
- <298> DW_AT_decl_file : 2
- <299> DW_AT_decl_line : 145
- <29a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><29d>: Abbrev Number: 5 (DW_TAG_member)
- <29e> DW_AT_name : (indirect string, offset: 0x237): left_saturation
- <2a2> DW_AT_type : <0xe3>
- <2a6> DW_AT_decl_file : 2
- <2a7> DW_AT_decl_line : 146
- <2a8> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><2ab>: Abbrev Number: 5 (DW_TAG_member)
- <2ac> DW_AT_name : (indirect string, offset: 0x247): right_coeff
- <2b0> DW_AT_type : <0xf5>
- <2b4> DW_AT_decl_file : 2
- <2b5> DW_AT_decl_line : 147
- <2b6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><2b9>: Abbrev Number: 5 (DW_TAG_member)
- <2ba> DW_AT_name : (indirect string, offset: 0x253): left_coeff
- <2be> DW_AT_type : <0xf5>
- <2c2> DW_AT_decl_file : 2
- <2c3> DW_AT_decl_line : 148
- <2c4> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
- <2><2c7>: Abbrev Number: 5 (DW_TAG_member)
- <2c8> DW_AT_name : (indirect string, offset: 0x25e): deadband
- <2cc> DW_AT_type : <0xe3>
- <2d0> DW_AT_decl_file : 2
- <2d1> DW_AT_decl_line : 149
- <2d2> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><2d5>: Abbrev Number: 5 (DW_TAG_member)
- <2d6> DW_AT_name : (indirect string, offset: 0x267): center
- <2da> DW_AT_type : <0xf5>
- <2de> DW_AT_decl_file : 2
- <2df> DW_AT_decl_line : 150
- <2e0> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><2e3>: Abbrev Number: 0
- <1><2e4>: Abbrev Number: 11 (DW_TAG_base_type)
- <2e5> DW_AT_name : (indirect string, offset: 0x282): sizetype
- <2e9> DW_AT_byte_size : 8
- <2ea> DW_AT_encoding : 7 (unsigned)
- <1><2eb>: Abbrev Number: 4 (DW_TAG_structure_type)
- <2ec> DW_AT_name : (indirect string, offset: 0x2b2): ff_rumble_effect
- <2f0> DW_AT_byte_size : 4
- <2f1> DW_AT_decl_file : 2
- <2f2> DW_AT_decl_line : 162
- <2><2f3>: Abbrev Number: 5 (DW_TAG_member)
- <2f4> DW_AT_name : (indirect string, offset: 0x292): strong_magnitude
- <2f8> DW_AT_type : <0xe3>
- <2fc> DW_AT_decl_file : 2
- <2fd> DW_AT_decl_line : 163
- <2fe> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><301>: Abbrev Number: 5 (DW_TAG_member)
- <302> DW_AT_name : (indirect string, offset: 0x2a3): weak_magnitude
- <306> DW_AT_type : <0xe3>
- <30a> DW_AT_decl_file : 2
- <30b> DW_AT_decl_line : 164
- <30c> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><30f>: Abbrev Number: 0
- <1><310>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x124): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 42
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x397): struct_ff_effect
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 38
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x38d): ff_effect
+ <41> DW_AT_byte_size : 44
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 166
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x170): type
+ <49> DW_AT_type : <0xe4>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 167
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x18a): id
+ <57> DW_AT_type : <0xf6>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 168
+ <5d> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x199): direction
+ <65> DW_AT_type : <0xe4>
+ <69> DW_AT_decl_file : 2
+ <6a> DW_AT_decl_line : 169
+ <6b> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1a3): trigger
+ <73> DW_AT_type : <0x108>
+ <77> DW_AT_decl_file : 2
+ <78> DW_AT_decl_line : 170
+ <79> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1c6): replay
+ <81> DW_AT_type : <0x12d>
+ <85> DW_AT_decl_file : 2
+ <86> DW_AT_decl_line : 171
+ <87> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1e4): u
+ <8f> DW_AT_type : <0x98>
+ <93> DW_AT_decl_file : 2
+ <94> DW_AT_decl_line : 178
+ <95> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><98>: Abbrev Number: 6 (DW_TAG_union_type)
+ <99> DW_AT_byte_size : 28
+ <9a> DW_AT_decl_file : 2
+ <9b> DW_AT_decl_line : 172
+ <3><9c>: Abbrev Number: 5 (DW_TAG_member)
+ <9d> DW_AT_name : (indirect string, offset: 0x1e6): constant
+ <a1> DW_AT_type : <0x152>
+ <a5> DW_AT_decl_file : 2
+ <a6> DW_AT_decl_line : 173
+ <a7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><aa>: Abbrev Number: 5 (DW_TAG_member)
+ <ab> DW_AT_name : (indirect string, offset: 0x24f): ramp
+ <af> DW_AT_type : <0x1b8>
+ <b3> DW_AT_decl_file : 2
+ <b4> DW_AT_decl_line : 174
+ <b5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><b8>: Abbrev Number: 5 (DW_TAG_member)
+ <b9> DW_AT_name : (indirect string, offset: 0x279): periodic
+ <bd> DW_AT_type : <0x1eb>
+ <c1> DW_AT_decl_file : 2
+ <c2> DW_AT_decl_line : 175
+ <c3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><c6>: Abbrev Number: 5 (DW_TAG_member)
+ <c7> DW_AT_name : (indirect string, offset: 0x2e6): condition
+ <cb> DW_AT_type : <0x27b>
+ <cf> DW_AT_decl_file : 2
+ <d0> DW_AT_decl_line : 176
+ <d1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><d4>: Abbrev Number: 5 (DW_TAG_member)
+ <d5> DW_AT_name : (indirect string, offset: 0x355): rumble
+ <d9> DW_AT_type : <0x2ec>
+ <dd> DW_AT_decl_file : 2
+ <de> DW_AT_decl_line : 177
+ <df> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><e2>: Abbrev Number: 0
+ <2><e3>: Abbrev Number: 0
+ <1><e4>: Abbrev Number: 3 (DW_TAG_typedef)
+ <e5> DW_AT_type : <0xef>
+ <e9> DW_AT_name : (indirect string, offset: 0x184): __u16
+ <ed> DW_AT_decl_file : 1
+ <ee> DW_AT_decl_line : 26
+ <1><ef>: Abbrev Number: 7 (DW_TAG_base_type)
+ <f0> DW_AT_name : (indirect string, offset: 0x175): unsigned short
+ <f4> DW_AT_encoding : 7 (unsigned)
+ <f5> DW_AT_byte_size : 2
+ <1><f6>: Abbrev Number: 3 (DW_TAG_typedef)
+ <f7> DW_AT_type : <0x101>
+ <fb> DW_AT_name : (indirect string, offset: 0x193): __s16
+ <ff> DW_AT_decl_file : 1
+ <100> DW_AT_decl_line : 25
+ <1><101>: Abbrev Number: 7 (DW_TAG_base_type)
+ <102> DW_AT_name : (indirect string, offset: 0x18d): short
+ <106> DW_AT_encoding : 5 (signed)
+ <107> DW_AT_byte_size : 2
+ <1><108>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <109> DW_AT_name : (indirect string, offset: 0x1bb): ff_trigger
+ <10d> DW_AT_byte_size : 4
+ <10e> DW_AT_decl_file : 2
+ <10f> DW_AT_decl_line : 125
+ <2><110>: Abbrev Number: 5 (DW_TAG_member)
+ <111> DW_AT_name : (indirect string, offset: 0x1ab): button
+ <115> DW_AT_type : <0xe4>
+ <119> DW_AT_decl_file : 2
+ <11a> DW_AT_decl_line : 126
+ <11b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><11e>: Abbrev Number: 5 (DW_TAG_member)
+ <11f> DW_AT_name : (indirect string, offset: 0x1b2): interval
+ <123> DW_AT_type : <0xe4>
+ <127> DW_AT_decl_file : 2
+ <128> DW_AT_decl_line : 127
+ <129> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><12c>: Abbrev Number: 0
+ <1><12d>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <12e> DW_AT_name : (indirect string, offset: 0x1da): ff_replay
+ <132> DW_AT_byte_size : 4
+ <133> DW_AT_decl_file : 2
+ <134> DW_AT_decl_line : 121
+ <2><135>: Abbrev Number: 5 (DW_TAG_member)
+ <136> DW_AT_name : (indirect string, offset: 0x1cd): length
+ <13a> DW_AT_type : <0xe4>
+ <13e> DW_AT_decl_file : 2
+ <13f> DW_AT_decl_line : 122
+ <140> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><143>: Abbrev Number: 5 (DW_TAG_member)
+ <144> DW_AT_name : (indirect string, offset: 0x1d4): delay
+ <148> DW_AT_type : <0xe4>
+ <14c> DW_AT_decl_file : 2
+ <14d> DW_AT_decl_line : 123
+ <14e> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><151>: Abbrev Number: 0
+ <1><152>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <153> DW_AT_name : (indirect string, offset: 0x23c): ff_constant_effect
+ <157> DW_AT_byte_size : 10
+ <158> DW_AT_decl_file : 2
+ <159> DW_AT_decl_line : 135
+ <2><15a>: Abbrev Number: 5 (DW_TAG_member)
+ <15b> DW_AT_name : (indirect string, offset: 0x1ef): level
+ <15f> DW_AT_type : <0xf6>
+ <163> DW_AT_decl_file : 2
+ <164> DW_AT_decl_line : 136
+ <165> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><168>: Abbrev Number: 5 (DW_TAG_member)
+ <169> DW_AT_name : (indirect string, offset: 0x1f5): envelope
+ <16d> DW_AT_type : <0x177>
+ <171> DW_AT_decl_file : 2
+ <172> DW_AT_decl_line : 137
+ <173> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><176>: Abbrev Number: 0
+ <1><177>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <178> DW_AT_name : (indirect string, offset: 0x230): ff_envelope
+ <17c> DW_AT_byte_size : 8
+ <17d> DW_AT_decl_file : 2
+ <17e> DW_AT_decl_line : 129
+ <2><17f>: Abbrev Number: 5 (DW_TAG_member)
+ <180> DW_AT_name : (indirect string, offset: 0x1fe): attack_length
+ <184> DW_AT_type : <0xe4>
+ <188> DW_AT_decl_file : 2
+ <189> DW_AT_decl_line : 130
+ <18a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><18d>: Abbrev Number: 5 (DW_TAG_member)
+ <18e> DW_AT_name : (indirect string, offset: 0x20c): attack_level
+ <192> DW_AT_type : <0xe4>
+ <196> DW_AT_decl_file : 2
+ <197> DW_AT_decl_line : 131
+ <198> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><19b>: Abbrev Number: 5 (DW_TAG_member)
+ <19c> DW_AT_name : (indirect string, offset: 0x219): fade_length
+ <1a0> DW_AT_type : <0xe4>
+ <1a4> DW_AT_decl_file : 2
+ <1a5> DW_AT_decl_line : 132
+ <1a6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><1a9>: Abbrev Number: 5 (DW_TAG_member)
+ <1aa> DW_AT_name : (indirect string, offset: 0x225): fade_level
+ <1ae> DW_AT_type : <0xe4>
+ <1b2> DW_AT_decl_file : 2
+ <1b3> DW_AT_decl_line : 133
+ <1b4> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
+ <2><1b7>: Abbrev Number: 0
+ <1><1b8>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <1b9> DW_AT_name : (indirect string, offset: 0x26a): ff_ramp_effect
+ <1bd> DW_AT_byte_size : 12
+ <1be> DW_AT_decl_file : 2
+ <1bf> DW_AT_decl_line : 139
+ <2><1c0>: Abbrev Number: 5 (DW_TAG_member)
+ <1c1> DW_AT_name : (indirect string, offset: 0x254): start_level
+ <1c5> DW_AT_type : <0xf6>
+ <1c9> DW_AT_decl_file : 2
+ <1ca> DW_AT_decl_line : 140
+ <1cb> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><1ce>: Abbrev Number: 5 (DW_TAG_member)
+ <1cf> DW_AT_name : (indirect string, offset: 0x260): end_level
+ <1d3> DW_AT_type : <0xf6>
+ <1d7> DW_AT_decl_file : 2
+ <1d8> DW_AT_decl_line : 141
+ <1d9> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><1dc>: Abbrev Number: 5 (DW_TAG_member)
+ <1dd> DW_AT_name : (indirect string, offset: 0x1f5): envelope
+ <1e1> DW_AT_type : <0x177>
+ <1e5> DW_AT_decl_file : 2
+ <1e6> DW_AT_decl_line : 142
+ <1e7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><1ea>: Abbrev Number: 0
+ <1><1eb>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <1ec> DW_AT_name : (indirect string, offset: 0x2d3): ff_periodic_effect
+ <1f0> DW_AT_byte_size : 28
+ <1f1> DW_AT_decl_file : 2
+ <1f2> DW_AT_decl_line : 152
+ <2><1f3>: Abbrev Number: 5 (DW_TAG_member)
+ <1f4> DW_AT_name : (indirect string, offset: 0x282): waveform
+ <1f8> DW_AT_type : <0xe4>
+ <1fc> DW_AT_decl_file : 2
+ <1fd> DW_AT_decl_line : 153
+ <1fe> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><201>: Abbrev Number: 5 (DW_TAG_member)
+ <202> DW_AT_name : (indirect string, offset: 0x28b): period
+ <206> DW_AT_type : <0xe4>
+ <20a> DW_AT_decl_file : 2
+ <20b> DW_AT_decl_line : 154
+ <20c> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><20f>: Abbrev Number: 5 (DW_TAG_member)
+ <210> DW_AT_name : (indirect string, offset: 0x292): magnitude
+ <214> DW_AT_type : <0xf6>
+ <218> DW_AT_decl_file : 2
+ <219> DW_AT_decl_line : 155
+ <21a> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><21d>: Abbrev Number: 5 (DW_TAG_member)
+ <21e> DW_AT_name : (indirect string, offset: 0x29c): offset
+ <222> DW_AT_type : <0xf6>
+ <226> DW_AT_decl_file : 2
+ <227> DW_AT_decl_line : 156
+ <228> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
+ <2><22b>: Abbrev Number: 5 (DW_TAG_member)
+ <22c> DW_AT_name : (indirect string, offset: 0x2a3): phase
+ <230> DW_AT_type : <0xe4>
+ <234> DW_AT_decl_file : 2
+ <235> DW_AT_decl_line : 157
+ <236> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><239>: Abbrev Number: 5 (DW_TAG_member)
+ <23a> DW_AT_name : (indirect string, offset: 0x1f5): envelope
+ <23e> DW_AT_type : <0x177>
+ <242> DW_AT_decl_file : 2
+ <243> DW_AT_decl_line : 158
+ <244> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><247>: Abbrev Number: 5 (DW_TAG_member)
+ <248> DW_AT_name : (indirect string, offset: 0x2a9): custom_len
+ <24c> DW_AT_type : <0x264>
+ <250> DW_AT_decl_file : 2
+ <251> DW_AT_decl_line : 159
+ <252> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><255>: Abbrev Number: 5 (DW_TAG_member)
+ <256> DW_AT_name : (indirect string, offset: 0x2c7): custom_data
+ <25a> DW_AT_type : <0x276>
+ <25e> DW_AT_decl_file : 2
+ <25f> DW_AT_decl_line : 160
+ <260> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><263>: Abbrev Number: 0
+ <1><264>: Abbrev Number: 3 (DW_TAG_typedef)
+ <265> DW_AT_type : <0x26f>
+ <269> DW_AT_name : (indirect string, offset: 0x2c1): __u32
+ <26d> DW_AT_decl_file : 1
+ <26e> DW_AT_decl_line : 28
+ <1><26f>: Abbrev Number: 7 (DW_TAG_base_type)
+ <270> DW_AT_name : (indirect string, offset: 0x2b4): unsigned int
+ <274> DW_AT_encoding : 7 (unsigned)
+ <275> DW_AT_byte_size : 4
+ <1><276>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <277> DW_AT_type : <0xf6>
+ <1><27b>: Abbrev Number: 9 (DW_TAG_array_type)
+ <27c> DW_AT_type : <0x288>
+ <2><280>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <281> DW_AT_type : <0x2e5>
+ <285> DW_AT_lower_bound : 0
+ <286> DW_AT_count : 2
+ <2><287>: Abbrev Number: 0
+ <1><288>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <289> DW_AT_name : (indirect string, offset: 0x338): ff_condition_effect
+ <28d> DW_AT_byte_size : 12
+ <28e> DW_AT_decl_file : 2
+ <28f> DW_AT_decl_line : 144
+ <2><290>: Abbrev Number: 5 (DW_TAG_member)
+ <291> DW_AT_name : (indirect string, offset: 0x2f0): right_saturation
+ <295> DW_AT_type : <0xe4>
+ <299> DW_AT_decl_file : 2
+ <29a> DW_AT_decl_line : 145
+ <29b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><29e>: Abbrev Number: 5 (DW_TAG_member)
+ <29f> DW_AT_name : (indirect string, offset: 0x301): left_saturation
+ <2a3> DW_AT_type : <0xe4>
+ <2a7> DW_AT_decl_file : 2
+ <2a8> DW_AT_decl_line : 146
+ <2a9> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><2ac>: Abbrev Number: 5 (DW_TAG_member)
+ <2ad> DW_AT_name : (indirect string, offset: 0x311): right_coeff
+ <2b1> DW_AT_type : <0xf6>
+ <2b5> DW_AT_decl_file : 2
+ <2b6> DW_AT_decl_line : 147
+ <2b7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><2ba>: Abbrev Number: 5 (DW_TAG_member)
+ <2bb> DW_AT_name : (indirect string, offset: 0x31d): left_coeff
+ <2bf> DW_AT_type : <0xf6>
+ <2c3> DW_AT_decl_file : 2
+ <2c4> DW_AT_decl_line : 148
+ <2c5> DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
+ <2><2c8>: Abbrev Number: 5 (DW_TAG_member)
+ <2c9> DW_AT_name : (indirect string, offset: 0x328): deadband
+ <2cd> DW_AT_type : <0xe4>
+ <2d1> DW_AT_decl_file : 2
+ <2d2> DW_AT_decl_line : 149
+ <2d3> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><2d6>: Abbrev Number: 5 (DW_TAG_member)
+ <2d7> DW_AT_name : (indirect string, offset: 0x331): center
+ <2db> DW_AT_type : <0xf6>
+ <2df> DW_AT_decl_file : 2
+ <2e0> DW_AT_decl_line : 150
+ <2e1> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><2e4>: Abbrev Number: 0
+ <1><2e5>: Abbrev Number: 11 (DW_TAG_base_type)
+ <2e6> DW_AT_name : (indirect string, offset: 0x34c): sizetype
+ <2ea> DW_AT_byte_size : 8
+ <2eb> DW_AT_encoding : 7 (unsigned)
+ <1><2ec>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <2ed> DW_AT_name : (indirect string, offset: 0x37c): ff_rumble_effect
+ <2f1> DW_AT_byte_size : 4
+ <2f2> DW_AT_decl_file : 2
+ <2f3> DW_AT_decl_line : 162
+ <2><2f4>: Abbrev Number: 5 (DW_TAG_member)
+ <2f5> DW_AT_name : (indirect string, offset: 0x35c): strong_magnitude
+ <2f9> DW_AT_type : <0xe4>
+ <2fd> DW_AT_decl_file : 2
+ <2fe> DW_AT_decl_line : 163
+ <2ff> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><302>: Abbrev Number: 5 (DW_TAG_member)
+ <303> DW_AT_name : (indirect string, offset: 0x36d): weak_magnitude
+ <307> DW_AT_type : <0xe4>
+ <30b> DW_AT_decl_file : 2
+ <30c> DW_AT_decl_line : 164
+ <30d> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><310>: Abbrev Number: 0
+ <1><311>: Abbrev Number: 0
diff --git a/mpers-m32/struct_ff_effect.d2 b/mpers-m32/struct_ff_effect.d2
index 5523f80..32e43a2 100644
--- a/mpers-m32/struct_ff_effect.d2
+++ b/mpers-m32/struct_ff_effect.d2
@@ -1,402 +1,402 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 42
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x2cd): struct_ff_effect
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x397): struct_ff_effect
DW_AT_decl_file : 3
DW_AT_decl_line : 38
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x2c3): ff_effect
+DW_AT_name : (indirect string, offset: 0x38d): ff_effect
DW_AT_byte_size : 44
DW_AT_decl_file : 2
DW_AT_decl_line : 166
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa6): type
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x170): type
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 167
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc0): id
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x18a): id
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 168
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcf): direction
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x199): direction
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 169
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd9): trigger
-DW_AT_type : <0x107>
+DW_AT_name : (indirect string, offset: 0x1a3): trigger
+DW_AT_type : <0x108>
DW_AT_decl_file : 2
DW_AT_decl_line : 170
DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfc): replay
-DW_AT_type : <0x12c>
+DW_AT_name : (indirect string, offset: 0x1c6): replay
+DW_AT_type : <0x12d>
DW_AT_decl_file : 2
DW_AT_decl_line : 171
DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11a): u
-DW_AT_type : <0x97>
+DW_AT_name : (indirect string, offset: 0x1e4): u
+DW_AT_type : <0x98>
DW_AT_decl_file : 2
DW_AT_decl_line : 178
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><97>
+<2><98>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 28
DW_AT_decl_file : 2
DW_AT_decl_line : 172
-<3><9b>
+<3><9c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11c): constant
-DW_AT_type : <0x151>
+DW_AT_name : (indirect string, offset: 0x1e6): constant
+DW_AT_type : <0x152>
DW_AT_decl_file : 2
DW_AT_decl_line : 173
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><a9>
+<3><aa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x185): ramp
-DW_AT_type : <0x1b7>
+DW_AT_name : (indirect string, offset: 0x24f): ramp
+DW_AT_type : <0x1b8>
DW_AT_decl_file : 2
DW_AT_decl_line : 174
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><b7>
+<3><b8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1af): periodic
-DW_AT_type : <0x1ea>
+DW_AT_name : (indirect string, offset: 0x279): periodic
+DW_AT_type : <0x1eb>
DW_AT_decl_file : 2
DW_AT_decl_line : 175
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><c5>
+<3><c6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x21c): condition
-DW_AT_type : <0x27a>
+DW_AT_name : (indirect string, offset: 0x2e6): condition
+DW_AT_type : <0x27b>
DW_AT_decl_file : 2
DW_AT_decl_line : 176
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><d3>
+<3><d4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x28b): rumble
-DW_AT_type : <0x2eb>
+DW_AT_name : (indirect string, offset: 0x355): rumble
+DW_AT_type : <0x2ec>
DW_AT_decl_file : 2
DW_AT_decl_line : 177
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><e3>
+<1><e4>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xee>
-DW_AT_name : (indirect string, offset: 0xba): __u16
+DW_AT_type : <0xef>
+DW_AT_name : (indirect string, offset: 0x184): __u16
DW_AT_decl_file : 1
DW_AT_decl_line : 26
-<1><ee>
+<1><ef>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xab): unsigned short
+DW_AT_name : (indirect string, offset: 0x175): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><f5>
+<1><f6>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x100>
-DW_AT_name : (indirect string, offset: 0xc9): __s16
+DW_AT_type : <0x101>
+DW_AT_name : (indirect string, offset: 0x193): __s16
DW_AT_decl_file : 1
DW_AT_decl_line : 25
-<1><100>
+<1><101>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc3): short
+DW_AT_name : (indirect string, offset: 0x18d): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><107>
+<1><108>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xf1): ff_trigger
+DW_AT_name : (indirect string, offset: 0x1bb): ff_trigger
DW_AT_byte_size : 4
DW_AT_decl_file : 2
DW_AT_decl_line : 125
-<2><10f>
+<2><110>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): button
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x1ab): button
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 126
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><11d>
+<2><11e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe8): interval
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x1b2): interval
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 127
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><12c>
+<1><12d>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x110): ff_replay
+DW_AT_name : (indirect string, offset: 0x1da): ff_replay
DW_AT_byte_size : 4
DW_AT_decl_file : 2
DW_AT_decl_line : 121
-<2><134>
+<2><135>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x103): length
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x1cd): length
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 122
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><142>
+<2><143>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10a): delay
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x1d4): delay
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 123
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><151>
+<1><152>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x172): ff_constant_effect
+DW_AT_name : (indirect string, offset: 0x23c): ff_constant_effect
DW_AT_byte_size : 10
DW_AT_decl_file : 2
DW_AT_decl_line : 135
-<2><159>
+<2><15a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x125): level
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1ef): level
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 136
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><167>
+<2><168>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12b): envelope
-DW_AT_type : <0x176>
+DW_AT_name : (indirect string, offset: 0x1f5): envelope
+DW_AT_type : <0x177>
DW_AT_decl_file : 2
DW_AT_decl_line : 137
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><176>
+<1><177>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x166): ff_envelope
+DW_AT_name : (indirect string, offset: 0x230): ff_envelope
DW_AT_byte_size : 8
DW_AT_decl_file : 2
DW_AT_decl_line : 129
-<2><17e>
+<2><17f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x134): attack_length
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x1fe): attack_length
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 130
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><18c>
+<2><18d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x142): attack_level
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x20c): attack_level
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 131
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><19a>
+<2><19b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14f): fade_length
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x219): fade_length
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 132
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><1a8>
+<2><1a9>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15b): fade_level
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x225): fade_level
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 133
DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
-<1><1b7>
+<1><1b8>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1a0): ff_ramp_effect
+DW_AT_name : (indirect string, offset: 0x26a): ff_ramp_effect
DW_AT_byte_size : 12
DW_AT_decl_file : 2
DW_AT_decl_line : 139
-<2><1bf>
+<2><1c0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x18a): start_level
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x254): start_level
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 140
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1cd>
+<2><1ce>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x196): end_level
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x260): end_level
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 141
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><1db>
+<2><1dc>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12b): envelope
-DW_AT_type : <0x176>
+DW_AT_name : (indirect string, offset: 0x1f5): envelope
+DW_AT_type : <0x177>
DW_AT_decl_file : 2
DW_AT_decl_line : 142
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><1ea>
+<1><1eb>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x209): ff_periodic_effect
+DW_AT_name : (indirect string, offset: 0x2d3): ff_periodic_effect
DW_AT_byte_size : 28
DW_AT_decl_file : 2
DW_AT_decl_line : 152
-<2><1f2>
+<2><1f3>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1b8): waveform
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x282): waveform
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 153
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><200>
+<2><201>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1c1): period
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x28b): period
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 154
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><20e>
+<2><20f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1c8): magnitude
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x292): magnitude
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 155
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><21c>
+<2><21d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d2): offset
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x29c): offset
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 156
DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
-<2><22a>
+<2><22b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d9): phase
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x2a3): phase
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 157
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><238>
+<2><239>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12b): envelope
-DW_AT_type : <0x176>
+DW_AT_name : (indirect string, offset: 0x1f5): envelope
+DW_AT_type : <0x177>
DW_AT_decl_file : 2
DW_AT_decl_line : 158
DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<2><246>
+<2><247>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1df): custom_len
-DW_AT_type : <0x263>
+DW_AT_name : (indirect string, offset: 0x2a9): custom_len
+DW_AT_type : <0x264>
DW_AT_decl_file : 2
DW_AT_decl_line : 159
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><254>
+<2><255>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1fd): custom_data
-DW_AT_type : <0x275>
+DW_AT_name : (indirect string, offset: 0x2c7): custom_data
+DW_AT_type : <0x276>
DW_AT_decl_file : 2
DW_AT_decl_line : 160
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<1><263>
+<1><264>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x26e>
-DW_AT_name : (indirect string, offset: 0x1f7): __u32
+DW_AT_type : <0x26f>
+DW_AT_name : (indirect string, offset: 0x2c1): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><26e>
+<1><26f>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1ea): unsigned int
+DW_AT_name : (indirect string, offset: 0x2b4): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><275>
+<1><276>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0xf5>
-<1><27a>
+DW_AT_type : <0xf6>
+<1><27b>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0x287>
-<2><27f>
+DW_AT_type : <0x288>
+<2><280>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0x2e4>
+DW_AT_type : <0x2e5>
DW_AT_lower_bound : 0
DW_AT_count : 2
-<1><287>
+<1><288>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x26e): ff_condition_effect
+DW_AT_name : (indirect string, offset: 0x338): ff_condition_effect
DW_AT_byte_size : 12
DW_AT_decl_file : 2
DW_AT_decl_line : 144
-<2><28f>
+<2><290>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x226): right_saturation
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x2f0): right_saturation
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 145
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><29d>
+<2><29e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x237): left_saturation
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x301): left_saturation
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 146
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><2ab>
+<2><2ac>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x247): right_coeff
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x311): right_coeff
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 147
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><2b9>
+<2><2ba>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x253): left_coeff
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x31d): left_coeff
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 148
DW_AT_data_member_location: 2 byte block: 23 6 (DW_OP_plus_uconst: 6)
-<2><2c7>
+<2><2c8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x25e): deadband
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x328): deadband
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 149
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><2d5>
+<2><2d6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x267): center
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x331): center
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
DW_AT_decl_line : 150
DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<1><2e4>
+<1><2e5>
Abbrev Number: 11 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x282): sizetype
+DW_AT_name : (indirect string, offset: 0x34c): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><2eb>
+<1><2ec>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x2b2): ff_rumble_effect
+DW_AT_name : (indirect string, offset: 0x37c): ff_rumble_effect
DW_AT_byte_size : 4
DW_AT_decl_file : 2
DW_AT_decl_line : 162
-<2><2f3>
+<2><2f4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x292): strong_magnitude
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x35c): strong_magnitude
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 163
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><301>
+<2><302>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2a3): weak_magnitude
-DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x36d): weak_magnitude
+DW_AT_type : <0xe4>
DW_AT_decl_file : 2
DW_AT_decl_line : 164
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
diff --git a/mpers-m32/struct_flock.d1 b/mpers-m32/struct_flock.d1
index bb915ba..cfa00cc 100644
--- a/mpers-m32/struct_flock.d1
+++ b/mpers-m32/struct_flock.d1
@@ -1,95 +1,96 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xc8 (32-bit)
+ Length: 0xc9 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_flock.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_flock.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x56): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x91): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 36
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x121): struct_flock
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 33
- <1><3b>: Abbrev Number: 3 (DW_TAG_typedef)
- <3c> DW_AT_type : <0x46>
- <40> DW_AT_name : (indirect string, offset: 0x10d): struct_kernel_flock
- <44> DW_AT_decl_file : 3
- <45> DW_AT_decl_line : 35
- <1><46>: Abbrev Number: 4 (DW_TAG_structure_type)
- <47> DW_AT_name : (indirect string, offset: 0x107): flock
- <4b> DW_AT_byte_size : 16
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 148
- <2><4e>: Abbrev Number: 5 (DW_TAG_member)
- <4f> DW_AT_name : (indirect string, offset: 0xa2): l_type
- <53> DW_AT_type : <0x95>
- <57> DW_AT_decl_file : 1
- <58> DW_AT_decl_line : 149
- <59> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><5c>: Abbrev Number: 5 (DW_TAG_member)
- <5d> DW_AT_name : (indirect string, offset: 0xaf): l_whence
- <61> DW_AT_type : <0x95>
- <65> DW_AT_decl_file : 1
- <66> DW_AT_decl_line : 150
- <67> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><6a>: Abbrev Number: 5 (DW_TAG_member)
- <6b> DW_AT_name : (indirect string, offset: 0xb8): l_start
- <6f> DW_AT_type : <0x9c>
- <73> DW_AT_decl_file : 1
- <74> DW_AT_decl_line : 151
- <75> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><78>: Abbrev Number: 5 (DW_TAG_member)
- <79> DW_AT_name : (indirect string, offset: 0xe8): l_len
- <7d> DW_AT_type : <0x9c>
- <81> DW_AT_decl_file : 1
- <82> DW_AT_decl_line : 152
- <83> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><86>: Abbrev Number: 5 (DW_TAG_member)
- <87> DW_AT_name : (indirect string, offset: 0xee): l_pid
- <8b> DW_AT_type : <0xb9>
- <8f> DW_AT_decl_file : 1
- <90> DW_AT_decl_line : 153
- <91> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><94>: Abbrev Number: 0
- <1><95>: Abbrev Number: 6 (DW_TAG_base_type)
- <96> DW_AT_name : (indirect string, offset: 0xa9): short
- <9a> DW_AT_encoding : 5 (signed)
- <9b> DW_AT_byte_size : 2
- <1><9c>: Abbrev Number: 3 (DW_TAG_typedef)
- <9d> DW_AT_type : <0xa7>
- <a1> DW_AT_name : (indirect string, offset: 0xd9): __kernel_off_t
- <a5> DW_AT_decl_file : 2
- <a6> DW_AT_decl_line : 75
- <1><a7>: Abbrev Number: 3 (DW_TAG_typedef)
- <a8> DW_AT_type : <0xb2>
- <ac> DW_AT_name : (indirect string, offset: 0xc9): __kernel_long_t
- <b0> DW_AT_decl_file : 2
- <b1> DW_AT_decl_line : 23
- <1><b2>: Abbrev Number: 6 (DW_TAG_base_type)
- <b3> DW_AT_name : (indirect string, offset: 0xc0): long int
- <b7> DW_AT_encoding : 5 (signed)
- <b8> DW_AT_byte_size : 4
- <1><b9>: Abbrev Number: 3 (DW_TAG_typedef)
- <ba> DW_AT_type : <0xc4>
- <be> DW_AT_name : (indirect string, offset: 0xf8): __kernel_pid_t
- <c2> DW_AT_decl_file : 2
- <c3> DW_AT_decl_line : 33
- <1><c4>: Abbrev Number: 6 (DW_TAG_base_type)
- <c5> DW_AT_name : (indirect string, offset: 0xf4): int
- <c9> DW_AT_encoding : 5 (signed)
- <ca> DW_AT_byte_size : 4
- <1><cb>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x120): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15b): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 36
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1eb): struct_flock
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 33
+ <1><3c>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3d> DW_AT_type : <0x47>
+ <41> DW_AT_name : (indirect string, offset: 0x1d7): struct_kernel_flock
+ <45> DW_AT_decl_file : 3
+ <46> DW_AT_decl_line : 35
+ <1><47>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <48> DW_AT_name : (indirect string, offset: 0x1d1): flock
+ <4c> DW_AT_byte_size : 16
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 148
+ <2><4f>: Abbrev Number: 5 (DW_TAG_member)
+ <50> DW_AT_name : (indirect string, offset: 0x16c): l_type
+ <54> DW_AT_type : <0x96>
+ <58> DW_AT_decl_file : 1
+ <59> DW_AT_decl_line : 149
+ <5a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><5d>: Abbrev Number: 5 (DW_TAG_member)
+ <5e> DW_AT_name : (indirect string, offset: 0x179): l_whence
+ <62> DW_AT_type : <0x96>
+ <66> DW_AT_decl_file : 1
+ <67> DW_AT_decl_line : 150
+ <68> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><6b>: Abbrev Number: 5 (DW_TAG_member)
+ <6c> DW_AT_name : (indirect string, offset: 0x182): l_start
+ <70> DW_AT_type : <0x9d>
+ <74> DW_AT_decl_file : 1
+ <75> DW_AT_decl_line : 151
+ <76> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><79>: Abbrev Number: 5 (DW_TAG_member)
+ <7a> DW_AT_name : (indirect string, offset: 0x1b2): l_len
+ <7e> DW_AT_type : <0x9d>
+ <82> DW_AT_decl_file : 1
+ <83> DW_AT_decl_line : 152
+ <84> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><87>: Abbrev Number: 5 (DW_TAG_member)
+ <88> DW_AT_name : (indirect string, offset: 0x1b8): l_pid
+ <8c> DW_AT_type : <0xba>
+ <90> DW_AT_decl_file : 1
+ <91> DW_AT_decl_line : 153
+ <92> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><95>: Abbrev Number: 0
+ <1><96>: Abbrev Number: 6 (DW_TAG_base_type)
+ <97> DW_AT_name : (indirect string, offset: 0x173): short
+ <9b> DW_AT_encoding : 5 (signed)
+ <9c> DW_AT_byte_size : 2
+ <1><9d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <9e> DW_AT_type : <0xa8>
+ <a2> DW_AT_name : (indirect string, offset: 0x1a3): __kernel_off_t
+ <a6> DW_AT_decl_file : 2
+ <a7> DW_AT_decl_line : 75
+ <1><a8>: Abbrev Number: 3 (DW_TAG_typedef)
+ <a9> DW_AT_type : <0xb3>
+ <ad> DW_AT_name : (indirect string, offset: 0x193): __kernel_long_t
+ <b1> DW_AT_decl_file : 2
+ <b2> DW_AT_decl_line : 23
+ <1><b3>: Abbrev Number: 6 (DW_TAG_base_type)
+ <b4> DW_AT_name : (indirect string, offset: 0x18a): long int
+ <b8> DW_AT_encoding : 5 (signed)
+ <b9> DW_AT_byte_size : 4
+ <1><ba>: Abbrev Number: 3 (DW_TAG_typedef)
+ <bb> DW_AT_type : <0xc5>
+ <bf> DW_AT_name : (indirect string, offset: 0x1c2): __kernel_pid_t
+ <c3> DW_AT_decl_file : 2
+ <c4> DW_AT_decl_line : 33
+ <1><c5>: Abbrev Number: 6 (DW_TAG_base_type)
+ <c6> DW_AT_name : (indirect string, offset: 0x1be): int
+ <ca> DW_AT_encoding : 5 (signed)
+ <cb> DW_AT_byte_size : 4
+ <1><cc>: Abbrev Number: 0
diff --git a/mpers-m32/struct_flock.d2 b/mpers-m32/struct_flock.d2
index 339edd1..4a01ec0 100644
--- a/mpers-m32/struct_flock.d2
+++ b/mpers-m32/struct_flock.d2
@@ -1,94 +1,94 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x91): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15b): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 36
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x121): struct_flock
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1eb): struct_flock
DW_AT_decl_file : 4
DW_AT_decl_line : 33
-<1><3b>
+<1><3c>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x46>
-DW_AT_name : (indirect string, offset: 0x10d): struct_kernel_flock
+DW_AT_type : <0x47>
+DW_AT_name : (indirect string, offset: 0x1d7): struct_kernel_flock
DW_AT_decl_file : 3
DW_AT_decl_line : 35
-<1><46>
+<1><47>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x107): flock
+DW_AT_name : (indirect string, offset: 0x1d1): flock
DW_AT_byte_size : 16
DW_AT_decl_file : 1
DW_AT_decl_line : 148
-<2><4e>
+<2><4f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa2): l_type
-DW_AT_type : <0x95>
+DW_AT_name : (indirect string, offset: 0x16c): l_type
+DW_AT_type : <0x96>
DW_AT_decl_file : 1
DW_AT_decl_line : 149
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><5c>
+<2><5d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xaf): l_whence
-DW_AT_type : <0x95>
+DW_AT_name : (indirect string, offset: 0x179): l_whence
+DW_AT_type : <0x96>
DW_AT_decl_file : 1
DW_AT_decl_line : 150
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><6a>
+<2><6b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb8): l_start
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x182): l_start
+DW_AT_type : <0x9d>
DW_AT_decl_file : 1
DW_AT_decl_line : 151
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><78>
+<2><79>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe8): l_len
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x1b2): l_len
+DW_AT_type : <0x9d>
DW_AT_decl_file : 1
DW_AT_decl_line : 152
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><86>
+<2><87>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xee): l_pid
-DW_AT_type : <0xb9>
+DW_AT_name : (indirect string, offset: 0x1b8): l_pid
+DW_AT_type : <0xba>
DW_AT_decl_file : 1
DW_AT_decl_line : 153
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><95>
+<1><96>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa9): short
+DW_AT_name : (indirect string, offset: 0x173): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><9c>
+<1><9d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xa7>
-DW_AT_name : (indirect string, offset: 0xd9): __kernel_off_t
+DW_AT_type : <0xa8>
+DW_AT_name : (indirect string, offset: 0x1a3): __kernel_off_t
DW_AT_decl_file : 2
DW_AT_decl_line : 75
-<1><a7>
+<1><a8>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xb2>
-DW_AT_name : (indirect string, offset: 0xc9): __kernel_long_t
+DW_AT_type : <0xb3>
+DW_AT_name : (indirect string, offset: 0x193): __kernel_long_t
DW_AT_decl_file : 2
DW_AT_decl_line : 23
-<1><b2>
+<1><b3>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc0): long int
+DW_AT_name : (indirect string, offset: 0x18a): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><b9>
+<1><ba>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xc4>
-DW_AT_name : (indirect string, offset: 0xf8): __kernel_pid_t
+DW_AT_type : <0xc5>
+DW_AT_name : (indirect string, offset: 0x1c2): __kernel_pid_t
DW_AT_decl_file : 2
DW_AT_decl_line : 33
-<1><c4>
+<1><c5>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf4): int
+DW_AT_name : (indirect string, offset: 0x1be): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_flock64.d1 b/mpers-m32/struct_flock64.d1
index 8e5c9b4..22031da 100644
--- a/mpers-m32/struct_flock64.d1
+++ b/mpers-m32/struct_flock64.d1
@@ -1,90 +1,91 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xbd (32-bit)
+ Length: 0xbe (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_flock64.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_flock64.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x58): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x93): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 36
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x11d): struct_flock64
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 34
- <1><3b>: Abbrev Number: 3 (DW_TAG_typedef)
- <3c> DW_AT_type : <0x46>
- <40> DW_AT_name : (indirect string, offset: 0x107): struct_kernel_flock64
- <44> DW_AT_decl_file : 3
- <45> DW_AT_decl_line : 43
- <1><46>: Abbrev Number: 4 (DW_TAG_structure_type)
- <47> DW_AT_name : (indirect string, offset: 0xff): flock64
- <4b> DW_AT_byte_size : 32
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 161
- <2><4e>: Abbrev Number: 5 (DW_TAG_member)
- <4f> DW_AT_name : (indirect string, offset: 0xa4): l_type
- <53> DW_AT_type : <0x95>
- <57> DW_AT_decl_file : 1
- <58> DW_AT_decl_line : 162
- <59> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><5c>: Abbrev Number: 5 (DW_TAG_member)
- <5d> DW_AT_name : (indirect string, offset: 0xb1): l_whence
- <61> DW_AT_type : <0x95>
- <65> DW_AT_decl_file : 1
- <66> DW_AT_decl_line : 163
- <67> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><6a>: Abbrev Number: 5 (DW_TAG_member)
- <6b> DW_AT_name : (indirect string, offset: 0xba): l_start
- <6f> DW_AT_type : <0x9c>
- <73> DW_AT_decl_file : 1
- <74> DW_AT_decl_line : 164
- <75> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><78>: Abbrev Number: 5 (DW_TAG_member)
- <79> DW_AT_name : (indirect string, offset: 0xe0): l_len
- <7d> DW_AT_type : <0x9c>
- <81> DW_AT_decl_file : 1
- <82> DW_AT_decl_line : 165
- <83> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><86>: Abbrev Number: 5 (DW_TAG_member)
- <87> DW_AT_name : (indirect string, offset: 0xe6): l_pid
- <8b> DW_AT_type : <0xae>
- <8f> DW_AT_decl_file : 1
- <90> DW_AT_decl_line : 166
- <91> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><94>: Abbrev Number: 0
- <1><95>: Abbrev Number: 6 (DW_TAG_base_type)
- <96> DW_AT_name : (indirect string, offset: 0xab): short
- <9a> DW_AT_encoding : 5 (signed)
- <9b> DW_AT_byte_size : 2
- <1><9c>: Abbrev Number: 3 (DW_TAG_typedef)
- <9d> DW_AT_type : <0xa7>
- <a1> DW_AT_name : (indirect string, offset: 0xd0): __kernel_loff_t
- <a5> DW_AT_decl_file : 2
- <a6> DW_AT_decl_line : 76
- <1><a7>: Abbrev Number: 6 (DW_TAG_base_type)
- <a8> DW_AT_name : (indirect string, offset: 0xc2): long long int
- <ac> DW_AT_encoding : 5 (signed)
- <ad> DW_AT_byte_size : 8
- <1><ae>: Abbrev Number: 3 (DW_TAG_typedef)
- <af> DW_AT_type : <0xb9>
- <b3> DW_AT_name : (indirect string, offset: 0xf0): __kernel_pid_t
- <b7> DW_AT_decl_file : 2
- <b8> DW_AT_decl_line : 33
- <1><b9>: Abbrev Number: 6 (DW_TAG_base_type)
- <ba> DW_AT_name : (indirect string, offset: 0xec): int
- <be> DW_AT_encoding : 5 (signed)
- <bf> DW_AT_byte_size : 4
- <1><c0>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x122): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15d): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 36
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1e7): struct_flock64
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 34
+ <1><3c>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3d> DW_AT_type : <0x47>
+ <41> DW_AT_name : (indirect string, offset: 0x1d1): struct_kernel_flock64
+ <45> DW_AT_decl_file : 3
+ <46> DW_AT_decl_line : 43
+ <1><47>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <48> DW_AT_name : (indirect string, offset: 0x1c9): flock64
+ <4c> DW_AT_byte_size : 32
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 161
+ <2><4f>: Abbrev Number: 5 (DW_TAG_member)
+ <50> DW_AT_name : (indirect string, offset: 0x16e): l_type
+ <54> DW_AT_type : <0x96>
+ <58> DW_AT_decl_file : 1
+ <59> DW_AT_decl_line : 162
+ <5a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><5d>: Abbrev Number: 5 (DW_TAG_member)
+ <5e> DW_AT_name : (indirect string, offset: 0x17b): l_whence
+ <62> DW_AT_type : <0x96>
+ <66> DW_AT_decl_file : 1
+ <67> DW_AT_decl_line : 163
+ <68> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><6b>: Abbrev Number: 5 (DW_TAG_member)
+ <6c> DW_AT_name : (indirect string, offset: 0x184): l_start
+ <70> DW_AT_type : <0x9d>
+ <74> DW_AT_decl_file : 1
+ <75> DW_AT_decl_line : 164
+ <76> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><79>: Abbrev Number: 5 (DW_TAG_member)
+ <7a> DW_AT_name : (indirect string, offset: 0x1aa): l_len
+ <7e> DW_AT_type : <0x9d>
+ <82> DW_AT_decl_file : 1
+ <83> DW_AT_decl_line : 165
+ <84> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><87>: Abbrev Number: 5 (DW_TAG_member)
+ <88> DW_AT_name : (indirect string, offset: 0x1b0): l_pid
+ <8c> DW_AT_type : <0xaf>
+ <90> DW_AT_decl_file : 1
+ <91> DW_AT_decl_line : 166
+ <92> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><95>: Abbrev Number: 0
+ <1><96>: Abbrev Number: 6 (DW_TAG_base_type)
+ <97> DW_AT_name : (indirect string, offset: 0x175): short
+ <9b> DW_AT_encoding : 5 (signed)
+ <9c> DW_AT_byte_size : 2
+ <1><9d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <9e> DW_AT_type : <0xa8>
+ <a2> DW_AT_name : (indirect string, offset: 0x19a): __kernel_loff_t
+ <a6> DW_AT_decl_file : 2
+ <a7> DW_AT_decl_line : 76
+ <1><a8>: Abbrev Number: 6 (DW_TAG_base_type)
+ <a9> DW_AT_name : (indirect string, offset: 0x18c): long long int
+ <ad> DW_AT_encoding : 5 (signed)
+ <ae> DW_AT_byte_size : 8
+ <1><af>: Abbrev Number: 3 (DW_TAG_typedef)
+ <b0> DW_AT_type : <0xba>
+ <b4> DW_AT_name : (indirect string, offset: 0x1ba): __kernel_pid_t
+ <b8> DW_AT_decl_file : 2
+ <b9> DW_AT_decl_line : 33
+ <1><ba>: Abbrev Number: 6 (DW_TAG_base_type)
+ <bb> DW_AT_name : (indirect string, offset: 0x1b6): int
+ <bf> DW_AT_encoding : 5 (signed)
+ <c0> DW_AT_byte_size : 4
+ <1><c1>: Abbrev Number: 0
diff --git a/mpers-m32/struct_flock64.d2 b/mpers-m32/struct_flock64.d2
index 7313fa4..b08df0d 100644
--- a/mpers-m32/struct_flock64.d2
+++ b/mpers-m32/struct_flock64.d2
@@ -1,88 +1,88 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x93): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15d): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 36
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x11d): struct_flock64
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1e7): struct_flock64
DW_AT_decl_file : 4
DW_AT_decl_line : 34
-<1><3b>
+<1><3c>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x46>
-DW_AT_name : (indirect string, offset: 0x107): struct_kernel_flock64
+DW_AT_type : <0x47>
+DW_AT_name : (indirect string, offset: 0x1d1): struct_kernel_flock64
DW_AT_decl_file : 3
DW_AT_decl_line : 43
-<1><46>
+<1><47>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xff): flock64
+DW_AT_name : (indirect string, offset: 0x1c9): flock64
DW_AT_byte_size : 32
DW_AT_decl_file : 1
DW_AT_decl_line : 161
-<2><4e>
+<2><4f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa4): l_type
-DW_AT_type : <0x95>
+DW_AT_name : (indirect string, offset: 0x16e): l_type
+DW_AT_type : <0x96>
DW_AT_decl_file : 1
DW_AT_decl_line : 162
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><5c>
+<2><5d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb1): l_whence
-DW_AT_type : <0x95>
+DW_AT_name : (indirect string, offset: 0x17b): l_whence
+DW_AT_type : <0x96>
DW_AT_decl_file : 1
DW_AT_decl_line : 163
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><6a>
+<2><6b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xba): l_start
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x184): l_start
+DW_AT_type : <0x9d>
DW_AT_decl_file : 1
DW_AT_decl_line : 164
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><78>
+<2><79>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe0): l_len
-DW_AT_type : <0x9c>
+DW_AT_name : (indirect string, offset: 0x1aa): l_len
+DW_AT_type : <0x9d>
DW_AT_decl_file : 1
DW_AT_decl_line : 165
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><86>
+<2><87>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe6): l_pid
-DW_AT_type : <0xae>
+DW_AT_name : (indirect string, offset: 0x1b0): l_pid
+DW_AT_type : <0xaf>
DW_AT_decl_file : 1
DW_AT_decl_line : 166
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<1><95>
+<1><96>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xab): short
+DW_AT_name : (indirect string, offset: 0x175): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><9c>
+<1><9d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xa7>
-DW_AT_name : (indirect string, offset: 0xd0): __kernel_loff_t
+DW_AT_type : <0xa8>
+DW_AT_name : (indirect string, offset: 0x19a): __kernel_loff_t
DW_AT_decl_file : 2
DW_AT_decl_line : 76
-<1><a7>
+<1><a8>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc2): long long int
+DW_AT_name : (indirect string, offset: 0x18c): long long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 8
-<1><ae>
+<1><af>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xb9>
-DW_AT_name : (indirect string, offset: 0xf0): __kernel_pid_t
+DW_AT_type : <0xba>
+DW_AT_name : (indirect string, offset: 0x1ba): __kernel_pid_t
DW_AT_decl_file : 2
DW_AT_decl_line : 33
-<1><b9>
+<1><ba>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xec): int
+DW_AT_name : (indirect string, offset: 0x1b6): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_group_req.d1 b/mpers-m32/struct_group_req.d1
index 2c7fce1..8b01077 100644
--- a/mpers-m32/struct_group_req.d1
+++ b/mpers-m32/struct_group_req.d1
@@ -1,98 +1,99 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xc3 (32-bit)
+ Length: 0xc4 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_group_req.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_group_req.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5a): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 37
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x136): struct_group_req
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 33
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x12c): group_req
- <40> DW_AT_byte_size : 132
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 163
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa6): gr_interface
- <48> DW_AT_type : <0x61>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 164
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 6 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xc6): gr_group
- <56> DW_AT_type : <0x73>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 165
- <5c> Unknown AT value: 88: 4
- <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><60>: Abbrev Number: 0
- <1><61>: Abbrev Number: 3 (DW_TAG_typedef)
- <62> DW_AT_type : <0x6c>
- <66> DW_AT_name : (indirect string, offset: 0xc0): __u32
- <6a> DW_AT_decl_file : 1
- <6b> DW_AT_decl_line : 28
- <1><6c>: Abbrev Number: 7 (DW_TAG_base_type)
- <6d> DW_AT_name : (indirect string, offset: 0xb3): unsigned int
- <71> DW_AT_encoding : 7 (unsigned)
- <72> DW_AT_byte_size : 4
- <1><73>: Abbrev Number: 8 (DW_TAG_structure_type)
- <74> DW_AT_name : (indirect string, offset: 0x112): __kernel_sockaddr_storage
- <78> DW_AT_byte_size : 128
- <79> DW_AT_decl_file : 3
- <7a> DW_AT_decl_line : 24
- <7b> Unknown AT value: 88: 4
- <2><7c>: Abbrev Number: 5 (DW_TAG_member)
- <7d> DW_AT_name : (indirect string, offset: 0xcf): ss_family
- <81> DW_AT_type : <0x99>
- <85> DW_AT_decl_file : 3
- <86> DW_AT_decl_line : 25
- <87> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><8a>: Abbrev Number: 5 (DW_TAG_member)
- <8b> DW_AT_name : (indirect string, offset: 0xfd): __data
- <8f> DW_AT_type : <0xab>
- <93> DW_AT_decl_file : 3
- <94> DW_AT_decl_line : 26
- <95> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><98>: Abbrev Number: 0
- <1><99>: Abbrev Number: 3 (DW_TAG_typedef)
- <9a> DW_AT_type : <0xa4>
- <9e> DW_AT_name : (indirect string, offset: 0xe8): __kernel_sa_family_t
- <a2> DW_AT_decl_file : 3
- <a3> DW_AT_decl_line : 23
- <1><a4>: Abbrev Number: 7 (DW_TAG_base_type)
- <a5> DW_AT_name : (indirect string, offset: 0xd9): unsigned short
- <a9> DW_AT_encoding : 7 (unsigned)
- <aa> DW_AT_byte_size : 2
- <1><ab>: Abbrev Number: 9 (DW_TAG_array_type)
- <ac> DW_AT_type : <0xb8>
- <2><b0>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <b1> DW_AT_type : <0xbf>
- <b5> DW_AT_lower_bound : 0
- <b6> DW_AT_count : 126
- <2><b7>: Abbrev Number: 0
- <1><b8>: Abbrev Number: 7 (DW_TAG_base_type)
- <b9> DW_AT_name : (indirect string, offset: 0x104): char
- <bd> DW_AT_encoding : 8 (unsigned char)
- <be> DW_AT_byte_size : 1
- <1><bf>: Abbrev Number: 11 (DW_TAG_base_type)
- <c0> DW_AT_name : (indirect string, offset: 0x109): sizetype
- <c4> DW_AT_byte_size : 8
- <c5> DW_AT_encoding : 7 (unsigned)
- <1><c6>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x124): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 37
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1f7): struct_group_req
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 33
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1ed): group_req
+ <41> DW_AT_byte_size : 132
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 151
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x170): gr_interface
+ <49> DW_AT_type : <0x62>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 152
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 6 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x190): gr_group
+ <57> DW_AT_type : <0x74>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 153
+ <5d> Unknown AT value: 88: 4
+ <5e> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><61>: Abbrev Number: 0
+ <1><62>: Abbrev Number: 3 (DW_TAG_typedef)
+ <63> DW_AT_type : <0x6d>
+ <67> DW_AT_name : (indirect string, offset: 0x18a): __u32
+ <6b> DW_AT_decl_file : 1
+ <6c> DW_AT_decl_line : 28
+ <1><6d>: Abbrev Number: 7 (DW_TAG_base_type)
+ <6e> DW_AT_name : (indirect string, offset: 0x17d): unsigned int
+ <72> DW_AT_encoding : 7 (unsigned)
+ <73> DW_AT_byte_size : 4
+ <1><74>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <75> DW_AT_name : (indirect string, offset: 0x1dc): sockaddr_storage
+ <79> DW_AT_byte_size : 128
+ <7a> DW_AT_decl_file : 3
+ <7b> DW_AT_decl_line : 24
+ <7c> Unknown AT value: 88: 4
+ <2><7d>: Abbrev Number: 5 (DW_TAG_member)
+ <7e> DW_AT_name : (indirect string, offset: 0x199): ss_family
+ <82> DW_AT_type : <0x9a>
+ <86> DW_AT_decl_file : 3
+ <87> DW_AT_decl_line : 25
+ <88> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><8b>: Abbrev Number: 5 (DW_TAG_member)
+ <8c> DW_AT_name : (indirect string, offset: 0x1c7): __data
+ <90> DW_AT_type : <0xac>
+ <94> DW_AT_decl_file : 3
+ <95> DW_AT_decl_line : 26
+ <96> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><99>: Abbrev Number: 0
+ <1><9a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <9b> DW_AT_type : <0xa5>
+ <9f> DW_AT_name : (indirect string, offset: 0x1b2): __kernel_sa_family_t
+ <a3> DW_AT_decl_file : 3
+ <a4> DW_AT_decl_line : 23
+ <1><a5>: Abbrev Number: 7 (DW_TAG_base_type)
+ <a6> DW_AT_name : (indirect string, offset: 0x1a3): unsigned short
+ <aa> DW_AT_encoding : 7 (unsigned)
+ <ab> DW_AT_byte_size : 2
+ <1><ac>: Abbrev Number: 9 (DW_TAG_array_type)
+ <ad> DW_AT_type : <0xb9>
+ <2><b1>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <b2> DW_AT_type : <0xc0>
+ <b6> DW_AT_lower_bound : 0
+ <b7> DW_AT_count : 126
+ <2><b8>: Abbrev Number: 0
+ <1><b9>: Abbrev Number: 7 (DW_TAG_base_type)
+ <ba> DW_AT_name : (indirect string, offset: 0x1ce): char
+ <be> DW_AT_encoding : 8 (unsigned char)
+ <bf> DW_AT_byte_size : 1
+ <1><c0>: Abbrev Number: 11 (DW_TAG_base_type)
+ <c1> DW_AT_name : (indirect string, offset: 0x1d3): sizetype
+ <c5> DW_AT_byte_size : 8
+ <c6> DW_AT_encoding : 7 (unsigned)
+ <1><c7>: Abbrev Number: 0
diff --git a/mpers-m32/struct_group_req.d2 b/mpers-m32/struct_group_req.d2
index 0c8a5d8..ac2803a 100644
--- a/mpers-m32/struct_group_req.d2
+++ b/mpers-m32/struct_group_req.d2
@@ -1,96 +1,96 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 37
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x136): struct_group_req
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1f7): struct_group_req
DW_AT_decl_file : 4
DW_AT_decl_line : 33
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x12c): group_req
+DW_AT_name : (indirect string, offset: 0x1ed): group_req
DW_AT_byte_size : 132
DW_AT_decl_file : 2
-DW_AT_decl_line : 163
-<2><43>
+DW_AT_decl_line : 151
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa6): gr_interface
-DW_AT_type : <0x61>
+DW_AT_name : (indirect string, offset: 0x170): gr_interface
+DW_AT_type : <0x62>
DW_AT_decl_file : 2
-DW_AT_decl_line : 164
+DW_AT_decl_line : 152
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 6 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc6): gr_group
-DW_AT_type : <0x73>
+DW_AT_name : (indirect string, offset: 0x190): gr_group
+DW_AT_type : <0x74>
DW_AT_decl_file : 2
-DW_AT_decl_line : 165
+DW_AT_decl_line : 153
Unknown AT value: 88: 4
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><61>
+<1><62>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x6c>
-DW_AT_name : (indirect string, offset: 0xc0): __u32
+DW_AT_type : <0x6d>
+DW_AT_name : (indirect string, offset: 0x18a): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><6c>
+<1><6d>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb3): unsigned int
+DW_AT_name : (indirect string, offset: 0x17d): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><73>
+<1><74>
Abbrev Number: 8 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x112): __kernel_sockaddr_storage
+DW_AT_name : (indirect string, offset: 0x1dc): sockaddr_storage
DW_AT_byte_size : 128
DW_AT_decl_file : 3
DW_AT_decl_line : 24
Unknown AT value: 88: 4
-<2><7c>
+<2><7d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcf): ss_family
-DW_AT_type : <0x99>
+DW_AT_name : (indirect string, offset: 0x199): ss_family
+DW_AT_type : <0x9a>
DW_AT_decl_file : 3
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><8a>
+<2><8b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfd): __data
-DW_AT_type : <0xab>
+DW_AT_name : (indirect string, offset: 0x1c7): __data
+DW_AT_type : <0xac>
DW_AT_decl_file : 3
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><99>
+<1><9a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xa4>
-DW_AT_name : (indirect string, offset: 0xe8): __kernel_sa_family_t
+DW_AT_type : <0xa5>
+DW_AT_name : (indirect string, offset: 0x1b2): __kernel_sa_family_t
DW_AT_decl_file : 3
DW_AT_decl_line : 23
-<1><a4>
+<1><a5>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd9): unsigned short
+DW_AT_name : (indirect string, offset: 0x1a3): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><ab>
+<1><ac>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0xb8>
-<2><b0>
+DW_AT_type : <0xb9>
+<2><b1>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0xbf>
+DW_AT_type : <0xc0>
DW_AT_lower_bound : 0
DW_AT_count : 126
-<1><b8>
+<1><b9>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x104): char
+DW_AT_name : (indirect string, offset: 0x1ce): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><bf>
+<1><c0>
Abbrev Number: 11 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x109): sizetype
+DW_AT_name : (indirect string, offset: 0x1d3): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
diff --git a/mpers-m32/struct_hd_geometry.d1 b/mpers-m32/struct_hd_geometry.d1
index 5fb6cfd..213e550 100644
--- a/mpers-m32/struct_hd_geometry.d1
+++ b/mpers-m32/struct_hd_geometry.d1
@@ -1,69 +1,70 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x92 (32-bit)
+ Length: 0x93 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_hd_geometry.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_hd_geometry.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5c): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 2
- <29> DW_AT_decl_line : 37
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x101): struct_hd_geometry
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 35
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xf5): hd_geometry
- <40> DW_AT_byte_size : 8
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 255
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa8): heads
- <48> DW_AT_type : <0x80>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 256
- <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><52>: Abbrev Number: 5 (DW_TAG_member)
- <53> DW_AT_name : (indirect string, offset: 0xbc): sectors
- <57> DW_AT_type : <0x80>
- <5b> DW_AT_decl_file : 1
- <5c> DW_AT_decl_line : 257
- <5e> DW_AT_data_member_location: 2 byte block: 23 1 (DW_OP_plus_uconst: 1)
- <2><61>: Abbrev Number: 5 (DW_TAG_member)
- <62> DW_AT_name : (indirect string, offset: 0xc4): cylinders
- <66> DW_AT_type : <0x87>
- <6a> DW_AT_decl_file : 1
- <6b> DW_AT_decl_line : 258
- <6d> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><70>: Abbrev Number: 5 (DW_TAG_member)
- <71> DW_AT_name : (indirect string, offset: 0xdd): start
- <75> DW_AT_type : <0x8e>
- <79> DW_AT_decl_file : 1
- <7a> DW_AT_decl_line : 259
- <7c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><7f>: Abbrev Number: 0
- <1><80>: Abbrev Number: 6 (DW_TAG_base_type)
- <81> DW_AT_name : (indirect string, offset: 0xae): unsigned char
- <85> DW_AT_encoding : 8 (unsigned char)
- <86> DW_AT_byte_size : 1
- <1><87>: Abbrev Number: 6 (DW_TAG_base_type)
- <88> DW_AT_name : (indirect string, offset: 0xce): unsigned short
- <8c> DW_AT_encoding : 7 (unsigned)
- <8d> DW_AT_byte_size : 2
- <1><8e>: Abbrev Number: 6 (DW_TAG_base_type)
- <8f> DW_AT_name : (indirect string, offset: 0xe3): long unsigned int
- <93> DW_AT_encoding : 7 (unsigned)
- <94> DW_AT_byte_size : 4
- <1><95>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x126): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 37
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1cb): struct_hd_geometry
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 35
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1bf): hd_geometry
+ <41> DW_AT_byte_size : 8
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 255
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x172): heads
+ <49> DW_AT_type : <0x81>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 256
+ <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><53>: Abbrev Number: 5 (DW_TAG_member)
+ <54> DW_AT_name : (indirect string, offset: 0x186): sectors
+ <58> DW_AT_type : <0x81>
+ <5c> DW_AT_decl_file : 1
+ <5d> DW_AT_decl_line : 257
+ <5f> DW_AT_data_member_location: 2 byte block: 23 1 (DW_OP_plus_uconst: 1)
+ <2><62>: Abbrev Number: 5 (DW_TAG_member)
+ <63> DW_AT_name : (indirect string, offset: 0x18e): cylinders
+ <67> DW_AT_type : <0x88>
+ <6b> DW_AT_decl_file : 1
+ <6c> DW_AT_decl_line : 258
+ <6e> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><71>: Abbrev Number: 5 (DW_TAG_member)
+ <72> DW_AT_name : (indirect string, offset: 0x1a7): start
+ <76> DW_AT_type : <0x8f>
+ <7a> DW_AT_decl_file : 1
+ <7b> DW_AT_decl_line : 259
+ <7d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><80>: Abbrev Number: 0
+ <1><81>: Abbrev Number: 6 (DW_TAG_base_type)
+ <82> DW_AT_name : (indirect string, offset: 0x178): unsigned char
+ <86> DW_AT_encoding : 8 (unsigned char)
+ <87> DW_AT_byte_size : 1
+ <1><88>: Abbrev Number: 6 (DW_TAG_base_type)
+ <89> DW_AT_name : (indirect string, offset: 0x198): unsigned short
+ <8d> DW_AT_encoding : 7 (unsigned)
+ <8e> DW_AT_byte_size : 2
+ <1><8f>: Abbrev Number: 6 (DW_TAG_base_type)
+ <90> DW_AT_name : (indirect string, offset: 0x1ad): long unsigned int
+ <94> DW_AT_encoding : 7 (unsigned)
+ <95> DW_AT_byte_size : 4
+ <1><96>: Abbrev Number: 0
diff --git a/mpers-m32/struct_hd_geometry.d2 b/mpers-m32/struct_hd_geometry.d2
index 4deae48..6541189 100644
--- a/mpers-m32/struct_hd_geometry.d2
+++ b/mpers-m32/struct_hd_geometry.d2
@@ -1,63 +1,63 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 2
DW_AT_decl_line : 37
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x101): struct_hd_geometry
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1cb): struct_hd_geometry
DW_AT_decl_file : 2
DW_AT_decl_line : 35
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xf5): hd_geometry
+DW_AT_name : (indirect string, offset: 0x1bf): hd_geometry
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 255
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa8): heads
-DW_AT_type : <0x80>
+DW_AT_name : (indirect string, offset: 0x172): heads
+DW_AT_type : <0x81>
DW_AT_decl_file : 1
DW_AT_decl_line : 256
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><52>
+<2><53>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbc): sectors
-DW_AT_type : <0x80>
+DW_AT_name : (indirect string, offset: 0x186): sectors
+DW_AT_type : <0x81>
DW_AT_decl_file : 1
DW_AT_decl_line : 257
DW_AT_data_member_location: 2 byte block: 23 1 (DW_OP_plus_uconst: 1)
-<2><61>
+<2><62>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc4): cylinders
-DW_AT_type : <0x87>
+DW_AT_name : (indirect string, offset: 0x18e): cylinders
+DW_AT_type : <0x88>
DW_AT_decl_file : 1
DW_AT_decl_line : 258
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><70>
+<2><71>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdd): start
-DW_AT_type : <0x8e>
+DW_AT_name : (indirect string, offset: 0x1a7): start
+DW_AT_type : <0x8f>
DW_AT_decl_file : 1
DW_AT_decl_line : 259
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><80>
+<1><81>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xae): unsigned char
+DW_AT_name : (indirect string, offset: 0x178): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><87>
+<1><88>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xce): unsigned short
+DW_AT_name : (indirect string, offset: 0x198): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><8e>
+<1><8f>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe3): long unsigned int
+DW_AT_name : (indirect string, offset: 0x1ad): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_ifconf.c b/mpers-m32/struct_ifconf.c
index d7003ac..1aa6fde 100644
--- a/mpers-m32/struct_ifconf.c
+++ b/mpers-m32/struct_ifconf.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <[email protected]>
- * Copyright (c) 1996-2017 The strace developers.
+ * Copyright (c) 1996-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mpers-m32/struct_ifconf.d1 b/mpers-m32/struct_ifconf.d1
index 539da8e..67d4368 100644
--- a/mpers-m32/struct_ifconf.d1
+++ b/mpers-m32/struct_ifconf.d1
@@ -1,571 +1,572 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x4ae (32-bit)
+ Length: 0x4af (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_ifconf.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_ifconf.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x57): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 5
- <29> DW_AT_decl_line : 44
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x359): struct_ifconf
- <39> DW_AT_decl_file : 5
- <3a> DW_AT_decl_line : 41
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x352): ifconf
- <40> DW_AT_byte_size : 8
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 164
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa3): ifc_len
- <48> DW_AT_type : <0x81>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 165
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xaf): ifc_ifcu
- <56> DW_AT_type : <0x5f>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 169
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 6 (DW_TAG_union_type)
- <60> DW_AT_byte_size : 4
- <61> DW_AT_decl_file : 1
- <62> DW_AT_decl_line : 166
- <3><63>: Abbrev Number: 5 (DW_TAG_member)
- <64> DW_AT_name : (indirect string, offset: 0xb8): ifcu_buf
- <68> DW_AT_type : <0x88>
- <6c> DW_AT_decl_file : 1
- <6d> DW_AT_decl_line : 167
- <6e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0xc6): ifcu_req
- <76> DW_AT_type : <0x94>
- <7a> DW_AT_decl_file : 1
- <7b> DW_AT_decl_line : 168
- <7c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><7f>: Abbrev Number: 0
- <2><80>: Abbrev Number: 0
- <1><81>: Abbrev Number: 7 (DW_TAG_base_type)
- <82> DW_AT_name : (indirect string, offset: 0xab): int
- <86> DW_AT_encoding : 5 (signed)
- <87> DW_AT_byte_size : 4
- <1><88>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <89> DW_AT_type : <0x8d>
- <1><8d>: Abbrev Number: 7 (DW_TAG_base_type)
- <8e> DW_AT_name : (indirect string, offset: 0xc1): char
- <92> DW_AT_encoding : 8 (unsigned char)
- <93> DW_AT_byte_size : 1
- <1><94>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <95> DW_AT_type : <0x99>
- <1><99>: Abbrev Number: 4 (DW_TAG_structure_type)
- <9a> DW_AT_name : (indirect string, offset: 0x34c): ifreq
- <9e> DW_AT_byte_size : 32
- <9f> DW_AT_decl_file : 1
- <a0> DW_AT_decl_line : 124
- <2><a1>: Abbrev Number: 5 (DW_TAG_member)
- <a2> DW_AT_name : (indirect string, offset: 0xcf): ifr_ifrn
- <a6> DW_AT_type : <0xaf>
- <aa> DW_AT_decl_file : 1
- <ab> DW_AT_decl_line : 128
- <ac> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><af>: Abbrev Number: 6 (DW_TAG_union_type)
- <b0> DW_AT_byte_size : 16
- <b1> DW_AT_decl_file : 1
- <b2> DW_AT_decl_line : 126
- <3><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0xd8): ifrn_name
- <b8> DW_AT_type : <0x18c>
- <bc> DW_AT_decl_file : 1
- <bd> DW_AT_decl_line : 127
- <be> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><c1>: Abbrev Number: 0
- <2><c2>: Abbrev Number: 5 (DW_TAG_member)
- <c3> DW_AT_name : (indirect string, offset: 0xeb): ifr_ifru
- <c7> DW_AT_type : <0xd0>
- <cb> DW_AT_decl_file : 1
- <cc> DW_AT_decl_line : 143
- <cd> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><d0>: Abbrev Number: 6 (DW_TAG_union_type)
- <d1> DW_AT_byte_size : 16
- <d2> DW_AT_decl_file : 1
- <d3> DW_AT_decl_line : 129
- <3><d4>: Abbrev Number: 5 (DW_TAG_member)
- <d5> DW_AT_name : (indirect string, offset: 0xf4): ifru_addr
- <d9> DW_AT_type : <0x1a0>
- <dd> DW_AT_decl_file : 1
- <de> DW_AT_decl_line : 130
- <df> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><e2>: Abbrev Number: 5 (DW_TAG_member)
- <e3> DW_AT_name : (indirect string, offset: 0x134): ifru_dstaddr
- <e7> DW_AT_type : <0x1a0>
- <eb> DW_AT_decl_file : 1
- <ec> DW_AT_decl_line : 131
- <ed> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><f0>: Abbrev Number: 5 (DW_TAG_member)
- <f1> DW_AT_name : (indirect string, offset: 0x141): ifru_broadaddr
- <f5> DW_AT_type : <0x1a0>
- <f9> DW_AT_decl_file : 1
- <fa> DW_AT_decl_line : 132
- <fb> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><fe>: Abbrev Number: 5 (DW_TAG_member)
- <ff> DW_AT_name : (indirect string, offset: 0x150): ifru_netmask
- <103> DW_AT_type : <0x1a0>
- <107> DW_AT_decl_file : 1
- <108> DW_AT_decl_line : 133
- <109> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><10c>: Abbrev Number: 5 (DW_TAG_member)
- <10d> DW_AT_name : (indirect string, offset: 0x15d): ifru_hwaddr
- <111> DW_AT_type : <0x1a0>
- <115> DW_AT_decl_file : 1
- <116> DW_AT_decl_line : 134
- <117> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><11a>: Abbrev Number: 5 (DW_TAG_member)
- <11b> DW_AT_name : (indirect string, offset: 0x169): ifru_flags
- <11f> DW_AT_type : <0x1e4>
- <123> DW_AT_decl_file : 1
- <124> DW_AT_decl_line : 135
- <125> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><128>: Abbrev Number: 5 (DW_TAG_member)
- <129> DW_AT_name : (indirect string, offset: 0x17a): ifru_ivalue
- <12d> DW_AT_type : <0x81>
- <131> DW_AT_decl_file : 1
- <132> DW_AT_decl_line : 136
- <133> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><136>: Abbrev Number: 5 (DW_TAG_member)
- <137> DW_AT_name : (indirect string, offset: 0x186): ifru_mtu
- <13b> DW_AT_type : <0x81>
- <13f> DW_AT_decl_file : 1
- <140> DW_AT_decl_line : 137
- <141> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><144>: Abbrev Number: 5 (DW_TAG_member)
- <145> DW_AT_name : (indirect string, offset: 0x18f): ifru_map
- <149> DW_AT_type : <0x1eb>
- <14d> DW_AT_decl_file : 1
- <14e> DW_AT_decl_line : 138
- <14f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><152>: Abbrev Number: 5 (DW_TAG_member)
- <153> DW_AT_name : (indirect string, offset: 0x1e7): ifru_slave
- <157> DW_AT_type : <0x18c>
- <15b> DW_AT_decl_file : 1
- <15c> DW_AT_decl_line : 139
- <15d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><160>: Abbrev Number: 5 (DW_TAG_member)
- <161> DW_AT_name : (indirect string, offset: 0x1f2): ifru_newname
- <165> DW_AT_type : <0x18c>
- <169> DW_AT_decl_file : 1
- <16a> DW_AT_decl_line : 140
- <16b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><16e>: Abbrev Number: 5 (DW_TAG_member)
- <16f> DW_AT_name : (indirect string, offset: 0x1ff): ifru_data
- <173> DW_AT_type : <0x256>
- <177> DW_AT_decl_file : 1
- <178> DW_AT_decl_line : 141
- <179> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><17c>: Abbrev Number: 5 (DW_TAG_member)
- <17d> DW_AT_name : (indirect string, offset: 0x209): ifru_settings
- <181> DW_AT_type : <0x257>
- <185> DW_AT_decl_file : 1
- <186> DW_AT_decl_line : 142
- <187> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><18a>: Abbrev Number: 0
- <2><18b>: Abbrev Number: 0
- <1><18c>: Abbrev Number: 9 (DW_TAG_array_type)
- <18d> DW_AT_type : <0x8d>
- <2><191>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <192> DW_AT_type : <0x199>
- <196> DW_AT_lower_bound : 0
- <197> DW_AT_count : 16
- <2><198>: Abbrev Number: 0
- <1><199>: Abbrev Number: 11 (DW_TAG_base_type)
- <19a> DW_AT_name : (indirect string, offset: 0xe2): sizetype
- <19e> DW_AT_byte_size : 8
- <19f> DW_AT_encoding : 7 (unsigned)
- <1><1a0>: Abbrev Number: 4 (DW_TAG_structure_type)
- <1a1> DW_AT_name : (indirect string, offset: 0x12b): sockaddr
- <1a5> DW_AT_byte_size : 16
- <1a6> DW_AT_decl_file : 3
- <1a7> DW_AT_decl_line : 76
- <2><1a8>: Abbrev Number: 5 (DW_TAG_member)
- <1a9> DW_AT_name : (indirect string, offset: 0xfe): sa_family
- <1ad> DW_AT_type : <0x1c5>
- <1b1> DW_AT_decl_file : 3
- <1b2> DW_AT_decl_line : 77
- <1b3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><1b6>: Abbrev Number: 5 (DW_TAG_member)
- <1b7> DW_AT_name : (indirect string, offset: 0x123): sa_data
- <1bb> DW_AT_type : <0x1d7>
- <1bf> DW_AT_decl_file : 3
- <1c0> DW_AT_decl_line : 78
- <1c1> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><1c4>: Abbrev Number: 0
- <1><1c5>: Abbrev Number: 3 (DW_TAG_typedef)
- <1c6> DW_AT_type : <0x1d0>
- <1ca> DW_AT_name : (indirect string, offset: 0x117): sa_family_t
- <1ce> DW_AT_decl_file : 2
- <1cf> DW_AT_decl_line : 34
- <1><1d0>: Abbrev Number: 7 (DW_TAG_base_type)
- <1d1> DW_AT_name : (indirect string, offset: 0x108): unsigned short
- <1d5> DW_AT_encoding : 7 (unsigned)
- <1d6> DW_AT_byte_size : 2
- <1><1d7>: Abbrev Number: 9 (DW_TAG_array_type)
- <1d8> DW_AT_type : <0x8d>
- <2><1dc>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <1dd> DW_AT_type : <0x199>
- <1e1> DW_AT_lower_bound : 0
- <1e2> DW_AT_count : 14
- <2><1e3>: Abbrev Number: 0
- <1><1e4>: Abbrev Number: 7 (DW_TAG_base_type)
- <1e5> DW_AT_name : (indirect string, offset: 0x174): short
- <1e9> DW_AT_encoding : 5 (signed)
- <1ea> DW_AT_byte_size : 2
- <1><1eb>: Abbrev Number: 4 (DW_TAG_structure_type)
- <1ec> DW_AT_name : (indirect string, offset: 0x1e1): ifmap
- <1f0> DW_AT_byte_size : 16
- <1f1> DW_AT_decl_file : 1
- <1f2> DW_AT_decl_line : 101
- <2><1f3>: Abbrev Number: 5 (DW_TAG_member)
- <1f4> DW_AT_name : (indirect string, offset: 0x198): mem_start
- <1f8> DW_AT_type : <0x248>
- <1fc> DW_AT_decl_file : 1
- <1fd> DW_AT_decl_line : 102
- <1fe> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><201>: Abbrev Number: 5 (DW_TAG_member)
- <202> DW_AT_name : (indirect string, offset: 0x1b4): mem_end
- <206> DW_AT_type : <0x248>
- <20a> DW_AT_decl_file : 1
- <20b> DW_AT_decl_line : 103
- <20c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><20f>: Abbrev Number: 5 (DW_TAG_member)
- <210> DW_AT_name : (indirect string, offset: 0x1bc): base_addr
- <214> DW_AT_type : <0x1d0>
- <218> DW_AT_decl_file : 1
- <219> DW_AT_decl_line : 104
- <21a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><21d>: Abbrev Number: 5 (DW_TAG_member)
- <21e> DW_AT_name : (indirect string, offset: 0x1c6): irq
- <222> DW_AT_type : <0x24f>
- <226> DW_AT_decl_file : 1
- <227> DW_AT_decl_line : 105
- <228> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><22b>: Abbrev Number: 5 (DW_TAG_member)
- <22c> DW_AT_name : (indirect string, offset: 0x1d8): dma
- <230> DW_AT_type : <0x24f>
- <234> DW_AT_decl_file : 1
- <235> DW_AT_decl_line : 106
- <236> DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
- <2><239>: Abbrev Number: 5 (DW_TAG_member)
- <23a> DW_AT_name : (indirect string, offset: 0x1dc): port
- <23e> DW_AT_type : <0x24f>
- <242> DW_AT_decl_file : 1
- <243> DW_AT_decl_line : 107
- <244> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><247>: Abbrev Number: 0
- <1><248>: Abbrev Number: 7 (DW_TAG_base_type)
- <249> DW_AT_name : (indirect string, offset: 0x1a2): long unsigned int
- <24d> DW_AT_encoding : 7 (unsigned)
- <24e> DW_AT_byte_size : 4
- <1><24f>: Abbrev Number: 7 (DW_TAG_base_type)
- <250> DW_AT_name : (indirect string, offset: 0x1ca): unsigned char
- <254> DW_AT_encoding : 8 (unsigned char)
- <255> DW_AT_byte_size : 1
- <1><256>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <1><257>: Abbrev Number: 4 (DW_TAG_structure_type)
- <258> DW_AT_name : (indirect string, offset: 0x340): if_settings
- <25c> DW_AT_byte_size : 12
- <25d> DW_AT_decl_file : 1
- <25e> DW_AT_decl_line : 110
- <2><25f>: Abbrev Number: 5 (DW_TAG_member)
- <260> DW_AT_name : (indirect string, offset: 0x217): type
- <264> DW_AT_type : <0x2f1>
- <268> DW_AT_decl_file : 1
- <269> DW_AT_decl_line : 111
- <26a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><26d>: Abbrev Number: 5 (DW_TAG_member)
- <26e> DW_AT_name : (indirect string, offset: 0x229): size
- <272> DW_AT_type : <0x2f1>
- <276> DW_AT_decl_file : 1
- <277> DW_AT_decl_line : 112
- <278> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><27b>: Abbrev Number: 5 (DW_TAG_member)
- <27c> DW_AT_name : (indirect string, offset: 0x22e): ifs_ifsu
- <280> DW_AT_type : <0x289>
- <284> DW_AT_decl_file : 1
- <285> DW_AT_decl_line : 121
- <286> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><289>: Abbrev Number: 6 (DW_TAG_union_type)
- <28a> DW_AT_byte_size : 4
- <28b> DW_AT_decl_file : 1
- <28c> DW_AT_decl_line : 113
- <3><28d>: Abbrev Number: 5 (DW_TAG_member)
- <28e> DW_AT_name : (indirect string, offset: 0x237): raw_hdlc
- <292> DW_AT_type : <0x2f8>
- <296> DW_AT_decl_file : 1
- <297> DW_AT_decl_line : 114
- <298> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><29b>: Abbrev Number: 5 (DW_TAG_member)
- <29c> DW_AT_name : (indirect string, offset: 0x25f): cisco
- <2a0> DW_AT_type : <0x329>
- <2a4> DW_AT_decl_file : 1
- <2a5> DW_AT_decl_line : 115
- <2a6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2a9>: Abbrev Number: 5 (DW_TAG_member)
- <2aa> DW_AT_name : (indirect string, offset: 0x282): fr
- <2ae> DW_AT_type : <0x35a>
- <2b2> DW_AT_decl_file : 1
- <2b3> DW_AT_decl_line : 116
- <2b4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2b7>: Abbrev Number: 5 (DW_TAG_member)
- <2b8> DW_AT_name : (indirect string, offset: 0x2af): fr_pvc
- <2bc> DW_AT_type : <0x3d1>
- <2c0> DW_AT_decl_file : 1
- <2c1> DW_AT_decl_line : 117
- <2c2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2c5>: Abbrev Number: 5 (DW_TAG_member)
- <2c6> DW_AT_name : (indirect string, offset: 0x2c8): fr_pvc_info
- <2ca> DW_AT_type : <0x3f4>
- <2ce> DW_AT_decl_file : 1
- <2cf> DW_AT_decl_line : 118
- <2d0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2d3>: Abbrev Number: 5 (DW_TAG_member)
- <2d4> DW_AT_name : (indirect string, offset: 0x2ed): sync
- <2d8> DW_AT_type : <0x425>
- <2dc> DW_AT_decl_file : 1
- <2dd> DW_AT_decl_line : 119
- <2de> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2e1>: Abbrev Number: 5 (DW_TAG_member)
- <2e2> DW_AT_name : (indirect string, offset: 0x326): te1
- <2e6> DW_AT_type : <0x464>
- <2ea> DW_AT_decl_file : 1
- <2eb> DW_AT_decl_line : 120
- <2ec> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2ef>: Abbrev Number: 0
- <2><2f0>: Abbrev Number: 0
- <1><2f1>: Abbrev Number: 7 (DW_TAG_base_type)
- <2f2> DW_AT_name : (indirect string, offset: 0x21c): unsigned int
- <2f6> DW_AT_encoding : 7 (unsigned)
- <2f7> DW_AT_byte_size : 4
- <1><2f8>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <2f9> DW_AT_type : <0x2fd>
- <1><2fd>: Abbrev Number: 3 (DW_TAG_typedef)
- <2fe> DW_AT_type : <0x308>
- <302> DW_AT_name : (indirect string, offset: 0x250): raw_hdlc_proto
- <306> DW_AT_decl_file : 4
- <307> DW_AT_decl_line : 61
- <1><308>: Abbrev Number: 13 (DW_TAG_structure_type)
- <309> DW_AT_byte_size : 4
- <30a> DW_AT_decl_file : 4
- <30b> DW_AT_decl_line : 58
- <2><30c>: Abbrev Number: 5 (DW_TAG_member)
- <30d> DW_AT_name : (indirect string, offset: 0x240): encoding
- <311> DW_AT_type : <0x1d0>
- <315> DW_AT_decl_file : 4
- <316> DW_AT_decl_line : 59
- <317> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><31a>: Abbrev Number: 5 (DW_TAG_member)
- <31b> DW_AT_name : (indirect string, offset: 0x249): parity
- <31f> DW_AT_type : <0x1d0>
- <323> DW_AT_decl_file : 4
- <324> DW_AT_decl_line : 60
- <325> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><328>: Abbrev Number: 0
- <1><329>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <32a> DW_AT_type : <0x32e>
- <1><32e>: Abbrev Number: 3 (DW_TAG_typedef)
- <32f> DW_AT_type : <0x339>
- <333> DW_AT_name : (indirect string, offset: 0x276): cisco_proto
- <337> DW_AT_decl_file : 4
- <338> DW_AT_decl_line : 81
- <1><339>: Abbrev Number: 13 (DW_TAG_structure_type)
- <33a> DW_AT_byte_size : 8
- <33b> DW_AT_decl_file : 4
- <33c> DW_AT_decl_line : 78
- <2><33d>: Abbrev Number: 5 (DW_TAG_member)
- <33e> DW_AT_name : (indirect string, offset: 0x265): interval
- <342> DW_AT_type : <0x2f1>
- <346> DW_AT_decl_file : 4
- <347> DW_AT_decl_line : 79
- <348> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><34b>: Abbrev Number: 5 (DW_TAG_member)
- <34c> DW_AT_name : (indirect string, offset: 0x26e): timeout
- <350> DW_AT_type : <0x2f1>
- <354> DW_AT_decl_file : 4
- <355> DW_AT_decl_line : 80
- <356> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><359>: Abbrev Number: 0
- <1><35a>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <35b> DW_AT_type : <0x35f>
- <1><35f>: Abbrev Number: 3 (DW_TAG_typedef)
- <360> DW_AT_type : <0x36a>
- <364> DW_AT_name : (indirect string, offset: 0x2a6): fr_proto
- <368> DW_AT_decl_file : 4
- <369> DW_AT_decl_line : 70
- <1><36a>: Abbrev Number: 13 (DW_TAG_structure_type)
- <36b> DW_AT_byte_size : 24
- <36c> DW_AT_decl_file : 4
- <36d> DW_AT_decl_line : 62
- <2><36e>: Abbrev Number: 5 (DW_TAG_member)
- <36f> DW_AT_name : (indirect string, offset: 0x285): t391
- <373> DW_AT_type : <0x2f1>
- <377> DW_AT_decl_file : 4
- <378> DW_AT_decl_line : 63
- <379> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><37c>: Abbrev Number: 5 (DW_TAG_member)
- <37d> DW_AT_name : (indirect string, offset: 0x28a): t392
- <381> DW_AT_type : <0x2f1>
- <385> DW_AT_decl_file : 4
- <386> DW_AT_decl_line : 64
- <387> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><38a>: Abbrev Number: 5 (DW_TAG_member)
- <38b> DW_AT_name : (indirect string, offset: 0x28f): n391
- <38f> DW_AT_type : <0x2f1>
- <393> DW_AT_decl_file : 4
- <394> DW_AT_decl_line : 65
- <395> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><398>: Abbrev Number: 5 (DW_TAG_member)
- <399> DW_AT_name : (indirect string, offset: 0x294): n392
- <39d> DW_AT_type : <0x2f1>
- <3a1> DW_AT_decl_file : 4
- <3a2> DW_AT_decl_line : 66
- <3a3> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><3a6>: Abbrev Number: 5 (DW_TAG_member)
- <3a7> DW_AT_name : (indirect string, offset: 0x299): n393
- <3ab> DW_AT_type : <0x2f1>
- <3af> DW_AT_decl_file : 4
- <3b0> DW_AT_decl_line : 67
- <3b1> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><3b4>: Abbrev Number: 5 (DW_TAG_member)
- <3b5> DW_AT_name : (indirect string, offset: 0x29e): lmi
- <3b9> DW_AT_type : <0x1d0>
- <3bd> DW_AT_decl_file : 4
- <3be> DW_AT_decl_line : 68
- <3bf> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><3c2>: Abbrev Number: 5 (DW_TAG_member)
- <3c3> DW_AT_name : (indirect string, offset: 0x2a2): dce
- <3c7> DW_AT_type : <0x1d0>
- <3cb> DW_AT_decl_file : 4
- <3cc> DW_AT_decl_line : 69
- <3cd> DW_AT_data_member_location: 2 byte block: 23 16 (DW_OP_plus_uconst: 22)
- <2><3d0>: Abbrev Number: 0
- <1><3d1>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <3d2> DW_AT_type : <0x3d6>
- <1><3d6>: Abbrev Number: 3 (DW_TAG_typedef)
- <3d7> DW_AT_type : <0x3e1>
- <3db> DW_AT_name : (indirect string, offset: 0x2bb): fr_proto_pvc
- <3df> DW_AT_decl_file : 4
- <3e0> DW_AT_decl_line : 73
- <1><3e1>: Abbrev Number: 13 (DW_TAG_structure_type)
- <3e2> DW_AT_byte_size : 4
- <3e3> DW_AT_decl_file : 4
- <3e4> DW_AT_decl_line : 71
- <2><3e5>: Abbrev Number: 5 (DW_TAG_member)
- <3e6> DW_AT_name : (indirect string, offset: 0x2b6): dlci
- <3ea> DW_AT_type : <0x2f1>
- <3ee> DW_AT_decl_file : 4
- <3ef> DW_AT_decl_line : 72
- <3f0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><3f3>: Abbrev Number: 0
- <1><3f4>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <3f5> DW_AT_type : <0x3f9>
- <1><3f9>: Abbrev Number: 3 (DW_TAG_typedef)
- <3fa> DW_AT_type : <0x404>
- <3fe> DW_AT_name : (indirect string, offset: 0x2db): fr_proto_pvc_info
- <402> DW_AT_decl_file : 4
- <403> DW_AT_decl_line : 77
- <1><404>: Abbrev Number: 13 (DW_TAG_structure_type)
- <405> DW_AT_byte_size : 20
- <406> DW_AT_decl_file : 4
- <407> DW_AT_decl_line : 74
- <2><408>: Abbrev Number: 5 (DW_TAG_member)
- <409> DW_AT_name : (indirect string, offset: 0x2b6): dlci
- <40d> DW_AT_type : <0x2f1>
- <411> DW_AT_decl_file : 4
- <412> DW_AT_decl_line : 75
- <413> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><416>: Abbrev Number: 5 (DW_TAG_member)
- <417> DW_AT_name : (indirect string, offset: 0x2d4): master
- <41b> DW_AT_type : <0x18c>
- <41f> DW_AT_decl_file : 4
- <420> DW_AT_decl_line : 76
- <421> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><424>: Abbrev Number: 0
- <1><425>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <426> DW_AT_type : <0x42a>
- <1><42a>: Abbrev Number: 3 (DW_TAG_typedef)
- <42b> DW_AT_type : <0x435>
- <42f> DW_AT_name : (indirect string, offset: 0x311): sync_serial_settings
- <433> DW_AT_decl_file : 4
- <434> DW_AT_decl_line : 51
- <1><435>: Abbrev Number: 13 (DW_TAG_structure_type)
- <436> DW_AT_byte_size : 12
- <437> DW_AT_decl_file : 4
- <438> DW_AT_decl_line : 47
- <2><439>: Abbrev Number: 5 (DW_TAG_member)
- <43a> DW_AT_name : (indirect string, offset: 0x2f2): clock_rate
- <43e> DW_AT_type : <0x2f1>
- <442> DW_AT_decl_file : 4
- <443> DW_AT_decl_line : 48
- <444> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><447>: Abbrev Number: 5 (DW_TAG_member)
- <448> DW_AT_name : (indirect string, offset: 0x2fd): clock_type
- <44c> DW_AT_type : <0x2f1>
- <450> DW_AT_decl_file : 4
- <451> DW_AT_decl_line : 49
- <452> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><455>: Abbrev Number: 5 (DW_TAG_member)
- <456> DW_AT_name : (indirect string, offset: 0x308): loopback
- <45a> DW_AT_type : <0x1d0>
- <45e> DW_AT_decl_file : 4
- <45f> DW_AT_decl_line : 50
- <460> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><463>: Abbrev Number: 0
- <1><464>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <465> DW_AT_type : <0x469>
- <1><469>: Abbrev Number: 3 (DW_TAG_typedef)
- <46a> DW_AT_type : <0x474>
- <46e> DW_AT_name : (indirect string, offset: 0x333): te1_settings
- <472> DW_AT_decl_file : 4
- <473> DW_AT_decl_line : 57
- <1><474>: Abbrev Number: 13 (DW_TAG_structure_type)
- <475> DW_AT_byte_size : 16
- <476> DW_AT_decl_file : 4
- <477> DW_AT_decl_line : 52
- <2><478>: Abbrev Number: 5 (DW_TAG_member)
- <479> DW_AT_name : (indirect string, offset: 0x2f2): clock_rate
- <47d> DW_AT_type : <0x2f1>
- <481> DW_AT_decl_file : 4
- <482> DW_AT_decl_line : 53
- <483> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><486>: Abbrev Number: 5 (DW_TAG_member)
- <487> DW_AT_name : (indirect string, offset: 0x2fd): clock_type
- <48b> DW_AT_type : <0x2f1>
- <48f> DW_AT_decl_file : 4
- <490> DW_AT_decl_line : 54
- <491> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><494>: Abbrev Number: 5 (DW_TAG_member)
- <495> DW_AT_name : (indirect string, offset: 0x308): loopback
- <499> DW_AT_type : <0x1d0>
- <49d> DW_AT_decl_file : 4
- <49e> DW_AT_decl_line : 55
- <49f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><4a2>: Abbrev Number: 5 (DW_TAG_member)
- <4a3> DW_AT_name : (indirect string, offset: 0x32a): slot_map
- <4a7> DW_AT_type : <0x2f1>
- <4ab> DW_AT_decl_file : 4
- <4ac> DW_AT_decl_line : 56
- <4ad> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><4b0>: Abbrev Number: 0
- <1><4b1>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x121): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 5
+ <2a> DW_AT_decl_line : 44
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x423): struct_ifconf
+ <3a> DW_AT_decl_file : 5
+ <3b> DW_AT_decl_line : 41
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x41c): ifconf
+ <41> DW_AT_byte_size : 8
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 181
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16d): ifc_len
+ <49> DW_AT_type : <0x82>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 182
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x179): ifc_ifcu
+ <57> DW_AT_type : <0x60>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 186
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 6 (DW_TAG_union_type)
+ <61> DW_AT_byte_size : 4
+ <62> DW_AT_decl_file : 1
+ <63> DW_AT_decl_line : 183
+ <3><64>: Abbrev Number: 5 (DW_TAG_member)
+ <65> DW_AT_name : (indirect string, offset: 0x182): ifcu_buf
+ <69> DW_AT_type : <0x89>
+ <6d> DW_AT_decl_file : 1
+ <6e> DW_AT_decl_line : 184
+ <6f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x190): ifcu_req
+ <77> DW_AT_type : <0x95>
+ <7b> DW_AT_decl_file : 1
+ <7c> DW_AT_decl_line : 185
+ <7d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><80>: Abbrev Number: 0
+ <2><81>: Abbrev Number: 0
+ <1><82>: Abbrev Number: 7 (DW_TAG_base_type)
+ <83> DW_AT_name : (indirect string, offset: 0x175): int
+ <87> DW_AT_encoding : 5 (signed)
+ <88> DW_AT_byte_size : 4
+ <1><89>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <8a> DW_AT_type : <0x8e>
+ <1><8e>: Abbrev Number: 7 (DW_TAG_base_type)
+ <8f> DW_AT_name : (indirect string, offset: 0x18b): char
+ <93> DW_AT_encoding : 8 (unsigned char)
+ <94> DW_AT_byte_size : 1
+ <1><95>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <96> DW_AT_type : <0x9a>
+ <1><9a>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <9b> DW_AT_name : (indirect string, offset: 0x416): ifreq
+ <9f> DW_AT_byte_size : 32
+ <a0> DW_AT_decl_file : 1
+ <a1> DW_AT_decl_line : 141
+ <2><a2>: Abbrev Number: 5 (DW_TAG_member)
+ <a3> DW_AT_name : (indirect string, offset: 0x199): ifr_ifrn
+ <a7> DW_AT_type : <0xb0>
+ <ab> DW_AT_decl_file : 1
+ <ac> DW_AT_decl_line : 145
+ <ad> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><b0>: Abbrev Number: 6 (DW_TAG_union_type)
+ <b1> DW_AT_byte_size : 16
+ <b2> DW_AT_decl_file : 1
+ <b3> DW_AT_decl_line : 143
+ <3><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x1a2): ifrn_name
+ <b9> DW_AT_type : <0x18d>
+ <bd> DW_AT_decl_file : 1
+ <be> DW_AT_decl_line : 144
+ <bf> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><c2>: Abbrev Number: 0
+ <2><c3>: Abbrev Number: 5 (DW_TAG_member)
+ <c4> DW_AT_name : (indirect string, offset: 0x1b5): ifr_ifru
+ <c8> DW_AT_type : <0xd1>
+ <cc> DW_AT_decl_file : 1
+ <cd> DW_AT_decl_line : 160
+ <ce> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><d1>: Abbrev Number: 6 (DW_TAG_union_type)
+ <d2> DW_AT_byte_size : 16
+ <d3> DW_AT_decl_file : 1
+ <d4> DW_AT_decl_line : 146
+ <3><d5>: Abbrev Number: 5 (DW_TAG_member)
+ <d6> DW_AT_name : (indirect string, offset: 0x1be): ifru_addr
+ <da> DW_AT_type : <0x1a1>
+ <de> DW_AT_decl_file : 1
+ <df> DW_AT_decl_line : 147
+ <e0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><e3>: Abbrev Number: 5 (DW_TAG_member)
+ <e4> DW_AT_name : (indirect string, offset: 0x1fe): ifru_dstaddr
+ <e8> DW_AT_type : <0x1a1>
+ <ec> DW_AT_decl_file : 1
+ <ed> DW_AT_decl_line : 148
+ <ee> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><f1>: Abbrev Number: 5 (DW_TAG_member)
+ <f2> DW_AT_name : (indirect string, offset: 0x20b): ifru_broadaddr
+ <f6> DW_AT_type : <0x1a1>
+ <fa> DW_AT_decl_file : 1
+ <fb> DW_AT_decl_line : 149
+ <fc> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><ff>: Abbrev Number: 5 (DW_TAG_member)
+ <100> DW_AT_name : (indirect string, offset: 0x21a): ifru_netmask
+ <104> DW_AT_type : <0x1a1>
+ <108> DW_AT_decl_file : 1
+ <109> DW_AT_decl_line : 150
+ <10a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><10d>: Abbrev Number: 5 (DW_TAG_member)
+ <10e> DW_AT_name : (indirect string, offset: 0x227): ifru_hwaddr
+ <112> DW_AT_type : <0x1a1>
+ <116> DW_AT_decl_file : 1
+ <117> DW_AT_decl_line : 151
+ <118> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><11b>: Abbrev Number: 5 (DW_TAG_member)
+ <11c> DW_AT_name : (indirect string, offset: 0x233): ifru_flags
+ <120> DW_AT_type : <0x1e5>
+ <124> DW_AT_decl_file : 1
+ <125> DW_AT_decl_line : 152
+ <126> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><129>: Abbrev Number: 5 (DW_TAG_member)
+ <12a> DW_AT_name : (indirect string, offset: 0x244): ifru_ivalue
+ <12e> DW_AT_type : <0x82>
+ <132> DW_AT_decl_file : 1
+ <133> DW_AT_decl_line : 153
+ <134> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><137>: Abbrev Number: 5 (DW_TAG_member)
+ <138> DW_AT_name : (indirect string, offset: 0x250): ifru_mtu
+ <13c> DW_AT_type : <0x82>
+ <140> DW_AT_decl_file : 1
+ <141> DW_AT_decl_line : 154
+ <142> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><145>: Abbrev Number: 5 (DW_TAG_member)
+ <146> DW_AT_name : (indirect string, offset: 0x259): ifru_map
+ <14a> DW_AT_type : <0x1ec>
+ <14e> DW_AT_decl_file : 1
+ <14f> DW_AT_decl_line : 155
+ <150> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><153>: Abbrev Number: 5 (DW_TAG_member)
+ <154> DW_AT_name : (indirect string, offset: 0x2b1): ifru_slave
+ <158> DW_AT_type : <0x18d>
+ <15c> DW_AT_decl_file : 1
+ <15d> DW_AT_decl_line : 156
+ <15e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><161>: Abbrev Number: 5 (DW_TAG_member)
+ <162> DW_AT_name : (indirect string, offset: 0x2bc): ifru_newname
+ <166> DW_AT_type : <0x18d>
+ <16a> DW_AT_decl_file : 1
+ <16b> DW_AT_decl_line : 157
+ <16c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><16f>: Abbrev Number: 5 (DW_TAG_member)
+ <170> DW_AT_name : (indirect string, offset: 0x2c9): ifru_data
+ <174> DW_AT_type : <0x257>
+ <178> DW_AT_decl_file : 1
+ <179> DW_AT_decl_line : 158
+ <17a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><17d>: Abbrev Number: 5 (DW_TAG_member)
+ <17e> DW_AT_name : (indirect string, offset: 0x2d3): ifru_settings
+ <182> DW_AT_type : <0x258>
+ <186> DW_AT_decl_file : 1
+ <187> DW_AT_decl_line : 159
+ <188> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><18b>: Abbrev Number: 0
+ <2><18c>: Abbrev Number: 0
+ <1><18d>: Abbrev Number: 9 (DW_TAG_array_type)
+ <18e> DW_AT_type : <0x8e>
+ <2><192>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <193> DW_AT_type : <0x19a>
+ <197> DW_AT_lower_bound : 0
+ <198> DW_AT_count : 16
+ <2><199>: Abbrev Number: 0
+ <1><19a>: Abbrev Number: 11 (DW_TAG_base_type)
+ <19b> DW_AT_name : (indirect string, offset: 0x1ac): sizetype
+ <19f> DW_AT_byte_size : 8
+ <1a0> DW_AT_encoding : 7 (unsigned)
+ <1><1a1>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <1a2> DW_AT_name : (indirect string, offset: 0x1f5): sockaddr
+ <1a6> DW_AT_byte_size : 16
+ <1a7> DW_AT_decl_file : 3
+ <1a8> DW_AT_decl_line : 74
+ <2><1a9>: Abbrev Number: 5 (DW_TAG_member)
+ <1aa> DW_AT_name : (indirect string, offset: 0x1c8): sa_family
+ <1ae> DW_AT_type : <0x1c6>
+ <1b2> DW_AT_decl_file : 3
+ <1b3> DW_AT_decl_line : 75
+ <1b4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><1b7>: Abbrev Number: 5 (DW_TAG_member)
+ <1b8> DW_AT_name : (indirect string, offset: 0x1ed): sa_data
+ <1bc> DW_AT_type : <0x1d8>
+ <1c0> DW_AT_decl_file : 3
+ <1c1> DW_AT_decl_line : 76
+ <1c2> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><1c5>: Abbrev Number: 0
+ <1><1c6>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1c7> DW_AT_type : <0x1d1>
+ <1cb> DW_AT_name : (indirect string, offset: 0x1e1): sa_family_t
+ <1cf> DW_AT_decl_file : 2
+ <1d0> DW_AT_decl_line : 34
+ <1><1d1>: Abbrev Number: 7 (DW_TAG_base_type)
+ <1d2> DW_AT_name : (indirect string, offset: 0x1d2): unsigned short
+ <1d6> DW_AT_encoding : 7 (unsigned)
+ <1d7> DW_AT_byte_size : 2
+ <1><1d8>: Abbrev Number: 9 (DW_TAG_array_type)
+ <1d9> DW_AT_type : <0x8e>
+ <2><1dd>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <1de> DW_AT_type : <0x19a>
+ <1e2> DW_AT_lower_bound : 0
+ <1e3> DW_AT_count : 14
+ <2><1e4>: Abbrev Number: 0
+ <1><1e5>: Abbrev Number: 7 (DW_TAG_base_type)
+ <1e6> DW_AT_name : (indirect string, offset: 0x23e): short
+ <1ea> DW_AT_encoding : 5 (signed)
+ <1eb> DW_AT_byte_size : 2
+ <1><1ec>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <1ed> DW_AT_name : (indirect string, offset: 0x2ab): ifmap
+ <1f1> DW_AT_byte_size : 16
+ <1f2> DW_AT_decl_file : 1
+ <1f3> DW_AT_decl_line : 118
+ <2><1f4>: Abbrev Number: 5 (DW_TAG_member)
+ <1f5> DW_AT_name : (indirect string, offset: 0x262): mem_start
+ <1f9> DW_AT_type : <0x249>
+ <1fd> DW_AT_decl_file : 1
+ <1fe> DW_AT_decl_line : 119
+ <1ff> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><202>: Abbrev Number: 5 (DW_TAG_member)
+ <203> DW_AT_name : (indirect string, offset: 0x27e): mem_end
+ <207> DW_AT_type : <0x249>
+ <20b> DW_AT_decl_file : 1
+ <20c> DW_AT_decl_line : 120
+ <20d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><210>: Abbrev Number: 5 (DW_TAG_member)
+ <211> DW_AT_name : (indirect string, offset: 0x286): base_addr
+ <215> DW_AT_type : <0x1d1>
+ <219> DW_AT_decl_file : 1
+ <21a> DW_AT_decl_line : 121
+ <21b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><21e>: Abbrev Number: 5 (DW_TAG_member)
+ <21f> DW_AT_name : (indirect string, offset: 0x290): irq
+ <223> DW_AT_type : <0x250>
+ <227> DW_AT_decl_file : 1
+ <228> DW_AT_decl_line : 122
+ <229> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><22c>: Abbrev Number: 5 (DW_TAG_member)
+ <22d> DW_AT_name : (indirect string, offset: 0x2a2): dma
+ <231> DW_AT_type : <0x250>
+ <235> DW_AT_decl_file : 1
+ <236> DW_AT_decl_line : 123
+ <237> DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
+ <2><23a>: Abbrev Number: 5 (DW_TAG_member)
+ <23b> DW_AT_name : (indirect string, offset: 0x2a6): port
+ <23f> DW_AT_type : <0x250>
+ <243> DW_AT_decl_file : 1
+ <244> DW_AT_decl_line : 124
+ <245> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><248>: Abbrev Number: 0
+ <1><249>: Abbrev Number: 7 (DW_TAG_base_type)
+ <24a> DW_AT_name : (indirect string, offset: 0x26c): long unsigned int
+ <24e> DW_AT_encoding : 7 (unsigned)
+ <24f> DW_AT_byte_size : 4
+ <1><250>: Abbrev Number: 7 (DW_TAG_base_type)
+ <251> DW_AT_name : (indirect string, offset: 0x294): unsigned char
+ <255> DW_AT_encoding : 8 (unsigned char)
+ <256> DW_AT_byte_size : 1
+ <1><257>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <1><258>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <259> DW_AT_name : (indirect string, offset: 0x40a): if_settings
+ <25d> DW_AT_byte_size : 12
+ <25e> DW_AT_decl_file : 1
+ <25f> DW_AT_decl_line : 127
+ <2><260>: Abbrev Number: 5 (DW_TAG_member)
+ <261> DW_AT_name : (indirect string, offset: 0x2e1): type
+ <265> DW_AT_type : <0x2f2>
+ <269> DW_AT_decl_file : 1
+ <26a> DW_AT_decl_line : 128
+ <26b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><26e>: Abbrev Number: 5 (DW_TAG_member)
+ <26f> DW_AT_name : (indirect string, offset: 0x2f3): size
+ <273> DW_AT_type : <0x2f2>
+ <277> DW_AT_decl_file : 1
+ <278> DW_AT_decl_line : 129
+ <279> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><27c>: Abbrev Number: 5 (DW_TAG_member)
+ <27d> DW_AT_name : (indirect string, offset: 0x2f8): ifs_ifsu
+ <281> DW_AT_type : <0x28a>
+ <285> DW_AT_decl_file : 1
+ <286> DW_AT_decl_line : 138
+ <287> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><28a>: Abbrev Number: 6 (DW_TAG_union_type)
+ <28b> DW_AT_byte_size : 4
+ <28c> DW_AT_decl_file : 1
+ <28d> DW_AT_decl_line : 130
+ <3><28e>: Abbrev Number: 5 (DW_TAG_member)
+ <28f> DW_AT_name : (indirect string, offset: 0x301): raw_hdlc
+ <293> DW_AT_type : <0x2f9>
+ <297> DW_AT_decl_file : 1
+ <298> DW_AT_decl_line : 131
+ <299> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><29c>: Abbrev Number: 5 (DW_TAG_member)
+ <29d> DW_AT_name : (indirect string, offset: 0x329): cisco
+ <2a1> DW_AT_type : <0x32a>
+ <2a5> DW_AT_decl_file : 1
+ <2a6> DW_AT_decl_line : 132
+ <2a7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2aa>: Abbrev Number: 5 (DW_TAG_member)
+ <2ab> DW_AT_name : (indirect string, offset: 0x34c): fr
+ <2af> DW_AT_type : <0x35b>
+ <2b3> DW_AT_decl_file : 1
+ <2b4> DW_AT_decl_line : 133
+ <2b5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2b8>: Abbrev Number: 5 (DW_TAG_member)
+ <2b9> DW_AT_name : (indirect string, offset: 0x379): fr_pvc
+ <2bd> DW_AT_type : <0x3d2>
+ <2c1> DW_AT_decl_file : 1
+ <2c2> DW_AT_decl_line : 134
+ <2c3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2c6>: Abbrev Number: 5 (DW_TAG_member)
+ <2c7> DW_AT_name : (indirect string, offset: 0x392): fr_pvc_info
+ <2cb> DW_AT_type : <0x3f5>
+ <2cf> DW_AT_decl_file : 1
+ <2d0> DW_AT_decl_line : 135
+ <2d1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2d4>: Abbrev Number: 5 (DW_TAG_member)
+ <2d5> DW_AT_name : (indirect string, offset: 0x3b7): sync
+ <2d9> DW_AT_type : <0x426>
+ <2dd> DW_AT_decl_file : 1
+ <2de> DW_AT_decl_line : 136
+ <2df> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2e2>: Abbrev Number: 5 (DW_TAG_member)
+ <2e3> DW_AT_name : (indirect string, offset: 0x3f0): te1
+ <2e7> DW_AT_type : <0x465>
+ <2eb> DW_AT_decl_file : 1
+ <2ec> DW_AT_decl_line : 137
+ <2ed> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2f0>: Abbrev Number: 0
+ <2><2f1>: Abbrev Number: 0
+ <1><2f2>: Abbrev Number: 7 (DW_TAG_base_type)
+ <2f3> DW_AT_name : (indirect string, offset: 0x2e6): unsigned int
+ <2f7> DW_AT_encoding : 7 (unsigned)
+ <2f8> DW_AT_byte_size : 4
+ <1><2f9>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <2fa> DW_AT_type : <0x2fe>
+ <1><2fe>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2ff> DW_AT_type : <0x309>
+ <303> DW_AT_name : (indirect string, offset: 0x31a): raw_hdlc_proto
+ <307> DW_AT_decl_file : 4
+ <308> DW_AT_decl_line : 61
+ <1><309>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <30a> DW_AT_byte_size : 4
+ <30b> DW_AT_decl_file : 4
+ <30c> DW_AT_decl_line : 58
+ <2><30d>: Abbrev Number: 5 (DW_TAG_member)
+ <30e> DW_AT_name : (indirect string, offset: 0x30a): encoding
+ <312> DW_AT_type : <0x1d1>
+ <316> DW_AT_decl_file : 4
+ <317> DW_AT_decl_line : 59
+ <318> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><31b>: Abbrev Number: 5 (DW_TAG_member)
+ <31c> DW_AT_name : (indirect string, offset: 0x313): parity
+ <320> DW_AT_type : <0x1d1>
+ <324> DW_AT_decl_file : 4
+ <325> DW_AT_decl_line : 60
+ <326> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><329>: Abbrev Number: 0
+ <1><32a>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <32b> DW_AT_type : <0x32f>
+ <1><32f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <330> DW_AT_type : <0x33a>
+ <334> DW_AT_name : (indirect string, offset: 0x340): cisco_proto
+ <338> DW_AT_decl_file : 4
+ <339> DW_AT_decl_line : 81
+ <1><33a>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <33b> DW_AT_byte_size : 8
+ <33c> DW_AT_decl_file : 4
+ <33d> DW_AT_decl_line : 78
+ <2><33e>: Abbrev Number: 5 (DW_TAG_member)
+ <33f> DW_AT_name : (indirect string, offset: 0x32f): interval
+ <343> DW_AT_type : <0x2f2>
+ <347> DW_AT_decl_file : 4
+ <348> DW_AT_decl_line : 79
+ <349> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><34c>: Abbrev Number: 5 (DW_TAG_member)
+ <34d> DW_AT_name : (indirect string, offset: 0x338): timeout
+ <351> DW_AT_type : <0x2f2>
+ <355> DW_AT_decl_file : 4
+ <356> DW_AT_decl_line : 80
+ <357> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><35a>: Abbrev Number: 0
+ <1><35b>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <35c> DW_AT_type : <0x360>
+ <1><360>: Abbrev Number: 3 (DW_TAG_typedef)
+ <361> DW_AT_type : <0x36b>
+ <365> DW_AT_name : (indirect string, offset: 0x370): fr_proto
+ <369> DW_AT_decl_file : 4
+ <36a> DW_AT_decl_line : 70
+ <1><36b>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <36c> DW_AT_byte_size : 24
+ <36d> DW_AT_decl_file : 4
+ <36e> DW_AT_decl_line : 62
+ <2><36f>: Abbrev Number: 5 (DW_TAG_member)
+ <370> DW_AT_name : (indirect string, offset: 0x34f): t391
+ <374> DW_AT_type : <0x2f2>
+ <378> DW_AT_decl_file : 4
+ <379> DW_AT_decl_line : 63
+ <37a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><37d>: Abbrev Number: 5 (DW_TAG_member)
+ <37e> DW_AT_name : (indirect string, offset: 0x354): t392
+ <382> DW_AT_type : <0x2f2>
+ <386> DW_AT_decl_file : 4
+ <387> DW_AT_decl_line : 64
+ <388> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><38b>: Abbrev Number: 5 (DW_TAG_member)
+ <38c> DW_AT_name : (indirect string, offset: 0x359): n391
+ <390> DW_AT_type : <0x2f2>
+ <394> DW_AT_decl_file : 4
+ <395> DW_AT_decl_line : 65
+ <396> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><399>: Abbrev Number: 5 (DW_TAG_member)
+ <39a> DW_AT_name : (indirect string, offset: 0x35e): n392
+ <39e> DW_AT_type : <0x2f2>
+ <3a2> DW_AT_decl_file : 4
+ <3a3> DW_AT_decl_line : 66
+ <3a4> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><3a7>: Abbrev Number: 5 (DW_TAG_member)
+ <3a8> DW_AT_name : (indirect string, offset: 0x363): n393
+ <3ac> DW_AT_type : <0x2f2>
+ <3b0> DW_AT_decl_file : 4
+ <3b1> DW_AT_decl_line : 67
+ <3b2> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><3b5>: Abbrev Number: 5 (DW_TAG_member)
+ <3b6> DW_AT_name : (indirect string, offset: 0x368): lmi
+ <3ba> DW_AT_type : <0x1d1>
+ <3be> DW_AT_decl_file : 4
+ <3bf> DW_AT_decl_line : 68
+ <3c0> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><3c3>: Abbrev Number: 5 (DW_TAG_member)
+ <3c4> DW_AT_name : (indirect string, offset: 0x36c): dce
+ <3c8> DW_AT_type : <0x1d1>
+ <3cc> DW_AT_decl_file : 4
+ <3cd> DW_AT_decl_line : 69
+ <3ce> DW_AT_data_member_location: 2 byte block: 23 16 (DW_OP_plus_uconst: 22)
+ <2><3d1>: Abbrev Number: 0
+ <1><3d2>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <3d3> DW_AT_type : <0x3d7>
+ <1><3d7>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3d8> DW_AT_type : <0x3e2>
+ <3dc> DW_AT_name : (indirect string, offset: 0x385): fr_proto_pvc
+ <3e0> DW_AT_decl_file : 4
+ <3e1> DW_AT_decl_line : 73
+ <1><3e2>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <3e3> DW_AT_byte_size : 4
+ <3e4> DW_AT_decl_file : 4
+ <3e5> DW_AT_decl_line : 71
+ <2><3e6>: Abbrev Number: 5 (DW_TAG_member)
+ <3e7> DW_AT_name : (indirect string, offset: 0x380): dlci
+ <3eb> DW_AT_type : <0x2f2>
+ <3ef> DW_AT_decl_file : 4
+ <3f0> DW_AT_decl_line : 72
+ <3f1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><3f4>: Abbrev Number: 0
+ <1><3f5>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <3f6> DW_AT_type : <0x3fa>
+ <1><3fa>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3fb> DW_AT_type : <0x405>
+ <3ff> DW_AT_name : (indirect string, offset: 0x3a5): fr_proto_pvc_info
+ <403> DW_AT_decl_file : 4
+ <404> DW_AT_decl_line : 77
+ <1><405>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <406> DW_AT_byte_size : 20
+ <407> DW_AT_decl_file : 4
+ <408> DW_AT_decl_line : 74
+ <2><409>: Abbrev Number: 5 (DW_TAG_member)
+ <40a> DW_AT_name : (indirect string, offset: 0x380): dlci
+ <40e> DW_AT_type : <0x2f2>
+ <412> DW_AT_decl_file : 4
+ <413> DW_AT_decl_line : 75
+ <414> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><417>: Abbrev Number: 5 (DW_TAG_member)
+ <418> DW_AT_name : (indirect string, offset: 0x39e): master
+ <41c> DW_AT_type : <0x18d>
+ <420> DW_AT_decl_file : 4
+ <421> DW_AT_decl_line : 76
+ <422> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><425>: Abbrev Number: 0
+ <1><426>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <427> DW_AT_type : <0x42b>
+ <1><42b>: Abbrev Number: 3 (DW_TAG_typedef)
+ <42c> DW_AT_type : <0x436>
+ <430> DW_AT_name : (indirect string, offset: 0x3db): sync_serial_settings
+ <434> DW_AT_decl_file : 4
+ <435> DW_AT_decl_line : 51
+ <1><436>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <437> DW_AT_byte_size : 12
+ <438> DW_AT_decl_file : 4
+ <439> DW_AT_decl_line : 47
+ <2><43a>: Abbrev Number: 5 (DW_TAG_member)
+ <43b> DW_AT_name : (indirect string, offset: 0x3bc): clock_rate
+ <43f> DW_AT_type : <0x2f2>
+ <443> DW_AT_decl_file : 4
+ <444> DW_AT_decl_line : 48
+ <445> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><448>: Abbrev Number: 5 (DW_TAG_member)
+ <449> DW_AT_name : (indirect string, offset: 0x3c7): clock_type
+ <44d> DW_AT_type : <0x2f2>
+ <451> DW_AT_decl_file : 4
+ <452> DW_AT_decl_line : 49
+ <453> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><456>: Abbrev Number: 5 (DW_TAG_member)
+ <457> DW_AT_name : (indirect string, offset: 0x3d2): loopback
+ <45b> DW_AT_type : <0x1d1>
+ <45f> DW_AT_decl_file : 4
+ <460> DW_AT_decl_line : 50
+ <461> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><464>: Abbrev Number: 0
+ <1><465>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <466> DW_AT_type : <0x46a>
+ <1><46a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <46b> DW_AT_type : <0x475>
+ <46f> DW_AT_name : (indirect string, offset: 0x3fd): te1_settings
+ <473> DW_AT_decl_file : 4
+ <474> DW_AT_decl_line : 57
+ <1><475>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <476> DW_AT_byte_size : 16
+ <477> DW_AT_decl_file : 4
+ <478> DW_AT_decl_line : 52
+ <2><479>: Abbrev Number: 5 (DW_TAG_member)
+ <47a> DW_AT_name : (indirect string, offset: 0x3bc): clock_rate
+ <47e> DW_AT_type : <0x2f2>
+ <482> DW_AT_decl_file : 4
+ <483> DW_AT_decl_line : 53
+ <484> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><487>: Abbrev Number: 5 (DW_TAG_member)
+ <488> DW_AT_name : (indirect string, offset: 0x3c7): clock_type
+ <48c> DW_AT_type : <0x2f2>
+ <490> DW_AT_decl_file : 4
+ <491> DW_AT_decl_line : 54
+ <492> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><495>: Abbrev Number: 5 (DW_TAG_member)
+ <496> DW_AT_name : (indirect string, offset: 0x3d2): loopback
+ <49a> DW_AT_type : <0x1d1>
+ <49e> DW_AT_decl_file : 4
+ <49f> DW_AT_decl_line : 55
+ <4a0> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><4a3>: Abbrev Number: 5 (DW_TAG_member)
+ <4a4> DW_AT_name : (indirect string, offset: 0x3f4): slot_map
+ <4a8> DW_AT_type : <0x2f2>
+ <4ac> DW_AT_decl_file : 4
+ <4ad> DW_AT_decl_line : 56
+ <4ae> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><4b1>: Abbrev Number: 0
+ <1><4b2>: Abbrev Number: 0
diff --git a/mpers-m32/struct_ifconf.d2 b/mpers-m32/struct_ifconf.d2
index 6f2a8c6..0ba7191 100644
--- a/mpers-m32/struct_ifconf.d2
+++ b/mpers-m32/struct_ifconf.d2
@@ -1,645 +1,645 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 5
DW_AT_decl_line : 44
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x359): struct_ifconf
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x423): struct_ifconf
DW_AT_decl_file : 5
DW_AT_decl_line : 41
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x352): ifconf
+DW_AT_name : (indirect string, offset: 0x41c): ifconf
DW_AT_byte_size : 8
DW_AT_decl_file : 1
-DW_AT_decl_line : 164
-<2><43>
+DW_AT_decl_line : 181
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa3): ifc_len
-DW_AT_type : <0x81>
+DW_AT_name : (indirect string, offset: 0x16d): ifc_len
+DW_AT_type : <0x82>
DW_AT_decl_file : 1
-DW_AT_decl_line : 165
+DW_AT_decl_line : 182
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xaf): ifc_ifcu
-DW_AT_type : <0x5f>
+DW_AT_name : (indirect string, offset: 0x179): ifc_ifcu
+DW_AT_type : <0x60>
DW_AT_decl_file : 1
-DW_AT_decl_line : 169
+DW_AT_decl_line : 186
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 1
-DW_AT_decl_line : 166
-<3><63>
+DW_AT_decl_line : 183
+<3><64>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb8): ifcu_buf
-DW_AT_type : <0x88>
+DW_AT_name : (indirect string, offset: 0x182): ifcu_buf
+DW_AT_type : <0x89>
DW_AT_decl_file : 1
-DW_AT_decl_line : 167
+DW_AT_decl_line : 184
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><71>
+<3><72>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc6): ifcu_req
-DW_AT_type : <0x94>
+DW_AT_name : (indirect string, offset: 0x190): ifcu_req
+DW_AT_type : <0x95>
DW_AT_decl_file : 1
-DW_AT_decl_line : 168
+DW_AT_decl_line : 185
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><81>
+<1><82>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xab): int
+DW_AT_name : (indirect string, offset: 0x175): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><88>
+<1><89>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x8d>
-<1><8d>
+DW_AT_type : <0x8e>
+<1><8e>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc1): char
+DW_AT_name : (indirect string, offset: 0x18b): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><94>
+<1><95>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x99>
-<1><99>
+DW_AT_type : <0x9a>
+<1><9a>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x34c): ifreq
+DW_AT_name : (indirect string, offset: 0x416): ifreq
DW_AT_byte_size : 32
DW_AT_decl_file : 1
-DW_AT_decl_line : 124
-<2><a1>
+DW_AT_decl_line : 141
+<2><a2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcf): ifr_ifrn
-DW_AT_type : <0xaf>
+DW_AT_name : (indirect string, offset: 0x199): ifr_ifrn
+DW_AT_type : <0xb0>
DW_AT_decl_file : 1
-DW_AT_decl_line : 128
+DW_AT_decl_line : 145
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><af>
+<2><b0>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
-DW_AT_decl_line : 126
-<3><b3>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd8): ifrn_name
-DW_AT_type : <0x18c>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 127
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><c2>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xeb): ifr_ifru
-DW_AT_type : <0xd0>
-DW_AT_decl_file : 1
DW_AT_decl_line : 143
+<3><b4>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1a2): ifrn_name
+DW_AT_type : <0x18d>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 144
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><c3>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b5): ifr_ifru
+DW_AT_type : <0xd1>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 160
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><d0>
+<2><d1>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
-DW_AT_decl_line : 129
-<3><d4>
+DW_AT_decl_line : 146
+<3><d5>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf4): ifru_addr
-DW_AT_type : <0x1a0>
+DW_AT_name : (indirect string, offset: 0x1be): ifru_addr
+DW_AT_type : <0x1a1>
DW_AT_decl_file : 1
-DW_AT_decl_line : 130
+DW_AT_decl_line : 147
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><e2>
+<3><e3>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x134): ifru_dstaddr
-DW_AT_type : <0x1a0>
+DW_AT_name : (indirect string, offset: 0x1fe): ifru_dstaddr
+DW_AT_type : <0x1a1>
DW_AT_decl_file : 1
-DW_AT_decl_line : 131
+DW_AT_decl_line : 148
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><f0>
+<3><f1>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x141): ifru_broadaddr
-DW_AT_type : <0x1a0>
+DW_AT_name : (indirect string, offset: 0x20b): ifru_broadaddr
+DW_AT_type : <0x1a1>
DW_AT_decl_file : 1
-DW_AT_decl_line : 132
+DW_AT_decl_line : 149
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><fe>
+<3><ff>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x150): ifru_netmask
-DW_AT_type : <0x1a0>
+DW_AT_name : (indirect string, offset: 0x21a): ifru_netmask
+DW_AT_type : <0x1a1>
DW_AT_decl_file : 1
-DW_AT_decl_line : 133
+DW_AT_decl_line : 150
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><10c>
+<3><10d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15d): ifru_hwaddr
-DW_AT_type : <0x1a0>
+DW_AT_name : (indirect string, offset: 0x227): ifru_hwaddr
+DW_AT_type : <0x1a1>
DW_AT_decl_file : 1
-DW_AT_decl_line : 134
+DW_AT_decl_line : 151
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><11a>
+<3><11b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x169): ifru_flags
-DW_AT_type : <0x1e4>
+DW_AT_name : (indirect string, offset: 0x233): ifru_flags
+DW_AT_type : <0x1e5>
DW_AT_decl_file : 1
-DW_AT_decl_line : 135
+DW_AT_decl_line : 152
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><128>
+<3><129>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17a): ifru_ivalue
-DW_AT_type : <0x81>
+DW_AT_name : (indirect string, offset: 0x244): ifru_ivalue
+DW_AT_type : <0x82>
DW_AT_decl_file : 1
-DW_AT_decl_line : 136
+DW_AT_decl_line : 153
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><136>
+<3><137>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x186): ifru_mtu
-DW_AT_type : <0x81>
+DW_AT_name : (indirect string, offset: 0x250): ifru_mtu
+DW_AT_type : <0x82>
DW_AT_decl_file : 1
-DW_AT_decl_line : 137
+DW_AT_decl_line : 154
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><144>
+<3><145>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x18f): ifru_map
-DW_AT_type : <0x1eb>
+DW_AT_name : (indirect string, offset: 0x259): ifru_map
+DW_AT_type : <0x1ec>
DW_AT_decl_file : 1
-DW_AT_decl_line : 138
+DW_AT_decl_line : 155
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><152>
+<3><153>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e7): ifru_slave
-DW_AT_type : <0x18c>
+DW_AT_name : (indirect string, offset: 0x2b1): ifru_slave
+DW_AT_type : <0x18d>
DW_AT_decl_file : 1
-DW_AT_decl_line : 139
+DW_AT_decl_line : 156
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><160>
+<3><161>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f2): ifru_newname
-DW_AT_type : <0x18c>
+DW_AT_name : (indirect string, offset: 0x2bc): ifru_newname
+DW_AT_type : <0x18d>
DW_AT_decl_file : 1
-DW_AT_decl_line : 140
+DW_AT_decl_line : 157
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><16e>
+<3><16f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ff): ifru_data
-DW_AT_type : <0x256>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 141
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><17c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x209): ifru_settings
+DW_AT_name : (indirect string, offset: 0x2c9): ifru_data
DW_AT_type : <0x257>
DW_AT_decl_file : 1
-DW_AT_decl_line : 142
+DW_AT_decl_line : 158
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><18c>
+<3><17d>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2d3): ifru_settings
+DW_AT_type : <0x258>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 159
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><18d>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0x8d>
-<2><191>
+DW_AT_type : <0x8e>
+<2><192>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0x199>
+DW_AT_type : <0x19a>
DW_AT_lower_bound : 0
DW_AT_count : 16
-<1><199>
+<1><19a>
Abbrev Number: 11 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe2): sizetype
+DW_AT_name : (indirect string, offset: 0x1ac): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><1a0>
+<1><1a1>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x12b): sockaddr
+DW_AT_name : (indirect string, offset: 0x1f5): sockaddr
DW_AT_byte_size : 16
DW_AT_decl_file : 3
+DW_AT_decl_line : 74
+<2><1a9>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1c8): sa_family
+DW_AT_type : <0x1c6>
+DW_AT_decl_file : 3
+DW_AT_decl_line : 75
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><1b7>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ed): sa_data
+DW_AT_type : <0x1d8>
+DW_AT_decl_file : 3
DW_AT_decl_line : 76
-<2><1a8>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfe): sa_family
-DW_AT_type : <0x1c5>
-DW_AT_decl_file : 3
-DW_AT_decl_line : 77
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1b6>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x123): sa_data
-DW_AT_type : <0x1d7>
-DW_AT_decl_file : 3
-DW_AT_decl_line : 78
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><1c5>
+<1><1c6>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1d0>
-DW_AT_name : (indirect string, offset: 0x117): sa_family_t
+DW_AT_type : <0x1d1>
+DW_AT_name : (indirect string, offset: 0x1e1): sa_family_t
DW_AT_decl_file : 2
DW_AT_decl_line : 34
-<1><1d0>
+<1><1d1>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x108): unsigned short
+DW_AT_name : (indirect string, offset: 0x1d2): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><1d7>
+<1><1d8>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0x8d>
-<2><1dc>
+DW_AT_type : <0x8e>
+<2><1dd>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0x199>
+DW_AT_type : <0x19a>
DW_AT_lower_bound : 0
DW_AT_count : 14
-<1><1e4>
+<1><1e5>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x174): short
+DW_AT_name : (indirect string, offset: 0x23e): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><1eb>
+<1><1ec>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1e1): ifmap
+DW_AT_name : (indirect string, offset: 0x2ab): ifmap
DW_AT_byte_size : 16
DW_AT_decl_file : 1
-DW_AT_decl_line : 101
-<2><1f3>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x198): mem_start
-DW_AT_type : <0x248>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 102
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><201>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1b4): mem_end
-DW_AT_type : <0x248>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 103
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><20f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1bc): base_addr
-DW_AT_type : <0x1d0>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 104
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><21d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1c6): irq
-DW_AT_type : <0x24f>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 105
-DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<2><22b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d8): dma
-DW_AT_type : <0x24f>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 106
-DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
-<2><239>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1dc): port
-DW_AT_type : <0x24f>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 107
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><248>
-Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1a2): long unsigned int
-DW_AT_encoding : 7 (unsigned)
-DW_AT_byte_size : 4
-<1><24f>
-Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1ca): unsigned char
-DW_AT_encoding : 8 (unsigned char)
-DW_AT_byte_size : 1
-<1><256>
-Abbrev Number: 12 (DW_TAG_pointer_type)
-<1><257>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x340): if_settings
-DW_AT_byte_size : 12
-DW_AT_decl_file : 1
-DW_AT_decl_line : 110
-<2><25f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x217): type
-DW_AT_type : <0x2f1>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 111
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><26d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x229): size
-DW_AT_type : <0x2f1>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 112
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><27b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x22e): ifs_ifsu
-DW_AT_type : <0x289>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 121
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><289>
-Abbrev Number: 6 (DW_TAG_union_type)
-DW_AT_byte_size : 4
-DW_AT_decl_file : 1
-DW_AT_decl_line : 113
-<3><28d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x237): raw_hdlc
-DW_AT_type : <0x2f8>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 114
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><29b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x25f): cisco
-DW_AT_type : <0x329>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 115
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><2a9>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x282): fr
-DW_AT_type : <0x35a>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 116
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><2b7>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2af): fr_pvc
-DW_AT_type : <0x3d1>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 117
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><2c5>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2c8): fr_pvc_info
-DW_AT_type : <0x3f4>
-DW_AT_decl_file : 1
DW_AT_decl_line : 118
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><2d3>
+<2><1f4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2ed): sync
-DW_AT_type : <0x425>
+DW_AT_name : (indirect string, offset: 0x262): mem_start
+DW_AT_type : <0x249>
DW_AT_decl_file : 1
DW_AT_decl_line : 119
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><2e1>
+<2><202>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x326): te1
-DW_AT_type : <0x464>
+DW_AT_name : (indirect string, offset: 0x27e): mem_end
+DW_AT_type : <0x249>
DW_AT_decl_file : 1
DW_AT_decl_line : 120
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><2f1>
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><210>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x286): base_addr
+DW_AT_type : <0x1d1>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 121
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><21e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x290): irq
+DW_AT_type : <0x250>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 122
+DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+<2><22c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2a2): dma
+DW_AT_type : <0x250>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 123
+DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
+<2><23a>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2a6): port
+DW_AT_type : <0x250>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 124
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<1><249>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x21c): unsigned int
+DW_AT_name : (indirect string, offset: 0x26c): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><2f8>
+<1><250>
+Abbrev Number: 7 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x294): unsigned char
+DW_AT_encoding : 8 (unsigned char)
+DW_AT_byte_size : 1
+<1><257>
+Abbrev Number: 12 (DW_TAG_pointer_type)
+<1><258>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x40a): if_settings
+DW_AT_byte_size : 12
+DW_AT_decl_file : 1
+DW_AT_decl_line : 127
+<2><260>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2e1): type
+DW_AT_type : <0x2f2>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 128
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><26e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2f3): size
+DW_AT_type : <0x2f2>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 129
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><27c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2f8): ifs_ifsu
+DW_AT_type : <0x28a>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 138
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><28a>
+Abbrev Number: 6 (DW_TAG_union_type)
+DW_AT_byte_size : 4
+DW_AT_decl_file : 1
+DW_AT_decl_line : 130
+<3><28e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x301): raw_hdlc
+DW_AT_type : <0x2f9>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 131
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><29c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x329): cisco
+DW_AT_type : <0x32a>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 132
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><2aa>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x34c): fr
+DW_AT_type : <0x35b>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 133
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><2b8>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x379): fr_pvc
+DW_AT_type : <0x3d2>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 134
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><2c6>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x392): fr_pvc_info
+DW_AT_type : <0x3f5>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 135
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><2d4>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3b7): sync
+DW_AT_type : <0x426>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 136
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><2e2>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3f0): te1
+DW_AT_type : <0x465>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 137
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><2f2>
+Abbrev Number: 7 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x2e6): unsigned int
+DW_AT_encoding : 7 (unsigned)
+DW_AT_byte_size : 4
+<1><2f9>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x2fd>
-<1><2fd>
+DW_AT_type : <0x2fe>
+<1><2fe>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x308>
-DW_AT_name : (indirect string, offset: 0x250): raw_hdlc_proto
+DW_AT_type : <0x309>
+DW_AT_name : (indirect string, offset: 0x31a): raw_hdlc_proto
DW_AT_decl_file : 4
DW_AT_decl_line : 61
-<1><308>
+<1><309>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 4
DW_AT_decl_line : 58
-<2><30c>
+<2><30d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x240): encoding
-DW_AT_type : <0x1d0>
+DW_AT_name : (indirect string, offset: 0x30a): encoding
+DW_AT_type : <0x1d1>
DW_AT_decl_file : 4
DW_AT_decl_line : 59
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><31a>
+<2><31b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x249): parity
-DW_AT_type : <0x1d0>
+DW_AT_name : (indirect string, offset: 0x313): parity
+DW_AT_type : <0x1d1>
DW_AT_decl_file : 4
DW_AT_decl_line : 60
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><329>
+<1><32a>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x32e>
-<1><32e>
+DW_AT_type : <0x32f>
+<1><32f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x339>
-DW_AT_name : (indirect string, offset: 0x276): cisco_proto
+DW_AT_type : <0x33a>
+DW_AT_name : (indirect string, offset: 0x340): cisco_proto
DW_AT_decl_file : 4
DW_AT_decl_line : 81
-<1><339>
+<1><33a>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 4
DW_AT_decl_line : 78
-<2><33d>
+<2><33e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x265): interval
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x32f): interval
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 79
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><34b>
+<2><34c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x26e): timeout
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x338): timeout
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 80
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><35a>
+<1><35b>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x35f>
-<1><35f>
+DW_AT_type : <0x360>
+<1><360>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x36a>
-DW_AT_name : (indirect string, offset: 0x2a6): fr_proto
+DW_AT_type : <0x36b>
+DW_AT_name : (indirect string, offset: 0x370): fr_proto
DW_AT_decl_file : 4
DW_AT_decl_line : 70
-<1><36a>
+<1><36b>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 24
DW_AT_decl_file : 4
DW_AT_decl_line : 62
-<2><36e>
+<2><36f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x285): t391
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x34f): t391
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 63
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><37c>
+<2><37d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x28a): t392
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x354): t392
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 64
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><38a>
+<2><38b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x28f): n391
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x359): n391
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 65
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><398>
+<2><399>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x294): n392
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x35e): n392
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 66
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><3a6>
+<2><3a7>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x299): n393
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x363): n393
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 67
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><3b4>
+<2><3b5>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x29e): lmi
-DW_AT_type : <0x1d0>
+DW_AT_name : (indirect string, offset: 0x368): lmi
+DW_AT_type : <0x1d1>
DW_AT_decl_file : 4
DW_AT_decl_line : 68
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><3c2>
+<2><3c3>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2a2): dce
-DW_AT_type : <0x1d0>
+DW_AT_name : (indirect string, offset: 0x36c): dce
+DW_AT_type : <0x1d1>
DW_AT_decl_file : 4
DW_AT_decl_line : 69
DW_AT_data_member_location: 2 byte block: 23 16 (DW_OP_plus_uconst: 22)
-<1><3d1>
+<1><3d2>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x3d6>
-<1><3d6>
+DW_AT_type : <0x3d7>
+<1><3d7>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3e1>
-DW_AT_name : (indirect string, offset: 0x2bb): fr_proto_pvc
+DW_AT_type : <0x3e2>
+DW_AT_name : (indirect string, offset: 0x385): fr_proto_pvc
DW_AT_decl_file : 4
DW_AT_decl_line : 73
-<1><3e1>
+<1><3e2>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 4
DW_AT_decl_line : 71
-<2><3e5>
+<2><3e6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2b6): dlci
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x380): dlci
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 72
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><3f4>
+<1><3f5>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x3f9>
-<1><3f9>
+DW_AT_type : <0x3fa>
+<1><3fa>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x404>
-DW_AT_name : (indirect string, offset: 0x2db): fr_proto_pvc_info
+DW_AT_type : <0x405>
+DW_AT_name : (indirect string, offset: 0x3a5): fr_proto_pvc_info
DW_AT_decl_file : 4
DW_AT_decl_line : 77
-<1><404>
+<1><405>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 20
DW_AT_decl_file : 4
DW_AT_decl_line : 74
-<2><408>
+<2><409>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2b6): dlci
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x380): dlci
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 75
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><416>
+<2><417>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2d4): master
-DW_AT_type : <0x18c>
+DW_AT_name : (indirect string, offset: 0x39e): master
+DW_AT_type : <0x18d>
DW_AT_decl_file : 4
DW_AT_decl_line : 76
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><425>
+<1><426>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x42a>
-<1><42a>
+DW_AT_type : <0x42b>
+<1><42b>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x435>
-DW_AT_name : (indirect string, offset: 0x311): sync_serial_settings
+DW_AT_type : <0x436>
+DW_AT_name : (indirect string, offset: 0x3db): sync_serial_settings
DW_AT_decl_file : 4
DW_AT_decl_line : 51
-<1><435>
+<1><436>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 12
DW_AT_decl_file : 4
DW_AT_decl_line : 47
-<2><439>
+<2><43a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f2): clock_rate
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x3bc): clock_rate
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><447>
+<2><448>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2fd): clock_type
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x3c7): clock_type
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 49
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><455>
+<2><456>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x308): loopback
-DW_AT_type : <0x1d0>
+DW_AT_name : (indirect string, offset: 0x3d2): loopback
+DW_AT_type : <0x1d1>
DW_AT_decl_file : 4
DW_AT_decl_line : 50
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><464>
+<1><465>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x469>
-<1><469>
+DW_AT_type : <0x46a>
+<1><46a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x474>
-DW_AT_name : (indirect string, offset: 0x333): te1_settings
+DW_AT_type : <0x475>
+DW_AT_name : (indirect string, offset: 0x3fd): te1_settings
DW_AT_decl_file : 4
DW_AT_decl_line : 57
-<1><474>
+<1><475>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 4
DW_AT_decl_line : 52
-<2><478>
+<2><479>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f2): clock_rate
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x3bc): clock_rate
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 53
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><486>
+<2><487>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2fd): clock_type
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x3c7): clock_type
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 54
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><494>
+<2><495>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x308): loopback
-DW_AT_type : <0x1d0>
+DW_AT_name : (indirect string, offset: 0x3d2): loopback
+DW_AT_type : <0x1d1>
DW_AT_decl_file : 4
DW_AT_decl_line : 55
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><4a2>
+<2><4a3>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x32a): slot_map
-DW_AT_type : <0x2f1>
+DW_AT_name : (indirect string, offset: 0x3f4): slot_map
+DW_AT_type : <0x2f2>
DW_AT_decl_file : 4
DW_AT_decl_line : 56
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
diff --git a/mpers-m32/struct_ifreq.c b/mpers-m32/struct_ifreq.c
index 2a1795c..ece6d49 100644
--- a/mpers-m32/struct_ifreq.c
+++ b/mpers-m32/struct_ifreq.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <[email protected]>
- * Copyright (c) 1996-2017 The strace developers.
+ * Copyright (c) 1996-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mpers-m32/struct_ifreq.d1 b/mpers-m32/struct_ifreq.d1
index f49f830..3c8d0b8 100644
--- a/mpers-m32/struct_ifreq.d1
+++ b/mpers-m32/struct_ifreq.d1
@@ -1,532 +1,533 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x45e (32-bit)
+ Length: 0x45f (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_ifreq.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_ifreq.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x56): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x91): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 5
- <29> DW_AT_decl_line : 44
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x32e): struct_ifreq
- <39> DW_AT_decl_file : 5
- <3a> DW_AT_decl_line : 42
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x328): ifreq
- <40> DW_AT_byte_size : 32
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 124
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa2): ifr_ifrn
- <48> DW_AT_type : <0x51>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 128
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 6 (DW_TAG_union_type)
- <52> DW_AT_byte_size : 16
- <53> DW_AT_decl_file : 1
- <54> DW_AT_decl_line : 126
- <3><55>: Abbrev Number: 5 (DW_TAG_member)
- <56> DW_AT_name : (indirect string, offset: 0xab): ifrn_name
- <5a> DW_AT_type : <0x12e>
- <5e> DW_AT_decl_file : 1
- <5f> DW_AT_decl_line : 127
- <60> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><63>: Abbrev Number: 0
- <2><64>: Abbrev Number: 5 (DW_TAG_member)
- <65> DW_AT_name : (indirect string, offset: 0xc3): ifr_ifru
- <69> DW_AT_type : <0x72>
- <6d> DW_AT_decl_file : 1
- <6e> DW_AT_decl_line : 143
- <6f> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><72>: Abbrev Number: 6 (DW_TAG_union_type)
- <73> DW_AT_byte_size : 16
- <74> DW_AT_decl_file : 1
- <75> DW_AT_decl_line : 129
- <3><76>: Abbrev Number: 5 (DW_TAG_member)
- <77> DW_AT_name : (indirect string, offset: 0xcc): ifru_addr
- <7b> DW_AT_type : <0x149>
- <7f> DW_AT_decl_file : 1
- <80> DW_AT_decl_line : 130
- <81> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><84>: Abbrev Number: 5 (DW_TAG_member)
- <85> DW_AT_name : (indirect string, offset: 0x10c): ifru_dstaddr
- <89> DW_AT_type : <0x149>
- <8d> DW_AT_decl_file : 1
- <8e> DW_AT_decl_line : 131
- <8f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><92>: Abbrev Number: 5 (DW_TAG_member)
- <93> DW_AT_name : (indirect string, offset: 0x119): ifru_broadaddr
- <97> DW_AT_type : <0x149>
- <9b> DW_AT_decl_file : 1
- <9c> DW_AT_decl_line : 132
- <9d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><a0>: Abbrev Number: 5 (DW_TAG_member)
- <a1> DW_AT_name : (indirect string, offset: 0x128): ifru_netmask
- <a5> DW_AT_type : <0x149>
- <a9> DW_AT_decl_file : 1
- <aa> DW_AT_decl_line : 133
- <ab> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><ae>: Abbrev Number: 5 (DW_TAG_member)
- <af> DW_AT_name : (indirect string, offset: 0x135): ifru_hwaddr
- <b3> DW_AT_type : <0x149>
- <b7> DW_AT_decl_file : 1
- <b8> DW_AT_decl_line : 134
- <b9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><bc>: Abbrev Number: 5 (DW_TAG_member)
- <bd> DW_AT_name : (indirect string, offset: 0x141): ifru_flags
- <c1> DW_AT_type : <0x18d>
- <c5> DW_AT_decl_file : 1
- <c6> DW_AT_decl_line : 135
- <c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><ca>: Abbrev Number: 5 (DW_TAG_member)
- <cb> DW_AT_name : (indirect string, offset: 0x152): ifru_ivalue
- <cf> DW_AT_type : <0x194>
- <d3> DW_AT_decl_file : 1
- <d4> DW_AT_decl_line : 136
- <d5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><d8>: Abbrev Number: 5 (DW_TAG_member)
- <d9> DW_AT_name : (indirect string, offset: 0x162): ifru_mtu
- <dd> DW_AT_type : <0x194>
- <e1> DW_AT_decl_file : 1
- <e2> DW_AT_decl_line : 137
- <e3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><e6>: Abbrev Number: 5 (DW_TAG_member)
- <e7> DW_AT_name : (indirect string, offset: 0x16b): ifru_map
- <eb> DW_AT_type : <0x19b>
- <ef> DW_AT_decl_file : 1
- <f0> DW_AT_decl_line : 138
- <f1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><f4>: Abbrev Number: 5 (DW_TAG_member)
- <f5> DW_AT_name : (indirect string, offset: 0x1c3): ifru_slave
- <f9> DW_AT_type : <0x12e>
- <fd> DW_AT_decl_file : 1
- <fe> DW_AT_decl_line : 139
- <ff> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><102>: Abbrev Number: 5 (DW_TAG_member)
- <103> DW_AT_name : (indirect string, offset: 0x1ce): ifru_newname
- <107> DW_AT_type : <0x12e>
- <10b> DW_AT_decl_file : 1
- <10c> DW_AT_decl_line : 140
- <10d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><110>: Abbrev Number: 5 (DW_TAG_member)
- <111> DW_AT_name : (indirect string, offset: 0x1db): ifru_data
- <115> DW_AT_type : <0x206>
- <119> DW_AT_decl_file : 1
- <11a> DW_AT_decl_line : 141
- <11b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><11e>: Abbrev Number: 5 (DW_TAG_member)
- <11f> DW_AT_name : (indirect string, offset: 0x1e5): ifru_settings
- <123> DW_AT_type : <0x207>
- <127> DW_AT_decl_file : 1
- <128> DW_AT_decl_line : 142
- <129> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><12c>: Abbrev Number: 0
- <2><12d>: Abbrev Number: 0
- <1><12e>: Abbrev Number: 7 (DW_TAG_array_type)
- <12f> DW_AT_type : <0x13b>
- <2><133>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <134> DW_AT_type : <0x142>
- <138> DW_AT_lower_bound : 0
- <139> DW_AT_count : 16
- <2><13a>: Abbrev Number: 0
- <1><13b>: Abbrev Number: 9 (DW_TAG_base_type)
- <13c> DW_AT_name : (indirect string, offset: 0xb5): char
- <140> DW_AT_encoding : 8 (unsigned char)
- <141> DW_AT_byte_size : 1
- <1><142>: Abbrev Number: 10 (DW_TAG_base_type)
- <143> DW_AT_name : (indirect string, offset: 0xba): sizetype
- <147> DW_AT_byte_size : 8
- <148> DW_AT_encoding : 7 (unsigned)
- <1><149>: Abbrev Number: 4 (DW_TAG_structure_type)
- <14a> DW_AT_name : (indirect string, offset: 0x103): sockaddr
- <14e> DW_AT_byte_size : 16
- <14f> DW_AT_decl_file : 3
- <150> DW_AT_decl_line : 76
- <2><151>: Abbrev Number: 5 (DW_TAG_member)
- <152> DW_AT_name : (indirect string, offset: 0xd6): sa_family
- <156> DW_AT_type : <0x16e>
- <15a> DW_AT_decl_file : 3
- <15b> DW_AT_decl_line : 77
- <15c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><15f>: Abbrev Number: 5 (DW_TAG_member)
- <160> DW_AT_name : (indirect string, offset: 0xfb): sa_data
- <164> DW_AT_type : <0x180>
- <168> DW_AT_decl_file : 3
- <169> DW_AT_decl_line : 78
- <16a> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><16d>: Abbrev Number: 0
- <1><16e>: Abbrev Number: 3 (DW_TAG_typedef)
- <16f> DW_AT_type : <0x179>
- <173> DW_AT_name : (indirect string, offset: 0xef): sa_family_t
- <177> DW_AT_decl_file : 2
- <178> DW_AT_decl_line : 34
- <1><179>: Abbrev Number: 9 (DW_TAG_base_type)
- <17a> DW_AT_name : (indirect string, offset: 0xe0): unsigned short
- <17e> DW_AT_encoding : 7 (unsigned)
- <17f> DW_AT_byte_size : 2
- <1><180>: Abbrev Number: 7 (DW_TAG_array_type)
- <181> DW_AT_type : <0x13b>
- <2><185>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <186> DW_AT_type : <0x142>
- <18a> DW_AT_lower_bound : 0
- <18b> DW_AT_count : 14
- <2><18c>: Abbrev Number: 0
- <1><18d>: Abbrev Number: 9 (DW_TAG_base_type)
- <18e> DW_AT_name : (indirect string, offset: 0x14c): short
- <192> DW_AT_encoding : 5 (signed)
- <193> DW_AT_byte_size : 2
- <1><194>: Abbrev Number: 9 (DW_TAG_base_type)
- <195> DW_AT_name : (indirect string, offset: 0x15e): int
- <199> DW_AT_encoding : 5 (signed)
- <19a> DW_AT_byte_size : 4
- <1><19b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <19c> DW_AT_name : (indirect string, offset: 0x1bd): ifmap
- <1a0> DW_AT_byte_size : 16
- <1a1> DW_AT_decl_file : 1
- <1a2> DW_AT_decl_line : 101
- <2><1a3>: Abbrev Number: 5 (DW_TAG_member)
- <1a4> DW_AT_name : (indirect string, offset: 0x174): mem_start
- <1a8> DW_AT_type : <0x1f8>
- <1ac> DW_AT_decl_file : 1
- <1ad> DW_AT_decl_line : 102
- <1ae> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><1b1>: Abbrev Number: 5 (DW_TAG_member)
- <1b2> DW_AT_name : (indirect string, offset: 0x190): mem_end
- <1b6> DW_AT_type : <0x1f8>
- <1ba> DW_AT_decl_file : 1
- <1bb> DW_AT_decl_line : 103
- <1bc> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><1bf>: Abbrev Number: 5 (DW_TAG_member)
- <1c0> DW_AT_name : (indirect string, offset: 0x198): base_addr
- <1c4> DW_AT_type : <0x179>
- <1c8> DW_AT_decl_file : 1
- <1c9> DW_AT_decl_line : 104
- <1ca> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><1cd>: Abbrev Number: 5 (DW_TAG_member)
- <1ce> DW_AT_name : (indirect string, offset: 0x1a2): irq
- <1d2> DW_AT_type : <0x1ff>
- <1d6> DW_AT_decl_file : 1
- <1d7> DW_AT_decl_line : 105
- <1d8> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><1db>: Abbrev Number: 5 (DW_TAG_member)
- <1dc> DW_AT_name : (indirect string, offset: 0x1b4): dma
- <1e0> DW_AT_type : <0x1ff>
- <1e4> DW_AT_decl_file : 1
- <1e5> DW_AT_decl_line : 106
- <1e6> DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
- <2><1e9>: Abbrev Number: 5 (DW_TAG_member)
- <1ea> DW_AT_name : (indirect string, offset: 0x1b8): port
- <1ee> DW_AT_type : <0x1ff>
- <1f2> DW_AT_decl_file : 1
- <1f3> DW_AT_decl_line : 107
- <1f4> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><1f7>: Abbrev Number: 0
- <1><1f8>: Abbrev Number: 9 (DW_TAG_base_type)
- <1f9> DW_AT_name : (indirect string, offset: 0x17e): long unsigned int
- <1fd> DW_AT_encoding : 7 (unsigned)
- <1fe> DW_AT_byte_size : 4
- <1><1ff>: Abbrev Number: 9 (DW_TAG_base_type)
- <200> DW_AT_name : (indirect string, offset: 0x1a6): unsigned char
- <204> DW_AT_encoding : 8 (unsigned char)
- <205> DW_AT_byte_size : 1
- <1><206>: Abbrev Number: 11 (DW_TAG_pointer_type)
- <1><207>: Abbrev Number: 4 (DW_TAG_structure_type)
- <208> DW_AT_name : (indirect string, offset: 0x31c): if_settings
- <20c> DW_AT_byte_size : 12
- <20d> DW_AT_decl_file : 1
- <20e> DW_AT_decl_line : 110
- <2><20f>: Abbrev Number: 5 (DW_TAG_member)
- <210> DW_AT_name : (indirect string, offset: 0x1f3): type
- <214> DW_AT_type : <0x2a1>
- <218> DW_AT_decl_file : 1
- <219> DW_AT_decl_line : 111
- <21a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><21d>: Abbrev Number: 5 (DW_TAG_member)
- <21e> DW_AT_name : (indirect string, offset: 0x205): size
- <222> DW_AT_type : <0x2a1>
- <226> DW_AT_decl_file : 1
- <227> DW_AT_decl_line : 112
- <228> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><22b>: Abbrev Number: 5 (DW_TAG_member)
- <22c> DW_AT_name : (indirect string, offset: 0x20a): ifs_ifsu
- <230> DW_AT_type : <0x239>
- <234> DW_AT_decl_file : 1
- <235> DW_AT_decl_line : 121
- <236> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><239>: Abbrev Number: 6 (DW_TAG_union_type)
- <23a> DW_AT_byte_size : 4
- <23b> DW_AT_decl_file : 1
- <23c> DW_AT_decl_line : 113
- <3><23d>: Abbrev Number: 5 (DW_TAG_member)
- <23e> DW_AT_name : (indirect string, offset: 0x213): raw_hdlc
- <242> DW_AT_type : <0x2a8>
- <246> DW_AT_decl_file : 1
- <247> DW_AT_decl_line : 114
- <248> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><24b>: Abbrev Number: 5 (DW_TAG_member)
- <24c> DW_AT_name : (indirect string, offset: 0x23b): cisco
- <250> DW_AT_type : <0x2d9>
- <254> DW_AT_decl_file : 1
- <255> DW_AT_decl_line : 115
- <256> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><259>: Abbrev Number: 5 (DW_TAG_member)
- <25a> DW_AT_name : (indirect string, offset: 0x25e): fr
- <25e> DW_AT_type : <0x30a>
- <262> DW_AT_decl_file : 1
- <263> DW_AT_decl_line : 116
- <264> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><267>: Abbrev Number: 5 (DW_TAG_member)
- <268> DW_AT_name : (indirect string, offset: 0x28b): fr_pvc
- <26c> DW_AT_type : <0x381>
- <270> DW_AT_decl_file : 1
- <271> DW_AT_decl_line : 117
- <272> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><275>: Abbrev Number: 5 (DW_TAG_member)
- <276> DW_AT_name : (indirect string, offset: 0x2a4): fr_pvc_info
- <27a> DW_AT_type : <0x3a4>
- <27e> DW_AT_decl_file : 1
- <27f> DW_AT_decl_line : 118
- <280> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><283>: Abbrev Number: 5 (DW_TAG_member)
- <284> DW_AT_name : (indirect string, offset: 0x2c9): sync
- <288> DW_AT_type : <0x3d5>
- <28c> DW_AT_decl_file : 1
- <28d> DW_AT_decl_line : 119
- <28e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><291>: Abbrev Number: 5 (DW_TAG_member)
- <292> DW_AT_name : (indirect string, offset: 0x302): te1
- <296> DW_AT_type : <0x414>
- <29a> DW_AT_decl_file : 1
- <29b> DW_AT_decl_line : 120
- <29c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><29f>: Abbrev Number: 0
- <2><2a0>: Abbrev Number: 0
- <1><2a1>: Abbrev Number: 9 (DW_TAG_base_type)
- <2a2> DW_AT_name : (indirect string, offset: 0x1f8): unsigned int
- <2a6> DW_AT_encoding : 7 (unsigned)
- <2a7> DW_AT_byte_size : 4
- <1><2a8>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <2a9> DW_AT_type : <0x2ad>
- <1><2ad>: Abbrev Number: 3 (DW_TAG_typedef)
- <2ae> DW_AT_type : <0x2b8>
- <2b2> DW_AT_name : (indirect string, offset: 0x22c): raw_hdlc_proto
- <2b6> DW_AT_decl_file : 4
- <2b7> DW_AT_decl_line : 61
- <1><2b8>: Abbrev Number: 13 (DW_TAG_structure_type)
- <2b9> DW_AT_byte_size : 4
- <2ba> DW_AT_decl_file : 4
- <2bb> DW_AT_decl_line : 58
- <2><2bc>: Abbrev Number: 5 (DW_TAG_member)
- <2bd> DW_AT_name : (indirect string, offset: 0x21c): encoding
- <2c1> DW_AT_type : <0x179>
- <2c5> DW_AT_decl_file : 4
- <2c6> DW_AT_decl_line : 59
- <2c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><2ca>: Abbrev Number: 5 (DW_TAG_member)
- <2cb> DW_AT_name : (indirect string, offset: 0x225): parity
- <2cf> DW_AT_type : <0x179>
- <2d3> DW_AT_decl_file : 4
- <2d4> DW_AT_decl_line : 60
- <2d5> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><2d8>: Abbrev Number: 0
- <1><2d9>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <2da> DW_AT_type : <0x2de>
- <1><2de>: Abbrev Number: 3 (DW_TAG_typedef)
- <2df> DW_AT_type : <0x2e9>
- <2e3> DW_AT_name : (indirect string, offset: 0x252): cisco_proto
- <2e7> DW_AT_decl_file : 4
- <2e8> DW_AT_decl_line : 81
- <1><2e9>: Abbrev Number: 13 (DW_TAG_structure_type)
- <2ea> DW_AT_byte_size : 8
- <2eb> DW_AT_decl_file : 4
- <2ec> DW_AT_decl_line : 78
- <2><2ed>: Abbrev Number: 5 (DW_TAG_member)
- <2ee> DW_AT_name : (indirect string, offset: 0x241): interval
- <2f2> DW_AT_type : <0x2a1>
- <2f6> DW_AT_decl_file : 4
- <2f7> DW_AT_decl_line : 79
- <2f8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><2fb>: Abbrev Number: 5 (DW_TAG_member)
- <2fc> DW_AT_name : (indirect string, offset: 0x24a): timeout
- <300> DW_AT_type : <0x2a1>
- <304> DW_AT_decl_file : 4
- <305> DW_AT_decl_line : 80
- <306> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><309>: Abbrev Number: 0
- <1><30a>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <30b> DW_AT_type : <0x30f>
- <1><30f>: Abbrev Number: 3 (DW_TAG_typedef)
- <310> DW_AT_type : <0x31a>
- <314> DW_AT_name : (indirect string, offset: 0x282): fr_proto
- <318> DW_AT_decl_file : 4
- <319> DW_AT_decl_line : 70
- <1><31a>: Abbrev Number: 13 (DW_TAG_structure_type)
- <31b> DW_AT_byte_size : 24
- <31c> DW_AT_decl_file : 4
- <31d> DW_AT_decl_line : 62
- <2><31e>: Abbrev Number: 5 (DW_TAG_member)
- <31f> DW_AT_name : (indirect string, offset: 0x261): t391
- <323> DW_AT_type : <0x2a1>
- <327> DW_AT_decl_file : 4
- <328> DW_AT_decl_line : 63
- <329> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><32c>: Abbrev Number: 5 (DW_TAG_member)
- <32d> DW_AT_name : (indirect string, offset: 0x266): t392
- <331> DW_AT_type : <0x2a1>
- <335> DW_AT_decl_file : 4
- <336> DW_AT_decl_line : 64
- <337> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><33a>: Abbrev Number: 5 (DW_TAG_member)
- <33b> DW_AT_name : (indirect string, offset: 0x26b): n391
- <33f> DW_AT_type : <0x2a1>
- <343> DW_AT_decl_file : 4
- <344> DW_AT_decl_line : 65
- <345> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><348>: Abbrev Number: 5 (DW_TAG_member)
- <349> DW_AT_name : (indirect string, offset: 0x270): n392
- <34d> DW_AT_type : <0x2a1>
- <351> DW_AT_decl_file : 4
- <352> DW_AT_decl_line : 66
- <353> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><356>: Abbrev Number: 5 (DW_TAG_member)
- <357> DW_AT_name : (indirect string, offset: 0x275): n393
- <35b> DW_AT_type : <0x2a1>
- <35f> DW_AT_decl_file : 4
- <360> DW_AT_decl_line : 67
- <361> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><364>: Abbrev Number: 5 (DW_TAG_member)
- <365> DW_AT_name : (indirect string, offset: 0x27a): lmi
- <369> DW_AT_type : <0x179>
- <36d> DW_AT_decl_file : 4
- <36e> DW_AT_decl_line : 68
- <36f> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><372>: Abbrev Number: 5 (DW_TAG_member)
- <373> DW_AT_name : (indirect string, offset: 0x27e): dce
- <377> DW_AT_type : <0x179>
- <37b> DW_AT_decl_file : 4
- <37c> DW_AT_decl_line : 69
- <37d> DW_AT_data_member_location: 2 byte block: 23 16 (DW_OP_plus_uconst: 22)
- <2><380>: Abbrev Number: 0
- <1><381>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <382> DW_AT_type : <0x386>
- <1><386>: Abbrev Number: 3 (DW_TAG_typedef)
- <387> DW_AT_type : <0x391>
- <38b> DW_AT_name : (indirect string, offset: 0x297): fr_proto_pvc
- <38f> DW_AT_decl_file : 4
- <390> DW_AT_decl_line : 73
- <1><391>: Abbrev Number: 13 (DW_TAG_structure_type)
- <392> DW_AT_byte_size : 4
- <393> DW_AT_decl_file : 4
- <394> DW_AT_decl_line : 71
- <2><395>: Abbrev Number: 5 (DW_TAG_member)
- <396> DW_AT_name : (indirect string, offset: 0x292): dlci
- <39a> DW_AT_type : <0x2a1>
- <39e> DW_AT_decl_file : 4
- <39f> DW_AT_decl_line : 72
- <3a0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><3a3>: Abbrev Number: 0
- <1><3a4>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <3a5> DW_AT_type : <0x3a9>
- <1><3a9>: Abbrev Number: 3 (DW_TAG_typedef)
- <3aa> DW_AT_type : <0x3b4>
- <3ae> DW_AT_name : (indirect string, offset: 0x2b7): fr_proto_pvc_info
- <3b2> DW_AT_decl_file : 4
- <3b3> DW_AT_decl_line : 77
- <1><3b4>: Abbrev Number: 13 (DW_TAG_structure_type)
- <3b5> DW_AT_byte_size : 20
- <3b6> DW_AT_decl_file : 4
- <3b7> DW_AT_decl_line : 74
- <2><3b8>: Abbrev Number: 5 (DW_TAG_member)
- <3b9> DW_AT_name : (indirect string, offset: 0x292): dlci
- <3bd> DW_AT_type : <0x2a1>
- <3c1> DW_AT_decl_file : 4
- <3c2> DW_AT_decl_line : 75
- <3c3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><3c6>: Abbrev Number: 5 (DW_TAG_member)
- <3c7> DW_AT_name : (indirect string, offset: 0x2b0): master
- <3cb> DW_AT_type : <0x12e>
- <3cf> DW_AT_decl_file : 4
- <3d0> DW_AT_decl_line : 76
- <3d1> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><3d4>: Abbrev Number: 0
- <1><3d5>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <3d6> DW_AT_type : <0x3da>
- <1><3da>: Abbrev Number: 3 (DW_TAG_typedef)
- <3db> DW_AT_type : <0x3e5>
- <3df> DW_AT_name : (indirect string, offset: 0x2ed): sync_serial_settings
- <3e3> DW_AT_decl_file : 4
- <3e4> DW_AT_decl_line : 51
- <1><3e5>: Abbrev Number: 13 (DW_TAG_structure_type)
- <3e6> DW_AT_byte_size : 12
- <3e7> DW_AT_decl_file : 4
- <3e8> DW_AT_decl_line : 47
- <2><3e9>: Abbrev Number: 5 (DW_TAG_member)
- <3ea> DW_AT_name : (indirect string, offset: 0x2ce): clock_rate
- <3ee> DW_AT_type : <0x2a1>
- <3f2> DW_AT_decl_file : 4
- <3f3> DW_AT_decl_line : 48
- <3f4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><3f7>: Abbrev Number: 5 (DW_TAG_member)
- <3f8> DW_AT_name : (indirect string, offset: 0x2d9): clock_type
- <3fc> DW_AT_type : <0x2a1>
- <400> DW_AT_decl_file : 4
- <401> DW_AT_decl_line : 49
- <402> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><405>: Abbrev Number: 5 (DW_TAG_member)
- <406> DW_AT_name : (indirect string, offset: 0x2e4): loopback
- <40a> DW_AT_type : <0x179>
- <40e> DW_AT_decl_file : 4
- <40f> DW_AT_decl_line : 50
- <410> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><413>: Abbrev Number: 0
- <1><414>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <415> DW_AT_type : <0x419>
- <1><419>: Abbrev Number: 3 (DW_TAG_typedef)
- <41a> DW_AT_type : <0x424>
- <41e> DW_AT_name : (indirect string, offset: 0x30f): te1_settings
- <422> DW_AT_decl_file : 4
- <423> DW_AT_decl_line : 57
- <1><424>: Abbrev Number: 13 (DW_TAG_structure_type)
- <425> DW_AT_byte_size : 16
- <426> DW_AT_decl_file : 4
- <427> DW_AT_decl_line : 52
- <2><428>: Abbrev Number: 5 (DW_TAG_member)
- <429> DW_AT_name : (indirect string, offset: 0x2ce): clock_rate
- <42d> DW_AT_type : <0x2a1>
- <431> DW_AT_decl_file : 4
- <432> DW_AT_decl_line : 53
- <433> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><436>: Abbrev Number: 5 (DW_TAG_member)
- <437> DW_AT_name : (indirect string, offset: 0x2d9): clock_type
- <43b> DW_AT_type : <0x2a1>
- <43f> DW_AT_decl_file : 4
- <440> DW_AT_decl_line : 54
- <441> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><444>: Abbrev Number: 5 (DW_TAG_member)
- <445> DW_AT_name : (indirect string, offset: 0x2e4): loopback
- <449> DW_AT_type : <0x179>
- <44d> DW_AT_decl_file : 4
- <44e> DW_AT_decl_line : 55
- <44f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><452>: Abbrev Number: 5 (DW_TAG_member)
- <453> DW_AT_name : (indirect string, offset: 0x306): slot_map
- <457> DW_AT_type : <0x2a1>
- <45b> DW_AT_decl_file : 4
- <45c> DW_AT_decl_line : 56
- <45d> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><460>: Abbrev Number: 0
- <1><461>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x120): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15b): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 5
+ <2a> DW_AT_decl_line : 44
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x3f8): struct_ifreq
+ <3a> DW_AT_decl_file : 5
+ <3b> DW_AT_decl_line : 42
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x3f2): ifreq
+ <41> DW_AT_byte_size : 32
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 141
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16c): ifr_ifrn
+ <49> DW_AT_type : <0x52>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 145
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 6 (DW_TAG_union_type)
+ <53> DW_AT_byte_size : 16
+ <54> DW_AT_decl_file : 1
+ <55> DW_AT_decl_line : 143
+ <3><56>: Abbrev Number: 5 (DW_TAG_member)
+ <57> DW_AT_name : (indirect string, offset: 0x175): ifrn_name
+ <5b> DW_AT_type : <0x12f>
+ <5f> DW_AT_decl_file : 1
+ <60> DW_AT_decl_line : 144
+ <61> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><64>: Abbrev Number: 0
+ <2><65>: Abbrev Number: 5 (DW_TAG_member)
+ <66> DW_AT_name : (indirect string, offset: 0x18d): ifr_ifru
+ <6a> DW_AT_type : <0x73>
+ <6e> DW_AT_decl_file : 1
+ <6f> DW_AT_decl_line : 160
+ <70> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><73>: Abbrev Number: 6 (DW_TAG_union_type)
+ <74> DW_AT_byte_size : 16
+ <75> DW_AT_decl_file : 1
+ <76> DW_AT_decl_line : 146
+ <3><77>: Abbrev Number: 5 (DW_TAG_member)
+ <78> DW_AT_name : (indirect string, offset: 0x196): ifru_addr
+ <7c> DW_AT_type : <0x14a>
+ <80> DW_AT_decl_file : 1
+ <81> DW_AT_decl_line : 147
+ <82> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><85>: Abbrev Number: 5 (DW_TAG_member)
+ <86> DW_AT_name : (indirect string, offset: 0x1d6): ifru_dstaddr
+ <8a> DW_AT_type : <0x14a>
+ <8e> DW_AT_decl_file : 1
+ <8f> DW_AT_decl_line : 148
+ <90> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><93>: Abbrev Number: 5 (DW_TAG_member)
+ <94> DW_AT_name : (indirect string, offset: 0x1e3): ifru_broadaddr
+ <98> DW_AT_type : <0x14a>
+ <9c> DW_AT_decl_file : 1
+ <9d> DW_AT_decl_line : 149
+ <9e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><a1>: Abbrev Number: 5 (DW_TAG_member)
+ <a2> DW_AT_name : (indirect string, offset: 0x1f2): ifru_netmask
+ <a6> DW_AT_type : <0x14a>
+ <aa> DW_AT_decl_file : 1
+ <ab> DW_AT_decl_line : 150
+ <ac> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><af>: Abbrev Number: 5 (DW_TAG_member)
+ <b0> DW_AT_name : (indirect string, offset: 0x1ff): ifru_hwaddr
+ <b4> DW_AT_type : <0x14a>
+ <b8> DW_AT_decl_file : 1
+ <b9> DW_AT_decl_line : 151
+ <ba> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><bd>: Abbrev Number: 5 (DW_TAG_member)
+ <be> DW_AT_name : (indirect string, offset: 0x20b): ifru_flags
+ <c2> DW_AT_type : <0x18e>
+ <c6> DW_AT_decl_file : 1
+ <c7> DW_AT_decl_line : 152
+ <c8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><cb>: Abbrev Number: 5 (DW_TAG_member)
+ <cc> DW_AT_name : (indirect string, offset: 0x21c): ifru_ivalue
+ <d0> DW_AT_type : <0x195>
+ <d4> DW_AT_decl_file : 1
+ <d5> DW_AT_decl_line : 153
+ <d6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><d9>: Abbrev Number: 5 (DW_TAG_member)
+ <da> DW_AT_name : (indirect string, offset: 0x22c): ifru_mtu
+ <de> DW_AT_type : <0x195>
+ <e2> DW_AT_decl_file : 1
+ <e3> DW_AT_decl_line : 154
+ <e4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><e7>: Abbrev Number: 5 (DW_TAG_member)
+ <e8> DW_AT_name : (indirect string, offset: 0x235): ifru_map
+ <ec> DW_AT_type : <0x19c>
+ <f0> DW_AT_decl_file : 1
+ <f1> DW_AT_decl_line : 155
+ <f2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><f5>: Abbrev Number: 5 (DW_TAG_member)
+ <f6> DW_AT_name : (indirect string, offset: 0x28d): ifru_slave
+ <fa> DW_AT_type : <0x12f>
+ <fe> DW_AT_decl_file : 1
+ <ff> DW_AT_decl_line : 156
+ <100> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><103>: Abbrev Number: 5 (DW_TAG_member)
+ <104> DW_AT_name : (indirect string, offset: 0x298): ifru_newname
+ <108> DW_AT_type : <0x12f>
+ <10c> DW_AT_decl_file : 1
+ <10d> DW_AT_decl_line : 157
+ <10e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><111>: Abbrev Number: 5 (DW_TAG_member)
+ <112> DW_AT_name : (indirect string, offset: 0x2a5): ifru_data
+ <116> DW_AT_type : <0x207>
+ <11a> DW_AT_decl_file : 1
+ <11b> DW_AT_decl_line : 158
+ <11c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><11f>: Abbrev Number: 5 (DW_TAG_member)
+ <120> DW_AT_name : (indirect string, offset: 0x2af): ifru_settings
+ <124> DW_AT_type : <0x208>
+ <128> DW_AT_decl_file : 1
+ <129> DW_AT_decl_line : 159
+ <12a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><12d>: Abbrev Number: 0
+ <2><12e>: Abbrev Number: 0
+ <1><12f>: Abbrev Number: 7 (DW_TAG_array_type)
+ <130> DW_AT_type : <0x13c>
+ <2><134>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <135> DW_AT_type : <0x143>
+ <139> DW_AT_lower_bound : 0
+ <13a> DW_AT_count : 16
+ <2><13b>: Abbrev Number: 0
+ <1><13c>: Abbrev Number: 9 (DW_TAG_base_type)
+ <13d> DW_AT_name : (indirect string, offset: 0x17f): char
+ <141> DW_AT_encoding : 8 (unsigned char)
+ <142> DW_AT_byte_size : 1
+ <1><143>: Abbrev Number: 10 (DW_TAG_base_type)
+ <144> DW_AT_name : (indirect string, offset: 0x184): sizetype
+ <148> DW_AT_byte_size : 8
+ <149> DW_AT_encoding : 7 (unsigned)
+ <1><14a>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <14b> DW_AT_name : (indirect string, offset: 0x1cd): sockaddr
+ <14f> DW_AT_byte_size : 16
+ <150> DW_AT_decl_file : 3
+ <151> DW_AT_decl_line : 74
+ <2><152>: Abbrev Number: 5 (DW_TAG_member)
+ <153> DW_AT_name : (indirect string, offset: 0x1a0): sa_family
+ <157> DW_AT_type : <0x16f>
+ <15b> DW_AT_decl_file : 3
+ <15c> DW_AT_decl_line : 75
+ <15d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><160>: Abbrev Number: 5 (DW_TAG_member)
+ <161> DW_AT_name : (indirect string, offset: 0x1c5): sa_data
+ <165> DW_AT_type : <0x181>
+ <169> DW_AT_decl_file : 3
+ <16a> DW_AT_decl_line : 76
+ <16b> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><16e>: Abbrev Number: 0
+ <1><16f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <170> DW_AT_type : <0x17a>
+ <174> DW_AT_name : (indirect string, offset: 0x1b9): sa_family_t
+ <178> DW_AT_decl_file : 2
+ <179> DW_AT_decl_line : 34
+ <1><17a>: Abbrev Number: 9 (DW_TAG_base_type)
+ <17b> DW_AT_name : (indirect string, offset: 0x1aa): unsigned short
+ <17f> DW_AT_encoding : 7 (unsigned)
+ <180> DW_AT_byte_size : 2
+ <1><181>: Abbrev Number: 7 (DW_TAG_array_type)
+ <182> DW_AT_type : <0x13c>
+ <2><186>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <187> DW_AT_type : <0x143>
+ <18b> DW_AT_lower_bound : 0
+ <18c> DW_AT_count : 14
+ <2><18d>: Abbrev Number: 0
+ <1><18e>: Abbrev Number: 9 (DW_TAG_base_type)
+ <18f> DW_AT_name : (indirect string, offset: 0x216): short
+ <193> DW_AT_encoding : 5 (signed)
+ <194> DW_AT_byte_size : 2
+ <1><195>: Abbrev Number: 9 (DW_TAG_base_type)
+ <196> DW_AT_name : (indirect string, offset: 0x228): int
+ <19a> DW_AT_encoding : 5 (signed)
+ <19b> DW_AT_byte_size : 4
+ <1><19c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <19d> DW_AT_name : (indirect string, offset: 0x287): ifmap
+ <1a1> DW_AT_byte_size : 16
+ <1a2> DW_AT_decl_file : 1
+ <1a3> DW_AT_decl_line : 118
+ <2><1a4>: Abbrev Number: 5 (DW_TAG_member)
+ <1a5> DW_AT_name : (indirect string, offset: 0x23e): mem_start
+ <1a9> DW_AT_type : <0x1f9>
+ <1ad> DW_AT_decl_file : 1
+ <1ae> DW_AT_decl_line : 119
+ <1af> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><1b2>: Abbrev Number: 5 (DW_TAG_member)
+ <1b3> DW_AT_name : (indirect string, offset: 0x25a): mem_end
+ <1b7> DW_AT_type : <0x1f9>
+ <1bb> DW_AT_decl_file : 1
+ <1bc> DW_AT_decl_line : 120
+ <1bd> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><1c0>: Abbrev Number: 5 (DW_TAG_member)
+ <1c1> DW_AT_name : (indirect string, offset: 0x262): base_addr
+ <1c5> DW_AT_type : <0x17a>
+ <1c9> DW_AT_decl_file : 1
+ <1ca> DW_AT_decl_line : 121
+ <1cb> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><1ce>: Abbrev Number: 5 (DW_TAG_member)
+ <1cf> DW_AT_name : (indirect string, offset: 0x26c): irq
+ <1d3> DW_AT_type : <0x200>
+ <1d7> DW_AT_decl_file : 1
+ <1d8> DW_AT_decl_line : 122
+ <1d9> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><1dc>: Abbrev Number: 5 (DW_TAG_member)
+ <1dd> DW_AT_name : (indirect string, offset: 0x27e): dma
+ <1e1> DW_AT_type : <0x200>
+ <1e5> DW_AT_decl_file : 1
+ <1e6> DW_AT_decl_line : 123
+ <1e7> DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
+ <2><1ea>: Abbrev Number: 5 (DW_TAG_member)
+ <1eb> DW_AT_name : (indirect string, offset: 0x282): port
+ <1ef> DW_AT_type : <0x200>
+ <1f3> DW_AT_decl_file : 1
+ <1f4> DW_AT_decl_line : 124
+ <1f5> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><1f8>: Abbrev Number: 0
+ <1><1f9>: Abbrev Number: 9 (DW_TAG_base_type)
+ <1fa> DW_AT_name : (indirect string, offset: 0x248): long unsigned int
+ <1fe> DW_AT_encoding : 7 (unsigned)
+ <1ff> DW_AT_byte_size : 4
+ <1><200>: Abbrev Number: 9 (DW_TAG_base_type)
+ <201> DW_AT_name : (indirect string, offset: 0x270): unsigned char
+ <205> DW_AT_encoding : 8 (unsigned char)
+ <206> DW_AT_byte_size : 1
+ <1><207>: Abbrev Number: 11 (DW_TAG_pointer_type)
+ <1><208>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <209> DW_AT_name : (indirect string, offset: 0x3e6): if_settings
+ <20d> DW_AT_byte_size : 12
+ <20e> DW_AT_decl_file : 1
+ <20f> DW_AT_decl_line : 127
+ <2><210>: Abbrev Number: 5 (DW_TAG_member)
+ <211> DW_AT_name : (indirect string, offset: 0x2bd): type
+ <215> DW_AT_type : <0x2a2>
+ <219> DW_AT_decl_file : 1
+ <21a> DW_AT_decl_line : 128
+ <21b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><21e>: Abbrev Number: 5 (DW_TAG_member)
+ <21f> DW_AT_name : (indirect string, offset: 0x2cf): size
+ <223> DW_AT_type : <0x2a2>
+ <227> DW_AT_decl_file : 1
+ <228> DW_AT_decl_line : 129
+ <229> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><22c>: Abbrev Number: 5 (DW_TAG_member)
+ <22d> DW_AT_name : (indirect string, offset: 0x2d4): ifs_ifsu
+ <231> DW_AT_type : <0x23a>
+ <235> DW_AT_decl_file : 1
+ <236> DW_AT_decl_line : 138
+ <237> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><23a>: Abbrev Number: 6 (DW_TAG_union_type)
+ <23b> DW_AT_byte_size : 4
+ <23c> DW_AT_decl_file : 1
+ <23d> DW_AT_decl_line : 130
+ <3><23e>: Abbrev Number: 5 (DW_TAG_member)
+ <23f> DW_AT_name : (indirect string, offset: 0x2dd): raw_hdlc
+ <243> DW_AT_type : <0x2a9>
+ <247> DW_AT_decl_file : 1
+ <248> DW_AT_decl_line : 131
+ <249> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><24c>: Abbrev Number: 5 (DW_TAG_member)
+ <24d> DW_AT_name : (indirect string, offset: 0x305): cisco
+ <251> DW_AT_type : <0x2da>
+ <255> DW_AT_decl_file : 1
+ <256> DW_AT_decl_line : 132
+ <257> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><25a>: Abbrev Number: 5 (DW_TAG_member)
+ <25b> DW_AT_name : (indirect string, offset: 0x328): fr
+ <25f> DW_AT_type : <0x30b>
+ <263> DW_AT_decl_file : 1
+ <264> DW_AT_decl_line : 133
+ <265> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><268>: Abbrev Number: 5 (DW_TAG_member)
+ <269> DW_AT_name : (indirect string, offset: 0x355): fr_pvc
+ <26d> DW_AT_type : <0x382>
+ <271> DW_AT_decl_file : 1
+ <272> DW_AT_decl_line : 134
+ <273> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><276>: Abbrev Number: 5 (DW_TAG_member)
+ <277> DW_AT_name : (indirect string, offset: 0x36e): fr_pvc_info
+ <27b> DW_AT_type : <0x3a5>
+ <27f> DW_AT_decl_file : 1
+ <280> DW_AT_decl_line : 135
+ <281> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><284>: Abbrev Number: 5 (DW_TAG_member)
+ <285> DW_AT_name : (indirect string, offset: 0x393): sync
+ <289> DW_AT_type : <0x3d6>
+ <28d> DW_AT_decl_file : 1
+ <28e> DW_AT_decl_line : 136
+ <28f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><292>: Abbrev Number: 5 (DW_TAG_member)
+ <293> DW_AT_name : (indirect string, offset: 0x3cc): te1
+ <297> DW_AT_type : <0x415>
+ <29b> DW_AT_decl_file : 1
+ <29c> DW_AT_decl_line : 137
+ <29d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2a0>: Abbrev Number: 0
+ <2><2a1>: Abbrev Number: 0
+ <1><2a2>: Abbrev Number: 9 (DW_TAG_base_type)
+ <2a3> DW_AT_name : (indirect string, offset: 0x2c2): unsigned int
+ <2a7> DW_AT_encoding : 7 (unsigned)
+ <2a8> DW_AT_byte_size : 4
+ <1><2a9>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <2aa> DW_AT_type : <0x2ae>
+ <1><2ae>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2af> DW_AT_type : <0x2b9>
+ <2b3> DW_AT_name : (indirect string, offset: 0x2f6): raw_hdlc_proto
+ <2b7> DW_AT_decl_file : 4
+ <2b8> DW_AT_decl_line : 61
+ <1><2b9>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <2ba> DW_AT_byte_size : 4
+ <2bb> DW_AT_decl_file : 4
+ <2bc> DW_AT_decl_line : 58
+ <2><2bd>: Abbrev Number: 5 (DW_TAG_member)
+ <2be> DW_AT_name : (indirect string, offset: 0x2e6): encoding
+ <2c2> DW_AT_type : <0x17a>
+ <2c6> DW_AT_decl_file : 4
+ <2c7> DW_AT_decl_line : 59
+ <2c8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><2cb>: Abbrev Number: 5 (DW_TAG_member)
+ <2cc> DW_AT_name : (indirect string, offset: 0x2ef): parity
+ <2d0> DW_AT_type : <0x17a>
+ <2d4> DW_AT_decl_file : 4
+ <2d5> DW_AT_decl_line : 60
+ <2d6> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><2d9>: Abbrev Number: 0
+ <1><2da>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <2db> DW_AT_type : <0x2df>
+ <1><2df>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2e0> DW_AT_type : <0x2ea>
+ <2e4> DW_AT_name : (indirect string, offset: 0x31c): cisco_proto
+ <2e8> DW_AT_decl_file : 4
+ <2e9> DW_AT_decl_line : 81
+ <1><2ea>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <2eb> DW_AT_byte_size : 8
+ <2ec> DW_AT_decl_file : 4
+ <2ed> DW_AT_decl_line : 78
+ <2><2ee>: Abbrev Number: 5 (DW_TAG_member)
+ <2ef> DW_AT_name : (indirect string, offset: 0x30b): interval
+ <2f3> DW_AT_type : <0x2a2>
+ <2f7> DW_AT_decl_file : 4
+ <2f8> DW_AT_decl_line : 79
+ <2f9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><2fc>: Abbrev Number: 5 (DW_TAG_member)
+ <2fd> DW_AT_name : (indirect string, offset: 0x314): timeout
+ <301> DW_AT_type : <0x2a2>
+ <305> DW_AT_decl_file : 4
+ <306> DW_AT_decl_line : 80
+ <307> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><30a>: Abbrev Number: 0
+ <1><30b>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <30c> DW_AT_type : <0x310>
+ <1><310>: Abbrev Number: 3 (DW_TAG_typedef)
+ <311> DW_AT_type : <0x31b>
+ <315> DW_AT_name : (indirect string, offset: 0x34c): fr_proto
+ <319> DW_AT_decl_file : 4
+ <31a> DW_AT_decl_line : 70
+ <1><31b>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <31c> DW_AT_byte_size : 24
+ <31d> DW_AT_decl_file : 4
+ <31e> DW_AT_decl_line : 62
+ <2><31f>: Abbrev Number: 5 (DW_TAG_member)
+ <320> DW_AT_name : (indirect string, offset: 0x32b): t391
+ <324> DW_AT_type : <0x2a2>
+ <328> DW_AT_decl_file : 4
+ <329> DW_AT_decl_line : 63
+ <32a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><32d>: Abbrev Number: 5 (DW_TAG_member)
+ <32e> DW_AT_name : (indirect string, offset: 0x330): t392
+ <332> DW_AT_type : <0x2a2>
+ <336> DW_AT_decl_file : 4
+ <337> DW_AT_decl_line : 64
+ <338> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><33b>: Abbrev Number: 5 (DW_TAG_member)
+ <33c> DW_AT_name : (indirect string, offset: 0x335): n391
+ <340> DW_AT_type : <0x2a2>
+ <344> DW_AT_decl_file : 4
+ <345> DW_AT_decl_line : 65
+ <346> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><349>: Abbrev Number: 5 (DW_TAG_member)
+ <34a> DW_AT_name : (indirect string, offset: 0x33a): n392
+ <34e> DW_AT_type : <0x2a2>
+ <352> DW_AT_decl_file : 4
+ <353> DW_AT_decl_line : 66
+ <354> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><357>: Abbrev Number: 5 (DW_TAG_member)
+ <358> DW_AT_name : (indirect string, offset: 0x33f): n393
+ <35c> DW_AT_type : <0x2a2>
+ <360> DW_AT_decl_file : 4
+ <361> DW_AT_decl_line : 67
+ <362> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><365>: Abbrev Number: 5 (DW_TAG_member)
+ <366> DW_AT_name : (indirect string, offset: 0x344): lmi
+ <36a> DW_AT_type : <0x17a>
+ <36e> DW_AT_decl_file : 4
+ <36f> DW_AT_decl_line : 68
+ <370> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><373>: Abbrev Number: 5 (DW_TAG_member)
+ <374> DW_AT_name : (indirect string, offset: 0x348): dce
+ <378> DW_AT_type : <0x17a>
+ <37c> DW_AT_decl_file : 4
+ <37d> DW_AT_decl_line : 69
+ <37e> DW_AT_data_member_location: 2 byte block: 23 16 (DW_OP_plus_uconst: 22)
+ <2><381>: Abbrev Number: 0
+ <1><382>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <383> DW_AT_type : <0x387>
+ <1><387>: Abbrev Number: 3 (DW_TAG_typedef)
+ <388> DW_AT_type : <0x392>
+ <38c> DW_AT_name : (indirect string, offset: 0x361): fr_proto_pvc
+ <390> DW_AT_decl_file : 4
+ <391> DW_AT_decl_line : 73
+ <1><392>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <393> DW_AT_byte_size : 4
+ <394> DW_AT_decl_file : 4
+ <395> DW_AT_decl_line : 71
+ <2><396>: Abbrev Number: 5 (DW_TAG_member)
+ <397> DW_AT_name : (indirect string, offset: 0x35c): dlci
+ <39b> DW_AT_type : <0x2a2>
+ <39f> DW_AT_decl_file : 4
+ <3a0> DW_AT_decl_line : 72
+ <3a1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><3a4>: Abbrev Number: 0
+ <1><3a5>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <3a6> DW_AT_type : <0x3aa>
+ <1><3aa>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3ab> DW_AT_type : <0x3b5>
+ <3af> DW_AT_name : (indirect string, offset: 0x381): fr_proto_pvc_info
+ <3b3> DW_AT_decl_file : 4
+ <3b4> DW_AT_decl_line : 77
+ <1><3b5>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <3b6> DW_AT_byte_size : 20
+ <3b7> DW_AT_decl_file : 4
+ <3b8> DW_AT_decl_line : 74
+ <2><3b9>: Abbrev Number: 5 (DW_TAG_member)
+ <3ba> DW_AT_name : (indirect string, offset: 0x35c): dlci
+ <3be> DW_AT_type : <0x2a2>
+ <3c2> DW_AT_decl_file : 4
+ <3c3> DW_AT_decl_line : 75
+ <3c4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><3c7>: Abbrev Number: 5 (DW_TAG_member)
+ <3c8> DW_AT_name : (indirect string, offset: 0x37a): master
+ <3cc> DW_AT_type : <0x12f>
+ <3d0> DW_AT_decl_file : 4
+ <3d1> DW_AT_decl_line : 76
+ <3d2> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><3d5>: Abbrev Number: 0
+ <1><3d6>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <3d7> DW_AT_type : <0x3db>
+ <1><3db>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3dc> DW_AT_type : <0x3e6>
+ <3e0> DW_AT_name : (indirect string, offset: 0x3b7): sync_serial_settings
+ <3e4> DW_AT_decl_file : 4
+ <3e5> DW_AT_decl_line : 51
+ <1><3e6>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <3e7> DW_AT_byte_size : 12
+ <3e8> DW_AT_decl_file : 4
+ <3e9> DW_AT_decl_line : 47
+ <2><3ea>: Abbrev Number: 5 (DW_TAG_member)
+ <3eb> DW_AT_name : (indirect string, offset: 0x398): clock_rate
+ <3ef> DW_AT_type : <0x2a2>
+ <3f3> DW_AT_decl_file : 4
+ <3f4> DW_AT_decl_line : 48
+ <3f5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><3f8>: Abbrev Number: 5 (DW_TAG_member)
+ <3f9> DW_AT_name : (indirect string, offset: 0x3a3): clock_type
+ <3fd> DW_AT_type : <0x2a2>
+ <401> DW_AT_decl_file : 4
+ <402> DW_AT_decl_line : 49
+ <403> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><406>: Abbrev Number: 5 (DW_TAG_member)
+ <407> DW_AT_name : (indirect string, offset: 0x3ae): loopback
+ <40b> DW_AT_type : <0x17a>
+ <40f> DW_AT_decl_file : 4
+ <410> DW_AT_decl_line : 50
+ <411> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><414>: Abbrev Number: 0
+ <1><415>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <416> DW_AT_type : <0x41a>
+ <1><41a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <41b> DW_AT_type : <0x425>
+ <41f> DW_AT_name : (indirect string, offset: 0x3d9): te1_settings
+ <423> DW_AT_decl_file : 4
+ <424> DW_AT_decl_line : 57
+ <1><425>: Abbrev Number: 13 (DW_TAG_structure_type)
+ <426> DW_AT_byte_size : 16
+ <427> DW_AT_decl_file : 4
+ <428> DW_AT_decl_line : 52
+ <2><429>: Abbrev Number: 5 (DW_TAG_member)
+ <42a> DW_AT_name : (indirect string, offset: 0x398): clock_rate
+ <42e> DW_AT_type : <0x2a2>
+ <432> DW_AT_decl_file : 4
+ <433> DW_AT_decl_line : 53
+ <434> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><437>: Abbrev Number: 5 (DW_TAG_member)
+ <438> DW_AT_name : (indirect string, offset: 0x3a3): clock_type
+ <43c> DW_AT_type : <0x2a2>
+ <440> DW_AT_decl_file : 4
+ <441> DW_AT_decl_line : 54
+ <442> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><445>: Abbrev Number: 5 (DW_TAG_member)
+ <446> DW_AT_name : (indirect string, offset: 0x3ae): loopback
+ <44a> DW_AT_type : <0x17a>
+ <44e> DW_AT_decl_file : 4
+ <44f> DW_AT_decl_line : 55
+ <450> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><453>: Abbrev Number: 5 (DW_TAG_member)
+ <454> DW_AT_name : (indirect string, offset: 0x3d0): slot_map
+ <458> DW_AT_type : <0x2a2>
+ <45c> DW_AT_decl_file : 4
+ <45d> DW_AT_decl_line : 56
+ <45e> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><461>: Abbrev Number: 0
+ <1><462>: Abbrev Number: 0
diff --git a/mpers-m32/struct_ifreq.d2 b/mpers-m32/struct_ifreq.d2
index d55ecdf..b5eba19 100644
--- a/mpers-m32/struct_ifreq.d2
+++ b/mpers-m32/struct_ifreq.d2
@@ -1,600 +1,600 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x91): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15b): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 5
DW_AT_decl_line : 44
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x32e): struct_ifreq
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x3f8): struct_ifreq
DW_AT_decl_file : 5
DW_AT_decl_line : 42
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x328): ifreq
+DW_AT_name : (indirect string, offset: 0x3f2): ifreq
DW_AT_byte_size : 32
DW_AT_decl_file : 1
-DW_AT_decl_line : 124
-<2><43>
+DW_AT_decl_line : 141
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa2): ifr_ifrn
-DW_AT_type : <0x51>
+DW_AT_name : (indirect string, offset: 0x16c): ifr_ifrn
+DW_AT_type : <0x52>
DW_AT_decl_file : 1
-DW_AT_decl_line : 128
+DW_AT_decl_line : 145
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
-DW_AT_decl_line : 126
-<3><55>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xab): ifrn_name
-DW_AT_type : <0x12e>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 127
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><64>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc3): ifr_ifru
-DW_AT_type : <0x72>
-DW_AT_decl_file : 1
DW_AT_decl_line : 143
+<3><56>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x175): ifrn_name
+DW_AT_type : <0x12f>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 144
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><65>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x18d): ifr_ifru
+DW_AT_type : <0x73>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 160
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><72>
+<2><73>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
-DW_AT_decl_line : 129
-<3><76>
+DW_AT_decl_line : 146
+<3><77>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcc): ifru_addr
-DW_AT_type : <0x149>
+DW_AT_name : (indirect string, offset: 0x196): ifru_addr
+DW_AT_type : <0x14a>
DW_AT_decl_file : 1
-DW_AT_decl_line : 130
+DW_AT_decl_line : 147
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><84>
+<3><85>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10c): ifru_dstaddr
-DW_AT_type : <0x149>
+DW_AT_name : (indirect string, offset: 0x1d6): ifru_dstaddr
+DW_AT_type : <0x14a>
DW_AT_decl_file : 1
-DW_AT_decl_line : 131
+DW_AT_decl_line : 148
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><92>
+<3><93>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x119): ifru_broadaddr
-DW_AT_type : <0x149>
+DW_AT_name : (indirect string, offset: 0x1e3): ifru_broadaddr
+DW_AT_type : <0x14a>
DW_AT_decl_file : 1
-DW_AT_decl_line : 132
+DW_AT_decl_line : 149
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><a0>
+<3><a1>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x128): ifru_netmask
-DW_AT_type : <0x149>
+DW_AT_name : (indirect string, offset: 0x1f2): ifru_netmask
+DW_AT_type : <0x14a>
DW_AT_decl_file : 1
-DW_AT_decl_line : 133
+DW_AT_decl_line : 150
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><ae>
+<3><af>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x135): ifru_hwaddr
-DW_AT_type : <0x149>
+DW_AT_name : (indirect string, offset: 0x1ff): ifru_hwaddr
+DW_AT_type : <0x14a>
DW_AT_decl_file : 1
-DW_AT_decl_line : 134
+DW_AT_decl_line : 151
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><bc>
+<3><bd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x141): ifru_flags
-DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x20b): ifru_flags
+DW_AT_type : <0x18e>
DW_AT_decl_file : 1
-DW_AT_decl_line : 135
+DW_AT_decl_line : 152
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><ca>
+<3><cb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x152): ifru_ivalue
-DW_AT_type : <0x194>
+DW_AT_name : (indirect string, offset: 0x21c): ifru_ivalue
+DW_AT_type : <0x195>
DW_AT_decl_file : 1
-DW_AT_decl_line : 136
+DW_AT_decl_line : 153
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><d8>
+<3><d9>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x162): ifru_mtu
-DW_AT_type : <0x194>
+DW_AT_name : (indirect string, offset: 0x22c): ifru_mtu
+DW_AT_type : <0x195>
DW_AT_decl_file : 1
-DW_AT_decl_line : 137
+DW_AT_decl_line : 154
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><e6>
+<3><e7>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x16b): ifru_map
-DW_AT_type : <0x19b>
+DW_AT_name : (indirect string, offset: 0x235): ifru_map
+DW_AT_type : <0x19c>
DW_AT_decl_file : 1
-DW_AT_decl_line : 138
+DW_AT_decl_line : 155
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><f4>
+<3><f5>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1c3): ifru_slave
-DW_AT_type : <0x12e>
+DW_AT_name : (indirect string, offset: 0x28d): ifru_slave
+DW_AT_type : <0x12f>
DW_AT_decl_file : 1
-DW_AT_decl_line : 139
+DW_AT_decl_line : 156
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><102>
+<3><103>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ce): ifru_newname
-DW_AT_type : <0x12e>
+DW_AT_name : (indirect string, offset: 0x298): ifru_newname
+DW_AT_type : <0x12f>
DW_AT_decl_file : 1
-DW_AT_decl_line : 140
+DW_AT_decl_line : 157
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><110>
+<3><111>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1db): ifru_data
-DW_AT_type : <0x206>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 141
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><11e>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e5): ifru_settings
+DW_AT_name : (indirect string, offset: 0x2a5): ifru_data
DW_AT_type : <0x207>
DW_AT_decl_file : 1
-DW_AT_decl_line : 142
+DW_AT_decl_line : 158
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><12e>
+<3><11f>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2af): ifru_settings
+DW_AT_type : <0x208>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 159
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><12f>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x13b>
-<2><133>
+DW_AT_type : <0x13c>
+<2><134>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x142>
+DW_AT_type : <0x143>
DW_AT_lower_bound : 0
DW_AT_count : 16
-<1><13b>
+<1><13c>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb5): char
+DW_AT_name : (indirect string, offset: 0x17f): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><142>
+<1><143>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xba): sizetype
+DW_AT_name : (indirect string, offset: 0x184): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><149>
+<1><14a>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x103): sockaddr
+DW_AT_name : (indirect string, offset: 0x1cd): sockaddr
DW_AT_byte_size : 16
DW_AT_decl_file : 3
+DW_AT_decl_line : 74
+<2><152>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1a0): sa_family
+DW_AT_type : <0x16f>
+DW_AT_decl_file : 3
+DW_AT_decl_line : 75
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><160>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1c5): sa_data
+DW_AT_type : <0x181>
+DW_AT_decl_file : 3
DW_AT_decl_line : 76
-<2><151>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd6): sa_family
-DW_AT_type : <0x16e>
-DW_AT_decl_file : 3
-DW_AT_decl_line : 77
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><15f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfb): sa_data
-DW_AT_type : <0x180>
-DW_AT_decl_file : 3
-DW_AT_decl_line : 78
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><16e>
+<1><16f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x179>
-DW_AT_name : (indirect string, offset: 0xef): sa_family_t
+DW_AT_type : <0x17a>
+DW_AT_name : (indirect string, offset: 0x1b9): sa_family_t
DW_AT_decl_file : 2
DW_AT_decl_line : 34
-<1><179>
+<1><17a>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe0): unsigned short
+DW_AT_name : (indirect string, offset: 0x1aa): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><180>
+<1><181>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x13b>
-<2><185>
+DW_AT_type : <0x13c>
+<2><186>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x142>
+DW_AT_type : <0x143>
DW_AT_lower_bound : 0
DW_AT_count : 14
-<1><18d>
+<1><18e>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x14c): short
+DW_AT_name : (indirect string, offset: 0x216): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><194>
+<1><195>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x15e): int
+DW_AT_name : (indirect string, offset: 0x228): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><19b>
+<1><19c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1bd): ifmap
+DW_AT_name : (indirect string, offset: 0x287): ifmap
DW_AT_byte_size : 16
DW_AT_decl_file : 1
-DW_AT_decl_line : 101
-<2><1a3>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x174): mem_start
-DW_AT_type : <0x1f8>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 102
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1b1>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x190): mem_end
-DW_AT_type : <0x1f8>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 103
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><1bf>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x198): base_addr
-DW_AT_type : <0x179>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 104
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><1cd>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1a2): irq
-DW_AT_type : <0x1ff>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 105
-DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<2><1db>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1b4): dma
-DW_AT_type : <0x1ff>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 106
-DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
-<2><1e9>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1b8): port
-DW_AT_type : <0x1ff>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 107
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><1f8>
-Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x17e): long unsigned int
-DW_AT_encoding : 7 (unsigned)
-DW_AT_byte_size : 4
-<1><1ff>
-Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1a6): unsigned char
-DW_AT_encoding : 8 (unsigned char)
-DW_AT_byte_size : 1
-<1><206>
-Abbrev Number: 11 (DW_TAG_pointer_type)
-<1><207>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x31c): if_settings
-DW_AT_byte_size : 12
-DW_AT_decl_file : 1
-DW_AT_decl_line : 110
-<2><20f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f3): type
-DW_AT_type : <0x2a1>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 111
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><21d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x205): size
-DW_AT_type : <0x2a1>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 112
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><22b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x20a): ifs_ifsu
-DW_AT_type : <0x239>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 121
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><239>
-Abbrev Number: 6 (DW_TAG_union_type)
-DW_AT_byte_size : 4
-DW_AT_decl_file : 1
-DW_AT_decl_line : 113
-<3><23d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x213): raw_hdlc
-DW_AT_type : <0x2a8>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 114
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><24b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x23b): cisco
-DW_AT_type : <0x2d9>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 115
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><259>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x25e): fr
-DW_AT_type : <0x30a>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 116
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><267>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x28b): fr_pvc
-DW_AT_type : <0x381>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 117
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><275>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2a4): fr_pvc_info
-DW_AT_type : <0x3a4>
-DW_AT_decl_file : 1
DW_AT_decl_line : 118
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><283>
+<2><1a4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2c9): sync
-DW_AT_type : <0x3d5>
+DW_AT_name : (indirect string, offset: 0x23e): mem_start
+DW_AT_type : <0x1f9>
DW_AT_decl_file : 1
DW_AT_decl_line : 119
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><291>
+<2><1b2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x302): te1
-DW_AT_type : <0x414>
+DW_AT_name : (indirect string, offset: 0x25a): mem_end
+DW_AT_type : <0x1f9>
DW_AT_decl_file : 1
DW_AT_decl_line : 120
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><2a1>
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><1c0>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x262): base_addr
+DW_AT_type : <0x17a>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 121
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><1ce>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x26c): irq
+DW_AT_type : <0x200>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 122
+DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+<2><1dc>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x27e): dma
+DW_AT_type : <0x200>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 123
+DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
+<2><1ea>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x282): port
+DW_AT_type : <0x200>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 124
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<1><1f9>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1f8): unsigned int
+DW_AT_name : (indirect string, offset: 0x248): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><2a8>
+<1><200>
+Abbrev Number: 9 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x270): unsigned char
+DW_AT_encoding : 8 (unsigned char)
+DW_AT_byte_size : 1
+<1><207>
+Abbrev Number: 11 (DW_TAG_pointer_type)
+<1><208>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x3e6): if_settings
+DW_AT_byte_size : 12
+DW_AT_decl_file : 1
+DW_AT_decl_line : 127
+<2><210>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2bd): type
+DW_AT_type : <0x2a2>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 128
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><21e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2cf): size
+DW_AT_type : <0x2a2>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 129
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><22c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2d4): ifs_ifsu
+DW_AT_type : <0x23a>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 138
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><23a>
+Abbrev Number: 6 (DW_TAG_union_type)
+DW_AT_byte_size : 4
+DW_AT_decl_file : 1
+DW_AT_decl_line : 130
+<3><23e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2dd): raw_hdlc
+DW_AT_type : <0x2a9>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 131
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><24c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x305): cisco
+DW_AT_type : <0x2da>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 132
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><25a>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x328): fr
+DW_AT_type : <0x30b>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 133
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><268>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x355): fr_pvc
+DW_AT_type : <0x382>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 134
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><276>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x36e): fr_pvc_info
+DW_AT_type : <0x3a5>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 135
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><284>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x393): sync
+DW_AT_type : <0x3d6>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 136
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><292>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3cc): te1
+DW_AT_type : <0x415>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 137
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><2a2>
+Abbrev Number: 9 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x2c2): unsigned int
+DW_AT_encoding : 7 (unsigned)
+DW_AT_byte_size : 4
+<1><2a9>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x2ad>
-<1><2ad>
+DW_AT_type : <0x2ae>
+<1><2ae>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2b8>
-DW_AT_name : (indirect string, offset: 0x22c): raw_hdlc_proto
+DW_AT_type : <0x2b9>
+DW_AT_name : (indirect string, offset: 0x2f6): raw_hdlc_proto
DW_AT_decl_file : 4
DW_AT_decl_line : 61
-<1><2b8>
+<1><2b9>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 4
DW_AT_decl_line : 58
-<2><2bc>
+<2><2bd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x21c): encoding
-DW_AT_type : <0x179>
+DW_AT_name : (indirect string, offset: 0x2e6): encoding
+DW_AT_type : <0x17a>
DW_AT_decl_file : 4
DW_AT_decl_line : 59
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><2ca>
+<2><2cb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x225): parity
-DW_AT_type : <0x179>
+DW_AT_name : (indirect string, offset: 0x2ef): parity
+DW_AT_type : <0x17a>
DW_AT_decl_file : 4
DW_AT_decl_line : 60
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<1><2d9>
+<1><2da>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x2de>
-<1><2de>
+DW_AT_type : <0x2df>
+<1><2df>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2e9>
-DW_AT_name : (indirect string, offset: 0x252): cisco_proto
+DW_AT_type : <0x2ea>
+DW_AT_name : (indirect string, offset: 0x31c): cisco_proto
DW_AT_decl_file : 4
DW_AT_decl_line : 81
-<1><2e9>
+<1><2ea>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 4
DW_AT_decl_line : 78
-<2><2ed>
+<2><2ee>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x241): interval
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x30b): interval
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 79
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><2fb>
+<2><2fc>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x24a): timeout
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x314): timeout
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 80
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><30a>
+<1><30b>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x30f>
-<1><30f>
+DW_AT_type : <0x310>
+<1><310>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x31a>
-DW_AT_name : (indirect string, offset: 0x282): fr_proto
+DW_AT_type : <0x31b>
+DW_AT_name : (indirect string, offset: 0x34c): fr_proto
DW_AT_decl_file : 4
DW_AT_decl_line : 70
-<1><31a>
+<1><31b>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 24
DW_AT_decl_file : 4
DW_AT_decl_line : 62
-<2><31e>
+<2><31f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x261): t391
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x32b): t391
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 63
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><32c>
+<2><32d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x266): t392
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x330): t392
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 64
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><33a>
+<2><33b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x26b): n391
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x335): n391
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 65
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><348>
+<2><349>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x270): n392
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x33a): n392
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 66
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><356>
+<2><357>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x275): n393
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x33f): n393
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 67
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><364>
+<2><365>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x27a): lmi
-DW_AT_type : <0x179>
+DW_AT_name : (indirect string, offset: 0x344): lmi
+DW_AT_type : <0x17a>
DW_AT_decl_file : 4
DW_AT_decl_line : 68
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><372>
+<2><373>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x27e): dce
-DW_AT_type : <0x179>
+DW_AT_name : (indirect string, offset: 0x348): dce
+DW_AT_type : <0x17a>
DW_AT_decl_file : 4
DW_AT_decl_line : 69
DW_AT_data_member_location: 2 byte block: 23 16 (DW_OP_plus_uconst: 22)
-<1><381>
+<1><382>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x386>
-<1><386>
+DW_AT_type : <0x387>
+<1><387>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x391>
-DW_AT_name : (indirect string, offset: 0x297): fr_proto_pvc
+DW_AT_type : <0x392>
+DW_AT_name : (indirect string, offset: 0x361): fr_proto_pvc
DW_AT_decl_file : 4
DW_AT_decl_line : 73
-<1><391>
+<1><392>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 4
DW_AT_decl_line : 71
-<2><395>
+<2><396>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x292): dlci
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x35c): dlci
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 72
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><3a4>
+<1><3a5>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x3a9>
-<1><3a9>
+DW_AT_type : <0x3aa>
+<1><3aa>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b4>
-DW_AT_name : (indirect string, offset: 0x2b7): fr_proto_pvc_info
+DW_AT_type : <0x3b5>
+DW_AT_name : (indirect string, offset: 0x381): fr_proto_pvc_info
DW_AT_decl_file : 4
DW_AT_decl_line : 77
-<1><3b4>
+<1><3b5>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 20
DW_AT_decl_file : 4
DW_AT_decl_line : 74
-<2><3b8>
+<2><3b9>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x292): dlci
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x35c): dlci
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 75
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><3c6>
+<2><3c7>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2b0): master
-DW_AT_type : <0x12e>
+DW_AT_name : (indirect string, offset: 0x37a): master
+DW_AT_type : <0x12f>
DW_AT_decl_file : 4
DW_AT_decl_line : 76
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><3d5>
+<1><3d6>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x3da>
-<1><3da>
+DW_AT_type : <0x3db>
+<1><3db>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3e5>
-DW_AT_name : (indirect string, offset: 0x2ed): sync_serial_settings
+DW_AT_type : <0x3e6>
+DW_AT_name : (indirect string, offset: 0x3b7): sync_serial_settings
DW_AT_decl_file : 4
DW_AT_decl_line : 51
-<1><3e5>
+<1><3e6>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 12
DW_AT_decl_file : 4
DW_AT_decl_line : 47
-<2><3e9>
+<2><3ea>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2ce): clock_rate
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x398): clock_rate
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><3f7>
+<2><3f8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2d9): clock_type
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x3a3): clock_type
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 49
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><405>
+<2><406>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2e4): loopback
-DW_AT_type : <0x179>
+DW_AT_name : (indirect string, offset: 0x3ae): loopback
+DW_AT_type : <0x17a>
DW_AT_decl_file : 4
DW_AT_decl_line : 50
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><414>
+<1><415>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x419>
-<1><419>
+DW_AT_type : <0x41a>
+<1><41a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x424>
-DW_AT_name : (indirect string, offset: 0x30f): te1_settings
+DW_AT_type : <0x425>
+DW_AT_name : (indirect string, offset: 0x3d9): te1_settings
DW_AT_decl_file : 4
DW_AT_decl_line : 57
-<1><424>
+<1><425>
Abbrev Number: 13 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 4
DW_AT_decl_line : 52
-<2><428>
+<2><429>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2ce): clock_rate
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x398): clock_rate
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 53
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><436>
+<2><437>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2d9): clock_type
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x3a3): clock_type
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 54
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><444>
+<2><445>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2e4): loopback
-DW_AT_type : <0x179>
+DW_AT_name : (indirect string, offset: 0x3ae): loopback
+DW_AT_type : <0x17a>
DW_AT_decl_file : 4
DW_AT_decl_line : 55
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><452>
+<2><453>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x306): slot_map
-DW_AT_type : <0x2a1>
+DW_AT_name : (indirect string, offset: 0x3d0): slot_map
+DW_AT_type : <0x2a2>
DW_AT_decl_file : 4
DW_AT_decl_line : 56
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
diff --git a/mpers-m32/struct_keyctl_kdf_params.d1 b/mpers-m32/struct_keyctl_kdf_params.d1
index d1c68fb..aa93a7b 100644
--- a/mpers-m32/struct_keyctl_kdf_params.d1
+++ b/mpers-m32/struct_keyctl_kdf_params.d1
@@ -1,88 +1,89 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xb6 (32-bit)
+ Length: 0xb7 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_keyctl_kdf_params.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_keyctl_kdf_params.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x62): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x9d): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 7
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x117): struct_keyctl_kdf_params
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 5
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x105): keyctl_kdf_params
- <40> DW_AT_byte_size : 44
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 13
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xae): hashname
- <48> DW_AT_type : <0x7c>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 14
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xbc): otherinfo
- <56> DW_AT_type : <0x7c>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 15
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xc6): otherinfolen
- <64> DW_AT_type : <0x88>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 16
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xf4): __spare
- <72> DW_AT_type : <0xa5>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 17
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 0
- <1><7c>: Abbrev Number: 6 (DW_TAG_pointer_type)
- <7d> DW_AT_type : <0x81>
- <1><81>: Abbrev Number: 7 (DW_TAG_base_type)
- <82> DW_AT_name : (indirect string, offset: 0xb7): char
- <86> DW_AT_encoding : 8 (unsigned char)
- <87> DW_AT_byte_size : 1
- <1><88>: Abbrev Number: 3 (DW_TAG_typedef)
- <89> DW_AT_type : <0x93>
- <8d> DW_AT_name : (indirect string, offset: 0xeb): uint32_t
- <91> DW_AT_decl_file : 2
- <92> DW_AT_decl_line : 65
- <1><93>: Abbrev Number: 3 (DW_TAG_typedef)
- <94> DW_AT_type : <0x9e>
- <98> DW_AT_name : (indirect string, offset: 0xe0): __uint32_t
- <9c> DW_AT_decl_file : 2
- <9d> DW_AT_decl_line : 41
- <1><9e>: Abbrev Number: 7 (DW_TAG_base_type)
- <9f> DW_AT_name : (indirect string, offset: 0xd3): unsigned int
- <a3> DW_AT_encoding : 7 (unsigned)
- <a4> DW_AT_byte_size : 4
- <1><a5>: Abbrev Number: 8 (DW_TAG_array_type)
- <a6> DW_AT_type : <0x88>
- <2><aa>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <ab> DW_AT_type : <0xb2>
- <af> DW_AT_lower_bound : 0
- <b0> DW_AT_count : 8
- <2><b1>: Abbrev Number: 0
- <1><b2>: Abbrev Number: 10 (DW_TAG_base_type)
- <b3> DW_AT_name : (indirect string, offset: 0xfc): sizetype
- <b7> DW_AT_byte_size : 8
- <b8> DW_AT_encoding : 7 (unsigned)
- <1><b9>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12c): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x167): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 7
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1e1): struct_keyctl_kdf_params
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 5
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1cf): keyctl_kdf_params
+ <41> DW_AT_byte_size : 44
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 13
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x178): hashname
+ <49> DW_AT_type : <0x7d>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 14
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x186): otherinfo
+ <57> DW_AT_type : <0x7d>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 15
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x190): otherinfolen
+ <65> DW_AT_type : <0x89>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 16
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1be): __spare
+ <73> DW_AT_type : <0xa6>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 17
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 0
+ <1><7d>: Abbrev Number: 6 (DW_TAG_pointer_type)
+ <7e> DW_AT_type : <0x82>
+ <1><82>: Abbrev Number: 7 (DW_TAG_base_type)
+ <83> DW_AT_name : (indirect string, offset: 0x181): char
+ <87> DW_AT_encoding : 8 (unsigned char)
+ <88> DW_AT_byte_size : 1
+ <1><89>: Abbrev Number: 3 (DW_TAG_typedef)
+ <8a> DW_AT_type : <0x94>
+ <8e> DW_AT_name : (indirect string, offset: 0x1b5): uint32_t
+ <92> DW_AT_decl_file : 2
+ <93> DW_AT_decl_line : 65
+ <1><94>: Abbrev Number: 3 (DW_TAG_typedef)
+ <95> DW_AT_type : <0x9f>
+ <99> DW_AT_name : (indirect string, offset: 0x1aa): __uint32_t
+ <9d> DW_AT_decl_file : 2
+ <9e> DW_AT_decl_line : 41
+ <1><9f>: Abbrev Number: 7 (DW_TAG_base_type)
+ <a0> DW_AT_name : (indirect string, offset: 0x19d): unsigned int
+ <a4> DW_AT_encoding : 7 (unsigned)
+ <a5> DW_AT_byte_size : 4
+ <1><a6>: Abbrev Number: 8 (DW_TAG_array_type)
+ <a7> DW_AT_type : <0x89>
+ <2><ab>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <ac> DW_AT_type : <0xb3>
+ <b0> DW_AT_lower_bound : 0
+ <b1> DW_AT_count : 8
+ <2><b2>: Abbrev Number: 0
+ <1><b3>: Abbrev Number: 10 (DW_TAG_base_type)
+ <b4> DW_AT_name : (indirect string, offset: 0x1c6): sizetype
+ <b8> DW_AT_byte_size : 8
+ <b9> DW_AT_encoding : 7 (unsigned)
+ <1><ba>: Abbrev Number: 0
diff --git a/mpers-m32/struct_keyctl_kdf_params.d2 b/mpers-m32/struct_keyctl_kdf_params.d2
index 172fa0f..6000a87 100644
--- a/mpers-m32/struct_keyctl_kdf_params.d2
+++ b/mpers-m32/struct_keyctl_kdf_params.d2
@@ -1,86 +1,86 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x9d): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x167): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 7
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x117): struct_keyctl_kdf_params
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1e1): struct_keyctl_kdf_params
DW_AT_decl_file : 3
DW_AT_decl_line : 5
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x105): keyctl_kdf_params
+DW_AT_name : (indirect string, offset: 0x1cf): keyctl_kdf_params
DW_AT_byte_size : 44
DW_AT_decl_file : 1
DW_AT_decl_line : 13
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xae): hashname
-DW_AT_type : <0x7c>
+DW_AT_name : (indirect string, offset: 0x178): hashname
+DW_AT_type : <0x7d>
DW_AT_decl_file : 1
DW_AT_decl_line : 14
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbc): otherinfo
-DW_AT_type : <0x7c>
+DW_AT_name : (indirect string, offset: 0x186): otherinfo
+DW_AT_type : <0x7d>
DW_AT_decl_file : 1
DW_AT_decl_line : 15
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc6): otherinfolen
-DW_AT_type : <0x88>
+DW_AT_name : (indirect string, offset: 0x190): otherinfolen
+DW_AT_type : <0x89>
DW_AT_decl_file : 1
DW_AT_decl_line : 16
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf4): __spare
-DW_AT_type : <0xa5>
+DW_AT_name : (indirect string, offset: 0x1be): __spare
+DW_AT_type : <0xa6>
DW_AT_decl_file : 1
DW_AT_decl_line : 17
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><7c>
+<1><7d>
Abbrev Number: 6 (DW_TAG_pointer_type)
-DW_AT_type : <0x81>
-<1><81>
+DW_AT_type : <0x82>
+<1><82>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb7): char
+DW_AT_name : (indirect string, offset: 0x181): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><88>
+<1><89>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x93>
-DW_AT_name : (indirect string, offset: 0xeb): uint32_t
+DW_AT_type : <0x94>
+DW_AT_name : (indirect string, offset: 0x1b5): uint32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 65
-<1><93>
+<1><94>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x9e>
-DW_AT_name : (indirect string, offset: 0xe0): __uint32_t
+DW_AT_type : <0x9f>
+DW_AT_name : (indirect string, offset: 0x1aa): __uint32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 41
-<1><9e>
+<1><9f>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd3): unsigned int
+DW_AT_name : (indirect string, offset: 0x19d): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><a5>
+<1><a6>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0x88>
-<2><aa>
+DW_AT_type : <0x89>
+<2><ab>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0xb2>
+DW_AT_type : <0xb3>
DW_AT_lower_bound : 0
DW_AT_count : 8
-<1><b2>
+<1><b3>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xfc): sizetype
+DW_AT_name : (indirect string, offset: 0x1c6): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
diff --git a/mpers-m32/struct_loop_info.d1 b/mpers-m32/struct_loop_info.d1
index 8a8beb1..149f47e 100644
--- a/mpers-m32/struct_loop_info.d1
+++ b/mpers-m32/struct_loop_info.d1
@@ -1,162 +1,163 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x154 (32-bit)
+ Length: 0x155 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_loop_info.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_loop_info.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5a): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 36
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x189): struct_loop_info
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 33
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x17f): loop_info
- <40> DW_AT_byte_size : 140
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 31
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa6): lo_number
- <48> DW_AT_type : <0xee>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 32
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xb4): lo_device
- <56> DW_AT_type : <0xf5>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 33
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xde): lo_inode
- <64> DW_AT_type : <0x107>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 34
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xf9): lo_rdevice
- <72> DW_AT_type : <0xf5>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 35
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0x104): lo_offset
- <80> DW_AT_type : <0xee>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 36
- <86> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x10e): lo_encrypt_type
- <8e> DW_AT_type : <0xee>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 37
- <94> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x11e): lo_encrypt_key_size
- <9c> DW_AT_type : <0xee>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 38
- <a2> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x132): lo_flags
- <aa> DW_AT_type : <0xee>
- <ae> DW_AT_decl_file : 1
- <af> DW_AT_decl_line : 39
- <b0> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x13b): lo_name
- <b8> DW_AT_type : <0x10e>
- <bc> DW_AT_decl_file : 1
- <bd> DW_AT_decl_line : 40
- <be> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x151): lo_encrypt_key
- <c6> DW_AT_type : <0x129>
- <ca> DW_AT_decl_file : 1
- <cb> DW_AT_decl_line : 41
- <cc> DW_AT_data_member_location: 2 byte block: 23 60 (DW_OP_plus_uconst: 96)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x16e): lo_init
- <d4> DW_AT_type : <0x13d>
- <d8> DW_AT_decl_file : 1
- <d9> DW_AT_decl_line : 42
- <da> DW_AT_data_member_location: 3 byte block: 23 80 1 (DW_OP_plus_uconst: 128)
- <2><de>: Abbrev Number: 5 (DW_TAG_member)
- <df> DW_AT_name : (indirect string, offset: 0x176): reserved
- <e3> DW_AT_type : <0x14a>
- <e7> DW_AT_decl_file : 1
- <e8> DW_AT_decl_line : 43
- <e9> DW_AT_data_member_location: 3 byte block: 23 88 1 (DW_OP_plus_uconst: 136)
- <2><ed>: Abbrev Number: 0
- <1><ee>: Abbrev Number: 6 (DW_TAG_base_type)
- <ef> DW_AT_name : (indirect string, offset: 0xb0): int
- <f3> DW_AT_encoding : 5 (signed)
- <f4> DW_AT_byte_size : 4
- <1><f5>: Abbrev Number: 3 (DW_TAG_typedef)
- <f6> DW_AT_type : <0x100>
- <fa> DW_AT_name : (indirect string, offset: 0xcb): __kernel_old_dev_t
- <fe> DW_AT_decl_file : 2
- <ff> DW_AT_decl_line : 57
- <1><100>: Abbrev Number: 6 (DW_TAG_base_type)
- <101> DW_AT_name : (indirect string, offset: 0xbe): unsigned int
- <105> DW_AT_encoding : 7 (unsigned)
- <106> DW_AT_byte_size : 4
- <1><107>: Abbrev Number: 6 (DW_TAG_base_type)
- <108> DW_AT_name : (indirect string, offset: 0xe7): long unsigned int
- <10c> DW_AT_encoding : 7 (unsigned)
- <10d> DW_AT_byte_size : 4
- <1><10e>: Abbrev Number: 7 (DW_TAG_array_type)
- <10f> DW_AT_type : <0x11b>
- <2><113>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <114> DW_AT_type : <0x122>
- <118> DW_AT_lower_bound : 0
- <119> DW_AT_count : 64
- <2><11a>: Abbrev Number: 0
- <1><11b>: Abbrev Number: 6 (DW_TAG_base_type)
- <11c> DW_AT_name : (indirect string, offset: 0x143): char
- <120> DW_AT_encoding : 8 (unsigned char)
- <121> DW_AT_byte_size : 1
- <1><122>: Abbrev Number: 9 (DW_TAG_base_type)
- <123> DW_AT_name : (indirect string, offset: 0x148): sizetype
- <127> DW_AT_byte_size : 8
- <128> DW_AT_encoding : 7 (unsigned)
- <1><129>: Abbrev Number: 7 (DW_TAG_array_type)
- <12a> DW_AT_type : <0x136>
- <2><12e>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <12f> DW_AT_type : <0x122>
- <133> DW_AT_lower_bound : 0
- <134> DW_AT_count : 32
- <2><135>: Abbrev Number: 0
- <1><136>: Abbrev Number: 6 (DW_TAG_base_type)
- <137> DW_AT_name : (indirect string, offset: 0x160): unsigned char
- <13b> DW_AT_encoding : 8 (unsigned char)
- <13c> DW_AT_byte_size : 1
- <1><13d>: Abbrev Number: 7 (DW_TAG_array_type)
- <13e> DW_AT_type : <0x107>
- <2><142>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <143> DW_AT_type : <0x122>
- <147> DW_AT_lower_bound : 0
- <148> DW_AT_count : 2
- <2><149>: Abbrev Number: 0
- <1><14a>: Abbrev Number: 7 (DW_TAG_array_type)
- <14b> DW_AT_type : <0x11b>
- <2><14f>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <150> DW_AT_type : <0x122>
- <154> DW_AT_lower_bound : 0
- <155> DW_AT_count : 4
- <2><156>: Abbrev Number: 0
- <1><157>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x124): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 36
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x253): struct_loop_info
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 33
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x249): loop_info
+ <41> DW_AT_byte_size : 140
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 31
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x170): lo_number
+ <49> DW_AT_type : <0xef>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 32
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x17e): lo_device
+ <57> DW_AT_type : <0xf6>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 33
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x1a8): lo_inode
+ <65> DW_AT_type : <0x108>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 34
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1c3): lo_rdevice
+ <73> DW_AT_type : <0xf6>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 35
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1ce): lo_offset
+ <81> DW_AT_type : <0xef>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 36
+ <87> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1d8): lo_encrypt_type
+ <8f> DW_AT_type : <0xef>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 37
+ <95> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1e8): lo_encrypt_key_size
+ <9d> DW_AT_type : <0xef>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 38
+ <a3> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1fc): lo_flags
+ <ab> DW_AT_type : <0xef>
+ <af> DW_AT_decl_file : 1
+ <b0> DW_AT_decl_line : 39
+ <b1> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x205): lo_name
+ <b9> DW_AT_type : <0x10f>
+ <bd> DW_AT_decl_file : 1
+ <be> DW_AT_decl_line : 40
+ <bf> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x21b): lo_encrypt_key
+ <c7> DW_AT_type : <0x12a>
+ <cb> DW_AT_decl_file : 1
+ <cc> DW_AT_decl_line : 41
+ <cd> DW_AT_data_member_location: 2 byte block: 23 60 (DW_OP_plus_uconst: 96)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x238): lo_init
+ <d5> DW_AT_type : <0x13e>
+ <d9> DW_AT_decl_file : 1
+ <da> DW_AT_decl_line : 42
+ <db> DW_AT_data_member_location: 3 byte block: 23 80 1 (DW_OP_plus_uconst: 128)
+ <2><df>: Abbrev Number: 5 (DW_TAG_member)
+ <e0> DW_AT_name : (indirect string, offset: 0x240): reserved
+ <e4> DW_AT_type : <0x14b>
+ <e8> DW_AT_decl_file : 1
+ <e9> DW_AT_decl_line : 43
+ <ea> DW_AT_data_member_location: 3 byte block: 23 88 1 (DW_OP_plus_uconst: 136)
+ <2><ee>: Abbrev Number: 0
+ <1><ef>: Abbrev Number: 6 (DW_TAG_base_type)
+ <f0> DW_AT_name : (indirect string, offset: 0x17a): int
+ <f4> DW_AT_encoding : 5 (signed)
+ <f5> DW_AT_byte_size : 4
+ <1><f6>: Abbrev Number: 3 (DW_TAG_typedef)
+ <f7> DW_AT_type : <0x101>
+ <fb> DW_AT_name : (indirect string, offset: 0x195): __kernel_old_dev_t
+ <ff> DW_AT_decl_file : 2
+ <100> DW_AT_decl_line : 57
+ <1><101>: Abbrev Number: 6 (DW_TAG_base_type)
+ <102> DW_AT_name : (indirect string, offset: 0x188): unsigned int
+ <106> DW_AT_encoding : 7 (unsigned)
+ <107> DW_AT_byte_size : 4
+ <1><108>: Abbrev Number: 6 (DW_TAG_base_type)
+ <109> DW_AT_name : (indirect string, offset: 0x1b1): long unsigned int
+ <10d> DW_AT_encoding : 7 (unsigned)
+ <10e> DW_AT_byte_size : 4
+ <1><10f>: Abbrev Number: 7 (DW_TAG_array_type)
+ <110> DW_AT_type : <0x11c>
+ <2><114>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <115> DW_AT_type : <0x123>
+ <119> DW_AT_lower_bound : 0
+ <11a> DW_AT_count : 64
+ <2><11b>: Abbrev Number: 0
+ <1><11c>: Abbrev Number: 6 (DW_TAG_base_type)
+ <11d> DW_AT_name : (indirect string, offset: 0x20d): char
+ <121> DW_AT_encoding : 8 (unsigned char)
+ <122> DW_AT_byte_size : 1
+ <1><123>: Abbrev Number: 9 (DW_TAG_base_type)
+ <124> DW_AT_name : (indirect string, offset: 0x212): sizetype
+ <128> DW_AT_byte_size : 8
+ <129> DW_AT_encoding : 7 (unsigned)
+ <1><12a>: Abbrev Number: 7 (DW_TAG_array_type)
+ <12b> DW_AT_type : <0x137>
+ <2><12f>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <130> DW_AT_type : <0x123>
+ <134> DW_AT_lower_bound : 0
+ <135> DW_AT_count : 32
+ <2><136>: Abbrev Number: 0
+ <1><137>: Abbrev Number: 6 (DW_TAG_base_type)
+ <138> DW_AT_name : (indirect string, offset: 0x22a): unsigned char
+ <13c> DW_AT_encoding : 8 (unsigned char)
+ <13d> DW_AT_byte_size : 1
+ <1><13e>: Abbrev Number: 7 (DW_TAG_array_type)
+ <13f> DW_AT_type : <0x108>
+ <2><143>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <144> DW_AT_type : <0x123>
+ <148> DW_AT_lower_bound : 0
+ <149> DW_AT_count : 2
+ <2><14a>: Abbrev Number: 0
+ <1><14b>: Abbrev Number: 7 (DW_TAG_array_type)
+ <14c> DW_AT_type : <0x11c>
+ <2><150>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <151> DW_AT_type : <0x123>
+ <155> DW_AT_lower_bound : 0
+ <156> DW_AT_count : 4
+ <2><157>: Abbrev Number: 0
+ <1><158>: Abbrev Number: 0
diff --git a/mpers-m32/struct_loop_info.d2 b/mpers-m32/struct_loop_info.d2
index ac955a5..43f54c0 100644
--- a/mpers-m32/struct_loop_info.d2
+++ b/mpers-m32/struct_loop_info.d2
@@ -1,172 +1,172 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 36
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x189): struct_loop_info
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x253): struct_loop_info
DW_AT_decl_file : 3
DW_AT_decl_line : 33
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x17f): loop_info
+DW_AT_name : (indirect string, offset: 0x249): loop_info
DW_AT_byte_size : 140
DW_AT_decl_file : 1
DW_AT_decl_line : 31
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa6): lo_number
-DW_AT_type : <0xee>
+DW_AT_name : (indirect string, offset: 0x170): lo_number
+DW_AT_type : <0xef>
DW_AT_decl_file : 1
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb4): lo_device
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x17e): lo_device
+DW_AT_type : <0xf6>
DW_AT_decl_file : 1
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xde): lo_inode
-DW_AT_type : <0x107>
+DW_AT_name : (indirect string, offset: 0x1a8): lo_inode
+DW_AT_type : <0x108>
DW_AT_decl_file : 1
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf9): lo_rdevice
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1c3): lo_rdevice
+DW_AT_type : <0xf6>
DW_AT_decl_file : 1
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x104): lo_offset
-DW_AT_type : <0xee>
+DW_AT_name : (indirect string, offset: 0x1ce): lo_offset
+DW_AT_type : <0xef>
DW_AT_decl_file : 1
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10e): lo_encrypt_type
-DW_AT_type : <0xee>
+DW_AT_name : (indirect string, offset: 0x1d8): lo_encrypt_type
+DW_AT_type : <0xef>
DW_AT_decl_file : 1
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11e): lo_encrypt_key_size
-DW_AT_type : <0xee>
+DW_AT_name : (indirect string, offset: 0x1e8): lo_encrypt_key_size
+DW_AT_type : <0xef>
DW_AT_decl_file : 1
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x132): lo_flags
-DW_AT_type : <0xee>
+DW_AT_name : (indirect string, offset: 0x1fc): lo_flags
+DW_AT_type : <0xef>
DW_AT_decl_file : 1
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13b): lo_name
-DW_AT_type : <0x10e>
+DW_AT_name : (indirect string, offset: 0x205): lo_name
+DW_AT_type : <0x10f>
DW_AT_decl_file : 1
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x151): lo_encrypt_key
-DW_AT_type : <0x129>
+DW_AT_name : (indirect string, offset: 0x21b): lo_encrypt_key
+DW_AT_type : <0x12a>
DW_AT_decl_file : 1
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 60 (DW_OP_plus_uconst: 96)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x16e): lo_init
-DW_AT_type : <0x13d>
+DW_AT_name : (indirect string, offset: 0x238): lo_init
+DW_AT_type : <0x13e>
DW_AT_decl_file : 1
DW_AT_decl_line : 42
DW_AT_data_member_location: 3 byte block: 23 80 1 (DW_OP_plus_uconst: 128)
-<2><de>
+<2><df>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x176): reserved
-DW_AT_type : <0x14a>
+DW_AT_name : (indirect string, offset: 0x240): reserved
+DW_AT_type : <0x14b>
DW_AT_decl_file : 1
DW_AT_decl_line : 43
DW_AT_data_member_location: 3 byte block: 23 88 1 (DW_OP_plus_uconst: 136)
-<1><ee>
+<1><ef>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb0): int
+DW_AT_name : (indirect string, offset: 0x17a): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><f5>
+<1><f6>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x100>
-DW_AT_name : (indirect string, offset: 0xcb): __kernel_old_dev_t
+DW_AT_type : <0x101>
+DW_AT_name : (indirect string, offset: 0x195): __kernel_old_dev_t
DW_AT_decl_file : 2
DW_AT_decl_line : 57
-<1><100>
+<1><101>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xbe): unsigned int
+DW_AT_name : (indirect string, offset: 0x188): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><107>
+<1><108>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe7): long unsigned int
+DW_AT_name : (indirect string, offset: 0x1b1): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><10e>
+<1><10f>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x11b>
-<2><113>
+DW_AT_type : <0x11c>
+<2><114>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x122>
+DW_AT_type : <0x123>
DW_AT_lower_bound : 0
DW_AT_count : 64
-<1><11b>
+<1><11c>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x143): char
+DW_AT_name : (indirect string, offset: 0x20d): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><122>
+<1><123>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x148): sizetype
+DW_AT_name : (indirect string, offset: 0x212): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><129>
+<1><12a>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x136>
-<2><12e>
+DW_AT_type : <0x137>
+<2><12f>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x122>
+DW_AT_type : <0x123>
DW_AT_lower_bound : 0
DW_AT_count : 32
-<1><136>
+<1><137>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x160): unsigned char
+DW_AT_name : (indirect string, offset: 0x22a): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><13d>
+<1><13e>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x107>
-<2><142>
+DW_AT_type : <0x108>
+<2><143>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x122>
+DW_AT_type : <0x123>
DW_AT_lower_bound : 0
DW_AT_count : 2
-<1><14a>
+<1><14b>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x11b>
-<2><14f>
+DW_AT_type : <0x11c>
+<2><150>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x122>
+DW_AT_type : <0x123>
DW_AT_lower_bound : 0
DW_AT_count : 4
diff --git a/mpers-m32/struct_mmsghdr.d1 b/mpers-m32/struct_mmsghdr.d1
index 0fc9f73..fa162a1 100644
--- a/mpers-m32/struct_mmsghdr.d1
+++ b/mpers-m32/struct_mmsghdr.d1
@@ -1,161 +1,162 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x155 (32-bit)
+ Length: 0x156 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_mmsghdr.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_mmsghdr.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x58): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x93): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 7
- <29> DW_AT_decl_line : 34
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x19a): struct_mmsghdr
- <39> DW_AT_decl_file : 7
- <3a> DW_AT_decl_line : 32
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x192): mmsghdr
- <40> DW_AT_byte_size : 32
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 96
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa4): msg_hdr
- <48> DW_AT_type : <0x60>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 97
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0x18a): msg_len
- <56> DW_AT_type : <0x151>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 98
- <5c> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><5f>: Abbrev Number: 0
- <1><60>: Abbrev Number: 4 (DW_TAG_structure_type)
- <61> DW_AT_name : (indirect string, offset: 0x183): msghdr
- <65> DW_AT_byte_size : 28
- <66> DW_AT_decl_file : 1
- <67> DW_AT_decl_line : 86
- <2><68>: Abbrev Number: 5 (DW_TAG_member)
- <69> DW_AT_name : (indirect string, offset: 0xac): msg_name
- <6d> DW_AT_type : <0xcb>
- <71> DW_AT_decl_file : 1
- <72> DW_AT_decl_line : 87
- <73> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><76>: Abbrev Number: 5 (DW_TAG_member)
- <77> DW_AT_name : (indirect string, offset: 0xb5): msg_namelen
- <7b> DW_AT_type : <0xcc>
- <7f> DW_AT_decl_file : 1
- <80> DW_AT_decl_line : 88
- <81> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><84>: Abbrev Number: 5 (DW_TAG_member)
- <85> DW_AT_name : (indirect string, offset: 0xed): msg_iov
- <89> DW_AT_type : <0xff>
- <8d> DW_AT_decl_file : 1
- <8e> DW_AT_decl_line : 89
- <8f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><92>: Abbrev Number: 5 (DW_TAG_member)
- <93> DW_AT_name : (indirect string, offset: 0x13f): msg_iovlen
- <97> DW_AT_type : <0x146>
- <9b> DW_AT_decl_file : 1
- <9c> DW_AT_decl_line : 90
- <9d> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><a0>: Abbrev Number: 5 (DW_TAG_member)
- <a1> DW_AT_name : (indirect string, offset: 0x15e): msg_control
- <a5> DW_AT_type : <0xcb>
- <a9> DW_AT_decl_file : 1
- <aa> DW_AT_decl_line : 91
- <ab> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><ae>: Abbrev Number: 5 (DW_TAG_member)
- <af> DW_AT_name : (indirect string, offset: 0x16a): msg_controllen
- <b3> DW_AT_type : <0x146>
- <b7> DW_AT_decl_file : 1
- <b8> DW_AT_decl_line : 92
- <b9> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><bc>: Abbrev Number: 5 (DW_TAG_member)
- <bd> DW_AT_name : (indirect string, offset: 0x179): msg_flags
- <c1> DW_AT_type : <0xf8>
- <c5> DW_AT_decl_file : 1
- <c6> DW_AT_decl_line : 93
- <c7> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><ca>: Abbrev Number: 0
- <1><cb>: Abbrev Number: 6 (DW_TAG_pointer_type)
- <1><cc>: Abbrev Number: 3 (DW_TAG_typedef)
- <cd> DW_AT_type : <0xd7>
- <d1> DW_AT_name : (indirect string, offset: 0xe3): socklen_t
- <d5> DW_AT_decl_file : 3
- <d6> DW_AT_decl_line : 116
- <1><d7>: Abbrev Number: 3 (DW_TAG_typedef)
- <d8> DW_AT_type : <0xe2>
- <dc> DW_AT_name : (indirect string, offset: 0xd7): __socklen_t
- <e0> DW_AT_decl_file : 3
- <e1> DW_AT_decl_line : 111
- <1><e2>: Abbrev Number: 3 (DW_TAG_typedef)
- <e3> DW_AT_type : <0xed>
- <e7> DW_AT_name : (indirect string, offset: 0xcf): int32_t
- <eb> DW_AT_decl_file : 2
- <ec> DW_AT_decl_line : 64
- <1><ed>: Abbrev Number: 3 (DW_TAG_typedef)
- <ee> DW_AT_type : <0xf8>
- <f2> DW_AT_name : (indirect string, offset: 0xc5): __int32_t
- <f6> DW_AT_decl_file : 2
- <f7> DW_AT_decl_line : 40
- <1><f8>: Abbrev Number: 7 (DW_TAG_base_type)
- <f9> DW_AT_name : (indirect string, offset: 0xc1): int
- <fd> DW_AT_encoding : 5 (signed)
- <fe> DW_AT_byte_size : 4
- <1><ff>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <100> DW_AT_type : <0x104>
- <1><104>: Abbrev Number: 4 (DW_TAG_structure_type)
- <105> DW_AT_name : (indirect string, offset: 0x139): iovec
- <109> DW_AT_byte_size : 8
- <10a> DW_AT_decl_file : 4
- <10b> DW_AT_decl_line : 23
- <2><10c>: Abbrev Number: 5 (DW_TAG_member)
- <10d> DW_AT_name : (indirect string, offset: 0xf5): iov_base
- <111> DW_AT_type : <0xcb>
- <115> DW_AT_decl_file : 4
- <116> DW_AT_decl_line : 24
- <117> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><11a>: Abbrev Number: 5 (DW_TAG_member)
- <11b> DW_AT_name : (indirect string, offset: 0xfe): iov_len
- <11f> DW_AT_type : <0x129>
- <123> DW_AT_decl_file : 4
- <124> DW_AT_decl_line : 25
- <125> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><128>: Abbrev Number: 0
- <1><129>: Abbrev Number: 3 (DW_TAG_typedef)
- <12a> DW_AT_type : <0x134>
- <12e> DW_AT_name : (indirect string, offset: 0x129): __kernel_size_t
- <132> DW_AT_decl_file : 5
- <133> DW_AT_decl_line : 65
- <1><134>: Abbrev Number: 3 (DW_TAG_typedef)
- <135> DW_AT_type : <0x13f>
- <139> DW_AT_name : (indirect string, offset: 0x118): __kernel_ulong_t
- <13d> DW_AT_decl_file : 5
- <13e> DW_AT_decl_line : 24
- <1><13f>: Abbrev Number: 7 (DW_TAG_base_type)
- <140> DW_AT_name : (indirect string, offset: 0x106): long unsigned int
- <144> DW_AT_encoding : 7 (unsigned)
- <145> DW_AT_byte_size : 4
- <1><146>: Abbrev Number: 3 (DW_TAG_typedef)
- <147> DW_AT_type : <0x151>
- <14b> DW_AT_name : (indirect string, offset: 0x157): size_t
- <14f> DW_AT_decl_file : 6
- <150> DW_AT_decl_line : 62
- <1><151>: Abbrev Number: 7 (DW_TAG_base_type)
- <152> DW_AT_name : (indirect string, offset: 0x14a): unsigned int
- <156> DW_AT_encoding : 7 (unsigned)
- <157> DW_AT_byte_size : 4
- <1><158>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x122): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15d): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 7
+ <2a> DW_AT_decl_line : 34
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x264): struct_mmsghdr
+ <3a> DW_AT_decl_file : 7
+ <3b> DW_AT_decl_line : 32
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x25c): mmsghdr
+ <41> DW_AT_byte_size : 32
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 94
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16e): msg_hdr
+ <49> DW_AT_type : <0x61>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 95
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x254): msg_len
+ <57> DW_AT_type : <0x152>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 96
+ <5d> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><60>: Abbrev Number: 0
+ <1><61>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <62> DW_AT_name : (indirect string, offset: 0x24d): msghdr
+ <66> DW_AT_byte_size : 28
+ <67> DW_AT_decl_file : 1
+ <68> DW_AT_decl_line : 84
+ <2><69>: Abbrev Number: 5 (DW_TAG_member)
+ <6a> DW_AT_name : (indirect string, offset: 0x176): msg_name
+ <6e> DW_AT_type : <0xcc>
+ <72> DW_AT_decl_file : 1
+ <73> DW_AT_decl_line : 85
+ <74> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><77>: Abbrev Number: 5 (DW_TAG_member)
+ <78> DW_AT_name : (indirect string, offset: 0x17f): msg_namelen
+ <7c> DW_AT_type : <0xcd>
+ <80> DW_AT_decl_file : 1
+ <81> DW_AT_decl_line : 86
+ <82> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><85>: Abbrev Number: 5 (DW_TAG_member)
+ <86> DW_AT_name : (indirect string, offset: 0x1b7): msg_iov
+ <8a> DW_AT_type : <0x100>
+ <8e> DW_AT_decl_file : 1
+ <8f> DW_AT_decl_line : 87
+ <90> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><93>: Abbrev Number: 5 (DW_TAG_member)
+ <94> DW_AT_name : (indirect string, offset: 0x209): msg_iovlen
+ <98> DW_AT_type : <0x147>
+ <9c> DW_AT_decl_file : 1
+ <9d> DW_AT_decl_line : 88
+ <9e> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><a1>: Abbrev Number: 5 (DW_TAG_member)
+ <a2> DW_AT_name : (indirect string, offset: 0x228): msg_control
+ <a6> DW_AT_type : <0xcc>
+ <aa> DW_AT_decl_file : 1
+ <ab> DW_AT_decl_line : 89
+ <ac> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><af>: Abbrev Number: 5 (DW_TAG_member)
+ <b0> DW_AT_name : (indirect string, offset: 0x234): msg_controllen
+ <b4> DW_AT_type : <0x147>
+ <b8> DW_AT_decl_file : 1
+ <b9> DW_AT_decl_line : 90
+ <ba> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><bd>: Abbrev Number: 5 (DW_TAG_member)
+ <be> DW_AT_name : (indirect string, offset: 0x243): msg_flags
+ <c2> DW_AT_type : <0xf9>
+ <c6> DW_AT_decl_file : 1
+ <c7> DW_AT_decl_line : 91
+ <c8> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><cb>: Abbrev Number: 0
+ <1><cc>: Abbrev Number: 6 (DW_TAG_pointer_type)
+ <1><cd>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ce> DW_AT_type : <0xd8>
+ <d2> DW_AT_name : (indirect string, offset: 0x1ad): socklen_t
+ <d6> DW_AT_decl_file : 3
+ <d7> DW_AT_decl_line : 117
+ <1><d8>: Abbrev Number: 3 (DW_TAG_typedef)
+ <d9> DW_AT_type : <0xe3>
+ <dd> DW_AT_name : (indirect string, offset: 0x1a1): __socklen_t
+ <e1> DW_AT_decl_file : 3
+ <e2> DW_AT_decl_line : 112
+ <1><e3>: Abbrev Number: 3 (DW_TAG_typedef)
+ <e4> DW_AT_type : <0xee>
+ <e8> DW_AT_name : (indirect string, offset: 0x199): int32_t
+ <ec> DW_AT_decl_file : 2
+ <ed> DW_AT_decl_line : 64
+ <1><ee>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ef> DW_AT_type : <0xf9>
+ <f3> DW_AT_name : (indirect string, offset: 0x18f): __int32_t
+ <f7> DW_AT_decl_file : 2
+ <f8> DW_AT_decl_line : 40
+ <1><f9>: Abbrev Number: 7 (DW_TAG_base_type)
+ <fa> DW_AT_name : (indirect string, offset: 0x18b): int
+ <fe> DW_AT_encoding : 5 (signed)
+ <ff> DW_AT_byte_size : 4
+ <1><100>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <101> DW_AT_type : <0x105>
+ <1><105>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <106> DW_AT_name : (indirect string, offset: 0x203): iovec
+ <10a> DW_AT_byte_size : 8
+ <10b> DW_AT_decl_file : 4
+ <10c> DW_AT_decl_line : 23
+ <2><10d>: Abbrev Number: 5 (DW_TAG_member)
+ <10e> DW_AT_name : (indirect string, offset: 0x1bf): iov_base
+ <112> DW_AT_type : <0xcc>
+ <116> DW_AT_decl_file : 4
+ <117> DW_AT_decl_line : 24
+ <118> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><11b>: Abbrev Number: 5 (DW_TAG_member)
+ <11c> DW_AT_name : (indirect string, offset: 0x1c8): iov_len
+ <120> DW_AT_type : <0x12a>
+ <124> DW_AT_decl_file : 4
+ <125> DW_AT_decl_line : 25
+ <126> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><129>: Abbrev Number: 0
+ <1><12a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <12b> DW_AT_type : <0x135>
+ <12f> DW_AT_name : (indirect string, offset: 0x1f3): __kernel_size_t
+ <133> DW_AT_decl_file : 5
+ <134> DW_AT_decl_line : 65
+ <1><135>: Abbrev Number: 3 (DW_TAG_typedef)
+ <136> DW_AT_type : <0x140>
+ <13a> DW_AT_name : (indirect string, offset: 0x1e2): __kernel_ulong_t
+ <13e> DW_AT_decl_file : 5
+ <13f> DW_AT_decl_line : 24
+ <1><140>: Abbrev Number: 7 (DW_TAG_base_type)
+ <141> DW_AT_name : (indirect string, offset: 0x1d0): long unsigned int
+ <145> DW_AT_encoding : 7 (unsigned)
+ <146> DW_AT_byte_size : 4
+ <1><147>: Abbrev Number: 3 (DW_TAG_typedef)
+ <148> DW_AT_type : <0x152>
+ <14c> DW_AT_name : (indirect string, offset: 0x221): size_t
+ <150> DW_AT_decl_file : 6
+ <151> DW_AT_decl_line : 62
+ <1><152>: Abbrev Number: 7 (DW_TAG_base_type)
+ <153> DW_AT_name : (indirect string, offset: 0x214): unsigned int
+ <157> DW_AT_encoding : 7 (unsigned)
+ <158> DW_AT_byte_size : 4
+ <1><159>: Abbrev Number: 0
diff --git a/mpers-m32/struct_mmsghdr.d2 b/mpers-m32/struct_mmsghdr.d2
index 3606642..85f3de4 100644
--- a/mpers-m32/struct_mmsghdr.d2
+++ b/mpers-m32/struct_mmsghdr.d2
@@ -1,171 +1,171 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x93): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15d): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 7
DW_AT_decl_line : 34
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x19a): struct_mmsghdr
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x264): struct_mmsghdr
DW_AT_decl_file : 7
DW_AT_decl_line : 32
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x192): mmsghdr
+DW_AT_name : (indirect string, offset: 0x25c): mmsghdr
DW_AT_byte_size : 32
DW_AT_decl_file : 1
-DW_AT_decl_line : 96
-<2><43>
+DW_AT_decl_line : 94
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa4): msg_hdr
-DW_AT_type : <0x60>
+DW_AT_name : (indirect string, offset: 0x16e): msg_hdr
+DW_AT_type : <0x61>
DW_AT_decl_file : 1
-DW_AT_decl_line : 97
+DW_AT_decl_line : 95
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x18a): msg_len
-DW_AT_type : <0x151>
+DW_AT_name : (indirect string, offset: 0x254): msg_len
+DW_AT_type : <0x152>
DW_AT_decl_file : 1
-DW_AT_decl_line : 98
+DW_AT_decl_line : 96
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<1><60>
+<1><61>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x183): msghdr
+DW_AT_name : (indirect string, offset: 0x24d): msghdr
DW_AT_byte_size : 28
DW_AT_decl_file : 1
-DW_AT_decl_line : 86
-<2><68>
+DW_AT_decl_line : 84
+<2><69>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xac): msg_name
-DW_AT_type : <0xcb>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 87
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><76>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb5): msg_namelen
+DW_AT_name : (indirect string, offset: 0x176): msg_name
DW_AT_type : <0xcc>
DW_AT_decl_file : 1
-DW_AT_decl_line : 88
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><84>
+DW_AT_decl_line : 85
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><77>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xed): msg_iov
-DW_AT_type : <0xff>
+DW_AT_name : (indirect string, offset: 0x17f): msg_namelen
+DW_AT_type : <0xcd>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 86
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><85>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b7): msg_iov
+DW_AT_type : <0x100>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 87
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><93>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x209): msg_iovlen
+DW_AT_type : <0x147>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 88
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><a1>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x228): msg_control
+DW_AT_type : <0xcc>
DW_AT_decl_file : 1
DW_AT_decl_line : 89
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><92>
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><af>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13f): msg_iovlen
-DW_AT_type : <0x146>
+DW_AT_name : (indirect string, offset: 0x234): msg_controllen
+DW_AT_type : <0x147>
DW_AT_decl_file : 1
DW_AT_decl_line : 90
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><a0>
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<2><bd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): msg_control
-DW_AT_type : <0xcb>
+DW_AT_name : (indirect string, offset: 0x243): msg_flags
+DW_AT_type : <0xf9>
DW_AT_decl_file : 1
DW_AT_decl_line : 91
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><ae>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x16a): msg_controllen
-DW_AT_type : <0x146>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 92
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><bc>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x179): msg_flags
-DW_AT_type : <0xf8>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 93
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<1><cb>
-Abbrev Number: 6 (DW_TAG_pointer_type)
<1><cc>
+Abbrev Number: 6 (DW_TAG_pointer_type)
+<1><cd>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xd7>
-DW_AT_name : (indirect string, offset: 0xe3): socklen_t
+DW_AT_type : <0xd8>
+DW_AT_name : (indirect string, offset: 0x1ad): socklen_t
DW_AT_decl_file : 3
-DW_AT_decl_line : 116
-<1><d7>
+DW_AT_decl_line : 117
+<1><d8>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xe2>
-DW_AT_name : (indirect string, offset: 0xd7): __socklen_t
+DW_AT_type : <0xe3>
+DW_AT_name : (indirect string, offset: 0x1a1): __socklen_t
DW_AT_decl_file : 3
-DW_AT_decl_line : 111
-<1><e2>
+DW_AT_decl_line : 112
+<1><e3>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xed>
-DW_AT_name : (indirect string, offset: 0xcf): int32_t
+DW_AT_type : <0xee>
+DW_AT_name : (indirect string, offset: 0x199): int32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 64
-<1><ed>
+<1><ee>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xf8>
-DW_AT_name : (indirect string, offset: 0xc5): __int32_t
+DW_AT_type : <0xf9>
+DW_AT_name : (indirect string, offset: 0x18f): __int32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 40
-<1><f8>
+<1><f9>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc1): int
+DW_AT_name : (indirect string, offset: 0x18b): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><ff>
+<1><100>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x104>
-<1><104>
+DW_AT_type : <0x105>
+<1><105>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x139): iovec
+DW_AT_name : (indirect string, offset: 0x203): iovec
DW_AT_byte_size : 8
DW_AT_decl_file : 4
DW_AT_decl_line : 23
-<2><10c>
+<2><10d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf5): iov_base
-DW_AT_type : <0xcb>
+DW_AT_name : (indirect string, offset: 0x1bf): iov_base
+DW_AT_type : <0xcc>
DW_AT_decl_file : 4
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><11a>
+<2><11b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfe): iov_len
-DW_AT_type : <0x129>
+DW_AT_name : (indirect string, offset: 0x1c8): iov_len
+DW_AT_type : <0x12a>
DW_AT_decl_file : 4
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><129>
+<1><12a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x134>
-DW_AT_name : (indirect string, offset: 0x129): __kernel_size_t
+DW_AT_type : <0x135>
+DW_AT_name : (indirect string, offset: 0x1f3): __kernel_size_t
DW_AT_decl_file : 5
DW_AT_decl_line : 65
-<1><134>
+<1><135>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x13f>
-DW_AT_name : (indirect string, offset: 0x118): __kernel_ulong_t
+DW_AT_type : <0x140>
+DW_AT_name : (indirect string, offset: 0x1e2): __kernel_ulong_t
DW_AT_decl_file : 5
DW_AT_decl_line : 24
-<1><13f>
+<1><140>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x106): long unsigned int
+DW_AT_name : (indirect string, offset: 0x1d0): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><146>
+<1><147>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x151>
-DW_AT_name : (indirect string, offset: 0x157): size_t
+DW_AT_type : <0x152>
+DW_AT_name : (indirect string, offset: 0x221): size_t
DW_AT_decl_file : 6
DW_AT_decl_line : 62
-<1><151>
+<1><152>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x14a): unsigned int
+DW_AT_name : (indirect string, offset: 0x214): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_msghdr.d1 b/mpers-m32/struct_msghdr.d1
index 493444f..d2b6ba3 100644
--- a/mpers-m32/struct_msghdr.d1
+++ b/mpers-m32/struct_msghdr.d1
@@ -1,143 +1,144 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x130 (32-bit)
+ Length: 0x131 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_msghdr.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_msghdr.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x57): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 7
- <29> DW_AT_decl_line : 34
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x181): struct_msghdr
- <39> DW_AT_decl_file : 7
- <3a> DW_AT_decl_line : 32
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x17a): msghdr
- <40> DW_AT_byte_size : 28
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 86
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa3): msg_name
- <48> DW_AT_type : <0xa6>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 87
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xac): msg_namelen
- <56> DW_AT_type : <0xa7>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 88
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xe4): msg_iov
- <64> DW_AT_type : <0xda>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 89
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0x136): msg_iovlen
- <72> DW_AT_type : <0x121>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 90
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0x155): msg_control
- <80> DW_AT_type : <0xa6>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 91
- <86> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x161): msg_controllen
- <8e> DW_AT_type : <0x121>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 92
- <94> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x170): msg_flags
- <9c> DW_AT_type : <0xd3>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 93
- <a2> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><a5>: Abbrev Number: 0
- <1><a6>: Abbrev Number: 6 (DW_TAG_pointer_type)
- <1><a7>: Abbrev Number: 3 (DW_TAG_typedef)
- <a8> DW_AT_type : <0xb2>
- <ac> DW_AT_name : (indirect string, offset: 0xda): socklen_t
- <b0> DW_AT_decl_file : 3
- <b1> DW_AT_decl_line : 116
- <1><b2>: Abbrev Number: 3 (DW_TAG_typedef)
- <b3> DW_AT_type : <0xbd>
- <b7> DW_AT_name : (indirect string, offset: 0xce): __socklen_t
- <bb> DW_AT_decl_file : 3
- <bc> DW_AT_decl_line : 111
- <1><bd>: Abbrev Number: 3 (DW_TAG_typedef)
- <be> DW_AT_type : <0xc8>
- <c2> DW_AT_name : (indirect string, offset: 0xc6): int32_t
- <c6> DW_AT_decl_file : 2
- <c7> DW_AT_decl_line : 64
- <1><c8>: Abbrev Number: 3 (DW_TAG_typedef)
- <c9> DW_AT_type : <0xd3>
- <cd> DW_AT_name : (indirect string, offset: 0xbc): __int32_t
- <d1> DW_AT_decl_file : 2
- <d2> DW_AT_decl_line : 40
- <1><d3>: Abbrev Number: 7 (DW_TAG_base_type)
- <d4> DW_AT_name : (indirect string, offset: 0xb8): int
- <d8> DW_AT_encoding : 5 (signed)
- <d9> DW_AT_byte_size : 4
- <1><da>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <db> DW_AT_type : <0xdf>
- <1><df>: Abbrev Number: 4 (DW_TAG_structure_type)
- <e0> DW_AT_name : (indirect string, offset: 0x130): iovec
- <e4> DW_AT_byte_size : 8
- <e5> DW_AT_decl_file : 4
- <e6> DW_AT_decl_line : 23
- <2><e7>: Abbrev Number: 5 (DW_TAG_member)
- <e8> DW_AT_name : (indirect string, offset: 0xec): iov_base
- <ec> DW_AT_type : <0xa6>
- <f0> DW_AT_decl_file : 4
- <f1> DW_AT_decl_line : 24
- <f2> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><f5>: Abbrev Number: 5 (DW_TAG_member)
- <f6> DW_AT_name : (indirect string, offset: 0xf5): iov_len
- <fa> DW_AT_type : <0x104>
- <fe> DW_AT_decl_file : 4
- <ff> DW_AT_decl_line : 25
- <100> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><103>: Abbrev Number: 0
- <1><104>: Abbrev Number: 3 (DW_TAG_typedef)
- <105> DW_AT_type : <0x10f>
- <109> DW_AT_name : (indirect string, offset: 0x120): __kernel_size_t
- <10d> DW_AT_decl_file : 5
- <10e> DW_AT_decl_line : 65
- <1><10f>: Abbrev Number: 3 (DW_TAG_typedef)
- <110> DW_AT_type : <0x11a>
- <114> DW_AT_name : (indirect string, offset: 0x10f): __kernel_ulong_t
- <118> DW_AT_decl_file : 5
- <119> DW_AT_decl_line : 24
- <1><11a>: Abbrev Number: 7 (DW_TAG_base_type)
- <11b> DW_AT_name : (indirect string, offset: 0xfd): long unsigned int
- <11f> DW_AT_encoding : 7 (unsigned)
- <120> DW_AT_byte_size : 4
- <1><121>: Abbrev Number: 3 (DW_TAG_typedef)
- <122> DW_AT_type : <0x12c>
- <126> DW_AT_name : (indirect string, offset: 0x14e): size_t
- <12a> DW_AT_decl_file : 6
- <12b> DW_AT_decl_line : 62
- <1><12c>: Abbrev Number: 7 (DW_TAG_base_type)
- <12d> DW_AT_name : (indirect string, offset: 0x141): unsigned int
- <131> DW_AT_encoding : 7 (unsigned)
- <132> DW_AT_byte_size : 4
- <1><133>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x121): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 7
+ <2a> DW_AT_decl_line : 34
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x24b): struct_msghdr
+ <3a> DW_AT_decl_file : 7
+ <3b> DW_AT_decl_line : 32
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x244): msghdr
+ <41> DW_AT_byte_size : 28
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 84
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16d): msg_name
+ <49> DW_AT_type : <0xa7>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 85
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x176): msg_namelen
+ <57> DW_AT_type : <0xa8>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 86
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x1ae): msg_iov
+ <65> DW_AT_type : <0xdb>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 87
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x200): msg_iovlen
+ <73> DW_AT_type : <0x122>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 88
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x21f): msg_control
+ <81> DW_AT_type : <0xa7>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 89
+ <87> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x22b): msg_controllen
+ <8f> DW_AT_type : <0x122>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 90
+ <95> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x23a): msg_flags
+ <9d> DW_AT_type : <0xd4>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 91
+ <a3> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><a6>: Abbrev Number: 0
+ <1><a7>: Abbrev Number: 6 (DW_TAG_pointer_type)
+ <1><a8>: Abbrev Number: 3 (DW_TAG_typedef)
+ <a9> DW_AT_type : <0xb3>
+ <ad> DW_AT_name : (indirect string, offset: 0x1a4): socklen_t
+ <b1> DW_AT_decl_file : 3
+ <b2> DW_AT_decl_line : 117
+ <1><b3>: Abbrev Number: 3 (DW_TAG_typedef)
+ <b4> DW_AT_type : <0xbe>
+ <b8> DW_AT_name : (indirect string, offset: 0x198): __socklen_t
+ <bc> DW_AT_decl_file : 3
+ <bd> DW_AT_decl_line : 112
+ <1><be>: Abbrev Number: 3 (DW_TAG_typedef)
+ <bf> DW_AT_type : <0xc9>
+ <c3> DW_AT_name : (indirect string, offset: 0x190): int32_t
+ <c7> DW_AT_decl_file : 2
+ <c8> DW_AT_decl_line : 64
+ <1><c9>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ca> DW_AT_type : <0xd4>
+ <ce> DW_AT_name : (indirect string, offset: 0x186): __int32_t
+ <d2> DW_AT_decl_file : 2
+ <d3> DW_AT_decl_line : 40
+ <1><d4>: Abbrev Number: 7 (DW_TAG_base_type)
+ <d5> DW_AT_name : (indirect string, offset: 0x182): int
+ <d9> DW_AT_encoding : 5 (signed)
+ <da> DW_AT_byte_size : 4
+ <1><db>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <dc> DW_AT_type : <0xe0>
+ <1><e0>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <e1> DW_AT_name : (indirect string, offset: 0x1fa): iovec
+ <e5> DW_AT_byte_size : 8
+ <e6> DW_AT_decl_file : 4
+ <e7> DW_AT_decl_line : 23
+ <2><e8>: Abbrev Number: 5 (DW_TAG_member)
+ <e9> DW_AT_name : (indirect string, offset: 0x1b6): iov_base
+ <ed> DW_AT_type : <0xa7>
+ <f1> DW_AT_decl_file : 4
+ <f2> DW_AT_decl_line : 24
+ <f3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><f6>: Abbrev Number: 5 (DW_TAG_member)
+ <f7> DW_AT_name : (indirect string, offset: 0x1bf): iov_len
+ <fb> DW_AT_type : <0x105>
+ <ff> DW_AT_decl_file : 4
+ <100> DW_AT_decl_line : 25
+ <101> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><104>: Abbrev Number: 0
+ <1><105>: Abbrev Number: 3 (DW_TAG_typedef)
+ <106> DW_AT_type : <0x110>
+ <10a> DW_AT_name : (indirect string, offset: 0x1ea): __kernel_size_t
+ <10e> DW_AT_decl_file : 5
+ <10f> DW_AT_decl_line : 65
+ <1><110>: Abbrev Number: 3 (DW_TAG_typedef)
+ <111> DW_AT_type : <0x11b>
+ <115> DW_AT_name : (indirect string, offset: 0x1d9): __kernel_ulong_t
+ <119> DW_AT_decl_file : 5
+ <11a> DW_AT_decl_line : 24
+ <1><11b>: Abbrev Number: 7 (DW_TAG_base_type)
+ <11c> DW_AT_name : (indirect string, offset: 0x1c7): long unsigned int
+ <120> DW_AT_encoding : 7 (unsigned)
+ <121> DW_AT_byte_size : 4
+ <1><122>: Abbrev Number: 3 (DW_TAG_typedef)
+ <123> DW_AT_type : <0x12d>
+ <127> DW_AT_name : (indirect string, offset: 0x218): size_t
+ <12b> DW_AT_decl_file : 6
+ <12c> DW_AT_decl_line : 62
+ <1><12d>: Abbrev Number: 7 (DW_TAG_base_type)
+ <12e> DW_AT_name : (indirect string, offset: 0x20b): unsigned int
+ <132> DW_AT_encoding : 7 (unsigned)
+ <133> DW_AT_byte_size : 4
+ <1><134>: Abbrev Number: 0
diff --git a/mpers-m32/struct_msghdr.d2 b/mpers-m32/struct_msghdr.d2
index b7009ec..4a18839 100644
--- a/mpers-m32/struct_msghdr.d2
+++ b/mpers-m32/struct_msghdr.d2
@@ -1,151 +1,151 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 7
DW_AT_decl_line : 34
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x181): struct_msghdr
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x24b): struct_msghdr
DW_AT_decl_file : 7
DW_AT_decl_line : 32
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x17a): msghdr
+DW_AT_name : (indirect string, offset: 0x244): msghdr
DW_AT_byte_size : 28
DW_AT_decl_file : 1
-DW_AT_decl_line : 86
-<2><43>
+DW_AT_decl_line : 84
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa3): msg_name
-DW_AT_type : <0xa6>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 87
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xac): msg_namelen
+DW_AT_name : (indirect string, offset: 0x16d): msg_name
DW_AT_type : <0xa7>
DW_AT_decl_file : 1
-DW_AT_decl_line : 88
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+DW_AT_decl_line : 85
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe4): msg_iov
-DW_AT_type : <0xda>
+DW_AT_name : (indirect string, offset: 0x176): msg_namelen
+DW_AT_type : <0xa8>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 86
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><60>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ae): msg_iov
+DW_AT_type : <0xdb>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 87
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><6e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x200): msg_iovlen
+DW_AT_type : <0x122>
+DW_AT_decl_file : 1
+DW_AT_decl_line : 88
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><7c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x21f): msg_control
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 89
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x136): msg_iovlen
-DW_AT_type : <0x121>
+DW_AT_name : (indirect string, offset: 0x22b): msg_controllen
+DW_AT_type : <0x122>
DW_AT_decl_file : 1
DW_AT_decl_line : 90
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x155): msg_control
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x23a): msg_flags
+DW_AT_type : <0xd4>
DW_AT_decl_file : 1
DW_AT_decl_line : 91
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><89>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x161): msg_controllen
-DW_AT_type : <0x121>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 92
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><97>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x170): msg_flags
-DW_AT_type : <0xd3>
-DW_AT_decl_file : 1
-DW_AT_decl_line : 93
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<1><a6>
-Abbrev Number: 6 (DW_TAG_pointer_type)
<1><a7>
+Abbrev Number: 6 (DW_TAG_pointer_type)
+<1><a8>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xb2>
-DW_AT_name : (indirect string, offset: 0xda): socklen_t
+DW_AT_type : <0xb3>
+DW_AT_name : (indirect string, offset: 0x1a4): socklen_t
DW_AT_decl_file : 3
-DW_AT_decl_line : 116
-<1><b2>
+DW_AT_decl_line : 117
+<1><b3>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xbd>
-DW_AT_name : (indirect string, offset: 0xce): __socklen_t
+DW_AT_type : <0xbe>
+DW_AT_name : (indirect string, offset: 0x198): __socklen_t
DW_AT_decl_file : 3
-DW_AT_decl_line : 111
-<1><bd>
+DW_AT_decl_line : 112
+<1><be>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xc8>
-DW_AT_name : (indirect string, offset: 0xc6): int32_t
+DW_AT_type : <0xc9>
+DW_AT_name : (indirect string, offset: 0x190): int32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 64
-<1><c8>
+<1><c9>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xd3>
-DW_AT_name : (indirect string, offset: 0xbc): __int32_t
+DW_AT_type : <0xd4>
+DW_AT_name : (indirect string, offset: 0x186): __int32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 40
-<1><d3>
+<1><d4>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb8): int
+DW_AT_name : (indirect string, offset: 0x182): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><da>
+<1><db>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0xdf>
-<1><df>
+DW_AT_type : <0xe0>
+<1><e0>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x130): iovec
+DW_AT_name : (indirect string, offset: 0x1fa): iovec
DW_AT_byte_size : 8
DW_AT_decl_file : 4
DW_AT_decl_line : 23
-<2><e7>
+<2><e8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xec): iov_base
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x1b6): iov_base
+DW_AT_type : <0xa7>
DW_AT_decl_file : 4
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><f5>
+<2><f6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf5): iov_len
-DW_AT_type : <0x104>
+DW_AT_name : (indirect string, offset: 0x1bf): iov_len
+DW_AT_type : <0x105>
DW_AT_decl_file : 4
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><104>
+<1><105>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x10f>
-DW_AT_name : (indirect string, offset: 0x120): __kernel_size_t
+DW_AT_type : <0x110>
+DW_AT_name : (indirect string, offset: 0x1ea): __kernel_size_t
DW_AT_decl_file : 5
DW_AT_decl_line : 65
-<1><10f>
+<1><110>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x11a>
-DW_AT_name : (indirect string, offset: 0x10f): __kernel_ulong_t
+DW_AT_type : <0x11b>
+DW_AT_name : (indirect string, offset: 0x1d9): __kernel_ulong_t
DW_AT_decl_file : 5
DW_AT_decl_line : 24
-<1><11a>
+<1><11b>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xfd): long unsigned int
+DW_AT_name : (indirect string, offset: 0x1c7): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><121>
+<1><122>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x12c>
-DW_AT_name : (indirect string, offset: 0x14e): size_t
+DW_AT_type : <0x12d>
+DW_AT_name : (indirect string, offset: 0x218): size_t
DW_AT_decl_file : 6
DW_AT_decl_line : 62
-<1><12c>
+<1><12d>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x141): unsigned int
+DW_AT_name : (indirect string, offset: 0x20b): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_mtd_oob_buf.d1 b/mpers-m32/struct_mtd_oob_buf.d1
index 4f8fac7..c8ec359 100644
--- a/mpers-m32/struct_mtd_oob_buf.d1
+++ b/mpers-m32/struct_mtd_oob_buf.d1
@@ -1,66 +1,67 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x89 (32-bit)
+ Length: 0x8a (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_mtd_oob_buf.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_mtd_oob_buf.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5c): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 40
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xe6): struct_mtd_oob_buf
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 36
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xda): mtd_oob_buf
- <40> DW_AT_byte_size : 12
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 30
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa8): start
- <48> DW_AT_type : <0x6e>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 31
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xc1): length
- <56> DW_AT_type : <0x6e>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 32
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xc8): ptr
- <64> DW_AT_type : <0x80>
- <68> DW_AT_decl_file : 2
- <69> DW_AT_decl_line : 33
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 0
- <1><6e>: Abbrev Number: 3 (DW_TAG_typedef)
- <6f> DW_AT_type : <0x79>
- <73> DW_AT_name : (indirect string, offset: 0xbb): __u32
- <77> DW_AT_decl_file : 1
- <78> DW_AT_decl_line : 28
- <1><79>: Abbrev Number: 6 (DW_TAG_base_type)
- <7a> DW_AT_name : (indirect string, offset: 0xae): unsigned int
- <7e> DW_AT_encoding : 7 (unsigned)
- <7f> DW_AT_byte_size : 4
- <1><80>: Abbrev Number: 7 (DW_TAG_pointer_type)
- <81> DW_AT_type : <0x85>
- <1><85>: Abbrev Number: 6 (DW_TAG_base_type)
- <86> DW_AT_name : (indirect string, offset: 0xcc): unsigned char
- <8a> DW_AT_encoding : 8 (unsigned char)
- <8b> DW_AT_byte_size : 1
- <1><8c>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x126): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 40
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1b0): struct_mtd_oob_buf
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 36
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1a4): mtd_oob_buf
+ <41> DW_AT_byte_size : 12
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 30
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x172): start
+ <49> DW_AT_type : <0x6f>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 31
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x18b): length
+ <57> DW_AT_type : <0x6f>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 32
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x192): ptr
+ <65> DW_AT_type : <0x81>
+ <69> DW_AT_decl_file : 2
+ <6a> DW_AT_decl_line : 33
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 0
+ <1><6f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <70> DW_AT_type : <0x7a>
+ <74> DW_AT_name : (indirect string, offset: 0x185): __u32
+ <78> DW_AT_decl_file : 1
+ <79> DW_AT_decl_line : 28
+ <1><7a>: Abbrev Number: 6 (DW_TAG_base_type)
+ <7b> DW_AT_name : (indirect string, offset: 0x178): unsigned int
+ <7f> DW_AT_encoding : 7 (unsigned)
+ <80> DW_AT_byte_size : 4
+ <1><81>: Abbrev Number: 7 (DW_TAG_pointer_type)
+ <82> DW_AT_type : <0x86>
+ <1><86>: Abbrev Number: 6 (DW_TAG_base_type)
+ <87> DW_AT_name : (indirect string, offset: 0x196): unsigned char
+ <8b> DW_AT_encoding : 8 (unsigned char)
+ <8c> DW_AT_byte_size : 1
+ <1><8d>: Abbrev Number: 0
diff --git a/mpers-m32/struct_mtd_oob_buf.d2 b/mpers-m32/struct_mtd_oob_buf.d2
index cd1b356..0d0c4a4 100644
--- a/mpers-m32/struct_mtd_oob_buf.d2
+++ b/mpers-m32/struct_mtd_oob_buf.d2
@@ -1,60 +1,60 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 40
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xe6): struct_mtd_oob_buf
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1b0): struct_mtd_oob_buf
DW_AT_decl_file : 3
DW_AT_decl_line : 36
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xda): mtd_oob_buf
+DW_AT_name : (indirect string, offset: 0x1a4): mtd_oob_buf
DW_AT_byte_size : 12
DW_AT_decl_file : 2
DW_AT_decl_line : 30
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa8): start
-DW_AT_type : <0x6e>
+DW_AT_name : (indirect string, offset: 0x172): start
+DW_AT_type : <0x6f>
DW_AT_decl_file : 2
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc1): length
-DW_AT_type : <0x6e>
+DW_AT_name : (indirect string, offset: 0x18b): length
+DW_AT_type : <0x6f>
DW_AT_decl_file : 2
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc8): ptr
-DW_AT_type : <0x80>
+DW_AT_name : (indirect string, offset: 0x192): ptr
+DW_AT_type : <0x81>
DW_AT_decl_file : 2
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><6e>
+<1><6f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x79>
-DW_AT_name : (indirect string, offset: 0xbb): __u32
+DW_AT_type : <0x7a>
+DW_AT_name : (indirect string, offset: 0x185): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><79>
+<1><7a>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xae): unsigned int
+DW_AT_name : (indirect string, offset: 0x178): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><80>
+<1><81>
Abbrev Number: 7 (DW_TAG_pointer_type)
-DW_AT_type : <0x85>
-<1><85>
+DW_AT_type : <0x86>
+<1><86>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xcc): unsigned char
+DW_AT_name : (indirect string, offset: 0x196): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
diff --git a/mpers-m32/struct_rt_sigframe.d1 b/mpers-m32/struct_rt_sigframe.d1
index 41b38a7..030bf97 100644
--- a/mpers-m32/struct_rt_sigframe.d1
+++ b/mpers-m32/struct_rt_sigframe.d1
@@ -1,657 +1,707 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x55d (32-bit)
+ Length: 0x5b4 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_rt_sigframe.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_rt_sigframe.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5c): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 10
- <29> DW_AT_decl_line : 33
- <2a> DW_AT_location : 5 byte block: 3 10 0 0 0 (DW_OP_addr: 10)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x3a4): struct_rt_sigframe
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 39
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_byte_size : 5184
- <3e> DW_AT_decl_file : 4
- <3f> DW_AT_decl_line : 35
- <2><40>: Abbrev Number: 5 (DW_TAG_member)
- <41> DW_AT_name : (indirect string, offset: 0xa8): info
- <45> DW_AT_type : <0x5e>
- <49> DW_AT_decl_file : 4
- <4a> DW_AT_decl_line : 36
- <4b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4e>: Abbrev Number: 5 (DW_TAG_member)
- <4f> DW_AT_name : (indirect string, offset: 0x25c): uc
- <53> DW_AT_type : <0x379>
- <57> DW_AT_decl_file : 4
- <58> DW_AT_decl_line : 37
- <59> DW_AT_data_member_location: 3 byte block: 23 80 1 (DW_OP_plus_uconst: 128)
- <2><5d>: Abbrev Number: 0
- <1><5e>: Abbrev Number: 3 (DW_TAG_typedef)
- <5f> DW_AT_type : <0x69>
- <63> DW_AT_name : (indirect string, offset: 0x252): siginfo_t
- <67> DW_AT_decl_file : 1
- <68> DW_AT_decl_line : 100
- <1><69>: Abbrev Number: 6 (DW_TAG_structure_type)
- <6a> DW_AT_name : (indirect string, offset: 0x24a): siginfo
- <6e> DW_AT_byte_size : 124
- <6f> DW_AT_decl_file : 1
- <70> DW_AT_decl_line : 47
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0xad): si_signo
- <76> DW_AT_type : <0x2c2>
- <7a> DW_AT_decl_file : 1
- <7b> DW_AT_decl_line : 48
- <7c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><7f>: Abbrev Number: 5 (DW_TAG_member)
- <80> DW_AT_name : (indirect string, offset: 0xba): si_errno
- <84> DW_AT_type : <0x2c2>
- <88> DW_AT_decl_file : 1
- <89> DW_AT_decl_line : 49
- <8a> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><8d>: Abbrev Number: 5 (DW_TAG_member)
- <8e> DW_AT_name : (indirect string, offset: 0xc3): si_code
- <92> DW_AT_type : <0x2c2>
- <96> DW_AT_decl_file : 1
- <97> DW_AT_decl_line : 50
- <98> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><9b>: Abbrev Number: 5 (DW_TAG_member)
- <9c> DW_AT_name : (indirect string, offset: 0xcb): _sifields
- <a0> DW_AT_type : <0xa9>
- <a4> DW_AT_decl_file : 1
- <a5> DW_AT_decl_line : 99
- <a6> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><a9>: Abbrev Number: 7 (DW_TAG_union_type)
- <aa> DW_AT_byte_size : 112
- <ab> DW_AT_decl_file : 1
- <ac> DW_AT_decl_line : 51
- <3><ad>: Abbrev Number: 5 (DW_TAG_member)
- <ae> DW_AT_name : (indirect string, offset: 0xd5): _pad
- <b2> DW_AT_type : <0x2c9>
- <b6> DW_AT_decl_file : 1
- <b7> DW_AT_decl_line : 52
- <b8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><bb>: Abbrev Number: 5 (DW_TAG_member)
- <bc> DW_AT_name : (indirect string, offset: 0xe3): _kill
- <c0> DW_AT_type : <0xc9>
- <c4> DW_AT_decl_file : 1
- <c5> DW_AT_decl_line : 56
- <c6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><c9>: Abbrev Number: 8 (DW_TAG_structure_type)
- <ca> DW_AT_byte_size : 8
- <cb> DW_AT_decl_file : 1
- <cc> DW_AT_decl_line : 53
- <4><cd>: Abbrev Number: 5 (DW_TAG_member)
- <ce> DW_AT_name : (indirect string, offset: 0xe9): _pid
- <d2> DW_AT_type : <0x2dd>
- <d6> DW_AT_decl_file : 1
- <d7> DW_AT_decl_line : 54
- <d8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><db>: Abbrev Number: 5 (DW_TAG_member)
- <dc> DW_AT_name : (indirect string, offset: 0xfd): _uid
- <e0> DW_AT_type : <0x2e8>
- <e4> DW_AT_decl_file : 1
- <e5> DW_AT_decl_line : 55
- <e6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><e9>: Abbrev Number: 0
- <3><ea>: Abbrev Number: 5 (DW_TAG_member)
- <eb> DW_AT_name : (indirect string, offset: 0x120): _timer
- <ef> DW_AT_type : <0xf8>
- <f3> DW_AT_decl_file : 1
- <f4> DW_AT_decl_line : 63
- <f5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><f8>: Abbrev Number: 8 (DW_TAG_structure_type)
- <f9> DW_AT_byte_size : 16
- <fa> DW_AT_decl_file : 1
- <fb> DW_AT_decl_line : 57
- <4><fc>: Abbrev Number: 5 (DW_TAG_member)
- <fd> DW_AT_name : (indirect string, offset: 0x127): _tid
- <101> DW_AT_type : <0x2fa>
- <105> DW_AT_decl_file : 1
- <106> DW_AT_decl_line : 58
- <107> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><10a>: Abbrev Number: 5 (DW_TAG_member)
- <10b> DW_AT_name : (indirect string, offset: 0x13d): _overrun
- <10f> DW_AT_type : <0x2c2>
- <113> DW_AT_decl_file : 1
- <114> DW_AT_decl_line : 59
- <115> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><118>: Abbrev Number: 5 (DW_TAG_member)
- <119> DW_AT_name : (indirect string, offset: 0xd5): _pad
- <11d> DW_AT_type : <0x305>
- <121> DW_AT_decl_file : 1
- <122> DW_AT_decl_line : 60
- <123> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><126>: Abbrev Number: 5 (DW_TAG_member)
- <127> DW_AT_name : (indirect string, offset: 0x14b): _sigval
- <12b> DW_AT_type : <0x319>
- <12f> DW_AT_decl_file : 1
- <130> DW_AT_decl_line : 61
- <131> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><134>: Abbrev Number: 5 (DW_TAG_member)
- <135> DW_AT_name : (indirect string, offset: 0x177): _sys_private
- <139> DW_AT_type : <0x2c2>
- <13d> DW_AT_decl_file : 1
- <13e> DW_AT_decl_line : 62
- <13f> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <4><142>: Abbrev Number: 0
- <3><143>: Abbrev Number: 5 (DW_TAG_member)
- <144> DW_AT_name : (indirect string, offset: 0x184): _rt
- <148> DW_AT_type : <0x151>
- <14c> DW_AT_decl_file : 1
- <14d> DW_AT_decl_line : 68
- <14e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><151>: Abbrev Number: 8 (DW_TAG_structure_type)
- <152> DW_AT_byte_size : 12
- <153> DW_AT_decl_file : 1
- <154> DW_AT_decl_line : 64
- <4><155>: Abbrev Number: 5 (DW_TAG_member)
- <156> DW_AT_name : (indirect string, offset: 0xe9): _pid
- <15a> DW_AT_type : <0x2dd>
- <15e> DW_AT_decl_file : 1
- <15f> DW_AT_decl_line : 65
- <160> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><163>: Abbrev Number: 5 (DW_TAG_member)
- <164> DW_AT_name : (indirect string, offset: 0xfd): _uid
- <168> DW_AT_type : <0x2e8>
- <16c> DW_AT_decl_file : 1
- <16d> DW_AT_decl_line : 66
- <16e> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><171>: Abbrev Number: 5 (DW_TAG_member)
- <172> DW_AT_name : (indirect string, offset: 0x14b): _sigval
- <176> DW_AT_type : <0x319>
- <17a> DW_AT_decl_file : 1
- <17b> DW_AT_decl_line : 67
- <17c> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><17f>: Abbrev Number: 0
- <3><180>: Abbrev Number: 5 (DW_TAG_member)
- <181> DW_AT_name : (indirect string, offset: 0x188): _sigchld
- <185> DW_AT_type : <0x18e>
- <189> DW_AT_decl_file : 1
- <18a> DW_AT_decl_line : 75
- <18b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><18e>: Abbrev Number: 8 (DW_TAG_structure_type)
- <18f> DW_AT_byte_size : 20
- <190> DW_AT_decl_file : 1
- <191> DW_AT_decl_line : 69
- <4><192>: Abbrev Number: 5 (DW_TAG_member)
- <193> DW_AT_name : (indirect string, offset: 0xe9): _pid
- <197> DW_AT_type : <0x2dd>
- <19b> DW_AT_decl_file : 1
- <19c> DW_AT_decl_line : 70
- <19d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><1a0>: Abbrev Number: 5 (DW_TAG_member)
- <1a1> DW_AT_name : (indirect string, offset: 0xfd): _uid
- <1a5> DW_AT_type : <0x2e8>
- <1a9> DW_AT_decl_file : 1
- <1aa> DW_AT_decl_line : 71
- <1ab> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><1ae>: Abbrev Number: 5 (DW_TAG_member)
- <1af> DW_AT_name : (indirect string, offset: 0x191): _status
- <1b3> DW_AT_type : <0x2c2>
- <1b7> DW_AT_decl_file : 1
- <1b8> DW_AT_decl_line : 72
- <1b9> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><1bc>: Abbrev Number: 5 (DW_TAG_member)
- <1bd> DW_AT_name : (indirect string, offset: 0x199): _utime
- <1c1> DW_AT_type : <0x34a>
- <1c5> DW_AT_decl_file : 1
- <1c6> DW_AT_decl_line : 73
- <1c7> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <4><1ca>: Abbrev Number: 5 (DW_TAG_member)
- <1cb> DW_AT_name : (indirect string, offset: 0x1ca): _stime
- <1cf> DW_AT_type : <0x34a>
- <1d3> DW_AT_decl_file : 1
- <1d4> DW_AT_decl_line : 74
- <1d5> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <4><1d8>: Abbrev Number: 0
- <3><1d9>: Abbrev Number: 5 (DW_TAG_member)
- <1da> DW_AT_name : (indirect string, offset: 0x1d1): _sigfault
- <1de> DW_AT_type : <0x1e7>
- <1e2> DW_AT_decl_file : 1
- <1e3> DW_AT_decl_line : 89
- <1e4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><1e7>: Abbrev Number: 8 (DW_TAG_structure_type)
- <1e8> DW_AT_byte_size : 16
- <1e9> DW_AT_decl_file : 1
- <1ea> DW_AT_decl_line : 76
- <4><1eb>: Abbrev Number: 5 (DW_TAG_member)
- <1ec> DW_AT_name : (indirect string, offset: 0x1db): _addr
- <1f0> DW_AT_type : <0x349>
- <1f4> DW_AT_decl_file : 1
- <1f5> DW_AT_decl_line : 77
- <1f6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><1f9>: Abbrev Number: 5 (DW_TAG_member)
- <1fa> DW_AT_name : (indirect string, offset: 0x1e1): _addr_lsb
- <1fe> DW_AT_type : <0x367>
- <202> DW_AT_decl_file : 1
- <203> DW_AT_decl_line : 81
- <204> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><207>: Abbrev Number: 9 (DW_TAG_member)
- <208> DW_AT_type : <0x211>
- <20c> DW_AT_decl_file : 1
- <20d> DW_AT_decl_line : 82
- <20e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><211>: Abbrev Number: 7 (DW_TAG_union_type)
- <212> DW_AT_byte_size : 8
- <213> DW_AT_decl_file : 1
- <214> DW_AT_decl_line : 82
- <5><215>: Abbrev Number: 5 (DW_TAG_member)
- <216> DW_AT_name : (indirect string, offset: 0x1f1): _addr_bnd
- <21a> DW_AT_type : <0x223>
- <21e> DW_AT_decl_file : 1
- <21f> DW_AT_decl_line : 86
- <220> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <5><223>: Abbrev Number: 8 (DW_TAG_structure_type)
- <224> DW_AT_byte_size : 8
- <225> DW_AT_decl_file : 1
- <226> DW_AT_decl_line : 83
- <6><227>: Abbrev Number: 5 (DW_TAG_member)
- <228> DW_AT_name : (indirect string, offset: 0x1fb): _lower
- <22c> DW_AT_type : <0x349>
- <230> DW_AT_decl_file : 1
- <231> DW_AT_decl_line : 84
- <232> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <6><235>: Abbrev Number: 5 (DW_TAG_member)
- <236> DW_AT_name : (indirect string, offset: 0x202): _upper
- <23a> DW_AT_type : <0x349>
- <23e> DW_AT_decl_file : 1
- <23f> DW_AT_decl_line : 85
- <240> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <6><243>: Abbrev Number: 0
- <5><244>: Abbrev Number: 5 (DW_TAG_member)
- <245> DW_AT_name : (indirect string, offset: 0x209): _pkey
- <249> DW_AT_type : <0x36e>
- <24d> DW_AT_decl_file : 1
- <24e> DW_AT_decl_line : 87
- <24f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <5><252>: Abbrev Number: 0
- <4><253>: Abbrev Number: 0
- <3><254>: Abbrev Number: 5 (DW_TAG_member)
- <255> DW_AT_name : (indirect string, offset: 0x215): _sigpoll
- <259> DW_AT_type : <0x262>
- <25d> DW_AT_decl_file : 1
- <25e> DW_AT_decl_line : 93
- <25f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><262>: Abbrev Number: 8 (DW_TAG_structure_type)
- <263> DW_AT_byte_size : 8
- <264> DW_AT_decl_file : 1
- <265> DW_AT_decl_line : 90
- <4><266>: Abbrev Number: 5 (DW_TAG_member)
- <267> DW_AT_name : (indirect string, offset: 0x21e): _band
- <26b> DW_AT_type : <0x360>
- <26f> DW_AT_decl_file : 1
- <270> DW_AT_decl_line : 91
- <271> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><274>: Abbrev Number: 5 (DW_TAG_member)
- <275> DW_AT_name : (indirect string, offset: 0x224): _fd
- <279> DW_AT_type : <0x2c2>
- <27d> DW_AT_decl_file : 1
- <27e> DW_AT_decl_line : 92
- <27f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><282>: Abbrev Number: 0
- <3><283>: Abbrev Number: 5 (DW_TAG_member)
- <284> DW_AT_name : (indirect string, offset: 0x228): _sigsys
- <288> DW_AT_type : <0x291>
- <28c> DW_AT_decl_file : 1
- <28d> DW_AT_decl_line : 98
- <28e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><291>: Abbrev Number: 8 (DW_TAG_structure_type)
- <292> DW_AT_byte_size : 12
- <293> DW_AT_decl_file : 1
- <294> DW_AT_decl_line : 94
- <4><295>: Abbrev Number: 5 (DW_TAG_member)
- <296> DW_AT_name : (indirect string, offset: 0x230): _call_addr
- <29a> DW_AT_type : <0x349>
- <29e> DW_AT_decl_file : 1
- <29f> DW_AT_decl_line : 95
- <2a0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><2a3>: Abbrev Number: 5 (DW_TAG_member)
- <2a4> DW_AT_name : (indirect string, offset: 0x23b): _syscall
- <2a8> DW_AT_type : <0x2c2>
- <2ac> DW_AT_decl_file : 1
- <2ad> DW_AT_decl_line : 96
- <2ae> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><2b1>: Abbrev Number: 5 (DW_TAG_member)
- <2b2> DW_AT_name : (indirect string, offset: 0x244): _arch
- <2b6> DW_AT_type : <0x2f3>
- <2ba> DW_AT_decl_file : 1
- <2bb> DW_AT_decl_line : 97
- <2bc> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <4><2bf>: Abbrev Number: 0
- <3><2c0>: Abbrev Number: 0
- <2><2c1>: Abbrev Number: 0
- <1><2c2>: Abbrev Number: 10 (DW_TAG_base_type)
- <2c3> DW_AT_name : (indirect string, offset: 0xb6): int
- <2c7> DW_AT_encoding : 5 (signed)
- <2c8> DW_AT_byte_size : 4
- <1><2c9>: Abbrev Number: 11 (DW_TAG_array_type)
- <2ca> DW_AT_type : <0x2c2>
- <2><2ce>: Abbrev Number: 12 (DW_TAG_subrange_type)
- <2cf> DW_AT_type : <0x2d6>
- <2d3> DW_AT_lower_bound : 0
- <2d4> DW_AT_count : 28
- <2><2d5>: Abbrev Number: 0
- <1><2d6>: Abbrev Number: 13 (DW_TAG_base_type)
- <2d7> DW_AT_name : (indirect string, offset: 0xda): sizetype
- <2db> DW_AT_byte_size : 8
- <2dc> DW_AT_encoding : 7 (unsigned)
- <1><2dd>: Abbrev Number: 3 (DW_TAG_typedef)
- <2de> DW_AT_type : <0x2c2>
- <2e2> DW_AT_name : (indirect string, offset: 0xee): __kernel_pid_t
- <2e6> DW_AT_decl_file : 2
- <2e7> DW_AT_decl_line : 33
- <1><2e8>: Abbrev Number: 3 (DW_TAG_typedef)
- <2e9> DW_AT_type : <0x2f3>
- <2ed> DW_AT_name : (indirect string, offset: 0x10f): __kernel_uid32_t
- <2f1> DW_AT_decl_file : 2
- <2f2> DW_AT_decl_line : 49
- <1><2f3>: Abbrev Number: 10 (DW_TAG_base_type)
- <2f4> DW_AT_name : (indirect string, offset: 0x102): unsigned int
- <2f8> DW_AT_encoding : 7 (unsigned)
- <2f9> DW_AT_byte_size : 4
- <1><2fa>: Abbrev Number: 3 (DW_TAG_typedef)
- <2fb> DW_AT_type : <0x2c2>
- <2ff> DW_AT_name : (indirect string, offset: 0x12c): __kernel_timer_t
- <303> DW_AT_decl_file : 2
- <304> DW_AT_decl_line : 79
- <1><305>: Abbrev Number: 11 (DW_TAG_array_type)
- <306> DW_AT_type : <0x312>
- <2><30a>: Abbrev Number: 12 (DW_TAG_subrange_type)
- <30b> DW_AT_type : <0x2d6>
- <30f> DW_AT_lower_bound : 0
- <310> DW_AT_count : 0
- <2><311>: Abbrev Number: 0
- <1><312>: Abbrev Number: 10 (DW_TAG_base_type)
- <313> DW_AT_name : (indirect string, offset: 0x146): char
- <317> DW_AT_encoding : 8 (unsigned char)
- <318> DW_AT_byte_size : 1
- <1><319>: Abbrev Number: 3 (DW_TAG_typedef)
- <31a> DW_AT_type : <0x324>
- <31e> DW_AT_name : (indirect string, offset: 0x16e): sigval_t
- <322> DW_AT_decl_file : 1
- <323> DW_AT_decl_line : 26
- <1><324>: Abbrev Number: 14 (DW_TAG_union_type)
- <325> DW_AT_name : (indirect string, offset: 0x167): sigval
- <329> DW_AT_byte_size : 4
- <32a> DW_AT_decl_file : 1
- <32b> DW_AT_decl_line : 23
- <2><32c>: Abbrev Number: 5 (DW_TAG_member)
- <32d> DW_AT_name : (indirect string, offset: 0x153): sival_int
- <331> DW_AT_type : <0x2c2>
- <335> DW_AT_decl_file : 1
- <336> DW_AT_decl_line : 24
- <337> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><33a>: Abbrev Number: 5 (DW_TAG_member)
- <33b> DW_AT_name : (indirect string, offset: 0x15d): sival_ptr
- <33f> DW_AT_type : <0x349>
- <343> DW_AT_decl_file : 1
- <344> DW_AT_decl_line : 25
- <345> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><348>: Abbrev Number: 0
- <1><349>: Abbrev Number: 15 (DW_TAG_pointer_type)
- <1><34a>: Abbrev Number: 3 (DW_TAG_typedef)
- <34b> DW_AT_type : <0x355>
- <34f> DW_AT_name : (indirect string, offset: 0x1b9): __kernel_clock_t
- <353> DW_AT_decl_file : 2
- <354> DW_AT_decl_line : 78
- <1><355>: Abbrev Number: 3 (DW_TAG_typedef)
- <356> DW_AT_type : <0x360>
- <35a> DW_AT_name : (indirect string, offset: 0x1a9): __kernel_long_t
- <35e> DW_AT_decl_file : 2
- <35f> DW_AT_decl_line : 23
- <1><360>: Abbrev Number: 10 (DW_TAG_base_type)
- <361> DW_AT_name : (indirect string, offset: 0x1a0): long int
- <365> DW_AT_encoding : 5 (signed)
- <366> DW_AT_byte_size : 4
- <1><367>: Abbrev Number: 10 (DW_TAG_base_type)
- <368> DW_AT_name : (indirect string, offset: 0x1eb): short
- <36c> DW_AT_encoding : 5 (signed)
- <36d> DW_AT_byte_size : 2
- <1><36e>: Abbrev Number: 3 (DW_TAG_typedef)
- <36f> DW_AT_type : <0x2f3>
- <373> DW_AT_name : (indirect string, offset: 0x20f): __u32
- <377> DW_AT_decl_file : 3
- <378> DW_AT_decl_line : 28
- <1><379>: Abbrev Number: 3 (DW_TAG_typedef)
- <37a> DW_AT_type : <0x384>
- <37e> DW_AT_name : (indirect string, offset: 0x399): ucontext_t
- <382> DW_AT_decl_file : 5
- <383> DW_AT_decl_line : 96
- <1><384>: Abbrev Number: 16 (DW_TAG_structure_type)
- <385> DW_AT_name : (indirect string, offset: 0x390): ucontext
- <389> DW_AT_byte_size : 5056
- <38b> DW_AT_decl_file : 5
- <38c> DW_AT_decl_line : 85
- <2><38d>: Abbrev Number: 5 (DW_TAG_member)
- <38e> DW_AT_name : (indirect string, offset: 0x25f): uc_flags
- <392> DW_AT_type : <0x403>
- <396> DW_AT_decl_file : 5
- <397> DW_AT_decl_line : 86
- <398> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><39b>: Abbrev Number: 5 (DW_TAG_member)
- <39c> DW_AT_name : (indirect string, offset: 0x27a): uc_link
- <3a0> DW_AT_type : <0x40a>
- <3a4> DW_AT_decl_file : 5
- <3a5> DW_AT_decl_line : 87
- <3a6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><3a9>: Abbrev Number: 5 (DW_TAG_member)
- <3aa> DW_AT_name : (indirect string, offset: 0x282): uc_stack
- <3ae> DW_AT_type : <0x40f>
- <3b2> DW_AT_decl_file : 5
- <3b3> DW_AT_decl_line : 88
- <3b4> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><3b7>: Abbrev Number: 5 (DW_TAG_member)
- <3b8> DW_AT_name : (indirect string, offset: 0x2bd): uc_mcontext
- <3bc> DW_AT_type : <0x458>
- <3c0> DW_AT_decl_file : 5
- <3c1> DW_AT_decl_line : 89
- <3c2> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><3c5>: Abbrev Number: 5 (DW_TAG_member)
- <3c6> DW_AT_name : (indirect string, offset: 0x33a): uc_sigmask
- <3ca> DW_AT_type : <0x505>
- <3ce> DW_AT_decl_file : 5
- <3cf> DW_AT_decl_line : 90
- <3d0> DW_AT_data_member_location: 3 byte block: 23 c0 22 (DW_OP_plus_uconst: 4416)
- <2><3d4>: Abbrev Number: 5 (DW_TAG_member)
- <3d5> DW_AT_name : (indirect string, offset: 0x352): __padding_rt_sigset
- <3d9> DW_AT_type : <0x530>
- <3dd> DW_AT_decl_file : 5
- <3de> DW_AT_decl_line : 92
- <3df> DW_AT_data_member_location: 3 byte block: 23 c4 22 (DW_OP_plus_uconst: 4420)
- <2><3e3>: Abbrev Number: 5 (DW_TAG_member)
- <3e4> DW_AT_name : (indirect string, offset: 0x37a): __padding
- <3e8> DW_AT_type : <0x546>
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x126): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 11
+ <2a> DW_AT_decl_line : 33
+ <2b> DW_AT_location : 5 byte block: 3 10 0 0 0 (DW_OP_addr: 10)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x48d): struct_rt_sigframe
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 39
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_byte_size : 5184
+ <3f> DW_AT_decl_file : 4
+ <40> DW_AT_decl_line : 35
+ <2><41>: Abbrev Number: 5 (DW_TAG_member)
+ <42> DW_AT_name : (indirect string, offset: 0x172): info
+ <46> DW_AT_type : <0x5f>
+ <4a> DW_AT_decl_file : 4
+ <4b> DW_AT_decl_line : 36
+ <4c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4f>: Abbrev Number: 5 (DW_TAG_member)
+ <50> DW_AT_name : (indirect string, offset: 0x326): uc
+ <54> DW_AT_type : <0x37a>
+ <58> DW_AT_decl_file : 4
+ <59> DW_AT_decl_line : 37
+ <5a> DW_AT_data_member_location: 3 byte block: 23 80 1 (DW_OP_plus_uconst: 128)
+ <2><5e>: Abbrev Number: 0
+ <1><5f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <60> DW_AT_type : <0x6a>
+ <64> DW_AT_name : (indirect string, offset: 0x31c): siginfo_t
+ <68> DW_AT_decl_file : 1
+ <69> DW_AT_decl_line : 100
+ <1><6a>: Abbrev Number: 6 (DW_TAG_structure_type)
+ <6b> DW_AT_name : (indirect string, offset: 0x314): siginfo
+ <6f> DW_AT_byte_size : 124
+ <70> DW_AT_decl_file : 1
+ <71> DW_AT_decl_line : 47
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x177): si_signo
+ <77> DW_AT_type : <0x2c3>
+ <7b> DW_AT_decl_file : 1
+ <7c> DW_AT_decl_line : 48
+ <7d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><80>: Abbrev Number: 5 (DW_TAG_member)
+ <81> DW_AT_name : (indirect string, offset: 0x184): si_errno
+ <85> DW_AT_type : <0x2c3>
+ <89> DW_AT_decl_file : 1
+ <8a> DW_AT_decl_line : 49
+ <8b> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><8e>: Abbrev Number: 5 (DW_TAG_member)
+ <8f> DW_AT_name : (indirect string, offset: 0x18d): si_code
+ <93> DW_AT_type : <0x2c3>
+ <97> DW_AT_decl_file : 1
+ <98> DW_AT_decl_line : 50
+ <99> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><9c>: Abbrev Number: 5 (DW_TAG_member)
+ <9d> DW_AT_name : (indirect string, offset: 0x195): _sifields
+ <a1> DW_AT_type : <0xaa>
+ <a5> DW_AT_decl_file : 1
+ <a6> DW_AT_decl_line : 99
+ <a7> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><aa>: Abbrev Number: 7 (DW_TAG_union_type)
+ <ab> DW_AT_byte_size : 112
+ <ac> DW_AT_decl_file : 1
+ <ad> DW_AT_decl_line : 51
+ <3><ae>: Abbrev Number: 5 (DW_TAG_member)
+ <af> DW_AT_name : (indirect string, offset: 0x19f): _pad
+ <b3> DW_AT_type : <0x2ca>
+ <b7> DW_AT_decl_file : 1
+ <b8> DW_AT_decl_line : 52
+ <b9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><bc>: Abbrev Number: 5 (DW_TAG_member)
+ <bd> DW_AT_name : (indirect string, offset: 0x1ad): _kill
+ <c1> DW_AT_type : <0xca>
+ <c5> DW_AT_decl_file : 1
+ <c6> DW_AT_decl_line : 56
+ <c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><ca>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <cb> DW_AT_byte_size : 8
+ <cc> DW_AT_decl_file : 1
+ <cd> DW_AT_decl_line : 53
+ <4><ce>: Abbrev Number: 5 (DW_TAG_member)
+ <cf> DW_AT_name : (indirect string, offset: 0x1b3): _pid
+ <d3> DW_AT_type : <0x2de>
+ <d7> DW_AT_decl_file : 1
+ <d8> DW_AT_decl_line : 54
+ <d9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><dc>: Abbrev Number: 5 (DW_TAG_member)
+ <dd> DW_AT_name : (indirect string, offset: 0x1c7): _uid
+ <e1> DW_AT_type : <0x2e9>
+ <e5> DW_AT_decl_file : 1
+ <e6> DW_AT_decl_line : 55
+ <e7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><ea>: Abbrev Number: 0
+ <3><eb>: Abbrev Number: 5 (DW_TAG_member)
+ <ec> DW_AT_name : (indirect string, offset: 0x1ea): _timer
+ <f0> DW_AT_type : <0xf9>
+ <f4> DW_AT_decl_file : 1
+ <f5> DW_AT_decl_line : 63
+ <f6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><f9>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <fa> DW_AT_byte_size : 16
+ <fb> DW_AT_decl_file : 1
+ <fc> DW_AT_decl_line : 57
+ <4><fd>: Abbrev Number: 5 (DW_TAG_member)
+ <fe> DW_AT_name : (indirect string, offset: 0x1f1): _tid
+ <102> DW_AT_type : <0x2fb>
+ <106> DW_AT_decl_file : 1
+ <107> DW_AT_decl_line : 58
+ <108> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><10b>: Abbrev Number: 5 (DW_TAG_member)
+ <10c> DW_AT_name : (indirect string, offset: 0x207): _overrun
+ <110> DW_AT_type : <0x2c3>
+ <114> DW_AT_decl_file : 1
+ <115> DW_AT_decl_line : 59
+ <116> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><119>: Abbrev Number: 5 (DW_TAG_member)
+ <11a> DW_AT_name : (indirect string, offset: 0x19f): _pad
+ <11e> DW_AT_type : <0x306>
+ <122> DW_AT_decl_file : 1
+ <123> DW_AT_decl_line : 60
+ <124> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><127>: Abbrev Number: 5 (DW_TAG_member)
+ <128> DW_AT_name : (indirect string, offset: 0x215): _sigval
+ <12c> DW_AT_type : <0x31a>
+ <130> DW_AT_decl_file : 1
+ <131> DW_AT_decl_line : 61
+ <132> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><135>: Abbrev Number: 5 (DW_TAG_member)
+ <136> DW_AT_name : (indirect string, offset: 0x241): _sys_private
+ <13a> DW_AT_type : <0x2c3>
+ <13e> DW_AT_decl_file : 1
+ <13f> DW_AT_decl_line : 62
+ <140> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <4><143>: Abbrev Number: 0
+ <3><144>: Abbrev Number: 5 (DW_TAG_member)
+ <145> DW_AT_name : (indirect string, offset: 0x24e): _rt
+ <149> DW_AT_type : <0x152>
+ <14d> DW_AT_decl_file : 1
+ <14e> DW_AT_decl_line : 68
+ <14f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><152>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <153> DW_AT_byte_size : 12
+ <154> DW_AT_decl_file : 1
+ <155> DW_AT_decl_line : 64
+ <4><156>: Abbrev Number: 5 (DW_TAG_member)
+ <157> DW_AT_name : (indirect string, offset: 0x1b3): _pid
+ <15b> DW_AT_type : <0x2de>
+ <15f> DW_AT_decl_file : 1
+ <160> DW_AT_decl_line : 65
+ <161> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><164>: Abbrev Number: 5 (DW_TAG_member)
+ <165> DW_AT_name : (indirect string, offset: 0x1c7): _uid
+ <169> DW_AT_type : <0x2e9>
+ <16d> DW_AT_decl_file : 1
+ <16e> DW_AT_decl_line : 66
+ <16f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><172>: Abbrev Number: 5 (DW_TAG_member)
+ <173> DW_AT_name : (indirect string, offset: 0x215): _sigval
+ <177> DW_AT_type : <0x31a>
+ <17b> DW_AT_decl_file : 1
+ <17c> DW_AT_decl_line : 67
+ <17d> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><180>: Abbrev Number: 0
+ <3><181>: Abbrev Number: 5 (DW_TAG_member)
+ <182> DW_AT_name : (indirect string, offset: 0x252): _sigchld
+ <186> DW_AT_type : <0x18f>
+ <18a> DW_AT_decl_file : 1
+ <18b> DW_AT_decl_line : 75
+ <18c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><18f>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <190> DW_AT_byte_size : 20
+ <191> DW_AT_decl_file : 1
+ <192> DW_AT_decl_line : 69
+ <4><193>: Abbrev Number: 5 (DW_TAG_member)
+ <194> DW_AT_name : (indirect string, offset: 0x1b3): _pid
+ <198> DW_AT_type : <0x2de>
+ <19c> DW_AT_decl_file : 1
+ <19d> DW_AT_decl_line : 70
+ <19e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><1a1>: Abbrev Number: 5 (DW_TAG_member)
+ <1a2> DW_AT_name : (indirect string, offset: 0x1c7): _uid
+ <1a6> DW_AT_type : <0x2e9>
+ <1aa> DW_AT_decl_file : 1
+ <1ab> DW_AT_decl_line : 71
+ <1ac> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><1af>: Abbrev Number: 5 (DW_TAG_member)
+ <1b0> DW_AT_name : (indirect string, offset: 0x25b): _status
+ <1b4> DW_AT_type : <0x2c3>
+ <1b8> DW_AT_decl_file : 1
+ <1b9> DW_AT_decl_line : 72
+ <1ba> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><1bd>: Abbrev Number: 5 (DW_TAG_member)
+ <1be> DW_AT_name : (indirect string, offset: 0x263): _utime
+ <1c2> DW_AT_type : <0x34b>
+ <1c6> DW_AT_decl_file : 1
+ <1c7> DW_AT_decl_line : 73
+ <1c8> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <4><1cb>: Abbrev Number: 5 (DW_TAG_member)
+ <1cc> DW_AT_name : (indirect string, offset: 0x294): _stime
+ <1d0> DW_AT_type : <0x34b>
+ <1d4> DW_AT_decl_file : 1
+ <1d5> DW_AT_decl_line : 74
+ <1d6> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <4><1d9>: Abbrev Number: 0
+ <3><1da>: Abbrev Number: 5 (DW_TAG_member)
+ <1db> DW_AT_name : (indirect string, offset: 0x29b): _sigfault
+ <1df> DW_AT_type : <0x1e8>
+ <1e3> DW_AT_decl_file : 1
+ <1e4> DW_AT_decl_line : 89
+ <1e5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><1e8>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <1e9> DW_AT_byte_size : 16
+ <1ea> DW_AT_decl_file : 1
+ <1eb> DW_AT_decl_line : 76
+ <4><1ec>: Abbrev Number: 5 (DW_TAG_member)
+ <1ed> DW_AT_name : (indirect string, offset: 0x2a5): _addr
+ <1f1> DW_AT_type : <0x34a>
+ <1f5> DW_AT_decl_file : 1
+ <1f6> DW_AT_decl_line : 77
+ <1f7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><1fa>: Abbrev Number: 5 (DW_TAG_member)
+ <1fb> DW_AT_name : (indirect string, offset: 0x2ab): _addr_lsb
+ <1ff> DW_AT_type : <0x368>
+ <203> DW_AT_decl_file : 1
+ <204> DW_AT_decl_line : 81
+ <205> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><208>: Abbrev Number: 9 (DW_TAG_member)
+ <209> DW_AT_type : <0x212>
+ <20d> DW_AT_decl_file : 1
+ <20e> DW_AT_decl_line : 82
+ <20f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><212>: Abbrev Number: 7 (DW_TAG_union_type)
+ <213> DW_AT_byte_size : 8
+ <214> DW_AT_decl_file : 1
+ <215> DW_AT_decl_line : 82
+ <5><216>: Abbrev Number: 5 (DW_TAG_member)
+ <217> DW_AT_name : (indirect string, offset: 0x2bb): _addr_bnd
+ <21b> DW_AT_type : <0x224>
+ <21f> DW_AT_decl_file : 1
+ <220> DW_AT_decl_line : 86
+ <221> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <5><224>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <225> DW_AT_byte_size : 8
+ <226> DW_AT_decl_file : 1
+ <227> DW_AT_decl_line : 83
+ <6><228>: Abbrev Number: 5 (DW_TAG_member)
+ <229> DW_AT_name : (indirect string, offset: 0x2c5): _lower
+ <22d> DW_AT_type : <0x34a>
+ <231> DW_AT_decl_file : 1
+ <232> DW_AT_decl_line : 84
+ <233> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <6><236>: Abbrev Number: 5 (DW_TAG_member)
+ <237> DW_AT_name : (indirect string, offset: 0x2cc): _upper
+ <23b> DW_AT_type : <0x34a>
+ <23f> DW_AT_decl_file : 1
+ <240> DW_AT_decl_line : 85
+ <241> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <6><244>: Abbrev Number: 0
+ <5><245>: Abbrev Number: 5 (DW_TAG_member)
+ <246> DW_AT_name : (indirect string, offset: 0x2d3): _pkey
+ <24a> DW_AT_type : <0x36f>
+ <24e> DW_AT_decl_file : 1
+ <24f> DW_AT_decl_line : 87
+ <250> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <5><253>: Abbrev Number: 0
+ <4><254>: Abbrev Number: 0
+ <3><255>: Abbrev Number: 5 (DW_TAG_member)
+ <256> DW_AT_name : (indirect string, offset: 0x2df): _sigpoll
+ <25a> DW_AT_type : <0x263>
+ <25e> DW_AT_decl_file : 1
+ <25f> DW_AT_decl_line : 93
+ <260> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><263>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <264> DW_AT_byte_size : 8
+ <265> DW_AT_decl_file : 1
+ <266> DW_AT_decl_line : 90
+ <4><267>: Abbrev Number: 5 (DW_TAG_member)
+ <268> DW_AT_name : (indirect string, offset: 0x2e8): _band
+ <26c> DW_AT_type : <0x361>
+ <270> DW_AT_decl_file : 1
+ <271> DW_AT_decl_line : 91
+ <272> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><275>: Abbrev Number: 5 (DW_TAG_member)
+ <276> DW_AT_name : (indirect string, offset: 0x2ee): _fd
+ <27a> DW_AT_type : <0x2c3>
+ <27e> DW_AT_decl_file : 1
+ <27f> DW_AT_decl_line : 92
+ <280> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><283>: Abbrev Number: 0
+ <3><284>: Abbrev Number: 5 (DW_TAG_member)
+ <285> DW_AT_name : (indirect string, offset: 0x2f2): _sigsys
+ <289> DW_AT_type : <0x292>
+ <28d> DW_AT_decl_file : 1
+ <28e> DW_AT_decl_line : 98
+ <28f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><292>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <293> DW_AT_byte_size : 12
+ <294> DW_AT_decl_file : 1
+ <295> DW_AT_decl_line : 94
+ <4><296>: Abbrev Number: 5 (DW_TAG_member)
+ <297> DW_AT_name : (indirect string, offset: 0x2fa): _call_addr
+ <29b> DW_AT_type : <0x34a>
+ <29f> DW_AT_decl_file : 1
+ <2a0> DW_AT_decl_line : 95
+ <2a1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><2a4>: Abbrev Number: 5 (DW_TAG_member)
+ <2a5> DW_AT_name : (indirect string, offset: 0x305): _syscall
+ <2a9> DW_AT_type : <0x2c3>
+ <2ad> DW_AT_decl_file : 1
+ <2ae> DW_AT_decl_line : 96
+ <2af> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><2b2>: Abbrev Number: 5 (DW_TAG_member)
+ <2b3> DW_AT_name : (indirect string, offset: 0x30e): _arch
+ <2b7> DW_AT_type : <0x2f4>
+ <2bb> DW_AT_decl_file : 1
+ <2bc> DW_AT_decl_line : 97
+ <2bd> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <4><2c0>: Abbrev Number: 0
+ <3><2c1>: Abbrev Number: 0
+ <2><2c2>: Abbrev Number: 0
+ <1><2c3>: Abbrev Number: 10 (DW_TAG_base_type)
+ <2c4> DW_AT_name : (indirect string, offset: 0x180): int
+ <2c8> DW_AT_encoding : 5 (signed)
+ <2c9> DW_AT_byte_size : 4
+ <1><2ca>: Abbrev Number: 11 (DW_TAG_array_type)
+ <2cb> DW_AT_type : <0x2c3>
+ <2><2cf>: Abbrev Number: 12 (DW_TAG_subrange_type)
+ <2d0> DW_AT_type : <0x2d7>
+ <2d4> DW_AT_lower_bound : 0
+ <2d5> DW_AT_count : 28
+ <2><2d6>: Abbrev Number: 0
+ <1><2d7>: Abbrev Number: 13 (DW_TAG_base_type)
+ <2d8> DW_AT_name : (indirect string, offset: 0x1a4): sizetype
+ <2dc> DW_AT_byte_size : 8
+ <2dd> DW_AT_encoding : 7 (unsigned)
+ <1><2de>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2df> DW_AT_type : <0x2c3>
+ <2e3> DW_AT_name : (indirect string, offset: 0x1b8): __kernel_pid_t
+ <2e7> DW_AT_decl_file : 2
+ <2e8> DW_AT_decl_line : 33
+ <1><2e9>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2ea> DW_AT_type : <0x2f4>
+ <2ee> DW_AT_name : (indirect string, offset: 0x1d9): __kernel_uid32_t
+ <2f2> DW_AT_decl_file : 2
+ <2f3> DW_AT_decl_line : 49
+ <1><2f4>: Abbrev Number: 10 (DW_TAG_base_type)
+ <2f5> DW_AT_name : (indirect string, offset: 0x1cc): unsigned int
+ <2f9> DW_AT_encoding : 7 (unsigned)
+ <2fa> DW_AT_byte_size : 4
+ <1><2fb>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2fc> DW_AT_type : <0x2c3>
+ <300> DW_AT_name : (indirect string, offset: 0x1f6): __kernel_timer_t
+ <304> DW_AT_decl_file : 2
+ <305> DW_AT_decl_line : 79
+ <1><306>: Abbrev Number: 11 (DW_TAG_array_type)
+ <307> DW_AT_type : <0x313>
+ <2><30b>: Abbrev Number: 12 (DW_TAG_subrange_type)
+ <30c> DW_AT_type : <0x2d7>
+ <310> DW_AT_lower_bound : 0
+ <311> DW_AT_count : 0
+ <2><312>: Abbrev Number: 0
+ <1><313>: Abbrev Number: 10 (DW_TAG_base_type)
+ <314> DW_AT_name : (indirect string, offset: 0x210): char
+ <318> DW_AT_encoding : 8 (unsigned char)
+ <319> DW_AT_byte_size : 1
+ <1><31a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <31b> DW_AT_type : <0x325>
+ <31f> DW_AT_name : (indirect string, offset: 0x238): sigval_t
+ <323> DW_AT_decl_file : 1
+ <324> DW_AT_decl_line : 26
+ <1><325>: Abbrev Number: 14 (DW_TAG_union_type)
+ <326> DW_AT_name : (indirect string, offset: 0x231): sigval
+ <32a> DW_AT_byte_size : 4
+ <32b> DW_AT_decl_file : 1
+ <32c> DW_AT_decl_line : 23
+ <2><32d>: Abbrev Number: 5 (DW_TAG_member)
+ <32e> DW_AT_name : (indirect string, offset: 0x21d): sival_int
+ <332> DW_AT_type : <0x2c3>
+ <336> DW_AT_decl_file : 1
+ <337> DW_AT_decl_line : 24
+ <338> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><33b>: Abbrev Number: 5 (DW_TAG_member)
+ <33c> DW_AT_name : (indirect string, offset: 0x227): sival_ptr
+ <340> DW_AT_type : <0x34a>
+ <344> DW_AT_decl_file : 1
+ <345> DW_AT_decl_line : 25
+ <346> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><349>: Abbrev Number: 0
+ <1><34a>: Abbrev Number: 15 (DW_TAG_pointer_type)
+ <1><34b>: Abbrev Number: 3 (DW_TAG_typedef)
+ <34c> DW_AT_type : <0x356>
+ <350> DW_AT_name : (indirect string, offset: 0x283): __kernel_clock_t
+ <354> DW_AT_decl_file : 2
+ <355> DW_AT_decl_line : 78
+ <1><356>: Abbrev Number: 3 (DW_TAG_typedef)
+ <357> DW_AT_type : <0x361>
+ <35b> DW_AT_name : (indirect string, offset: 0x273): __kernel_long_t
+ <35f> DW_AT_decl_file : 2
+ <360> DW_AT_decl_line : 23
+ <1><361>: Abbrev Number: 10 (DW_TAG_base_type)
+ <362> DW_AT_name : (indirect string, offset: 0x26a): long int
+ <366> DW_AT_encoding : 5 (signed)
+ <367> DW_AT_byte_size : 4
+ <1><368>: Abbrev Number: 10 (DW_TAG_base_type)
+ <369> DW_AT_name : (indirect string, offset: 0x2b5): short
+ <36d> DW_AT_encoding : 5 (signed)
+ <36e> DW_AT_byte_size : 2
+ <1><36f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <370> DW_AT_type : <0x2f4>
+ <374> DW_AT_name : (indirect string, offset: 0x2d9): __u32
+ <378> DW_AT_decl_file : 3
+ <379> DW_AT_decl_line : 28
+ <1><37a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <37b> DW_AT_type : <0x385>
+ <37f> DW_AT_name : (indirect string, offset: 0x482): ucontext_t
+ <383> DW_AT_decl_file : 5
+ <384> DW_AT_decl_line : 101
+ <1><385>: Abbrev Number: 16 (DW_TAG_structure_type)
+ <386> DW_AT_name : (indirect string, offset: 0x479): ucontext
+ <38a> DW_AT_byte_size : 5056
+ <38c> DW_AT_decl_file : 5
+ <38d> DW_AT_decl_line : 85
+ <2><38e>: Abbrev Number: 5 (DW_TAG_member)
+ <38f> DW_AT_name : (indirect string, offset: 0x329): uc_flags
+ <393> DW_AT_type : <0x42f>
+ <397> DW_AT_decl_file : 5
+ <398> DW_AT_decl_line : 86
+ <399> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><39c>: Abbrev Number: 5 (DW_TAG_member)
+ <39d> DW_AT_name : (indirect string, offset: 0x344): uc_link
+ <3a1> DW_AT_type : <0x436>
+ <3a5> DW_AT_decl_file : 5
+ <3a6> DW_AT_decl_line : 87
+ <3a7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><3aa>: Abbrev Number: 5 (DW_TAG_member)
+ <3ab> DW_AT_name : (indirect string, offset: 0x34c): uc_stack
+ <3af> DW_AT_type : <0x43b>
+ <3b3> DW_AT_decl_file : 5
+ <3b4> DW_AT_decl_line : 88
+ <3b5> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><3b8>: Abbrev Number: 5 (DW_TAG_member)
+ <3b9> DW_AT_name : (indirect string, offset: 0x387): uc_mcontext
+ <3bd> DW_AT_type : <0x484>
+ <3c1> DW_AT_decl_file : 5
+ <3c2> DW_AT_decl_line : 89
+ <3c3> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><3c6>: Abbrev Number: 9 (DW_TAG_member)
+ <3c7> DW_AT_type : <0x3d1>
+ <3cb> DW_AT_decl_file : 5
+ <3cc> DW_AT_decl_line : 90
+ <3cd> DW_AT_data_member_location: 3 byte block: 23 c0 22 (DW_OP_plus_uconst: 4416)
+ <2><3d1>: Abbrev Number: 7 (DW_TAG_union_type)
+ <3d2> DW_AT_byte_size : 8
+ <3d3> DW_AT_decl_file : 5
+ <3d4> DW_AT_decl_line : 90
+ <3><3d5>: Abbrev Number: 9 (DW_TAG_member)
+ <3d6> DW_AT_type : <0x3df>
+ <3da> DW_AT_decl_file : 5
+ <3db> DW_AT_decl_line : 91
+ <3dc> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><3df>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <3e0> DW_AT_byte_size : 8
+ <3e1> DW_AT_decl_file : 5
+ <3e2> DW_AT_decl_line : 91
+ <4><3e3>: Abbrev Number: 5 (DW_TAG_member)
+ <3e4> DW_AT_name : (indirect string, offset: 0x404): uc_sigmask
+ <3e8> DW_AT_type : <0x531>
<3ec> DW_AT_decl_file : 5
- <3ed> DW_AT_decl_line : 94
- <3ee> DW_AT_data_member_location: 3 byte block: 23 c8 22 (DW_OP_plus_uconst: 4424)
- <2><3f2>: Abbrev Number: 17 (DW_TAG_member)
- <3f3> DW_AT_name : (indirect string, offset: 0x384): uc_regspace
- <3f7> DW_AT_type : <0x553>
- <3fb> DW_AT_decl_file : 5
- <3fc> DW_AT_decl_line : 95
- <3fd> Unknown AT value: 88: 8
- <3fe> DW_AT_data_member_location: 3 byte block: 23 c0 23 (DW_OP_plus_uconst: 4544)
- <2><402>: Abbrev Number: 0
- <1><403>: Abbrev Number: 10 (DW_TAG_base_type)
- <404> DW_AT_name : (indirect string, offset: 0x268): long unsigned int
- <408> DW_AT_encoding : 7 (unsigned)
- <409> DW_AT_byte_size : 4
- <1><40a>: Abbrev Number: 18 (DW_TAG_pointer_type)
- <40b> DW_AT_type : <0x384>
- <1><40f>: Abbrev Number: 3 (DW_TAG_typedef)
- <410> DW_AT_type : <0x41a>
- <414> DW_AT_name : (indirect string, offset: 0x2b5): stack_t
- <418> DW_AT_decl_file : 6
- <419> DW_AT_decl_line : 97
- <1><41a>: Abbrev Number: 6 (DW_TAG_structure_type)
- <41b> DW_AT_name : (indirect string, offset: 0x2a9): sigaltstack
- <41f> DW_AT_byte_size : 12
- <420> DW_AT_decl_file : 6
- <421> DW_AT_decl_line : 93
- <2><422>: Abbrev Number: 5 (DW_TAG_member)
- <423> DW_AT_name : (indirect string, offset: 0x28b): ss_sp
- <427> DW_AT_type : <0x349>
- <42b> DW_AT_decl_file : 6
- <42c> DW_AT_decl_line : 94
- <42d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><430>: Abbrev Number: 5 (DW_TAG_member)
- <431> DW_AT_name : (indirect string, offset: 0x291): ss_flags
- <435> DW_AT_type : <0x2c2>
- <439> DW_AT_decl_file : 6
- <43a> DW_AT_decl_line : 95
- <43b> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><43e>: Abbrev Number: 5 (DW_TAG_member)
- <43f> DW_AT_name : (indirect string, offset: 0x29a): ss_size
- <443> DW_AT_type : <0x44d>
- <447> DW_AT_decl_file : 6
- <448> DW_AT_decl_line : 96
- <449> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><44c>: Abbrev Number: 0
- <1><44d>: Abbrev Number: 3 (DW_TAG_typedef)
- <44e> DW_AT_type : <0x2f3>
- <452> DW_AT_name : (indirect string, offset: 0x2a2): size_t
- <456> DW_AT_decl_file : 7
- <457> DW_AT_decl_line : 62
- <1><458>: Abbrev Number: 3 (DW_TAG_typedef)
- <459> DW_AT_type : <0x463>
- <45d> DW_AT_name : (indirect string, offset: 0x32f): mcontext_t
- <461> DW_AT_decl_file : 5
- <462> DW_AT_decl_line : 83
- <1><463>: Abbrev Number: 16 (DW_TAG_structure_type)
- <464> DW_AT_name : (indirect string, offset: 0x324): sigcontext
- <468> DW_AT_byte_size : 4384
- <46a> DW_AT_decl_file : 8
- <46b> DW_AT_decl_line : 22
- <2><46c>: Abbrev Number: 5 (DW_TAG_member)
- <46d> DW_AT_name : (indirect string, offset: 0x2c9): fault_address
- <471> DW_AT_type : <0x4c6>
- <475> DW_AT_decl_file : 8
- <476> DW_AT_decl_line : 23
- <477> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><47a>: Abbrev Number: 5 (DW_TAG_member)
- <47b> DW_AT_name : (indirect string, offset: 0x2f4): regs
- <47f> DW_AT_type : <0x4d8>
- <483> DW_AT_decl_file : 8
- <484> DW_AT_decl_line : 24
- <485> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><488>: Abbrev Number: 5 (DW_TAG_member)
- <489> DW_AT_name : (indirect string, offset: 0x2f9): sp
- <48d> DW_AT_type : <0x4c6>
- <491> DW_AT_decl_file : 8
- <492> DW_AT_decl_line : 25
- <493> DW_AT_data_member_location: 3 byte block: 23 80 2 (DW_OP_plus_uconst: 256)
- <2><497>: Abbrev Number: 5 (DW_TAG_member)
- <498> DW_AT_name : (indirect string, offset: 0x2fc): pc
- <49c> DW_AT_type : <0x4c6>
- <4a0> DW_AT_decl_file : 8
- <4a1> DW_AT_decl_line : 26
- <4a2> DW_AT_data_member_location: 3 byte block: 23 88 2 (DW_OP_plus_uconst: 264)
+ <3ed> DW_AT_decl_line : 92
+ <3ee> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><3f1>: Abbrev Number: 5 (DW_TAG_member)
+ <3f2> DW_AT_name : (indirect string, offset: 0x41c): __padding_rt_sigset
+ <3f6> DW_AT_type : <0x55c>
+ <3fa> DW_AT_decl_file : 5
+ <3fb> DW_AT_decl_line : 94
+ <3fc> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><3ff>: Abbrev Number: 0
+ <3><400>: Abbrev Number: 5 (DW_TAG_member)
+ <401> DW_AT_name : (indirect string, offset: 0x444): uc_sigmask64
+ <405> DW_AT_type : <0x572>
+ <409> DW_AT_decl_file : 5
+ <40a> DW_AT_decl_line : 96
+ <40b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><40e>: Abbrev Number: 0
+ <2><40f>: Abbrev Number: 5 (DW_TAG_member)
+ <410> DW_AT_name : (indirect string, offset: 0x463): __padding
+ <414> DW_AT_type : <0x59d>
+ <418> DW_AT_decl_file : 5
+ <419> DW_AT_decl_line : 99
+ <41a> DW_AT_data_member_location: 3 byte block: 23 c8 22 (DW_OP_plus_uconst: 4424)
+ <2><41e>: Abbrev Number: 17 (DW_TAG_member)
+ <41f> DW_AT_name : (indirect string, offset: 0x46d): uc_regspace
+ <423> DW_AT_type : <0x5aa>
+ <427> DW_AT_decl_file : 5
+ <428> DW_AT_decl_line : 100
+ <429> Unknown AT value: 88: 8
+ <42a> DW_AT_data_member_location: 3 byte block: 23 c0 23 (DW_OP_plus_uconst: 4544)
+ <2><42e>: Abbrev Number: 0
+ <1><42f>: Abbrev Number: 10 (DW_TAG_base_type)
+ <430> DW_AT_name : (indirect string, offset: 0x332): long unsigned int
+ <434> DW_AT_encoding : 7 (unsigned)
+ <435> DW_AT_byte_size : 4
+ <1><436>: Abbrev Number: 18 (DW_TAG_pointer_type)
+ <437> DW_AT_type : <0x385>
+ <1><43b>: Abbrev Number: 3 (DW_TAG_typedef)
+ <43c> DW_AT_type : <0x446>
+ <440> DW_AT_name : (indirect string, offset: 0x37f): stack_t
+ <444> DW_AT_decl_file : 6
+ <445> DW_AT_decl_line : 97
+ <1><446>: Abbrev Number: 6 (DW_TAG_structure_type)
+ <447> DW_AT_name : (indirect string, offset: 0x373): sigaltstack
+ <44b> DW_AT_byte_size : 12
+ <44c> DW_AT_decl_file : 6
+ <44d> DW_AT_decl_line : 93
+ <2><44e>: Abbrev Number: 5 (DW_TAG_member)
+ <44f> DW_AT_name : (indirect string, offset: 0x355): ss_sp
+ <453> DW_AT_type : <0x34a>
+ <457> DW_AT_decl_file : 6
+ <458> DW_AT_decl_line : 94
+ <459> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><45c>: Abbrev Number: 5 (DW_TAG_member)
+ <45d> DW_AT_name : (indirect string, offset: 0x35b): ss_flags
+ <461> DW_AT_type : <0x2c3>
+ <465> DW_AT_decl_file : 6
+ <466> DW_AT_decl_line : 95
+ <467> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><46a>: Abbrev Number: 5 (DW_TAG_member)
+ <46b> DW_AT_name : (indirect string, offset: 0x364): ss_size
+ <46f> DW_AT_type : <0x479>
+ <473> DW_AT_decl_file : 6
+ <474> DW_AT_decl_line : 96
+ <475> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><478>: Abbrev Number: 0
+ <1><479>: Abbrev Number: 3 (DW_TAG_typedef)
+ <47a> DW_AT_type : <0x2f4>
+ <47e> DW_AT_name : (indirect string, offset: 0x36c): size_t
+ <482> DW_AT_decl_file : 7
+ <483> DW_AT_decl_line : 62
+ <1><484>: Abbrev Number: 3 (DW_TAG_typedef)
+ <485> DW_AT_type : <0x48f>
+ <489> DW_AT_name : (indirect string, offset: 0x3f9): mcontext_t
+ <48d> DW_AT_decl_file : 5
+ <48e> DW_AT_decl_line : 83
+ <1><48f>: Abbrev Number: 16 (DW_TAG_structure_type)
+ <490> DW_AT_name : (indirect string, offset: 0x3ee): sigcontext
+ <494> DW_AT_byte_size : 4384
+ <496> DW_AT_decl_file : 8
+ <497> DW_AT_decl_line : 23
+ <2><498>: Abbrev Number: 5 (DW_TAG_member)
+ <499> DW_AT_name : (indirect string, offset: 0x393): fault_address
+ <49d> DW_AT_type : <0x4f2>
+ <4a1> DW_AT_decl_file : 8
+ <4a2> DW_AT_decl_line : 24
+ <4a3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
<2><4a6>: Abbrev Number: 5 (DW_TAG_member)
- <4a7> DW_AT_name : (indirect string, offset: 0x2ff): pstate
- <4ab> DW_AT_type : <0x4c6>
+ <4a7> DW_AT_name : (indirect string, offset: 0x3be): regs
+ <4ab> DW_AT_type : <0x504>
<4af> DW_AT_decl_file : 8
- <4b0> DW_AT_decl_line : 27
- <4b1> DW_AT_data_member_location: 3 byte block: 23 90 2 (DW_OP_plus_uconst: 272)
- <2><4b5>: Abbrev Number: 17 (DW_TAG_member)
- <4b6> DW_AT_name : (indirect string, offset: 0x306): __reserved
- <4ba> DW_AT_type : <0x4e5>
- <4be> DW_AT_decl_file : 8
- <4bf> DW_AT_decl_line : 28
- <4c0> Unknown AT value: 88: 16
- <4c1> DW_AT_data_member_location: 3 byte block: 23 a0 2 (DW_OP_plus_uconst: 288)
- <2><4c5>: Abbrev Number: 0
- <1><4c6>: Abbrev Number: 3 (DW_TAG_typedef)
- <4c7> DW_AT_type : <0x4d1>
- <4cb> DW_AT_name : (indirect string, offset: 0x2ee): __u64
- <4cf> DW_AT_decl_file : 3
- <4d0> DW_AT_decl_line : 31
- <1><4d1>: Abbrev Number: 10 (DW_TAG_base_type)
- <4d2> DW_AT_name : (indirect string, offset: 0x2d7): long long unsigned int
- <4d6> DW_AT_encoding : 7 (unsigned)
- <4d7> DW_AT_byte_size : 8
- <1><4d8>: Abbrev Number: 11 (DW_TAG_array_type)
- <4d9> DW_AT_type : <0x4c6>
- <2><4dd>: Abbrev Number: 12 (DW_TAG_subrange_type)
- <4de> DW_AT_type : <0x2d6>
- <4e2> DW_AT_lower_bound : 0
- <4e3> DW_AT_count : 31
- <2><4e4>: Abbrev Number: 0
- <1><4e5>: Abbrev Number: 11 (DW_TAG_array_type)
- <4e6> DW_AT_type : <0x4f3>
- <2><4ea>: Abbrev Number: 19 (DW_TAG_subrange_type)
- <4eb> DW_AT_type : <0x2d6>
- <4ef> DW_AT_lower_bound : 0
- <4f0> DW_AT_count : 4096
- <2><4f2>: Abbrev Number: 0
- <1><4f3>: Abbrev Number: 3 (DW_TAG_typedef)
- <4f4> DW_AT_type : <0x4fe>
- <4f8> DW_AT_name : (indirect string, offset: 0x31f): __u8
- <4fc> DW_AT_decl_file : 3
- <4fd> DW_AT_decl_line : 24
- <1><4fe>: Abbrev Number: 10 (DW_TAG_base_type)
- <4ff> DW_AT_name : (indirect string, offset: 0x311): unsigned char
- <503> DW_AT_encoding : 8 (unsigned char)
- <504> DW_AT_byte_size : 1
- <1><505>: Abbrev Number: 3 (DW_TAG_typedef)
- <506> DW_AT_type : <0x510>
- <50a> DW_AT_name : (indirect string, offset: 0x349): sigset_t
- <50e> DW_AT_decl_file : 6
- <50f> DW_AT_decl_line : 79
- <1><510>: Abbrev Number: 8 (DW_TAG_structure_type)
- <511> DW_AT_byte_size : 4
- <512> DW_AT_decl_file : 6
- <513> DW_AT_decl_line : 77
- <2><514>: Abbrev Number: 5 (DW_TAG_member)
- <515> DW_AT_name : (indirect string, offset: 0x345): sig
- <519> DW_AT_type : <0x523>
- <51d> DW_AT_decl_file : 6
- <51e> DW_AT_decl_line : 78
- <51f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><522>: Abbrev Number: 0
- <1><523>: Abbrev Number: 11 (DW_TAG_array_type)
- <524> DW_AT_type : <0x403>
- <2><528>: Abbrev Number: 12 (DW_TAG_subrange_type)
- <529> DW_AT_type : <0x2d6>
- <52d> DW_AT_lower_bound : 0
- <52e> DW_AT_count : 1
- <2><52f>: Abbrev Number: 0
- <1><530>: Abbrev Number: 3 (DW_TAG_typedef)
- <531> DW_AT_type : <0x53b>
- <535> DW_AT_name : (indirect string, offset: 0x371): uint32_t
- <539> DW_AT_decl_file : 9
- <53a> DW_AT_decl_line : 65
- <1><53b>: Abbrev Number: 3 (DW_TAG_typedef)
- <53c> DW_AT_type : <0x2f3>
- <540> DW_AT_name : (indirect string, offset: 0x366): __uint32_t
- <544> DW_AT_decl_file : 9
- <545> DW_AT_decl_line : 41
- <1><546>: Abbrev Number: 11 (DW_TAG_array_type)
- <547> DW_AT_type : <0x312>
- <2><54b>: Abbrev Number: 12 (DW_TAG_subrange_type)
- <54c> DW_AT_type : <0x2d6>
- <550> DW_AT_lower_bound : 0
- <551> DW_AT_count : 120
- <2><552>: Abbrev Number: 0
- <1><553>: Abbrev Number: 11 (DW_TAG_array_type)
- <554> DW_AT_type : <0x403>
- <2><558>: Abbrev Number: 12 (DW_TAG_subrange_type)
- <559> DW_AT_type : <0x2d6>
- <55d> DW_AT_lower_bound : 0
- <55e> DW_AT_count : 128
- <2><55f>: Abbrev Number: 0
- <1><560>: Abbrev Number: 0
+ <4b0> DW_AT_decl_line : 25
+ <4b1> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><4b4>: Abbrev Number: 5 (DW_TAG_member)
+ <4b5> DW_AT_name : (indirect string, offset: 0x3c3): sp
+ <4b9> DW_AT_type : <0x4f2>
+ <4bd> DW_AT_decl_file : 8
+ <4be> DW_AT_decl_line : 26
+ <4bf> DW_AT_data_member_location: 3 byte block: 23 80 2 (DW_OP_plus_uconst: 256)
+ <2><4c3>: Abbrev Number: 5 (DW_TAG_member)
+ <4c4> DW_AT_name : (indirect string, offset: 0x3c6): pc
+ <4c8> DW_AT_type : <0x4f2>
+ <4cc> DW_AT_decl_file : 8
+ <4cd> DW_AT_decl_line : 27
+ <4ce> DW_AT_data_member_location: 3 byte block: 23 88 2 (DW_OP_plus_uconst: 264)
+ <2><4d2>: Abbrev Number: 5 (DW_TAG_member)
+ <4d3> DW_AT_name : (indirect string, offset: 0x3c9): pstate
+ <4d7> DW_AT_type : <0x4f2>
+ <4db> DW_AT_decl_file : 8
+ <4dc> DW_AT_decl_line : 28
+ <4dd> DW_AT_data_member_location: 3 byte block: 23 90 2 (DW_OP_plus_uconst: 272)
+ <2><4e1>: Abbrev Number: 17 (DW_TAG_member)
+ <4e2> DW_AT_name : (indirect string, offset: 0x3d0): __reserved
+ <4e6> DW_AT_type : <0x511>
+ <4ea> DW_AT_decl_file : 8
+ <4eb> DW_AT_decl_line : 29
+ <4ec> Unknown AT value: 88: 16
+ <4ed> DW_AT_data_member_location: 3 byte block: 23 a0 2 (DW_OP_plus_uconst: 288)
+ <2><4f1>: Abbrev Number: 0
+ <1><4f2>: Abbrev Number: 3 (DW_TAG_typedef)
+ <4f3> DW_AT_type : <0x4fd>
+ <4f7> DW_AT_name : (indirect string, offset: 0x3b8): __u64
+ <4fb> DW_AT_decl_file : 3
+ <4fc> DW_AT_decl_line : 31
+ <1><4fd>: Abbrev Number: 10 (DW_TAG_base_type)
+ <4fe> DW_AT_name : (indirect string, offset: 0x3a1): long long unsigned int
+ <502> DW_AT_encoding : 7 (unsigned)
+ <503> DW_AT_byte_size : 8
+ <1><504>: Abbrev Number: 11 (DW_TAG_array_type)
+ <505> DW_AT_type : <0x4f2>
+ <2><509>: Abbrev Number: 12 (DW_TAG_subrange_type)
+ <50a> DW_AT_type : <0x2d7>
+ <50e> DW_AT_lower_bound : 0
+ <50f> DW_AT_count : 31
+ <2><510>: Abbrev Number: 0
+ <1><511>: Abbrev Number: 11 (DW_TAG_array_type)
+ <512> DW_AT_type : <0x51f>
+ <2><516>: Abbrev Number: 19 (DW_TAG_subrange_type)
+ <517> DW_AT_type : <0x2d7>
+ <51b> DW_AT_lower_bound : 0
+ <51c> DW_AT_count : 4096
+ <2><51e>: Abbrev Number: 0
+ <1><51f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <520> DW_AT_type : <0x52a>
+ <524> DW_AT_name : (indirect string, offset: 0x3e9): __u8
+ <528> DW_AT_decl_file : 3
+ <529> DW_AT_decl_line : 24
+ <1><52a>: Abbrev Number: 10 (DW_TAG_base_type)
+ <52b> DW_AT_name : (indirect string, offset: 0x3db): unsigned char
+ <52f> DW_AT_encoding : 8 (unsigned char)
+ <530> DW_AT_byte_size : 1
+ <1><531>: Abbrev Number: 3 (DW_TAG_typedef)
+ <532> DW_AT_type : <0x53c>
+ <536> DW_AT_name : (indirect string, offset: 0x413): sigset_t
+ <53a> DW_AT_decl_file : 6
+ <53b> DW_AT_decl_line : 79
+ <1><53c>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <53d> DW_AT_byte_size : 4
+ <53e> DW_AT_decl_file : 6
+ <53f> DW_AT_decl_line : 77
+ <2><540>: Abbrev Number: 5 (DW_TAG_member)
+ <541> DW_AT_name : (indirect string, offset: 0x40f): sig
+ <545> DW_AT_type : <0x54f>
+ <549> DW_AT_decl_file : 6
+ <54a> DW_AT_decl_line : 78
+ <54b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54e>: Abbrev Number: 0
+ <1><54f>: Abbrev Number: 11 (DW_TAG_array_type)
+ <550> DW_AT_type : <0x42f>
+ <2><554>: Abbrev Number: 12 (DW_TAG_subrange_type)
+ <555> DW_AT_type : <0x2d7>
+ <559> DW_AT_lower_bound : 0
+ <55a> DW_AT_count : 1
+ <2><55b>: Abbrev Number: 0
+ <1><55c>: Abbrev Number: 3 (DW_TAG_typedef)
+ <55d> DW_AT_type : <0x567>
+ <561> DW_AT_name : (indirect string, offset: 0x43b): uint32_t
+ <565> DW_AT_decl_file : 9
+ <566> DW_AT_decl_line : 65
+ <1><567>: Abbrev Number: 3 (DW_TAG_typedef)
+ <568> DW_AT_type : <0x2f4>
+ <56c> DW_AT_name : (indirect string, offset: 0x430): __uint32_t
+ <570> DW_AT_decl_file : 9
+ <571> DW_AT_decl_line : 41
+ <1><572>: Abbrev Number: 3 (DW_TAG_typedef)
+ <573> DW_AT_type : <0x57d>
+ <577> DW_AT_name : (indirect string, offset: 0x458): sigset64_t
+ <57b> DW_AT_decl_file : 10
+ <57c> DW_AT_decl_line : 67
+ <1><57d>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <57e> DW_AT_byte_size : 8
+ <57f> DW_AT_decl_file : 10
+ <580> DW_AT_decl_line : 67
+ <2><581>: Abbrev Number: 5 (DW_TAG_member)
+ <582> DW_AT_name : (indirect string, offset: 0x451): __bits
+ <586> DW_AT_type : <0x590>
+ <58a> DW_AT_decl_file : 10
+ <58b> DW_AT_decl_line : 67
+ <58c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><58f>: Abbrev Number: 0
+ <1><590>: Abbrev Number: 11 (DW_TAG_array_type)
+ <591> DW_AT_type : <0x42f>
+ <2><595>: Abbrev Number: 12 (DW_TAG_subrange_type)
+ <596> DW_AT_type : <0x2d7>
+ <59a> DW_AT_lower_bound : 0
+ <59b> DW_AT_count : 2
+ <2><59c>: Abbrev Number: 0
+ <1><59d>: Abbrev Number: 11 (DW_TAG_array_type)
+ <59e> DW_AT_type : <0x313>
+ <2><5a2>: Abbrev Number: 12 (DW_TAG_subrange_type)
+ <5a3> DW_AT_type : <0x2d7>
+ <5a7> DW_AT_lower_bound : 0
+ <5a8> DW_AT_count : 120
+ <2><5a9>: Abbrev Number: 0
+ <1><5aa>: Abbrev Number: 11 (DW_TAG_array_type)
+ <5ab> DW_AT_type : <0x42f>
+ <2><5af>: Abbrev Number: 12 (DW_TAG_subrange_type)
+ <5b0> DW_AT_type : <0x2d7>
+ <5b4> DW_AT_lower_bound : 0
+ <5b5> DW_AT_count : 128
+ <2><5b6>: Abbrev Number: 0
+ <1><5b7>: Abbrev Number: 0
diff --git a/mpers-m32/struct_rt_sigframe.d2 b/mpers-m32/struct_rt_sigframe.d2
index 847ed69..e4d5aed 100644
--- a/mpers-m32/struct_rt_sigframe.d2
+++ b/mpers-m32/struct_rt_sigframe.d2
@@ -1,740 +1,795 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
-DW_AT_decl_file : 10
+DW_AT_decl_file : 11
DW_AT_decl_line : 33
DW_AT_location : 5 byte block: 3 10 0 0 0 (DW_OP_addr: 10)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x3a4): struct_rt_sigframe
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x48d): struct_rt_sigframe
DW_AT_decl_file : 4
DW_AT_decl_line : 39
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 5184
DW_AT_decl_file : 4
DW_AT_decl_line : 35
-<2><40>
+<2><41>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa8): info
-DW_AT_type : <0x5e>
+DW_AT_name : (indirect string, offset: 0x172): info
+DW_AT_type : <0x5f>
DW_AT_decl_file : 4
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4e>
+<2><4f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x25c): uc
-DW_AT_type : <0x379>
+DW_AT_name : (indirect string, offset: 0x326): uc
+DW_AT_type : <0x37a>
DW_AT_decl_file : 4
DW_AT_decl_line : 37
DW_AT_data_member_location: 3 byte block: 23 80 1 (DW_OP_plus_uconst: 128)
-<1><5e>
+<1><5f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x69>
-DW_AT_name : (indirect string, offset: 0x252): siginfo_t
+DW_AT_type : <0x6a>
+DW_AT_name : (indirect string, offset: 0x31c): siginfo_t
DW_AT_decl_file : 1
DW_AT_decl_line : 100
-<1><69>
+<1><6a>
Abbrev Number: 6 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x24a): siginfo
+DW_AT_name : (indirect string, offset: 0x314): siginfo
DW_AT_byte_size : 124
DW_AT_decl_file : 1
DW_AT_decl_line : 47
-<2><71>
+<2><72>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xad): si_signo
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x177): si_signo
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><7f>
+<2><80>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xba): si_errno
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x184): si_errno
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 49
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><8d>
+<2><8e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc3): si_code
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x18d): si_code
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 50
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><9b>
+<2><9c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcb): _sifields
-DW_AT_type : <0xa9>
+DW_AT_name : (indirect string, offset: 0x195): _sifields
+DW_AT_type : <0xaa>
DW_AT_decl_file : 1
DW_AT_decl_line : 99
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><a9>
+<2><aa>
Abbrev Number: 7 (DW_TAG_union_type)
DW_AT_byte_size : 112
DW_AT_decl_file : 1
DW_AT_decl_line : 51
-<3><ad>
+<3><ae>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd5): _pad
-DW_AT_type : <0x2c9>
+DW_AT_name : (indirect string, offset: 0x19f): _pad
+DW_AT_type : <0x2ca>
DW_AT_decl_file : 1
DW_AT_decl_line : 52
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><bb>
+<3><bc>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe3): _kill
-DW_AT_type : <0xc9>
+DW_AT_name : (indirect string, offset: 0x1ad): _kill
+DW_AT_type : <0xca>
DW_AT_decl_file : 1
DW_AT_decl_line : 56
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><c9>
+<3><ca>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 53
-<4><cd>
+<4><ce>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe9): _pid
-DW_AT_type : <0x2dd>
+DW_AT_name : (indirect string, offset: 0x1b3): _pid
+DW_AT_type : <0x2de>
DW_AT_decl_file : 1
DW_AT_decl_line : 54
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><db>
+<4><dc>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfd): _uid
-DW_AT_type : <0x2e8>
+DW_AT_name : (indirect string, offset: 0x1c7): _uid
+DW_AT_type : <0x2e9>
DW_AT_decl_file : 1
DW_AT_decl_line : 55
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<3><ea>
+<3><eb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x120): _timer
-DW_AT_type : <0xf8>
+DW_AT_name : (indirect string, offset: 0x1ea): _timer
+DW_AT_type : <0xf9>
DW_AT_decl_file : 1
DW_AT_decl_line : 63
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><f8>
+<3><f9>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
DW_AT_decl_line : 57
-<4><fc>
+<4><fd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x127): _tid
-DW_AT_type : <0x2fa>
+DW_AT_name : (indirect string, offset: 0x1f1): _tid
+DW_AT_type : <0x2fb>
DW_AT_decl_file : 1
DW_AT_decl_line : 58
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><10a>
+<4><10b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13d): _overrun
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x207): _overrun
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 59
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><118>
+<4><119>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd5): _pad
-DW_AT_type : <0x305>
+DW_AT_name : (indirect string, offset: 0x19f): _pad
+DW_AT_type : <0x306>
DW_AT_decl_file : 1
DW_AT_decl_line : 60
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><126>
+<4><127>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14b): _sigval
-DW_AT_type : <0x319>
+DW_AT_name : (indirect string, offset: 0x215): _sigval
+DW_AT_type : <0x31a>
DW_AT_decl_file : 1
DW_AT_decl_line : 61
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><134>
+<4><135>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x177): _sys_private
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x241): _sys_private
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 62
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<3><143>
+<3><144>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x184): _rt
-DW_AT_type : <0x151>
+DW_AT_name : (indirect string, offset: 0x24e): _rt
+DW_AT_type : <0x152>
DW_AT_decl_file : 1
DW_AT_decl_line : 68
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><151>
+<3><152>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 12
DW_AT_decl_file : 1
DW_AT_decl_line : 64
-<4><155>
+<4><156>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe9): _pid
-DW_AT_type : <0x2dd>
+DW_AT_name : (indirect string, offset: 0x1b3): _pid
+DW_AT_type : <0x2de>
DW_AT_decl_file : 1
DW_AT_decl_line : 65
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><163>
+<4><164>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfd): _uid
-DW_AT_type : <0x2e8>
+DW_AT_name : (indirect string, offset: 0x1c7): _uid
+DW_AT_type : <0x2e9>
DW_AT_decl_file : 1
DW_AT_decl_line : 66
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><171>
+<4><172>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14b): _sigval
-DW_AT_type : <0x319>
+DW_AT_name : (indirect string, offset: 0x215): _sigval
+DW_AT_type : <0x31a>
DW_AT_decl_file : 1
DW_AT_decl_line : 67
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<3><180>
+<3><181>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x188): _sigchld
-DW_AT_type : <0x18e>
+DW_AT_name : (indirect string, offset: 0x252): _sigchld
+DW_AT_type : <0x18f>
DW_AT_decl_file : 1
DW_AT_decl_line : 75
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><18e>
+<3><18f>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 20
DW_AT_decl_file : 1
DW_AT_decl_line : 69
-<4><192>
+<4><193>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe9): _pid
-DW_AT_type : <0x2dd>
+DW_AT_name : (indirect string, offset: 0x1b3): _pid
+DW_AT_type : <0x2de>
DW_AT_decl_file : 1
DW_AT_decl_line : 70
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><1a0>
+<4><1a1>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfd): _uid
-DW_AT_type : <0x2e8>
+DW_AT_name : (indirect string, offset: 0x1c7): _uid
+DW_AT_type : <0x2e9>
DW_AT_decl_file : 1
DW_AT_decl_line : 71
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><1ae>
+<4><1af>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x191): _status
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x25b): _status
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 72
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><1bc>
+<4><1bd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x199): _utime
-DW_AT_type : <0x34a>
+DW_AT_name : (indirect string, offset: 0x263): _utime
+DW_AT_type : <0x34b>
DW_AT_decl_file : 1
DW_AT_decl_line : 73
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<4><1ca>
+<4><1cb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ca): _stime
-DW_AT_type : <0x34a>
+DW_AT_name : (indirect string, offset: 0x294): _stime
+DW_AT_type : <0x34b>
DW_AT_decl_file : 1
DW_AT_decl_line : 74
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<3><1d9>
+<3><1da>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d1): _sigfault
-DW_AT_type : <0x1e7>
+DW_AT_name : (indirect string, offset: 0x29b): _sigfault
+DW_AT_type : <0x1e8>
DW_AT_decl_file : 1
DW_AT_decl_line : 89
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><1e7>
+<3><1e8>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 16
DW_AT_decl_file : 1
DW_AT_decl_line : 76
-<4><1eb>
+<4><1ec>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1db): _addr
-DW_AT_type : <0x349>
+DW_AT_name : (indirect string, offset: 0x2a5): _addr
+DW_AT_type : <0x34a>
DW_AT_decl_file : 1
DW_AT_decl_line : 77
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><1f9>
+<4><1fa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e1): _addr_lsb
-DW_AT_type : <0x367>
+DW_AT_name : (indirect string, offset: 0x2ab): _addr_lsb
+DW_AT_type : <0x368>
DW_AT_decl_file : 1
DW_AT_decl_line : 81
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><207>
+<4><208>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_type : <0x211>
+DW_AT_type : <0x212>
DW_AT_decl_file : 1
DW_AT_decl_line : 82
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<4><211>
+<4><212>
Abbrev Number: 7 (DW_TAG_union_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 82
-<5><215>
+<5><216>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f1): _addr_bnd
-DW_AT_type : <0x223>
+DW_AT_name : (indirect string, offset: 0x2bb): _addr_bnd
+DW_AT_type : <0x224>
DW_AT_decl_file : 1
DW_AT_decl_line : 86
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<5><223>
+<5><224>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 83
-<6><227>
+<6><228>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1fb): _lower
-DW_AT_type : <0x349>
+DW_AT_name : (indirect string, offset: 0x2c5): _lower
+DW_AT_type : <0x34a>
DW_AT_decl_file : 1
DW_AT_decl_line : 84
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<6><235>
+<6><236>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x202): _upper
-DW_AT_type : <0x349>
+DW_AT_name : (indirect string, offset: 0x2cc): _upper
+DW_AT_type : <0x34a>
DW_AT_decl_file : 1
DW_AT_decl_line : 85
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<5><244>
+<5><245>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x209): _pkey
-DW_AT_type : <0x36e>
+DW_AT_name : (indirect string, offset: 0x2d3): _pkey
+DW_AT_type : <0x36f>
DW_AT_decl_file : 1
DW_AT_decl_line : 87
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><254>
+<3><255>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x215): _sigpoll
-DW_AT_type : <0x262>
+DW_AT_name : (indirect string, offset: 0x2df): _sigpoll
+DW_AT_type : <0x263>
DW_AT_decl_file : 1
DW_AT_decl_line : 93
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><262>
+<3><263>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 90
-<4><266>
+<4><267>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x21e): _band
-DW_AT_type : <0x360>
+DW_AT_name : (indirect string, offset: 0x2e8): _band
+DW_AT_type : <0x361>
DW_AT_decl_file : 1
DW_AT_decl_line : 91
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><274>
+<4><275>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x224): _fd
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x2ee): _fd
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 92
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<3><283>
+<3><284>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x228): _sigsys
-DW_AT_type : <0x291>
+DW_AT_name : (indirect string, offset: 0x2f2): _sigsys
+DW_AT_type : <0x292>
DW_AT_decl_file : 1
DW_AT_decl_line : 98
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><291>
+<3><292>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 12
DW_AT_decl_file : 1
DW_AT_decl_line : 94
-<4><295>
+<4><296>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x230): _call_addr
-DW_AT_type : <0x349>
+DW_AT_name : (indirect string, offset: 0x2fa): _call_addr
+DW_AT_type : <0x34a>
DW_AT_decl_file : 1
DW_AT_decl_line : 95
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><2a3>
+<4><2a4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x23b): _syscall
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x305): _syscall
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 96
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<4><2b1>
+<4><2b2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x244): _arch
-DW_AT_type : <0x2f3>
+DW_AT_name : (indirect string, offset: 0x30e): _arch
+DW_AT_type : <0x2f4>
DW_AT_decl_file : 1
DW_AT_decl_line : 97
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><2c2>
+<1><2c3>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb6): int
+DW_AT_name : (indirect string, offset: 0x180): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><2c9>
+<1><2ca>
Abbrev Number: 11 (DW_TAG_array_type)
-DW_AT_type : <0x2c2>
-<2><2ce>
+DW_AT_type : <0x2c3>
+<2><2cf>
Abbrev Number: 12 (DW_TAG_subrange_type)
-DW_AT_type : <0x2d6>
+DW_AT_type : <0x2d7>
DW_AT_lower_bound : 0
DW_AT_count : 28
-<1><2d6>
+<1><2d7>
Abbrev Number: 13 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xda): sizetype
+DW_AT_name : (indirect string, offset: 0x1a4): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><2dd>
+<1><2de>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2c2>
-DW_AT_name : (indirect string, offset: 0xee): __kernel_pid_t
+DW_AT_type : <0x2c3>
+DW_AT_name : (indirect string, offset: 0x1b8): __kernel_pid_t
DW_AT_decl_file : 2
DW_AT_decl_line : 33
-<1><2e8>
+<1><2e9>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2f3>
-DW_AT_name : (indirect string, offset: 0x10f): __kernel_uid32_t
+DW_AT_type : <0x2f4>
+DW_AT_name : (indirect string, offset: 0x1d9): __kernel_uid32_t
DW_AT_decl_file : 2
DW_AT_decl_line : 49
-<1><2f3>
+<1><2f4>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x102): unsigned int
+DW_AT_name : (indirect string, offset: 0x1cc): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><2fa>
+<1><2fb>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2c2>
-DW_AT_name : (indirect string, offset: 0x12c): __kernel_timer_t
+DW_AT_type : <0x2c3>
+DW_AT_name : (indirect string, offset: 0x1f6): __kernel_timer_t
DW_AT_decl_file : 2
DW_AT_decl_line : 79
-<1><305>
+<1><306>
Abbrev Number: 11 (DW_TAG_array_type)
-DW_AT_type : <0x312>
-<2><30a>
+DW_AT_type : <0x313>
+<2><30b>
Abbrev Number: 12 (DW_TAG_subrange_type)
-DW_AT_type : <0x2d6>
+DW_AT_type : <0x2d7>
DW_AT_lower_bound : 0
DW_AT_count : 0
-<1><312>
+<1><313>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x146): char
+DW_AT_name : (indirect string, offset: 0x210): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><319>
+<1><31a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x324>
-DW_AT_name : (indirect string, offset: 0x16e): sigval_t
+DW_AT_type : <0x325>
+DW_AT_name : (indirect string, offset: 0x238): sigval_t
DW_AT_decl_file : 1
DW_AT_decl_line : 26
-<1><324>
+<1><325>
Abbrev Number: 14 (DW_TAG_union_type)
-DW_AT_name : (indirect string, offset: 0x167): sigval
+DW_AT_name : (indirect string, offset: 0x231): sigval
DW_AT_byte_size : 4
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<2><32c>
+<2><32d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x153): sival_int
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x21d): sival_int
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 1
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><33a>
+<2><33b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15d): sival_ptr
-DW_AT_type : <0x349>
+DW_AT_name : (indirect string, offset: 0x227): sival_ptr
+DW_AT_type : <0x34a>
DW_AT_decl_file : 1
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><349>
-Abbrev Number: 15 (DW_TAG_pointer_type)
<1><34a>
+Abbrev Number: 15 (DW_TAG_pointer_type)
+<1><34b>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x355>
-DW_AT_name : (indirect string, offset: 0x1b9): __kernel_clock_t
+DW_AT_type : <0x356>
+DW_AT_name : (indirect string, offset: 0x283): __kernel_clock_t
DW_AT_decl_file : 2
DW_AT_decl_line : 78
-<1><355>
+<1><356>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x360>
-DW_AT_name : (indirect string, offset: 0x1a9): __kernel_long_t
+DW_AT_type : <0x361>
+DW_AT_name : (indirect string, offset: 0x273): __kernel_long_t
DW_AT_decl_file : 2
DW_AT_decl_line : 23
-<1><360>
+<1><361>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1a0): long int
+DW_AT_name : (indirect string, offset: 0x26a): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><367>
+<1><368>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1eb): short
+DW_AT_name : (indirect string, offset: 0x2b5): short
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 2
-<1><36e>
+<1><36f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2f3>
-DW_AT_name : (indirect string, offset: 0x20f): __u32
+DW_AT_type : <0x2f4>
+DW_AT_name : (indirect string, offset: 0x2d9): __u32
DW_AT_decl_file : 3
DW_AT_decl_line : 28
-<1><379>
+<1><37a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x384>
-DW_AT_name : (indirect string, offset: 0x399): ucontext_t
+DW_AT_type : <0x385>
+DW_AT_name : (indirect string, offset: 0x482): ucontext_t
DW_AT_decl_file : 5
-DW_AT_decl_line : 96
-<1><384>
+DW_AT_decl_line : 101
+<1><385>
Abbrev Number: 16 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x390): ucontext
+DW_AT_name : (indirect string, offset: 0x479): ucontext
DW_AT_byte_size : 5056
DW_AT_decl_file : 5
DW_AT_decl_line : 85
-<2><38d>
+<2><38e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x25f): uc_flags
-DW_AT_type : <0x403>
+DW_AT_name : (indirect string, offset: 0x329): uc_flags
+DW_AT_type : <0x42f>
DW_AT_decl_file : 5
DW_AT_decl_line : 86
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><39b>
+<2><39c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x27a): uc_link
-DW_AT_type : <0x40a>
+DW_AT_name : (indirect string, offset: 0x344): uc_link
+DW_AT_type : <0x436>
DW_AT_decl_file : 5
DW_AT_decl_line : 87
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><3a9>
+<2><3aa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x282): uc_stack
-DW_AT_type : <0x40f>
+DW_AT_name : (indirect string, offset: 0x34c): uc_stack
+DW_AT_type : <0x43b>
DW_AT_decl_file : 5
DW_AT_decl_line : 88
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><3b7>
+<2><3b8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2bd): uc_mcontext
-DW_AT_type : <0x458>
+DW_AT_name : (indirect string, offset: 0x387): uc_mcontext
+DW_AT_type : <0x484>
DW_AT_decl_file : 5
DW_AT_decl_line : 89
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><3c5>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x33a): uc_sigmask
-DW_AT_type : <0x505>
+<2><3c6>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_type : <0x3d1>
DW_AT_decl_file : 5
DW_AT_decl_line : 90
DW_AT_data_member_location: 3 byte block: 23 c0 22 (DW_OP_plus_uconst: 4416)
-<2><3d4>
+<2><3d1>
+Abbrev Number: 7 (DW_TAG_union_type)
+DW_AT_byte_size : 8
+DW_AT_decl_file : 5
+DW_AT_decl_line : 90
+<3><3d5>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_type : <0x3df>
+DW_AT_decl_file : 5
+DW_AT_decl_line : 91
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><3df>
+Abbrev Number: 8 (DW_TAG_structure_type)
+DW_AT_byte_size : 8
+DW_AT_decl_file : 5
+DW_AT_decl_line : 91
+<4><3e3>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x352): __padding_rt_sigset
-DW_AT_type : <0x530>
+DW_AT_name : (indirect string, offset: 0x404): uc_sigmask
+DW_AT_type : <0x531>
DW_AT_decl_file : 5
DW_AT_decl_line : 92
-DW_AT_data_member_location: 3 byte block: 23 c4 22 (DW_OP_plus_uconst: 4420)
-<2><3e3>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<4><3f1>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x37a): __padding
-DW_AT_type : <0x546>
+DW_AT_name : (indirect string, offset: 0x41c): __padding_rt_sigset
+DW_AT_type : <0x55c>
DW_AT_decl_file : 5
DW_AT_decl_line : 94
-DW_AT_data_member_location: 3 byte block: 23 c8 22 (DW_OP_plus_uconst: 4424)
-<2><3f2>
-Abbrev Number: 17 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x384): uc_regspace
-DW_AT_type : <0x553>
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<3><400>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x444): uc_sigmask64
+DW_AT_type : <0x572>
DW_AT_decl_file : 5
-DW_AT_decl_line : 95
+DW_AT_decl_line : 96
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><40f>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x463): __padding
+DW_AT_type : <0x59d>
+DW_AT_decl_file : 5
+DW_AT_decl_line : 99
+DW_AT_data_member_location: 3 byte block: 23 c8 22 (DW_OP_plus_uconst: 4424)
+<2><41e>
+Abbrev Number: 17 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x46d): uc_regspace
+DW_AT_type : <0x5aa>
+DW_AT_decl_file : 5
+DW_AT_decl_line : 100
Unknown AT value: 88: 8
DW_AT_data_member_location: 3 byte block: 23 c0 23 (DW_OP_plus_uconst: 4544)
-<1><403>
+<1><42f>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x268): long unsigned int
+DW_AT_name : (indirect string, offset: 0x332): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><40a>
+<1><436>
Abbrev Number: 18 (DW_TAG_pointer_type)
-DW_AT_type : <0x384>
-<1><40f>
+DW_AT_type : <0x385>
+<1><43b>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x41a>
-DW_AT_name : (indirect string, offset: 0x2b5): stack_t
+DW_AT_type : <0x446>
+DW_AT_name : (indirect string, offset: 0x37f): stack_t
DW_AT_decl_file : 6
DW_AT_decl_line : 97
-<1><41a>
+<1><446>
Abbrev Number: 6 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x2a9): sigaltstack
+DW_AT_name : (indirect string, offset: 0x373): sigaltstack
DW_AT_byte_size : 12
DW_AT_decl_file : 6
DW_AT_decl_line : 93
-<2><422>
+<2><44e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x28b): ss_sp
-DW_AT_type : <0x349>
+DW_AT_name : (indirect string, offset: 0x355): ss_sp
+DW_AT_type : <0x34a>
DW_AT_decl_file : 6
DW_AT_decl_line : 94
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><430>
+<2><45c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x291): ss_flags
-DW_AT_type : <0x2c2>
+DW_AT_name : (indirect string, offset: 0x35b): ss_flags
+DW_AT_type : <0x2c3>
DW_AT_decl_file : 6
DW_AT_decl_line : 95
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><43e>
+<2><46a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x29a): ss_size
-DW_AT_type : <0x44d>
+DW_AT_name : (indirect string, offset: 0x364): ss_size
+DW_AT_type : <0x479>
DW_AT_decl_file : 6
DW_AT_decl_line : 96
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><44d>
+<1><479>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2f3>
-DW_AT_name : (indirect string, offset: 0x2a2): size_t
+DW_AT_type : <0x2f4>
+DW_AT_name : (indirect string, offset: 0x36c): size_t
DW_AT_decl_file : 7
DW_AT_decl_line : 62
-<1><458>
+<1><484>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x463>
-DW_AT_name : (indirect string, offset: 0x32f): mcontext_t
+DW_AT_type : <0x48f>
+DW_AT_name : (indirect string, offset: 0x3f9): mcontext_t
DW_AT_decl_file : 5
DW_AT_decl_line : 83
-<1><463>
+<1><48f>
Abbrev Number: 16 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x324): sigcontext
+DW_AT_name : (indirect string, offset: 0x3ee): sigcontext
DW_AT_byte_size : 4384
DW_AT_decl_file : 8
-DW_AT_decl_line : 22
-<2><46c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2c9): fault_address
-DW_AT_type : <0x4c6>
-DW_AT_decl_file : 8
DW_AT_decl_line : 23
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><47a>
+<2><498>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f4): regs
-DW_AT_type : <0x4d8>
+DW_AT_name : (indirect string, offset: 0x393): fault_address
+DW_AT_type : <0x4f2>
DW_AT_decl_file : 8
DW_AT_decl_line : 24
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><488>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f9): sp
-DW_AT_type : <0x4c6>
-DW_AT_decl_file : 8
-DW_AT_decl_line : 25
-DW_AT_data_member_location: 3 byte block: 23 80 2 (DW_OP_plus_uconst: 256)
-<2><497>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2fc): pc
-DW_AT_type : <0x4c6>
-DW_AT_decl_file : 8
-DW_AT_decl_line : 26
-DW_AT_data_member_location: 3 byte block: 23 88 2 (DW_OP_plus_uconst: 264)
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
<2><4a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2ff): pstate
-DW_AT_type : <0x4c6>
+DW_AT_name : (indirect string, offset: 0x3be): regs
+DW_AT_type : <0x504>
+DW_AT_decl_file : 8
+DW_AT_decl_line : 25
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><4b4>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3c3): sp
+DW_AT_type : <0x4f2>
+DW_AT_decl_file : 8
+DW_AT_decl_line : 26
+DW_AT_data_member_location: 3 byte block: 23 80 2 (DW_OP_plus_uconst: 256)
+<2><4c3>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3c6): pc
+DW_AT_type : <0x4f2>
DW_AT_decl_file : 8
DW_AT_decl_line : 27
-DW_AT_data_member_location: 3 byte block: 23 90 2 (DW_OP_plus_uconst: 272)
-<2><4b5>
-Abbrev Number: 17 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x306): __reserved
-DW_AT_type : <0x4e5>
+DW_AT_data_member_location: 3 byte block: 23 88 2 (DW_OP_plus_uconst: 264)
+<2><4d2>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3c9): pstate
+DW_AT_type : <0x4f2>
DW_AT_decl_file : 8
DW_AT_decl_line : 28
+DW_AT_data_member_location: 3 byte block: 23 90 2 (DW_OP_plus_uconst: 272)
+<2><4e1>
+Abbrev Number: 17 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3d0): __reserved
+DW_AT_type : <0x511>
+DW_AT_decl_file : 8
+DW_AT_decl_line : 29
Unknown AT value: 88: 16
DW_AT_data_member_location: 3 byte block: 23 a0 2 (DW_OP_plus_uconst: 288)
-<1><4c6>
+<1><4f2>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x4d1>
-DW_AT_name : (indirect string, offset: 0x2ee): __u64
+DW_AT_type : <0x4fd>
+DW_AT_name : (indirect string, offset: 0x3b8): __u64
DW_AT_decl_file : 3
DW_AT_decl_line : 31
-<1><4d1>
+<1><4fd>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x2d7): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x3a1): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><4d8>
+<1><504>
Abbrev Number: 11 (DW_TAG_array_type)
-DW_AT_type : <0x4c6>
-<2><4dd>
+DW_AT_type : <0x4f2>
+<2><509>
Abbrev Number: 12 (DW_TAG_subrange_type)
-DW_AT_type : <0x2d6>
+DW_AT_type : <0x2d7>
DW_AT_lower_bound : 0
DW_AT_count : 31
-<1><4e5>
+<1><511>
Abbrev Number: 11 (DW_TAG_array_type)
-DW_AT_type : <0x4f3>
-<2><4ea>
+DW_AT_type : <0x51f>
+<2><516>
Abbrev Number: 19 (DW_TAG_subrange_type)
-DW_AT_type : <0x2d6>
+DW_AT_type : <0x2d7>
DW_AT_lower_bound : 0
DW_AT_count : 4096
-<1><4f3>
+<1><51f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x4fe>
-DW_AT_name : (indirect string, offset: 0x31f): __u8
+DW_AT_type : <0x52a>
+DW_AT_name : (indirect string, offset: 0x3e9): __u8
DW_AT_decl_file : 3
DW_AT_decl_line : 24
-<1><4fe>
+<1><52a>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x311): unsigned char
+DW_AT_name : (indirect string, offset: 0x3db): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><505>
+<1><531>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x510>
-DW_AT_name : (indirect string, offset: 0x349): sigset_t
+DW_AT_type : <0x53c>
+DW_AT_name : (indirect string, offset: 0x413): sigset_t
DW_AT_decl_file : 6
DW_AT_decl_line : 79
-<1><510>
+<1><53c>
Abbrev Number: 8 (DW_TAG_structure_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 6
DW_AT_decl_line : 77
-<2><514>
+<2><540>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x345): sig
-DW_AT_type : <0x523>
+DW_AT_name : (indirect string, offset: 0x40f): sig
+DW_AT_type : <0x54f>
DW_AT_decl_file : 6
DW_AT_decl_line : 78
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><523>
+<1><54f>
Abbrev Number: 11 (DW_TAG_array_type)
-DW_AT_type : <0x403>
-<2><528>
+DW_AT_type : <0x42f>
+<2><554>
Abbrev Number: 12 (DW_TAG_subrange_type)
-DW_AT_type : <0x2d6>
+DW_AT_type : <0x2d7>
DW_AT_lower_bound : 0
DW_AT_count : 1
-<1><530>
+<1><55c>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x53b>
-DW_AT_name : (indirect string, offset: 0x371): uint32_t
+DW_AT_type : <0x567>
+DW_AT_name : (indirect string, offset: 0x43b): uint32_t
DW_AT_decl_file : 9
DW_AT_decl_line : 65
-<1><53b>
+<1><567>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2f3>
-DW_AT_name : (indirect string, offset: 0x366): __uint32_t
+DW_AT_type : <0x2f4>
+DW_AT_name : (indirect string, offset: 0x430): __uint32_t
DW_AT_decl_file : 9
DW_AT_decl_line : 41
-<1><546>
+<1><572>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x57d>
+DW_AT_name : (indirect string, offset: 0x458): sigset64_t
+DW_AT_decl_file : 10
+DW_AT_decl_line : 67
+<1><57d>
+Abbrev Number: 8 (DW_TAG_structure_type)
+DW_AT_byte_size : 8
+DW_AT_decl_file : 10
+DW_AT_decl_line : 67
+<2><581>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x451): __bits
+DW_AT_type : <0x590>
+DW_AT_decl_file : 10
+DW_AT_decl_line : 67
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><590>
Abbrev Number: 11 (DW_TAG_array_type)
-DW_AT_type : <0x312>
-<2><54b>
+DW_AT_type : <0x42f>
+<2><595>
Abbrev Number: 12 (DW_TAG_subrange_type)
-DW_AT_type : <0x2d6>
+DW_AT_type : <0x2d7>
+DW_AT_lower_bound : 0
+DW_AT_count : 2
+<1><59d>
+Abbrev Number: 11 (DW_TAG_array_type)
+DW_AT_type : <0x313>
+<2><5a2>
+Abbrev Number: 12 (DW_TAG_subrange_type)
+DW_AT_type : <0x2d7>
DW_AT_lower_bound : 0
DW_AT_count : 120
-<1><553>
+<1><5aa>
Abbrev Number: 11 (DW_TAG_array_type)
-DW_AT_type : <0x403>
-<2><558>
+DW_AT_type : <0x42f>
+<2><5af>
Abbrev Number: 12 (DW_TAG_subrange_type)
-DW_AT_type : <0x2d6>
+DW_AT_type : <0x2d7>
DW_AT_lower_bound : 0
DW_AT_count : 128
diff --git a/mpers-m32/struct_rt_sigframe.h b/mpers-m32/struct_rt_sigframe.h
index c9e2985..30f64f4 100644
--- a/mpers-m32/struct_rt_sigframe.h
+++ b/mpers-m32/struct_rt_sigframe.h
@@ -82,10 +82,17 @@
unsigned char mpers_filler_4[8];
unsigned char __reserved[4096];
} ATTRIBUTE_PACKED uc_mcontext;
+union {
+struct {
struct {
uint32_t sig[1];
} ATTRIBUTE_PACKED uc_sigmask;
uint32_t __padding_rt_sigset;
+} ATTRIBUTE_PACKED ;
+struct {
+uint32_t __bits[2];
+} ATTRIBUTE_PACKED uc_sigmask64;
+} ;
char __padding[120];
uint32_t uc_regspace[128];
} ATTRIBUTE_PACKED uc;
diff --git a/mpers-m32/struct_rtc_pll_info.d1 b/mpers-m32/struct_rtc_pll_info.d1
index 3f5a75a..fe744c5 100644
--- a/mpers-m32/struct_rtc_pll_info.d1
+++ b/mpers-m32/struct_rtc_pll_info.d1
@@ -1,83 +1,84 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xb1 (32-bit)
+ Length: 0xb2 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_rtc_pll_info.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_rtc_pll_info.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5d): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x98): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 2
- <29> DW_AT_decl_line : 38
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x108): struct_rtc_pll_info
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 36
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xfb): rtc_pll_info
- <40> DW_AT_byte_size : 28
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 37
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa9): pll_ctrl
- <48> DW_AT_type : <0xa6>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 38
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xb6): pll_value
- <56> DW_AT_type : <0xa6>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 39
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xc0): pll_max
- <64> DW_AT_type : <0xa6>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 40
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xc8): pll_min
- <72> DW_AT_type : <0xa6>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 41
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xd0): pll_posmult
- <80> DW_AT_type : <0xa6>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 42
- <86> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0xdc): pll_negmult
- <8e> DW_AT_type : <0xa6>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 43
- <94> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0xe8): pll_clock
- <9c> DW_AT_type : <0xad>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 44
- <a2> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><a5>: Abbrev Number: 0
- <1><a6>: Abbrev Number: 6 (DW_TAG_base_type)
- <a7> DW_AT_name : (indirect string, offset: 0xb2): int
- <ab> DW_AT_encoding : 5 (signed)
- <ac> DW_AT_byte_size : 4
- <1><ad>: Abbrev Number: 6 (DW_TAG_base_type)
- <ae> DW_AT_name : (indirect string, offset: 0xf2): long int
- <b2> DW_AT_encoding : 5 (signed)
- <b3> DW_AT_byte_size : 4
- <1><b4>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x127): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x162): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 38
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1d2): struct_rtc_pll_info
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 36
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1c5): rtc_pll_info
+ <41> DW_AT_byte_size : 28
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 37
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x173): pll_ctrl
+ <49> DW_AT_type : <0xa7>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 38
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x180): pll_value
+ <57> DW_AT_type : <0xa7>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 39
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x18a): pll_max
+ <65> DW_AT_type : <0xa7>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 40
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x192): pll_min
+ <73> DW_AT_type : <0xa7>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 41
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x19a): pll_posmult
+ <81> DW_AT_type : <0xa7>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 42
+ <87> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1a6): pll_negmult
+ <8f> DW_AT_type : <0xa7>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 43
+ <95> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1b2): pll_clock
+ <9d> DW_AT_type : <0xae>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 44
+ <a3> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><a6>: Abbrev Number: 0
+ <1><a7>: Abbrev Number: 6 (DW_TAG_base_type)
+ <a8> DW_AT_name : (indirect string, offset: 0x17c): int
+ <ac> DW_AT_encoding : 5 (signed)
+ <ad> DW_AT_byte_size : 4
+ <1><ae>: Abbrev Number: 6 (DW_TAG_base_type)
+ <af> DW_AT_name : (indirect string, offset: 0x1bc): long int
+ <b3> DW_AT_encoding : 5 (signed)
+ <b4> DW_AT_byte_size : 4
+ <1><b5>: Abbrev Number: 0
diff --git a/mpers-m32/struct_rtc_pll_info.d2 b/mpers-m32/struct_rtc_pll_info.d2
index 539a972..7ba6a7e 100644
--- a/mpers-m32/struct_rtc_pll_info.d2
+++ b/mpers-m32/struct_rtc_pll_info.d2
@@ -1,79 +1,79 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x98): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x162): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 2
DW_AT_decl_line : 38
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x108): struct_rtc_pll_info
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1d2): struct_rtc_pll_info
DW_AT_decl_file : 2
DW_AT_decl_line : 36
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xfb): rtc_pll_info
+DW_AT_name : (indirect string, offset: 0x1c5): rtc_pll_info
DW_AT_byte_size : 28
DW_AT_decl_file : 1
DW_AT_decl_line : 37
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa9): pll_ctrl
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x173): pll_ctrl
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb6): pll_value
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x180): pll_value
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc0): pll_max
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x18a): pll_max
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc8): pll_min
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x192): pll_min
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd0): pll_posmult
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x19a): pll_posmult
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 42
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdc): pll_negmult
-DW_AT_type : <0xa6>
+DW_AT_name : (indirect string, offset: 0x1a6): pll_negmult
+DW_AT_type : <0xa7>
DW_AT_decl_file : 1
DW_AT_decl_line : 43
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe8): pll_clock
-DW_AT_type : <0xad>
+DW_AT_name : (indirect string, offset: 0x1b2): pll_clock
+DW_AT_type : <0xae>
DW_AT_decl_file : 1
DW_AT_decl_line : 44
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<1><a6>
+<1><a7>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb2): int
+DW_AT_name : (indirect string, offset: 0x17c): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><ad>
+<1><ae>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf2): long int
+DW_AT_name : (indirect string, offset: 0x1bc): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_sg_io_hdr.d1 b/mpers-m32/struct_sg_io_hdr.d1
index a373de4..3b8e63a 100644
--- a/mpers-m32/struct_sg_io_hdr.d1
+++ b/mpers-m32/struct_sg_io_hdr.d1
@@ -1,184 +1,185 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x197 (32-bit)
+ Length: 0x198 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_sg_io_hdr.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_sg_io_hdr.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5a): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 2
- <29> DW_AT_decl_line : 41
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x1a9): struct_sg_io_hdr
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 37
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x19f): sg_io_hdr
- <40> DW_AT_byte_size : 64
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 26
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa6): interface_id
- <48> DW_AT_type : <0x178>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 27
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xb7): dxfer_direction
- <56> DW_AT_type : <0x178>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 28
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xc7): cmd_len
- <64> DW_AT_type : <0x17f>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 29
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xdd): mx_sb_len
- <72> DW_AT_type : <0x17f>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 30
- <78> DW_AT_data_member_location: 2 byte block: 23 9 (DW_OP_plus_uconst: 9)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xe7): iovec_count
- <80> DW_AT_type : <0x186>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 31
- <86> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x102): dxfer_len
- <8e> DW_AT_type : <0x18d>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 32
- <94> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x119): dxferp
- <9c> DW_AT_type : <0x194>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 33
- <a2> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x120): cmdp
- <aa> DW_AT_type : <0x195>
- <ae> DW_AT_decl_file : 1
- <af> DW_AT_decl_line : 34
- <b0> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x125): sbp
- <b8> DW_AT_type : <0x194>
- <bc> DW_AT_decl_file : 1
- <bd> DW_AT_decl_line : 35
- <be> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x129): timeout
- <c6> DW_AT_type : <0x18d>
- <ca> DW_AT_decl_file : 1
- <cb> DW_AT_decl_line : 36
- <cc> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x131): flags
- <d4> DW_AT_type : <0x18d>
- <d8> DW_AT_decl_file : 1
- <d9> DW_AT_decl_line : 37
- <da> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><dd>: Abbrev Number: 5 (DW_TAG_member)
- <de> DW_AT_name : (indirect string, offset: 0x137): pack_id
- <e2> DW_AT_type : <0x178>
- <e6> DW_AT_decl_file : 1
- <e7> DW_AT_decl_line : 38
- <e8> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><eb>: Abbrev Number: 5 (DW_TAG_member)
- <ec> DW_AT_name : (indirect string, offset: 0x13f): usr_ptr
- <f0> DW_AT_type : <0x194>
- <f4> DW_AT_decl_file : 1
- <f5> DW_AT_decl_line : 39
- <f6> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><f9>: Abbrev Number: 5 (DW_TAG_member)
- <fa> DW_AT_name : (indirect string, offset: 0x147): status
- <fe> DW_AT_type : <0x17f>
- <102> DW_AT_decl_file : 1
- <103> DW_AT_decl_line : 40
- <104> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><107>: Abbrev Number: 5 (DW_TAG_member)
- <108> DW_AT_name : (indirect string, offset: 0x14e): masked_status
- <10c> DW_AT_type : <0x17f>
- <110> DW_AT_decl_file : 1
- <111> DW_AT_decl_line : 41
- <112> DW_AT_data_member_location: 2 byte block: 23 2d (DW_OP_plus_uconst: 45)
- <2><115>: Abbrev Number: 5 (DW_TAG_member)
- <116> DW_AT_name : (indirect string, offset: 0x15c): msg_status
- <11a> DW_AT_type : <0x17f>
- <11e> DW_AT_decl_file : 1
- <11f> DW_AT_decl_line : 42
- <120> DW_AT_data_member_location: 2 byte block: 23 2e (DW_OP_plus_uconst: 46)
- <2><123>: Abbrev Number: 5 (DW_TAG_member)
- <124> DW_AT_name : (indirect string, offset: 0x167): sb_len_wr
- <128> DW_AT_type : <0x17f>
- <12c> DW_AT_decl_file : 1
- <12d> DW_AT_decl_line : 43
- <12e> DW_AT_data_member_location: 2 byte block: 23 2f (DW_OP_plus_uconst: 47)
- <2><131>: Abbrev Number: 5 (DW_TAG_member)
- <132> DW_AT_name : (indirect string, offset: 0x171): host_status
- <136> DW_AT_type : <0x186>
- <13a> DW_AT_decl_file : 1
- <13b> DW_AT_decl_line : 44
- <13c> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><13f>: Abbrev Number: 5 (DW_TAG_member)
- <140> DW_AT_name : (indirect string, offset: 0x17d): driver_status
- <144> DW_AT_type : <0x186>
- <148> DW_AT_decl_file : 1
- <149> DW_AT_decl_line : 45
- <14a> DW_AT_data_member_location: 2 byte block: 23 32 (DW_OP_plus_uconst: 50)
- <2><14d>: Abbrev Number: 5 (DW_TAG_member)
- <14e> DW_AT_name : (indirect string, offset: 0x18b): resid
- <152> DW_AT_type : <0x178>
- <156> DW_AT_decl_file : 1
- <157> DW_AT_decl_line : 46
- <158> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><15b>: Abbrev Number: 5 (DW_TAG_member)
- <15c> DW_AT_name : (indirect string, offset: 0x191): duration
- <160> DW_AT_type : <0x18d>
- <164> DW_AT_decl_file : 1
- <165> DW_AT_decl_line : 47
- <166> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><169>: Abbrev Number: 5 (DW_TAG_member)
- <16a> DW_AT_name : (indirect string, offset: 0x19a): info
- <16e> DW_AT_type : <0x18d>
- <172> DW_AT_decl_file : 1
- <173> DW_AT_decl_line : 48
- <174> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><177>: Abbrev Number: 0
- <1><178>: Abbrev Number: 6 (DW_TAG_base_type)
- <179> DW_AT_name : (indirect string, offset: 0xb3): int
- <17d> DW_AT_encoding : 5 (signed)
- <17e> DW_AT_byte_size : 4
- <1><17f>: Abbrev Number: 6 (DW_TAG_base_type)
- <180> DW_AT_name : (indirect string, offset: 0xcf): unsigned char
- <184> DW_AT_encoding : 8 (unsigned char)
- <185> DW_AT_byte_size : 1
- <1><186>: Abbrev Number: 6 (DW_TAG_base_type)
- <187> DW_AT_name : (indirect string, offset: 0xf3): unsigned short
- <18b> DW_AT_encoding : 7 (unsigned)
- <18c> DW_AT_byte_size : 2
- <1><18d>: Abbrev Number: 6 (DW_TAG_base_type)
- <18e> DW_AT_name : (indirect string, offset: 0x10c): unsigned int
- <192> DW_AT_encoding : 7 (unsigned)
- <193> DW_AT_byte_size : 4
- <1><194>: Abbrev Number: 7 (DW_TAG_pointer_type)
- <1><195>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <196> DW_AT_type : <0x17f>
- <1><19a>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x124): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 41
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x273): struct_sg_io_hdr
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 37
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x269): sg_io_hdr
+ <41> DW_AT_byte_size : 64
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 26
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x170): interface_id
+ <49> DW_AT_type : <0x179>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 27
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x181): dxfer_direction
+ <57> DW_AT_type : <0x179>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 28
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x191): cmd_len
+ <65> DW_AT_type : <0x180>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 29
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1a7): mx_sb_len
+ <73> DW_AT_type : <0x180>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 30
+ <79> DW_AT_data_member_location: 2 byte block: 23 9 (DW_OP_plus_uconst: 9)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1b1): iovec_count
+ <81> DW_AT_type : <0x187>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 31
+ <87> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1cc): dxfer_len
+ <8f> DW_AT_type : <0x18e>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 32
+ <95> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1e3): dxferp
+ <9d> DW_AT_type : <0x195>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 33
+ <a3> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1ea): cmdp
+ <ab> DW_AT_type : <0x196>
+ <af> DW_AT_decl_file : 1
+ <b0> DW_AT_decl_line : 34
+ <b1> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x1ef): sbp
+ <b9> DW_AT_type : <0x195>
+ <bd> DW_AT_decl_file : 1
+ <be> DW_AT_decl_line : 35
+ <bf> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x1f3): timeout
+ <c7> DW_AT_type : <0x18e>
+ <cb> DW_AT_decl_file : 1
+ <cc> DW_AT_decl_line : 36
+ <cd> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x1fb): flags
+ <d5> DW_AT_type : <0x18e>
+ <d9> DW_AT_decl_file : 1
+ <da> DW_AT_decl_line : 37
+ <db> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><de>: Abbrev Number: 5 (DW_TAG_member)
+ <df> DW_AT_name : (indirect string, offset: 0x201): pack_id
+ <e3> DW_AT_type : <0x179>
+ <e7> DW_AT_decl_file : 1
+ <e8> DW_AT_decl_line : 38
+ <e9> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><ec>: Abbrev Number: 5 (DW_TAG_member)
+ <ed> DW_AT_name : (indirect string, offset: 0x209): usr_ptr
+ <f1> DW_AT_type : <0x195>
+ <f5> DW_AT_decl_file : 1
+ <f6> DW_AT_decl_line : 39
+ <f7> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><fa>: Abbrev Number: 5 (DW_TAG_member)
+ <fb> DW_AT_name : (indirect string, offset: 0x211): status
+ <ff> DW_AT_type : <0x180>
+ <103> DW_AT_decl_file : 1
+ <104> DW_AT_decl_line : 40
+ <105> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><108>: Abbrev Number: 5 (DW_TAG_member)
+ <109> DW_AT_name : (indirect string, offset: 0x218): masked_status
+ <10d> DW_AT_type : <0x180>
+ <111> DW_AT_decl_file : 1
+ <112> DW_AT_decl_line : 41
+ <113> DW_AT_data_member_location: 2 byte block: 23 2d (DW_OP_plus_uconst: 45)
+ <2><116>: Abbrev Number: 5 (DW_TAG_member)
+ <117> DW_AT_name : (indirect string, offset: 0x226): msg_status
+ <11b> DW_AT_type : <0x180>
+ <11f> DW_AT_decl_file : 1
+ <120> DW_AT_decl_line : 42
+ <121> DW_AT_data_member_location: 2 byte block: 23 2e (DW_OP_plus_uconst: 46)
+ <2><124>: Abbrev Number: 5 (DW_TAG_member)
+ <125> DW_AT_name : (indirect string, offset: 0x231): sb_len_wr
+ <129> DW_AT_type : <0x180>
+ <12d> DW_AT_decl_file : 1
+ <12e> DW_AT_decl_line : 43
+ <12f> DW_AT_data_member_location: 2 byte block: 23 2f (DW_OP_plus_uconst: 47)
+ <2><132>: Abbrev Number: 5 (DW_TAG_member)
+ <133> DW_AT_name : (indirect string, offset: 0x23b): host_status
+ <137> DW_AT_type : <0x187>
+ <13b> DW_AT_decl_file : 1
+ <13c> DW_AT_decl_line : 44
+ <13d> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><140>: Abbrev Number: 5 (DW_TAG_member)
+ <141> DW_AT_name : (indirect string, offset: 0x247): driver_status
+ <145> DW_AT_type : <0x187>
+ <149> DW_AT_decl_file : 1
+ <14a> DW_AT_decl_line : 45
+ <14b> DW_AT_data_member_location: 2 byte block: 23 32 (DW_OP_plus_uconst: 50)
+ <2><14e>: Abbrev Number: 5 (DW_TAG_member)
+ <14f> DW_AT_name : (indirect string, offset: 0x255): resid
+ <153> DW_AT_type : <0x179>
+ <157> DW_AT_decl_file : 1
+ <158> DW_AT_decl_line : 46
+ <159> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><15c>: Abbrev Number: 5 (DW_TAG_member)
+ <15d> DW_AT_name : (indirect string, offset: 0x25b): duration
+ <161> DW_AT_type : <0x18e>
+ <165> DW_AT_decl_file : 1
+ <166> DW_AT_decl_line : 47
+ <167> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><16a>: Abbrev Number: 5 (DW_TAG_member)
+ <16b> DW_AT_name : (indirect string, offset: 0x264): info
+ <16f> DW_AT_type : <0x18e>
+ <173> DW_AT_decl_file : 1
+ <174> DW_AT_decl_line : 48
+ <175> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><178>: Abbrev Number: 0
+ <1><179>: Abbrev Number: 6 (DW_TAG_base_type)
+ <17a> DW_AT_name : (indirect string, offset: 0x17d): int
+ <17e> DW_AT_encoding : 5 (signed)
+ <17f> DW_AT_byte_size : 4
+ <1><180>: Abbrev Number: 6 (DW_TAG_base_type)
+ <181> DW_AT_name : (indirect string, offset: 0x199): unsigned char
+ <185> DW_AT_encoding : 8 (unsigned char)
+ <186> DW_AT_byte_size : 1
+ <1><187>: Abbrev Number: 6 (DW_TAG_base_type)
+ <188> DW_AT_name : (indirect string, offset: 0x1bd): unsigned short
+ <18c> DW_AT_encoding : 7 (unsigned)
+ <18d> DW_AT_byte_size : 2
+ <1><18e>: Abbrev Number: 6 (DW_TAG_base_type)
+ <18f> DW_AT_name : (indirect string, offset: 0x1d6): unsigned int
+ <193> DW_AT_encoding : 7 (unsigned)
+ <194> DW_AT_byte_size : 4
+ <1><195>: Abbrev Number: 7 (DW_TAG_pointer_type)
+ <1><196>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <197> DW_AT_type : <0x180>
+ <1><19b>: Abbrev Number: 0
diff --git a/mpers-m32/struct_sg_io_hdr.d2 b/mpers-m32/struct_sg_io_hdr.d2
index 34a80b4..03dbaee 100644
--- a/mpers-m32/struct_sg_io_hdr.d2
+++ b/mpers-m32/struct_sg_io_hdr.d2
@@ -1,199 +1,199 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 2
DW_AT_decl_line : 41
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x1a9): struct_sg_io_hdr
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x273): struct_sg_io_hdr
DW_AT_decl_file : 2
DW_AT_decl_line : 37
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x19f): sg_io_hdr
+DW_AT_name : (indirect string, offset: 0x269): sg_io_hdr
DW_AT_byte_size : 64
DW_AT_decl_file : 1
DW_AT_decl_line : 26
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa6): interface_id
-DW_AT_type : <0x178>
+DW_AT_name : (indirect string, offset: 0x170): interface_id
+DW_AT_type : <0x179>
DW_AT_decl_file : 1
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb7): dxfer_direction
-DW_AT_type : <0x178>
+DW_AT_name : (indirect string, offset: 0x181): dxfer_direction
+DW_AT_type : <0x179>
DW_AT_decl_file : 1
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc7): cmd_len
-DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x191): cmd_len
+DW_AT_type : <0x180>
DW_AT_decl_file : 1
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdd): mx_sb_len
-DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x1a7): mx_sb_len
+DW_AT_type : <0x180>
DW_AT_decl_file : 1
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 9 (DW_OP_plus_uconst: 9)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe7): iovec_count
-DW_AT_type : <0x186>
+DW_AT_name : (indirect string, offset: 0x1b1): iovec_count
+DW_AT_type : <0x187>
DW_AT_decl_file : 1
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x102): dxfer_len
-DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x1cc): dxfer_len
+DW_AT_type : <0x18e>
DW_AT_decl_file : 1
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x119): dxferp
-DW_AT_type : <0x194>
+DW_AT_name : (indirect string, offset: 0x1e3): dxferp
+DW_AT_type : <0x195>
DW_AT_decl_file : 1
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x120): cmdp
-DW_AT_type : <0x195>
+DW_AT_name : (indirect string, offset: 0x1ea): cmdp
+DW_AT_type : <0x196>
DW_AT_decl_file : 1
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x125): sbp
-DW_AT_type : <0x194>
+DW_AT_name : (indirect string, offset: 0x1ef): sbp
+DW_AT_type : <0x195>
DW_AT_decl_file : 1
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x129): timeout
-DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x1f3): timeout
+DW_AT_type : <0x18e>
DW_AT_decl_file : 1
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x131): flags
-DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x1fb): flags
+DW_AT_type : <0x18e>
DW_AT_decl_file : 1
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><dd>
+<2><de>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x137): pack_id
-DW_AT_type : <0x178>
+DW_AT_name : (indirect string, offset: 0x201): pack_id
+DW_AT_type : <0x179>
DW_AT_decl_file : 1
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><eb>
+<2><ec>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13f): usr_ptr
-DW_AT_type : <0x194>
+DW_AT_name : (indirect string, offset: 0x209): usr_ptr
+DW_AT_type : <0x195>
DW_AT_decl_file : 1
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><f9>
+<2><fa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x147): status
-DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x211): status
+DW_AT_type : <0x180>
DW_AT_decl_file : 1
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><107>
+<2><108>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14e): masked_status
-DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x218): masked_status
+DW_AT_type : <0x180>
DW_AT_decl_file : 1
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 2d (DW_OP_plus_uconst: 45)
-<2><115>
+<2><116>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15c): msg_status
-DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x226): msg_status
+DW_AT_type : <0x180>
DW_AT_decl_file : 1
DW_AT_decl_line : 42
DW_AT_data_member_location: 2 byte block: 23 2e (DW_OP_plus_uconst: 46)
-<2><123>
+<2><124>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x167): sb_len_wr
-DW_AT_type : <0x17f>
+DW_AT_name : (indirect string, offset: 0x231): sb_len_wr
+DW_AT_type : <0x180>
DW_AT_decl_file : 1
DW_AT_decl_line : 43
DW_AT_data_member_location: 2 byte block: 23 2f (DW_OP_plus_uconst: 47)
-<2><131>
+<2><132>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x171): host_status
-DW_AT_type : <0x186>
+DW_AT_name : (indirect string, offset: 0x23b): host_status
+DW_AT_type : <0x187>
DW_AT_decl_file : 1
DW_AT_decl_line : 44
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><13f>
+<2><140>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17d): driver_status
-DW_AT_type : <0x186>
+DW_AT_name : (indirect string, offset: 0x247): driver_status
+DW_AT_type : <0x187>
DW_AT_decl_file : 1
DW_AT_decl_line : 45
DW_AT_data_member_location: 2 byte block: 23 32 (DW_OP_plus_uconst: 50)
-<2><14d>
+<2><14e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x18b): resid
-DW_AT_type : <0x178>
+DW_AT_name : (indirect string, offset: 0x255): resid
+DW_AT_type : <0x179>
DW_AT_decl_file : 1
DW_AT_decl_line : 46
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><15b>
+<2><15c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x191): duration
-DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x25b): duration
+DW_AT_type : <0x18e>
DW_AT_decl_file : 1
DW_AT_decl_line : 47
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><169>
+<2><16a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x19a): info
-DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x264): info
+DW_AT_type : <0x18e>
DW_AT_decl_file : 1
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<1><178>
+<1><179>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb3): int
+DW_AT_name : (indirect string, offset: 0x17d): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><17f>
+<1><180>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xcf): unsigned char
+DW_AT_name : (indirect string, offset: 0x199): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><186>
+<1><187>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf3): unsigned short
+DW_AT_name : (indirect string, offset: 0x1bd): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><18d>
+<1><18e>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x10c): unsigned int
+DW_AT_name : (indirect string, offset: 0x1d6): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><194>
-Abbrev Number: 7 (DW_TAG_pointer_type)
<1><195>
+Abbrev Number: 7 (DW_TAG_pointer_type)
+<1><196>
Abbrev Number: 8 (DW_TAG_pointer_type)
-DW_AT_type : <0x17f>
+DW_AT_type : <0x180>
diff --git a/mpers-m32/struct_sg_req_info.d1 b/mpers-m32/struct_sg_req_info.d1
index bfca2af..09a511d 100644
--- a/mpers-m32/struct_sg_req_info.d1
+++ b/mpers-m32/struct_sg_req_info.d1
@@ -1,94 +1,95 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xc7 (32-bit)
+ Length: 0xc8 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_sg_req_info.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_sg_req_info.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5c): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 2
- <29> DW_AT_decl_line : 41
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x10f): struct_sg_req_info
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 37
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x103): sg_req_info
- <40> DW_AT_byte_size : 20
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 79
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa8): req_state
- <48> DW_AT_type : <0xb4>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 80
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xb7): orphan
- <56> DW_AT_type : <0xb4>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 81
- <5c> DW_AT_data_member_location: 2 byte block: 23 1 (DW_OP_plus_uconst: 1)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xbe): sg_io_owned
- <64> DW_AT_type : <0xb4>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 82
- <6a> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xca): problem
- <72> DW_AT_type : <0xb4>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 83
- <78> DW_AT_data_member_location: 2 byte block: 23 3 (DW_OP_plus_uconst: 3)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xd2): pack_id
- <80> DW_AT_type : <0xbb>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 84
- <86> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0xde): usr_ptr
- <8e> DW_AT_type : <0xc2>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 85
- <94> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0xe6): duration
- <9c> DW_AT_type : <0xc3>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 86
- <a2> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0xfc): unused
- <aa> DW_AT_type : <0xbb>
- <ae> DW_AT_decl_file : 1
- <af> DW_AT_decl_line : 87
- <b0> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><b3>: Abbrev Number: 0
- <1><b4>: Abbrev Number: 6 (DW_TAG_base_type)
- <b5> DW_AT_name : (indirect string, offset: 0xb2): char
- <b9> DW_AT_encoding : 8 (unsigned char)
- <ba> DW_AT_byte_size : 1
- <1><bb>: Abbrev Number: 6 (DW_TAG_base_type)
- <bc> DW_AT_name : (indirect string, offset: 0xda): int
- <c0> DW_AT_encoding : 5 (signed)
- <c1> DW_AT_byte_size : 4
- <1><c2>: Abbrev Number: 7 (DW_TAG_pointer_type)
- <1><c3>: Abbrev Number: 6 (DW_TAG_base_type)
- <c4> DW_AT_name : (indirect string, offset: 0xef): unsigned int
- <c8> DW_AT_encoding : 7 (unsigned)
- <c9> DW_AT_byte_size : 4
- <1><ca>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x126): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 41
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1d9): struct_sg_req_info
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 37
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1cd): sg_req_info
+ <41> DW_AT_byte_size : 20
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 79
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x172): req_state
+ <49> DW_AT_type : <0xb5>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 80
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x181): orphan
+ <57> DW_AT_type : <0xb5>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 81
+ <5d> DW_AT_data_member_location: 2 byte block: 23 1 (DW_OP_plus_uconst: 1)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x188): sg_io_owned
+ <65> DW_AT_type : <0xb5>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 82
+ <6b> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x194): problem
+ <73> DW_AT_type : <0xb5>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 83
+ <79> DW_AT_data_member_location: 2 byte block: 23 3 (DW_OP_plus_uconst: 3)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x19c): pack_id
+ <81> DW_AT_type : <0xbc>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 84
+ <87> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1a8): usr_ptr
+ <8f> DW_AT_type : <0xc3>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 85
+ <95> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1b0): duration
+ <9d> DW_AT_type : <0xc4>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 86
+ <a3> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1c6): unused
+ <ab> DW_AT_type : <0xbc>
+ <af> DW_AT_decl_file : 1
+ <b0> DW_AT_decl_line : 87
+ <b1> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><b4>: Abbrev Number: 0
+ <1><b5>: Abbrev Number: 6 (DW_TAG_base_type)
+ <b6> DW_AT_name : (indirect string, offset: 0x17c): char
+ <ba> DW_AT_encoding : 8 (unsigned char)
+ <bb> DW_AT_byte_size : 1
+ <1><bc>: Abbrev Number: 6 (DW_TAG_base_type)
+ <bd> DW_AT_name : (indirect string, offset: 0x1a4): int
+ <c1> DW_AT_encoding : 5 (signed)
+ <c2> DW_AT_byte_size : 4
+ <1><c3>: Abbrev Number: 7 (DW_TAG_pointer_type)
+ <1><c4>: Abbrev Number: 6 (DW_TAG_base_type)
+ <c5> DW_AT_name : (indirect string, offset: 0x1b9): unsigned int
+ <c9> DW_AT_encoding : 7 (unsigned)
+ <ca> DW_AT_byte_size : 4
+ <1><cb>: Abbrev Number: 0
diff --git a/mpers-m32/struct_sg_req_info.d2 b/mpers-m32/struct_sg_req_info.d2
index ff6f83f..cf4defb 100644
--- a/mpers-m32/struct_sg_req_info.d2
+++ b/mpers-m32/struct_sg_req_info.d2
@@ -1,93 +1,93 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 2
DW_AT_decl_line : 41
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x10f): struct_sg_req_info
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1d9): struct_sg_req_info
DW_AT_decl_file : 2
DW_AT_decl_line : 37
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x103): sg_req_info
+DW_AT_name : (indirect string, offset: 0x1cd): sg_req_info
DW_AT_byte_size : 20
DW_AT_decl_file : 1
DW_AT_decl_line : 79
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa8): req_state
-DW_AT_type : <0xb4>
+DW_AT_name : (indirect string, offset: 0x172): req_state
+DW_AT_type : <0xb5>
DW_AT_decl_file : 1
DW_AT_decl_line : 80
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb7): orphan
-DW_AT_type : <0xb4>
+DW_AT_name : (indirect string, offset: 0x181): orphan
+DW_AT_type : <0xb5>
DW_AT_decl_file : 1
DW_AT_decl_line : 81
DW_AT_data_member_location: 2 byte block: 23 1 (DW_OP_plus_uconst: 1)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbe): sg_io_owned
-DW_AT_type : <0xb4>
+DW_AT_name : (indirect string, offset: 0x188): sg_io_owned
+DW_AT_type : <0xb5>
DW_AT_decl_file : 1
DW_AT_decl_line : 82
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xca): problem
-DW_AT_type : <0xb4>
+DW_AT_name : (indirect string, offset: 0x194): problem
+DW_AT_type : <0xb5>
DW_AT_decl_file : 1
DW_AT_decl_line : 83
DW_AT_data_member_location: 2 byte block: 23 3 (DW_OP_plus_uconst: 3)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd2): pack_id
-DW_AT_type : <0xbb>
+DW_AT_name : (indirect string, offset: 0x19c): pack_id
+DW_AT_type : <0xbc>
DW_AT_decl_file : 1
DW_AT_decl_line : 84
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xde): usr_ptr
-DW_AT_type : <0xc2>
+DW_AT_name : (indirect string, offset: 0x1a8): usr_ptr
+DW_AT_type : <0xc3>
DW_AT_decl_file : 1
DW_AT_decl_line : 85
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe6): duration
-DW_AT_type : <0xc3>
+DW_AT_name : (indirect string, offset: 0x1b0): duration
+DW_AT_type : <0xc4>
DW_AT_decl_file : 1
DW_AT_decl_line : 86
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfc): unused
-DW_AT_type : <0xbb>
+DW_AT_name : (indirect string, offset: 0x1c6): unused
+DW_AT_type : <0xbc>
DW_AT_decl_file : 1
DW_AT_decl_line : 87
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<1><b4>
+<1><b5>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb2): char
+DW_AT_name : (indirect string, offset: 0x17c): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><bb>
+<1><bc>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xda): int
+DW_AT_name : (indirect string, offset: 0x1a4): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><c2>
-Abbrev Number: 7 (DW_TAG_pointer_type)
<1><c3>
+Abbrev Number: 7 (DW_TAG_pointer_type)
+<1><c4>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xef): unsigned int
+DW_AT_name : (indirect string, offset: 0x1b9): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_sigevent.d1 b/mpers-m32/struct_sigevent.d1
index 454afcc..0068da8 100644
--- a/mpers-m32/struct_sigevent.d1
+++ b/mpers-m32/struct_sigevent.d1
@@ -1,115 +1,116 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xe6 (32-bit)
+ Length: 0xe7 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_sigevent.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_sigevent.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x59): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x94): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 2
- <29> DW_AT_decl_line : 32
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x121): struct_sigevent
- <39> DW_AT_decl_file : 1
- <3a> DW_AT_decl_line : 45
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_byte_size : 20
- <3d> DW_AT_decl_file : 1
- <3e> DW_AT_decl_line : 31
- <2><3f>: Abbrev Number: 5 (DW_TAG_member)
- <40> DW_AT_name : (indirect string, offset: 0xa5): sigev_value
- <44> DW_AT_type : <0x4d>
- <48> DW_AT_decl_file : 1
- <49> DW_AT_decl_line : 35
- <4a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4d>: Abbrev Number: 6 (DW_TAG_union_type)
- <4e> DW_AT_byte_size : 4
- <4f> DW_AT_decl_file : 1
- <50> DW_AT_decl_line : 32
- <3><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xb1): sival_int
- <56> DW_AT_type : <0xdb>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 33
- <5c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xbf): sival_ptr
- <64> DW_AT_type : <0xe2>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 34
- <6a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><6d>: Abbrev Number: 0
- <2><6e>: Abbrev Number: 5 (DW_TAG_member)
- <6f> DW_AT_name : (indirect string, offset: 0xdb): sigev_signo
- <73> DW_AT_type : <0xdb>
- <77> DW_AT_decl_file : 1
- <78> DW_AT_decl_line : 36
- <79> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><7c>: Abbrev Number: 5 (DW_TAG_member)
- <7d> DW_AT_name : (indirect string, offset: 0xe7): sigev_notify
- <81> DW_AT_type : <0xdb>
- <85> DW_AT_decl_file : 1
- <86> DW_AT_decl_line : 37
- <87> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><8a>: Abbrev Number: 5 (DW_TAG_member)
- <8b> DW_AT_name : (indirect string, offset: 0xf4): sigev_un
- <8f> DW_AT_type : <0x98>
- <93> DW_AT_decl_file : 1
- <94> DW_AT_decl_line : 44
- <95> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><98>: Abbrev Number: 6 (DW_TAG_union_type)
- <99> DW_AT_byte_size : 8
- <9a> DW_AT_decl_file : 1
- <9b> DW_AT_decl_line : 38
- <3><9c>: Abbrev Number: 5 (DW_TAG_member)
- <9d> DW_AT_name : (indirect string, offset: 0xfd): tid
- <a1> DW_AT_type : <0xdb>
- <a5> DW_AT_decl_file : 1
- <a6> DW_AT_decl_line : 39
- <a7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><aa>: Abbrev Number: 5 (DW_TAG_member)
- <ab> DW_AT_name : (indirect string, offset: 0x101): sigev_thread
- <af> DW_AT_type : <0xb8>
- <b3> DW_AT_decl_file : 1
- <b4> DW_AT_decl_line : 43
- <b5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><b8>: Abbrev Number: 4 (DW_TAG_structure_type)
- <b9> DW_AT_byte_size : 8
- <ba> DW_AT_decl_file : 1
- <bb> DW_AT_decl_line : 40
- <4><bc>: Abbrev Number: 5 (DW_TAG_member)
- <bd> DW_AT_name : (indirect string, offset: 0x10e): function
- <c1> DW_AT_type : <0xe2>
- <c5> DW_AT_decl_file : 1
- <c6> DW_AT_decl_line : 41
- <c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <4><ca>: Abbrev Number: 5 (DW_TAG_member)
- <cb> DW_AT_name : (indirect string, offset: 0x117): attribute
- <cf> DW_AT_type : <0xe2>
- <d3> DW_AT_decl_file : 1
- <d4> DW_AT_decl_line : 42
- <d5> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <4><d8>: Abbrev Number: 0
- <3><d9>: Abbrev Number: 0
- <2><da>: Abbrev Number: 0
- <1><db>: Abbrev Number: 7 (DW_TAG_base_type)
- <dc> DW_AT_name : (indirect string, offset: 0xbb): int
- <e0> DW_AT_encoding : 5 (signed)
- <e1> DW_AT_byte_size : 4
- <1><e2>: Abbrev Number: 7 (DW_TAG_base_type)
- <e3> DW_AT_name : (indirect string, offset: 0xc9): long unsigned int
- <e7> DW_AT_encoding : 7 (unsigned)
- <e8> DW_AT_byte_size : 4
- <1><e9>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x123): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15e): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 32
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1eb): struct_sigevent
+ <3a> DW_AT_decl_file : 1
+ <3b> DW_AT_decl_line : 45
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_byte_size : 20
+ <3e> DW_AT_decl_file : 1
+ <3f> DW_AT_decl_line : 31
+ <2><40>: Abbrev Number: 5 (DW_TAG_member)
+ <41> DW_AT_name : (indirect string, offset: 0x16f): sigev_value
+ <45> DW_AT_type : <0x4e>
+ <49> DW_AT_decl_file : 1
+ <4a> DW_AT_decl_line : 35
+ <4b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4e>: Abbrev Number: 6 (DW_TAG_union_type)
+ <4f> DW_AT_byte_size : 4
+ <50> DW_AT_decl_file : 1
+ <51> DW_AT_decl_line : 32
+ <3><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x17b): sival_int
+ <57> DW_AT_type : <0xdc>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 33
+ <5d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x189): sival_ptr
+ <65> DW_AT_type : <0xe3>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 34
+ <6b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><6e>: Abbrev Number: 0
+ <2><6f>: Abbrev Number: 5 (DW_TAG_member)
+ <70> DW_AT_name : (indirect string, offset: 0x1a5): sigev_signo
+ <74> DW_AT_type : <0xdc>
+ <78> DW_AT_decl_file : 1
+ <79> DW_AT_decl_line : 36
+ <7a> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><7d>: Abbrev Number: 5 (DW_TAG_member)
+ <7e> DW_AT_name : (indirect string, offset: 0x1b1): sigev_notify
+ <82> DW_AT_type : <0xdc>
+ <86> DW_AT_decl_file : 1
+ <87> DW_AT_decl_line : 37
+ <88> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><8b>: Abbrev Number: 5 (DW_TAG_member)
+ <8c> DW_AT_name : (indirect string, offset: 0x1be): sigev_un
+ <90> DW_AT_type : <0x99>
+ <94> DW_AT_decl_file : 1
+ <95> DW_AT_decl_line : 44
+ <96> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><99>: Abbrev Number: 6 (DW_TAG_union_type)
+ <9a> DW_AT_byte_size : 8
+ <9b> DW_AT_decl_file : 1
+ <9c> DW_AT_decl_line : 38
+ <3><9d>: Abbrev Number: 5 (DW_TAG_member)
+ <9e> DW_AT_name : (indirect string, offset: 0x1c7): tid
+ <a2> DW_AT_type : <0xdc>
+ <a6> DW_AT_decl_file : 1
+ <a7> DW_AT_decl_line : 39
+ <a8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><ab>: Abbrev Number: 5 (DW_TAG_member)
+ <ac> DW_AT_name : (indirect string, offset: 0x1cb): sigev_thread
+ <b0> DW_AT_type : <0xb9>
+ <b4> DW_AT_decl_file : 1
+ <b5> DW_AT_decl_line : 43
+ <b6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><b9>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <ba> DW_AT_byte_size : 8
+ <bb> DW_AT_decl_file : 1
+ <bc> DW_AT_decl_line : 40
+ <4><bd>: Abbrev Number: 5 (DW_TAG_member)
+ <be> DW_AT_name : (indirect string, offset: 0x1d8): function
+ <c2> DW_AT_type : <0xe3>
+ <c6> DW_AT_decl_file : 1
+ <c7> DW_AT_decl_line : 41
+ <c8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <4><cb>: Abbrev Number: 5 (DW_TAG_member)
+ <cc> DW_AT_name : (indirect string, offset: 0x1e1): attribute
+ <d0> DW_AT_type : <0xe3>
+ <d4> DW_AT_decl_file : 1
+ <d5> DW_AT_decl_line : 42
+ <d6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <4><d9>: Abbrev Number: 0
+ <3><da>: Abbrev Number: 0
+ <2><db>: Abbrev Number: 0
+ <1><dc>: Abbrev Number: 7 (DW_TAG_base_type)
+ <dd> DW_AT_name : (indirect string, offset: 0x185): int
+ <e1> DW_AT_encoding : 5 (signed)
+ <e2> DW_AT_byte_size : 4
+ <1><e3>: Abbrev Number: 7 (DW_TAG_base_type)
+ <e4> DW_AT_name : (indirect string, offset: 0x193): long unsigned int
+ <e8> DW_AT_encoding : 7 (unsigned)
+ <e9> DW_AT_byte_size : 4
+ <1><ea>: Abbrev Number: 0
diff --git a/mpers-m32/struct_sigevent.d2 b/mpers-m32/struct_sigevent.d2
index 5942408..1a21037 100644
--- a/mpers-m32/struct_sigevent.d2
+++ b/mpers-m32/struct_sigevent.d2
@@ -1,114 +1,114 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x94): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15e): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 2
DW_AT_decl_line : 32
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x121): struct_sigevent
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1eb): struct_sigevent
DW_AT_decl_file : 1
DW_AT_decl_line : 45
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 20
DW_AT_decl_file : 1
DW_AT_decl_line : 31
-<2><3f>
+<2><40>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa5): sigev_value
-DW_AT_type : <0x4d>
+DW_AT_name : (indirect string, offset: 0x16f): sigev_value
+DW_AT_type : <0x4e>
DW_AT_decl_file : 1
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4d>
+<2><4e>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 1
DW_AT_decl_line : 32
-<3><51>
+<3><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb1): sival_int
-DW_AT_type : <0xdb>
+DW_AT_name : (indirect string, offset: 0x17b): sival_int
+DW_AT_type : <0xdc>
DW_AT_decl_file : 1
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><5f>
+<3><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbf): sival_ptr
-DW_AT_type : <0xe2>
+DW_AT_name : (indirect string, offset: 0x189): sival_ptr
+DW_AT_type : <0xe3>
DW_AT_decl_file : 1
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><6e>
+<2><6f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdb): sigev_signo
-DW_AT_type : <0xdb>
+DW_AT_name : (indirect string, offset: 0x1a5): sigev_signo
+DW_AT_type : <0xdc>
DW_AT_decl_file : 1
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><7c>
+<2><7d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe7): sigev_notify
-DW_AT_type : <0xdb>
+DW_AT_name : (indirect string, offset: 0x1b1): sigev_notify
+DW_AT_type : <0xdc>
DW_AT_decl_file : 1
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><8a>
+<2><8b>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf4): sigev_un
-DW_AT_type : <0x98>
+DW_AT_name : (indirect string, offset: 0x1be): sigev_un
+DW_AT_type : <0x99>
DW_AT_decl_file : 1
DW_AT_decl_line : 44
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><98>
+<2><99>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 38
-<3><9c>
+<3><9d>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfd): tid
-DW_AT_type : <0xdb>
+DW_AT_name : (indirect string, offset: 0x1c7): tid
+DW_AT_type : <0xdc>
DW_AT_decl_file : 1
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><aa>
+<3><ab>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x101): sigev_thread
-DW_AT_type : <0xb8>
+DW_AT_name : (indirect string, offset: 0x1cb): sigev_thread
+DW_AT_type : <0xb9>
DW_AT_decl_file : 1
DW_AT_decl_line : 43
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><b8>
+<3><b9>
Abbrev Number: 4 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 40
-<4><bc>
+<4><bd>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10e): function
-DW_AT_type : <0xe2>
+DW_AT_name : (indirect string, offset: 0x1d8): function
+DW_AT_type : <0xe3>
DW_AT_decl_file : 1
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<4><ca>
+<4><cb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x117): attribute
-DW_AT_type : <0xe2>
+DW_AT_name : (indirect string, offset: 0x1e1): attribute
+DW_AT_type : <0xe3>
DW_AT_decl_file : 1
DW_AT_decl_line : 42
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><db>
+<1><dc>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xbb): int
+DW_AT_name : (indirect string, offset: 0x185): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><e2>
+<1><e3>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc9): long unsigned int
+DW_AT_name : (indirect string, offset: 0x193): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_sock_fprog.d1 b/mpers-m32/struct_sock_fprog.d1
index db720c2..f7472ca 100644
--- a/mpers-m32/struct_sock_fprog.d1
+++ b/mpers-m32/struct_sock_fprog.d1
@@ -1,104 +1,105 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xd9 (32-bit)
+ Length: 0xda (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_sock_fprog.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_sock_fprog.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5b): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x96): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 34
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x111): struct_sock_fprog
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 32
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x106): sock_fprog
- <40> DW_AT_byte_size : 8
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 32
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa7): len
- <48> DW_AT_type : <0x60>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 33
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xba): filter
- <56> DW_AT_type : <0x67>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 34
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 0
- <1><60>: Abbrev Number: 6 (DW_TAG_base_type)
- <61> DW_AT_name : (indirect string, offset: 0xab): unsigned short
- <65> DW_AT_encoding : 7 (unsigned)
- <66> DW_AT_byte_size : 2
- <1><67>: Abbrev Number: 7 (DW_TAG_pointer_type)
- <68> DW_AT_type : <0x6c>
- <1><6c>: Abbrev Number: 4 (DW_TAG_structure_type)
- <6d> DW_AT_name : (indirect string, offset: 0xfa): sock_filter
- <71> DW_AT_byte_size : 8
- <72> DW_AT_decl_file : 1
- <73> DW_AT_decl_line : 26
- <2><74>: Abbrev Number: 5 (DW_TAG_member)
- <75> DW_AT_name : (indirect string, offset: 0xc1): code
- <79> DW_AT_type : <0xad>
- <7d> DW_AT_decl_file : 1
- <7e> DW_AT_decl_line : 27
- <7f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><82>: Abbrev Number: 5 (DW_TAG_member)
- <83> DW_AT_name : (indirect string, offset: 0xcc): jt
- <87> DW_AT_type : <0xb8>
- <8b> DW_AT_decl_file : 1
- <8c> DW_AT_decl_line : 28
- <8d> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><90>: Abbrev Number: 5 (DW_TAG_member)
- <91> DW_AT_name : (indirect string, offset: 0xe2): jf
- <95> DW_AT_type : <0xb8>
- <99> DW_AT_decl_file : 1
- <9a> DW_AT_decl_line : 29
- <9b> DW_AT_data_member_location: 2 byte block: 23 3 (DW_OP_plus_uconst: 3)
- <2><9e>: Abbrev Number: 5 (DW_TAG_member)
- <9f> DW_AT_name : (indirect string, offset: 0xe5): k
- <a3> DW_AT_type : <0xca>
- <a7> DW_AT_decl_file : 1
- <a8> DW_AT_decl_line : 30
- <a9> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><ac>: Abbrev Number: 0
- <1><ad>: Abbrev Number: 3 (DW_TAG_typedef)
- <ae> DW_AT_type : <0x60>
- <b2> DW_AT_name : (indirect string, offset: 0xc6): __u16
- <b6> DW_AT_decl_file : 2
- <b7> DW_AT_decl_line : 26
- <1><b8>: Abbrev Number: 3 (DW_TAG_typedef)
- <b9> DW_AT_type : <0xc3>
- <bd> DW_AT_name : (indirect string, offset: 0xdd): __u8
- <c1> DW_AT_decl_file : 2
- <c2> DW_AT_decl_line : 24
- <1><c3>: Abbrev Number: 6 (DW_TAG_base_type)
- <c4> DW_AT_name : (indirect string, offset: 0xcf): unsigned char
- <c8> DW_AT_encoding : 8 (unsigned char)
- <c9> DW_AT_byte_size : 1
- <1><ca>: Abbrev Number: 3 (DW_TAG_typedef)
- <cb> DW_AT_type : <0xd5>
- <cf> DW_AT_name : (indirect string, offset: 0xf4): __u32
- <d3> DW_AT_decl_file : 2
- <d4> DW_AT_decl_line : 28
- <1><d5>: Abbrev Number: 6 (DW_TAG_base_type)
- <d6> DW_AT_name : (indirect string, offset: 0xe7): unsigned int
- <da> DW_AT_encoding : 7 (unsigned)
- <db> DW_AT_byte_size : 4
- <1><dc>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x125): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x160): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 34
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1db): struct_sock_fprog
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 32
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1d0): sock_fprog
+ <41> DW_AT_byte_size : 8
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 32
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x171): len
+ <49> DW_AT_type : <0x61>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 33
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x184): filter
+ <57> DW_AT_type : <0x68>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 34
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 0
+ <1><61>: Abbrev Number: 6 (DW_TAG_base_type)
+ <62> DW_AT_name : (indirect string, offset: 0x175): unsigned short
+ <66> DW_AT_encoding : 7 (unsigned)
+ <67> DW_AT_byte_size : 2
+ <1><68>: Abbrev Number: 7 (DW_TAG_pointer_type)
+ <69> DW_AT_type : <0x6d>
+ <1><6d>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <6e> DW_AT_name : (indirect string, offset: 0x1c4): sock_filter
+ <72> DW_AT_byte_size : 8
+ <73> DW_AT_decl_file : 1
+ <74> DW_AT_decl_line : 26
+ <2><75>: Abbrev Number: 5 (DW_TAG_member)
+ <76> DW_AT_name : (indirect string, offset: 0x18b): code
+ <7a> DW_AT_type : <0xae>
+ <7e> DW_AT_decl_file : 1
+ <7f> DW_AT_decl_line : 27
+ <80> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><83>: Abbrev Number: 5 (DW_TAG_member)
+ <84> DW_AT_name : (indirect string, offset: 0x196): jt
+ <88> DW_AT_type : <0xb9>
+ <8c> DW_AT_decl_file : 1
+ <8d> DW_AT_decl_line : 28
+ <8e> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><91>: Abbrev Number: 5 (DW_TAG_member)
+ <92> DW_AT_name : (indirect string, offset: 0x1ac): jf
+ <96> DW_AT_type : <0xb9>
+ <9a> DW_AT_decl_file : 1
+ <9b> DW_AT_decl_line : 29
+ <9c> DW_AT_data_member_location: 2 byte block: 23 3 (DW_OP_plus_uconst: 3)
+ <2><9f>: Abbrev Number: 5 (DW_TAG_member)
+ <a0> DW_AT_name : (indirect string, offset: 0x1af): k
+ <a4> DW_AT_type : <0xcb>
+ <a8> DW_AT_decl_file : 1
+ <a9> DW_AT_decl_line : 30
+ <aa> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><ad>: Abbrev Number: 0
+ <1><ae>: Abbrev Number: 3 (DW_TAG_typedef)
+ <af> DW_AT_type : <0x61>
+ <b3> DW_AT_name : (indirect string, offset: 0x190): __u16
+ <b7> DW_AT_decl_file : 2
+ <b8> DW_AT_decl_line : 26
+ <1><b9>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ba> DW_AT_type : <0xc4>
+ <be> DW_AT_name : (indirect string, offset: 0x1a7): __u8
+ <c2> DW_AT_decl_file : 2
+ <c3> DW_AT_decl_line : 24
+ <1><c4>: Abbrev Number: 6 (DW_TAG_base_type)
+ <c5> DW_AT_name : (indirect string, offset: 0x199): unsigned char
+ <c9> DW_AT_encoding : 8 (unsigned char)
+ <ca> DW_AT_byte_size : 1
+ <1><cb>: Abbrev Number: 3 (DW_TAG_typedef)
+ <cc> DW_AT_type : <0xd6>
+ <d0> DW_AT_name : (indirect string, offset: 0x1be): __u32
+ <d4> DW_AT_decl_file : 2
+ <d5> DW_AT_decl_line : 28
+ <1><d6>: Abbrev Number: 6 (DW_TAG_base_type)
+ <d7> DW_AT_name : (indirect string, offset: 0x1b1): unsigned int
+ <db> DW_AT_encoding : 7 (unsigned)
+ <dc> DW_AT_byte_size : 4
+ <1><dd>: Abbrev Number: 0
diff --git a/mpers-m32/struct_sock_fprog.d2 b/mpers-m32/struct_sock_fprog.d2
index 64b071e..1e39302 100644
--- a/mpers-m32/struct_sock_fprog.d2
+++ b/mpers-m32/struct_sock_fprog.d2
@@ -1,104 +1,104 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x96): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x160): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 34
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x111): struct_sock_fprog
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1db): struct_sock_fprog
DW_AT_decl_file : 3
DW_AT_decl_line : 32
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x106): sock_fprog
+DW_AT_name : (indirect string, offset: 0x1d0): sock_fprog
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 32
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa7): len
-DW_AT_type : <0x60>
+DW_AT_name : (indirect string, offset: 0x171): len
+DW_AT_type : <0x61>
DW_AT_decl_file : 1
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xba): filter
-DW_AT_type : <0x67>
+DW_AT_name : (indirect string, offset: 0x184): filter
+DW_AT_type : <0x68>
DW_AT_decl_file : 1
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><60>
+<1><61>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xab): unsigned short
+DW_AT_name : (indirect string, offset: 0x175): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><67>
+<1><68>
Abbrev Number: 7 (DW_TAG_pointer_type)
-DW_AT_type : <0x6c>
-<1><6c>
+DW_AT_type : <0x6d>
+<1><6d>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xfa): sock_filter
+DW_AT_name : (indirect string, offset: 0x1c4): sock_filter
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 26
-<2><74>
+<2><75>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc1): code
-DW_AT_type : <0xad>
+DW_AT_name : (indirect string, offset: 0x18b): code
+DW_AT_type : <0xae>
DW_AT_decl_file : 1
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><82>
+<2><83>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcc): jt
-DW_AT_type : <0xb8>
+DW_AT_name : (indirect string, offset: 0x196): jt
+DW_AT_type : <0xb9>
DW_AT_decl_file : 1
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><90>
+<2><91>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe2): jf
-DW_AT_type : <0xb8>
+DW_AT_name : (indirect string, offset: 0x1ac): jf
+DW_AT_type : <0xb9>
DW_AT_decl_file : 1
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 3 (DW_OP_plus_uconst: 3)
-<2><9e>
+<2><9f>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe5): k
-DW_AT_type : <0xca>
+DW_AT_name : (indirect string, offset: 0x1af): k
+DW_AT_type : <0xcb>
DW_AT_decl_file : 1
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><ad>
+<1><ae>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x60>
-DW_AT_name : (indirect string, offset: 0xc6): __u16
+DW_AT_type : <0x61>
+DW_AT_name : (indirect string, offset: 0x190): __u16
DW_AT_decl_file : 2
DW_AT_decl_line : 26
-<1><b8>
+<1><b9>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xc3>
-DW_AT_name : (indirect string, offset: 0xdd): __u8
+DW_AT_type : <0xc4>
+DW_AT_name : (indirect string, offset: 0x1a7): __u8
DW_AT_decl_file : 2
DW_AT_decl_line : 24
-<1><c3>
+<1><c4>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xcf): unsigned char
+DW_AT_name : (indirect string, offset: 0x199): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><ca>
+<1><cb>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xd5>
-DW_AT_name : (indirect string, offset: 0xf4): __u32
+DW_AT_type : <0xd6>
+DW_AT_name : (indirect string, offset: 0x1be): __u32
DW_AT_decl_file : 2
DW_AT_decl_line : 28
-<1><d5>
+<1><d6>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe7): unsigned int
+DW_AT_name : (indirect string, offset: 0x1b1): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_stat.d1 b/mpers-m32/struct_stat.d1
index 167827c..a4ab06c 100644
--- a/mpers-m32/struct_stat.d1
+++ b/mpers-m32/struct_stat.d1
@@ -1,169 +1,170 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x175 (32-bit)
+ Length: 0x176 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_stat.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_stat.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x55): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x90): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 2
- <29> DW_AT_decl_line : 62
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x18b): struct_stat
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 60
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x186): stat
- <40> DW_AT_byte_size : 80
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 23
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa1): st_dev
- <48> DW_AT_type : <0x15c>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 24
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xba): st_ino
- <56> DW_AT_type : <0x15c>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 25
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xc1): st_mode
- <64> DW_AT_type : <0x163>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 26
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xd6): st_nlink
- <72> DW_AT_type : <0x163>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 27
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xdf): st_uid
- <80> DW_AT_type : <0x163>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 28
- <86> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0xe6): st_gid
- <8e> DW_AT_type : <0x163>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 29
- <94> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0xed): st_rdev
- <9c> DW_AT_type : <0x15c>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 30
- <a2> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0xf5): __pad1
- <aa> DW_AT_type : <0x15c>
- <ae> DW_AT_decl_file : 1
- <af> DW_AT_decl_line : 31
- <b0> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0xfc): st_size
- <b8> DW_AT_type : <0x16a>
- <bc> DW_AT_decl_file : 1
- <bd> DW_AT_decl_line : 32
- <be> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x10d): st_blksize
- <c6> DW_AT_type : <0x171>
- <ca> DW_AT_decl_file : 1
- <cb> DW_AT_decl_line : 33
- <cc> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x11c): __pad2
- <d4> DW_AT_type : <0x171>
- <d8> DW_AT_decl_file : 1
- <d9> DW_AT_decl_line : 34
- <da> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><dd>: Abbrev Number: 5 (DW_TAG_member)
- <de> DW_AT_name : (indirect string, offset: 0x123): st_blocks
- <e2> DW_AT_type : <0x16a>
- <e6> DW_AT_decl_file : 1
- <e7> DW_AT_decl_line : 35
- <e8> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><eb>: Abbrev Number: 5 (DW_TAG_member)
- <ec> DW_AT_name : (indirect string, offset: 0x12d): st_atime
- <f0> DW_AT_type : <0x16a>
- <f4> DW_AT_decl_file : 1
- <f5> DW_AT_decl_line : 36
- <f6> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><f9>: Abbrev Number: 5 (DW_TAG_member)
- <fa> DW_AT_name : (indirect string, offset: 0x136): st_atime_nsec
- <fe> DW_AT_type : <0x15c>
- <102> DW_AT_decl_file : 1
- <103> DW_AT_decl_line : 37
- <104> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><107>: Abbrev Number: 5 (DW_TAG_member)
- <108> DW_AT_name : (indirect string, offset: 0x144): st_mtime
- <10c> DW_AT_type : <0x16a>
- <110> DW_AT_decl_file : 1
- <111> DW_AT_decl_line : 38
- <112> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><115>: Abbrev Number: 5 (DW_TAG_member)
- <116> DW_AT_name : (indirect string, offset: 0x14d): st_mtime_nsec
- <11a> DW_AT_type : <0x15c>
- <11e> DW_AT_decl_file : 1
- <11f> DW_AT_decl_line : 39
- <120> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><123>: Abbrev Number: 5 (DW_TAG_member)
- <124> DW_AT_name : (indirect string, offset: 0x15b): st_ctime
- <128> DW_AT_type : <0x16a>
- <12c> DW_AT_decl_file : 1
- <12d> DW_AT_decl_line : 40
- <12e> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><131>: Abbrev Number: 5 (DW_TAG_member)
- <132> DW_AT_name : (indirect string, offset: 0x164): st_ctime_nsec
- <136> DW_AT_type : <0x15c>
- <13a> DW_AT_decl_file : 1
- <13b> DW_AT_decl_line : 41
- <13c> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
- <2><13f>: Abbrev Number: 5 (DW_TAG_member)
- <140> DW_AT_name : (indirect string, offset: 0x172): __unused4
- <144> DW_AT_type : <0x163>
- <148> DW_AT_decl_file : 1
- <149> DW_AT_decl_line : 42
- <14a> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
- <2><14d>: Abbrev Number: 5 (DW_TAG_member)
- <14e> DW_AT_name : (indirect string, offset: 0x17c): __unused5
- <152> DW_AT_type : <0x163>
- <156> DW_AT_decl_file : 1
- <157> DW_AT_decl_line : 43
- <158> DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst: 76)
- <2><15b>: Abbrev Number: 0
- <1><15c>: Abbrev Number: 6 (DW_TAG_base_type)
- <15d> DW_AT_name : (indirect string, offset: 0xa8): long unsigned int
- <161> DW_AT_encoding : 7 (unsigned)
- <162> DW_AT_byte_size : 4
- <1><163>: Abbrev Number: 6 (DW_TAG_base_type)
- <164> DW_AT_name : (indirect string, offset: 0xc9): unsigned int
- <168> DW_AT_encoding : 7 (unsigned)
- <169> DW_AT_byte_size : 4
- <1><16a>: Abbrev Number: 6 (DW_TAG_base_type)
- <16b> DW_AT_name : (indirect string, offset: 0x104): long int
- <16f> DW_AT_encoding : 5 (signed)
- <170> DW_AT_byte_size : 4
- <1><171>: Abbrev Number: 6 (DW_TAG_base_type)
- <172> DW_AT_name : (indirect string, offset: 0x118): int
- <176> DW_AT_encoding : 5 (signed)
- <177> DW_AT_byte_size : 4
- <1><178>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11f): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15a): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 2
+ <2a> DW_AT_decl_line : 62
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x255): struct_stat
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 60
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x250): stat
+ <41> DW_AT_byte_size : 80
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 23
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16b): st_dev
+ <49> DW_AT_type : <0x15d>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 24
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x184): st_ino
+ <57> DW_AT_type : <0x15d>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 25
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x18b): st_mode
+ <65> DW_AT_type : <0x164>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 26
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1a0): st_nlink
+ <73> DW_AT_type : <0x164>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 27
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1a9): st_uid
+ <81> DW_AT_type : <0x164>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 28
+ <87> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1b0): st_gid
+ <8f> DW_AT_type : <0x164>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 29
+ <95> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1b7): st_rdev
+ <9d> DW_AT_type : <0x15d>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 30
+ <a3> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1bf): __pad1
+ <ab> DW_AT_type : <0x15d>
+ <af> DW_AT_decl_file : 1
+ <b0> DW_AT_decl_line : 31
+ <b1> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x1c6): st_size
+ <b9> DW_AT_type : <0x16b>
+ <bd> DW_AT_decl_file : 1
+ <be> DW_AT_decl_line : 32
+ <bf> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x1d7): st_blksize
+ <c7> DW_AT_type : <0x172>
+ <cb> DW_AT_decl_file : 1
+ <cc> DW_AT_decl_line : 33
+ <cd> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x1e6): __pad2
+ <d5> DW_AT_type : <0x172>
+ <d9> DW_AT_decl_file : 1
+ <da> DW_AT_decl_line : 34
+ <db> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><de>: Abbrev Number: 5 (DW_TAG_member)
+ <df> DW_AT_name : (indirect string, offset: 0x1ed): st_blocks
+ <e3> DW_AT_type : <0x16b>
+ <e7> DW_AT_decl_file : 1
+ <e8> DW_AT_decl_line : 35
+ <e9> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><ec>: Abbrev Number: 5 (DW_TAG_member)
+ <ed> DW_AT_name : (indirect string, offset: 0x1f7): st_atime
+ <f1> DW_AT_type : <0x16b>
+ <f5> DW_AT_decl_file : 1
+ <f6> DW_AT_decl_line : 36
+ <f7> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><fa>: Abbrev Number: 5 (DW_TAG_member)
+ <fb> DW_AT_name : (indirect string, offset: 0x200): st_atime_nsec
+ <ff> DW_AT_type : <0x15d>
+ <103> DW_AT_decl_file : 1
+ <104> DW_AT_decl_line : 37
+ <105> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><108>: Abbrev Number: 5 (DW_TAG_member)
+ <109> DW_AT_name : (indirect string, offset: 0x20e): st_mtime
+ <10d> DW_AT_type : <0x16b>
+ <111> DW_AT_decl_file : 1
+ <112> DW_AT_decl_line : 38
+ <113> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><116>: Abbrev Number: 5 (DW_TAG_member)
+ <117> DW_AT_name : (indirect string, offset: 0x217): st_mtime_nsec
+ <11b> DW_AT_type : <0x15d>
+ <11f> DW_AT_decl_file : 1
+ <120> DW_AT_decl_line : 39
+ <121> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><124>: Abbrev Number: 5 (DW_TAG_member)
+ <125> DW_AT_name : (indirect string, offset: 0x225): st_ctime
+ <129> DW_AT_type : <0x16b>
+ <12d> DW_AT_decl_file : 1
+ <12e> DW_AT_decl_line : 40
+ <12f> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><132>: Abbrev Number: 5 (DW_TAG_member)
+ <133> DW_AT_name : (indirect string, offset: 0x22e): st_ctime_nsec
+ <137> DW_AT_type : <0x15d>
+ <13b> DW_AT_decl_file : 1
+ <13c> DW_AT_decl_line : 41
+ <13d> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
+ <2><140>: Abbrev Number: 5 (DW_TAG_member)
+ <141> DW_AT_name : (indirect string, offset: 0x23c): __unused4
+ <145> DW_AT_type : <0x164>
+ <149> DW_AT_decl_file : 1
+ <14a> DW_AT_decl_line : 42
+ <14b> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
+ <2><14e>: Abbrev Number: 5 (DW_TAG_member)
+ <14f> DW_AT_name : (indirect string, offset: 0x246): __unused5
+ <153> DW_AT_type : <0x164>
+ <157> DW_AT_decl_file : 1
+ <158> DW_AT_decl_line : 43
+ <159> DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst: 76)
+ <2><15c>: Abbrev Number: 0
+ <1><15d>: Abbrev Number: 6 (DW_TAG_base_type)
+ <15e> DW_AT_name : (indirect string, offset: 0x172): long unsigned int
+ <162> DW_AT_encoding : 7 (unsigned)
+ <163> DW_AT_byte_size : 4
+ <1><164>: Abbrev Number: 6 (DW_TAG_base_type)
+ <165> DW_AT_name : (indirect string, offset: 0x193): unsigned int
+ <169> DW_AT_encoding : 7 (unsigned)
+ <16a> DW_AT_byte_size : 4
+ <1><16b>: Abbrev Number: 6 (DW_TAG_base_type)
+ <16c> DW_AT_name : (indirect string, offset: 0x1ce): long int
+ <170> DW_AT_encoding : 5 (signed)
+ <171> DW_AT_byte_size : 4
+ <1><172>: Abbrev Number: 6 (DW_TAG_base_type)
+ <173> DW_AT_name : (indirect string, offset: 0x1e2): int
+ <177> DW_AT_encoding : 5 (signed)
+ <178> DW_AT_byte_size : 4
+ <1><179>: Abbrev Number: 0
diff --git a/mpers-m32/struct_stat.d2 b/mpers-m32/struct_stat.d2
index c159023..94ec8b3 100644
--- a/mpers-m32/struct_stat.d2
+++ b/mpers-m32/struct_stat.d2
@@ -1,180 +1,180 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x90): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15a): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 2
DW_AT_decl_line : 62
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x18b): struct_stat
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x255): struct_stat
DW_AT_decl_file : 2
DW_AT_decl_line : 60
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x186): stat
+DW_AT_name : (indirect string, offset: 0x250): stat
DW_AT_byte_size : 80
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa1): st_dev
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x16b): st_dev
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xba): st_ino
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x184): st_ino
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc1): st_mode
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x18b): st_mode
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd6): st_nlink
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1a0): st_nlink
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdf): st_uid
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1a9): st_uid
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe6): st_gid
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1b0): st_gid
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xed): st_rdev
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x1b7): st_rdev
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf5): __pad1
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x1bf): __pad1
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfc): st_size
-DW_AT_type : <0x16a>
+DW_AT_name : (indirect string, offset: 0x1c6): st_size
+DW_AT_type : <0x16b>
DW_AT_decl_file : 1
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10d): st_blksize
-DW_AT_type : <0x171>
+DW_AT_name : (indirect string, offset: 0x1d7): st_blksize
+DW_AT_type : <0x172>
DW_AT_decl_file : 1
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11c): __pad2
-DW_AT_type : <0x171>
+DW_AT_name : (indirect string, offset: 0x1e6): __pad2
+DW_AT_type : <0x172>
DW_AT_decl_file : 1
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><dd>
+<2><de>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x123): st_blocks
-DW_AT_type : <0x16a>
+DW_AT_name : (indirect string, offset: 0x1ed): st_blocks
+DW_AT_type : <0x16b>
DW_AT_decl_file : 1
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><eb>
+<2><ec>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12d): st_atime
-DW_AT_type : <0x16a>
+DW_AT_name : (indirect string, offset: 0x1f7): st_atime
+DW_AT_type : <0x16b>
DW_AT_decl_file : 1
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><f9>
+<2><fa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x136): st_atime_nsec
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x200): st_atime_nsec
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><107>
+<2><108>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x144): st_mtime
-DW_AT_type : <0x16a>
+DW_AT_name : (indirect string, offset: 0x20e): st_mtime
+DW_AT_type : <0x16b>
DW_AT_decl_file : 1
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><115>
+<2><116>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14d): st_mtime_nsec
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x217): st_mtime_nsec
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><123>
+<2><124>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15b): st_ctime
-DW_AT_type : <0x16a>
+DW_AT_name : (indirect string, offset: 0x225): st_ctime
+DW_AT_type : <0x16b>
DW_AT_decl_file : 1
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<2><131>
+<2><132>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x164): st_ctime_nsec
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x22e): st_ctime_nsec
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
-<2><13f>
+<2><140>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x172): __unused4
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x23c): __unused4
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 42
DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
-<2><14d>
+<2><14e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17c): __unused5
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x246): __unused5
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 43
DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst: 76)
-<1><15c>
+<1><15d>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa8): long unsigned int
+DW_AT_name : (indirect string, offset: 0x172): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><163>
+<1><164>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc9): unsigned int
+DW_AT_name : (indirect string, offset: 0x193): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><16a>
+<1><16b>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x104): long int
+DW_AT_name : (indirect string, offset: 0x1ce): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><171>
+<1><172>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x118): int
+DW_AT_name : (indirect string, offset: 0x1e2): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers-m32/struct_stat64.d1 b/mpers-m32/struct_stat64.d1
index ad9b963..7759d1d 100644
--- a/mpers-m32/struct_stat64.d1
+++ b/mpers-m32/struct_stat64.d1
@@ -1,32 +1,33 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x40 (32-bit)
+ Length: 0x41 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_stat64.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_stat64.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x57): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 1
- <29> DW_AT_decl_line : 60
- <2a> DW_AT_location : 5 byte block: 3 1 0 0 0 (DW_OP_addr: 1)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xaa): struct_stat64
- <39> DW_AT_decl_file : 1
- <3a> DW_AT_decl_line : 58
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xa3): stat64
- <40> DW_AT_byte_size : 0
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 55
- <1><43>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x121): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 1
+ <2a> DW_AT_decl_line : 60
+ <2b> DW_AT_location : 5 byte block: 3 1 0 0 0 (DW_OP_addr: 1)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x174): struct_stat64
+ <3a> DW_AT_decl_file : 1
+ <3b> DW_AT_decl_line : 58
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x16d): stat64
+ <41> DW_AT_byte_size : 0
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 55
+ <1><44>: Abbrev Number: 0
diff --git a/mpers-m32/struct_stat64.d2 b/mpers-m32/struct_stat64.d2
index b7c54c5..ea8acd0 100644
--- a/mpers-m32/struct_stat64.d2
+++ b/mpers-m32/struct_stat64.d2
@@ -1,20 +1,20 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 1
DW_AT_decl_line : 60
DW_AT_location : 5 byte block: 3 1 0 0 0 (DW_OP_addr: 1)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xaa): struct_stat64
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x174): struct_stat64
DW_AT_decl_file : 1
DW_AT_decl_line : 58
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xa3): stat64
+DW_AT_name : (indirect string, offset: 0x16d): stat64
DW_AT_byte_size : 0
DW_AT_decl_file : 1
DW_AT_decl_line : 55
diff --git a/mpers-m32/struct_statfs.d1 b/mpers-m32/struct_statfs.d1
index 5ab912f..c53f6b8 100644
--- a/mpers-m32/struct_statfs.d1
+++ b/mpers-m32/struct_statfs.d1
@@ -1,152 +1,153 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x141 (32-bit)
+ Length: 0x142 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_statfs.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_statfs.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x57): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 37
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x147): struct_statfs
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 34
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x140): statfs
- <40> DW_AT_byte_size : 64
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 29
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa3): f_type
- <48> DW_AT_type : <0xec>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 30
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xc3): f_bsize
- <56> DW_AT_type : <0xec>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 31
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xcb): f_blocks
- <64> DW_AT_type : <0xec>
- <68> DW_AT_decl_file : 2
- <69> DW_AT_decl_line : 32
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xd4): f_bfree
- <72> DW_AT_type : <0xec>
- <76> DW_AT_decl_file : 2
- <77> DW_AT_decl_line : 33
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xdc): f_bavail
- <80> DW_AT_type : <0xec>
- <84> DW_AT_decl_file : 2
- <85> DW_AT_decl_line : 34
- <86> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0xe5): f_files
- <8e> DW_AT_type : <0xec>
- <92> DW_AT_decl_file : 2
- <93> DW_AT_decl_line : 35
- <94> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0xed): f_ffree
- <9c> DW_AT_type : <0xec>
- <a0> DW_AT_decl_file : 2
- <a1> DW_AT_decl_line : 36
- <a2> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0xf5): f_fsid
- <aa> DW_AT_type : <0xfe>
- <ae> DW_AT_decl_file : 2
- <af> DW_AT_decl_line : 37
- <b0> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x11d): f_namelen
- <b8> DW_AT_type : <0xec>
- <bc> DW_AT_decl_file : 2
- <bd> DW_AT_decl_line : 38
- <be> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x127): f_frsize
- <c6> DW_AT_type : <0xec>
- <ca> DW_AT_decl_file : 2
- <cb> DW_AT_decl_line : 39
- <cc> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x130): f_flags
- <d4> DW_AT_type : <0xec>
- <d8> DW_AT_decl_file : 2
- <d9> DW_AT_decl_line : 40
- <da> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><dd>: Abbrev Number: 5 (DW_TAG_member)
- <de> DW_AT_name : (indirect string, offset: 0x138): f_spare
- <e2> DW_AT_type : <0x137>
- <e6> DW_AT_decl_file : 2
- <e7> DW_AT_decl_line : 41
- <e8> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><eb>: Abbrev Number: 0
- <1><ec>: Abbrev Number: 3 (DW_TAG_typedef)
- <ed> DW_AT_type : <0xf7>
- <f1> DW_AT_name : (indirect string, offset: 0xb3): __kernel_long_t
- <f5> DW_AT_decl_file : 1
- <f6> DW_AT_decl_line : 23
- <1><f7>: Abbrev Number: 6 (DW_TAG_base_type)
- <f8> DW_AT_name : (indirect string, offset: 0xaa): long int
- <fc> DW_AT_encoding : 5 (signed)
- <fd> DW_AT_byte_size : 4
- <1><fe>: Abbrev Number: 3 (DW_TAG_typedef)
- <ff> DW_AT_type : <0x109>
- <103> DW_AT_name : (indirect string, offset: 0x10d): __kernel_fsid_t
- <107> DW_AT_decl_file : 1
- <108> DW_AT_decl_line : 73
- <1><109>: Abbrev Number: 7 (DW_TAG_structure_type)
- <10a> DW_AT_byte_size : 8
- <10b> DW_AT_decl_file : 1
- <10c> DW_AT_decl_line : 71
- <2><10d>: Abbrev Number: 5 (DW_TAG_member)
- <10e> DW_AT_name : (indirect string, offset: 0xfc): val
- <112> DW_AT_type : <0x11c>
- <116> DW_AT_decl_file : 1
- <117> DW_AT_decl_line : 72
- <118> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><11b>: Abbrev Number: 0
- <1><11c>: Abbrev Number: 8 (DW_TAG_array_type)
- <11d> DW_AT_type : <0x129>
- <2><121>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <122> DW_AT_type : <0x130>
- <126> DW_AT_lower_bound : 0
- <127> DW_AT_count : 2
- <2><128>: Abbrev Number: 0
- <1><129>: Abbrev Number: 6 (DW_TAG_base_type)
- <12a> DW_AT_name : (indirect string, offset: 0x100): int
- <12e> DW_AT_encoding : 5 (signed)
- <12f> DW_AT_byte_size : 4
- <1><130>: Abbrev Number: 10 (DW_TAG_base_type)
- <131> DW_AT_name : (indirect string, offset: 0x104): sizetype
- <135> DW_AT_byte_size : 8
- <136> DW_AT_encoding : 7 (unsigned)
- <1><137>: Abbrev Number: 8 (DW_TAG_array_type)
- <138> DW_AT_type : <0xec>
- <2><13c>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <13d> DW_AT_type : <0x130>
- <141> DW_AT_lower_bound : 0
- <142> DW_AT_count : 4
- <2><143>: Abbrev Number: 0
- <1><144>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x121): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 37
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x211): struct_statfs
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 34
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x20a): statfs
+ <41> DW_AT_byte_size : 64
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 29
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16d): f_type
+ <49> DW_AT_type : <0xed>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 30
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x18d): f_bsize
+ <57> DW_AT_type : <0xed>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 31
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x195): f_blocks
+ <65> DW_AT_type : <0xed>
+ <69> DW_AT_decl_file : 2
+ <6a> DW_AT_decl_line : 32
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x19e): f_bfree
+ <73> DW_AT_type : <0xed>
+ <77> DW_AT_decl_file : 2
+ <78> DW_AT_decl_line : 33
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1a6): f_bavail
+ <81> DW_AT_type : <0xed>
+ <85> DW_AT_decl_file : 2
+ <86> DW_AT_decl_line : 34
+ <87> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1af): f_files
+ <8f> DW_AT_type : <0xed>
+ <93> DW_AT_decl_file : 2
+ <94> DW_AT_decl_line : 35
+ <95> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1b7): f_ffree
+ <9d> DW_AT_type : <0xed>
+ <a1> DW_AT_decl_file : 2
+ <a2> DW_AT_decl_line : 36
+ <a3> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1bf): f_fsid
+ <ab> DW_AT_type : <0xff>
+ <af> DW_AT_decl_file : 2
+ <b0> DW_AT_decl_line : 37
+ <b1> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x1e7): f_namelen
+ <b9> DW_AT_type : <0xed>
+ <bd> DW_AT_decl_file : 2
+ <be> DW_AT_decl_line : 38
+ <bf> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x1f1): f_frsize
+ <c7> DW_AT_type : <0xed>
+ <cb> DW_AT_decl_file : 2
+ <cc> DW_AT_decl_line : 39
+ <cd> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x1fa): f_flags
+ <d5> DW_AT_type : <0xed>
+ <d9> DW_AT_decl_file : 2
+ <da> DW_AT_decl_line : 40
+ <db> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><de>: Abbrev Number: 5 (DW_TAG_member)
+ <df> DW_AT_name : (indirect string, offset: 0x202): f_spare
+ <e3> DW_AT_type : <0x138>
+ <e7> DW_AT_decl_file : 2
+ <e8> DW_AT_decl_line : 41
+ <e9> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><ec>: Abbrev Number: 0
+ <1><ed>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ee> DW_AT_type : <0xf8>
+ <f2> DW_AT_name : (indirect string, offset: 0x17d): __kernel_long_t
+ <f6> DW_AT_decl_file : 1
+ <f7> DW_AT_decl_line : 23
+ <1><f8>: Abbrev Number: 6 (DW_TAG_base_type)
+ <f9> DW_AT_name : (indirect string, offset: 0x174): long int
+ <fd> DW_AT_encoding : 5 (signed)
+ <fe> DW_AT_byte_size : 4
+ <1><ff>: Abbrev Number: 3 (DW_TAG_typedef)
+ <100> DW_AT_type : <0x10a>
+ <104> DW_AT_name : (indirect string, offset: 0x1d7): __kernel_fsid_t
+ <108> DW_AT_decl_file : 1
+ <109> DW_AT_decl_line : 73
+ <1><10a>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <10b> DW_AT_byte_size : 8
+ <10c> DW_AT_decl_file : 1
+ <10d> DW_AT_decl_line : 71
+ <2><10e>: Abbrev Number: 5 (DW_TAG_member)
+ <10f> DW_AT_name : (indirect string, offset: 0x1c6): val
+ <113> DW_AT_type : <0x11d>
+ <117> DW_AT_decl_file : 1
+ <118> DW_AT_decl_line : 72
+ <119> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><11c>: Abbrev Number: 0
+ <1><11d>: Abbrev Number: 8 (DW_TAG_array_type)
+ <11e> DW_AT_type : <0x12a>
+ <2><122>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <123> DW_AT_type : <0x131>
+ <127> DW_AT_lower_bound : 0
+ <128> DW_AT_count : 2
+ <2><129>: Abbrev Number: 0
+ <1><12a>: Abbrev Number: 6 (DW_TAG_base_type)
+ <12b> DW_AT_name : (indirect string, offset: 0x1ca): int
+ <12f> DW_AT_encoding : 5 (signed)
+ <130> DW_AT_byte_size : 4
+ <1><131>: Abbrev Number: 10 (DW_TAG_base_type)
+ <132> DW_AT_name : (indirect string, offset: 0x1ce): sizetype
+ <136> DW_AT_byte_size : 8
+ <137> DW_AT_encoding : 7 (unsigned)
+ <1><138>: Abbrev Number: 8 (DW_TAG_array_type)
+ <139> DW_AT_type : <0xed>
+ <2><13d>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <13e> DW_AT_type : <0x131>
+ <142> DW_AT_lower_bound : 0
+ <143> DW_AT_count : 4
+ <2><144>: Abbrev Number: 0
+ <1><145>: Abbrev Number: 0
diff --git a/mpers-m32/struct_statfs.d2 b/mpers-m32/struct_statfs.d2
index 64612ab..a5db16c 100644
--- a/mpers-m32/struct_statfs.d2
+++ b/mpers-m32/struct_statfs.d2
@@ -1,159 +1,159 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x92): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15c): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 37
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x147): struct_statfs
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x211): struct_statfs
DW_AT_decl_file : 3
DW_AT_decl_line : 34
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x140): statfs
+DW_AT_name : (indirect string, offset: 0x20a): statfs
DW_AT_byte_size : 64
DW_AT_decl_file : 2
DW_AT_decl_line : 29
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa3): f_type
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x16d): f_type
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc3): f_bsize
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x18d): f_bsize
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcb): f_blocks
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x195): f_blocks
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd4): f_bfree
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x19e): f_bfree
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdc): f_bavail
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x1a6): f_bavail
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe5): f_files
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x1af): f_files
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xed): f_ffree
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x1b7): f_ffree
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf5): f_fsid
-DW_AT_type : <0xfe>
+DW_AT_name : (indirect string, offset: 0x1bf): f_fsid
+DW_AT_type : <0xff>
DW_AT_decl_file : 2
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11d): f_namelen
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x1e7): f_namelen
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x127): f_frsize
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x1f1): f_frsize
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x130): f_flags
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x1fa): f_flags
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><dd>
+<2><de>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x138): f_spare
-DW_AT_type : <0x137>
+DW_AT_name : (indirect string, offset: 0x202): f_spare
+DW_AT_type : <0x138>
DW_AT_decl_file : 2
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<1><ec>
+<1><ed>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xf7>
-DW_AT_name : (indirect string, offset: 0xb3): __kernel_long_t
+DW_AT_type : <0xf8>
+DW_AT_name : (indirect string, offset: 0x17d): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><f7>
+<1><f8>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xaa): long int
+DW_AT_name : (indirect string, offset: 0x174): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><fe>
+<1><ff>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x109>
-DW_AT_name : (indirect string, offset: 0x10d): __kernel_fsid_t
+DW_AT_type : <0x10a>
+DW_AT_name : (indirect string, offset: 0x1d7): __kernel_fsid_t
DW_AT_decl_file : 1
DW_AT_decl_line : 73
-<1><109>
+<1><10a>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 71
-<2><10d>
+<2><10e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfc): val
-DW_AT_type : <0x11c>
+DW_AT_name : (indirect string, offset: 0x1c6): val
+DW_AT_type : <0x11d>
DW_AT_decl_file : 1
DW_AT_decl_line : 72
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><11c>
+<1><11d>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0x129>
-<2><121>
+DW_AT_type : <0x12a>
+<2><122>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0x130>
+DW_AT_type : <0x131>
DW_AT_lower_bound : 0
DW_AT_count : 2
-<1><129>
+<1><12a>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x100): int
+DW_AT_name : (indirect string, offset: 0x1ca): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><130>
+<1><131>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x104): sizetype
+DW_AT_name : (indirect string, offset: 0x1ce): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><137>
+<1><138>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0xec>
-<2><13c>
+DW_AT_type : <0xed>
+<2><13d>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0x130>
+DW_AT_type : <0x131>
DW_AT_lower_bound : 0
DW_AT_count : 4
diff --git a/mpers-m32/struct_statfs64.d1 b/mpers-m32/struct_statfs64.d1
index b14caf7..9291229 100644
--- a/mpers-m32/struct_statfs64.d1
+++ b/mpers-m32/struct_statfs64.d1
@@ -1,161 +1,162 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x153 (32-bit)
+ Length: 0x154 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_statfs64.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_statfs64.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x59): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x94): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 37
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x168): struct_statfs64
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 35
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x15f): statfs64
- <40> DW_AT_byte_size : 88
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 46
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa5): f_type
- <48> DW_AT_type : <0xec>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 47
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xc5): f_bsize
- <56> DW_AT_type : <0xec>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 48
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xcd): f_blocks
- <64> DW_AT_type : <0xfe>
- <68> DW_AT_decl_file : 2
- <69> DW_AT_decl_line : 49
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xf3): f_bfree
- <72> DW_AT_type : <0xfe>
- <76> DW_AT_decl_file : 2
- <77> DW_AT_decl_line : 50
- <78> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xfb): f_bavail
- <80> DW_AT_type : <0xfe>
- <84> DW_AT_decl_file : 2
- <85> DW_AT_decl_line : 51
- <86> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x104): f_files
- <8e> DW_AT_type : <0xfe>
- <92> DW_AT_decl_file : 2
- <93> DW_AT_decl_line : 52
- <94> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x10c): f_ffree
- <9c> DW_AT_type : <0xfe>
- <a0> DW_AT_decl_file : 2
- <a1> DW_AT_decl_line : 53
- <a2> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x114): f_fsid
- <aa> DW_AT_type : <0x110>
- <ae> DW_AT_decl_file : 2
- <af> DW_AT_decl_line : 54
- <b0> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x13c): f_namelen
- <b8> DW_AT_type : <0xec>
- <bc> DW_AT_decl_file : 2
- <bd> DW_AT_decl_line : 55
- <be> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x146): f_frsize
- <c6> DW_AT_type : <0xec>
- <ca> DW_AT_decl_file : 2
- <cb> DW_AT_decl_line : 56
- <cc> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x14f): f_flags
- <d4> DW_AT_type : <0xec>
- <d8> DW_AT_decl_file : 2
- <d9> DW_AT_decl_line : 57
- <da> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><dd>: Abbrev Number: 5 (DW_TAG_member)
- <de> DW_AT_name : (indirect string, offset: 0x157): f_spare
- <e2> DW_AT_type : <0x149>
- <e6> DW_AT_decl_file : 2
- <e7> DW_AT_decl_line : 58
- <e8> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
- <2><eb>: Abbrev Number: 0
- <1><ec>: Abbrev Number: 3 (DW_TAG_typedef)
- <ed> DW_AT_type : <0xf7>
- <f1> DW_AT_name : (indirect string, offset: 0xb5): __kernel_long_t
- <f5> DW_AT_decl_file : 1
- <f6> DW_AT_decl_line : 23
- <1><f7>: Abbrev Number: 6 (DW_TAG_base_type)
- <f8> DW_AT_name : (indirect string, offset: 0xac): long int
- <fc> DW_AT_encoding : 5 (signed)
- <fd> DW_AT_byte_size : 4
- <1><fe>: Abbrev Number: 3 (DW_TAG_typedef)
- <ff> DW_AT_type : <0x109>
- <103> DW_AT_name : (indirect string, offset: 0xed): __u64
- <107> DW_AT_decl_file : 3
- <108> DW_AT_decl_line : 31
- <1><109>: Abbrev Number: 6 (DW_TAG_base_type)
- <10a> DW_AT_name : (indirect string, offset: 0xd6): long long unsigned int
- <10e> DW_AT_encoding : 7 (unsigned)
- <10f> DW_AT_byte_size : 8
- <1><110>: Abbrev Number: 3 (DW_TAG_typedef)
- <111> DW_AT_type : <0x11b>
- <115> DW_AT_name : (indirect string, offset: 0x12c): __kernel_fsid_t
- <119> DW_AT_decl_file : 1
- <11a> DW_AT_decl_line : 73
- <1><11b>: Abbrev Number: 7 (DW_TAG_structure_type)
- <11c> DW_AT_byte_size : 8
- <11d> DW_AT_decl_file : 1
- <11e> DW_AT_decl_line : 71
- <2><11f>: Abbrev Number: 5 (DW_TAG_member)
- <120> DW_AT_name : (indirect string, offset: 0x11b): val
- <124> DW_AT_type : <0x12e>
- <128> DW_AT_decl_file : 1
- <129> DW_AT_decl_line : 72
- <12a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><12d>: Abbrev Number: 0
- <1><12e>: Abbrev Number: 8 (DW_TAG_array_type)
- <12f> DW_AT_type : <0x13b>
- <2><133>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <134> DW_AT_type : <0x142>
- <138> DW_AT_lower_bound : 0
- <139> DW_AT_count : 2
- <2><13a>: Abbrev Number: 0
- <1><13b>: Abbrev Number: 6 (DW_TAG_base_type)
- <13c> DW_AT_name : (indirect string, offset: 0x11f): int
- <140> DW_AT_encoding : 5 (signed)
- <141> DW_AT_byte_size : 4
- <1><142>: Abbrev Number: 10 (DW_TAG_base_type)
- <143> DW_AT_name : (indirect string, offset: 0x123): sizetype
- <147> DW_AT_byte_size : 8
- <148> DW_AT_encoding : 7 (unsigned)
- <1><149>: Abbrev Number: 8 (DW_TAG_array_type)
- <14a> DW_AT_type : <0xec>
- <2><14e>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <14f> DW_AT_type : <0x142>
- <153> DW_AT_lower_bound : 0
- <154> DW_AT_count : 4
- <2><155>: Abbrev Number: 0
- <1><156>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x123): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15e): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 37
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x232): struct_statfs64
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 35
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x229): statfs64
+ <41> DW_AT_byte_size : 88
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 46
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16f): f_type
+ <49> DW_AT_type : <0xed>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 47
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x18f): f_bsize
+ <57> DW_AT_type : <0xed>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 48
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x197): f_blocks
+ <65> DW_AT_type : <0xff>
+ <69> DW_AT_decl_file : 2
+ <6a> DW_AT_decl_line : 49
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1bd): f_bfree
+ <73> DW_AT_type : <0xff>
+ <77> DW_AT_decl_file : 2
+ <78> DW_AT_decl_line : 50
+ <79> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1c5): f_bavail
+ <81> DW_AT_type : <0xff>
+ <85> DW_AT_decl_file : 2
+ <86> DW_AT_decl_line : 51
+ <87> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1ce): f_files
+ <8f> DW_AT_type : <0xff>
+ <93> DW_AT_decl_file : 2
+ <94> DW_AT_decl_line : 52
+ <95> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1d6): f_ffree
+ <9d> DW_AT_type : <0xff>
+ <a1> DW_AT_decl_file : 2
+ <a2> DW_AT_decl_line : 53
+ <a3> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1de): f_fsid
+ <ab> DW_AT_type : <0x111>
+ <af> DW_AT_decl_file : 2
+ <b0> DW_AT_decl_line : 54
+ <b1> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x206): f_namelen
+ <b9> DW_AT_type : <0xed>
+ <bd> DW_AT_decl_file : 2
+ <be> DW_AT_decl_line : 55
+ <bf> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x210): f_frsize
+ <c7> DW_AT_type : <0xed>
+ <cb> DW_AT_decl_file : 2
+ <cc> DW_AT_decl_line : 56
+ <cd> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x219): f_flags
+ <d5> DW_AT_type : <0xed>
+ <d9> DW_AT_decl_file : 2
+ <da> DW_AT_decl_line : 57
+ <db> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><de>: Abbrev Number: 5 (DW_TAG_member)
+ <df> DW_AT_name : (indirect string, offset: 0x221): f_spare
+ <e3> DW_AT_type : <0x14a>
+ <e7> DW_AT_decl_file : 2
+ <e8> DW_AT_decl_line : 58
+ <e9> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
+ <2><ec>: Abbrev Number: 0
+ <1><ed>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ee> DW_AT_type : <0xf8>
+ <f2> DW_AT_name : (indirect string, offset: 0x17f): __kernel_long_t
+ <f6> DW_AT_decl_file : 1
+ <f7> DW_AT_decl_line : 23
+ <1><f8>: Abbrev Number: 6 (DW_TAG_base_type)
+ <f9> DW_AT_name : (indirect string, offset: 0x176): long int
+ <fd> DW_AT_encoding : 5 (signed)
+ <fe> DW_AT_byte_size : 4
+ <1><ff>: Abbrev Number: 3 (DW_TAG_typedef)
+ <100> DW_AT_type : <0x10a>
+ <104> DW_AT_name : (indirect string, offset: 0x1b7): __u64
+ <108> DW_AT_decl_file : 3
+ <109> DW_AT_decl_line : 31
+ <1><10a>: Abbrev Number: 6 (DW_TAG_base_type)
+ <10b> DW_AT_name : (indirect string, offset: 0x1a0): long long unsigned int
+ <10f> DW_AT_encoding : 7 (unsigned)
+ <110> DW_AT_byte_size : 8
+ <1><111>: Abbrev Number: 3 (DW_TAG_typedef)
+ <112> DW_AT_type : <0x11c>
+ <116> DW_AT_name : (indirect string, offset: 0x1f6): __kernel_fsid_t
+ <11a> DW_AT_decl_file : 1
+ <11b> DW_AT_decl_line : 73
+ <1><11c>: Abbrev Number: 7 (DW_TAG_structure_type)
+ <11d> DW_AT_byte_size : 8
+ <11e> DW_AT_decl_file : 1
+ <11f> DW_AT_decl_line : 71
+ <2><120>: Abbrev Number: 5 (DW_TAG_member)
+ <121> DW_AT_name : (indirect string, offset: 0x1e5): val
+ <125> DW_AT_type : <0x12f>
+ <129> DW_AT_decl_file : 1
+ <12a> DW_AT_decl_line : 72
+ <12b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><12e>: Abbrev Number: 0
+ <1><12f>: Abbrev Number: 8 (DW_TAG_array_type)
+ <130> DW_AT_type : <0x13c>
+ <2><134>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <135> DW_AT_type : <0x143>
+ <139> DW_AT_lower_bound : 0
+ <13a> DW_AT_count : 2
+ <2><13b>: Abbrev Number: 0
+ <1><13c>: Abbrev Number: 6 (DW_TAG_base_type)
+ <13d> DW_AT_name : (indirect string, offset: 0x1e9): int
+ <141> DW_AT_encoding : 5 (signed)
+ <142> DW_AT_byte_size : 4
+ <1><143>: Abbrev Number: 10 (DW_TAG_base_type)
+ <144> DW_AT_name : (indirect string, offset: 0x1ed): sizetype
+ <148> DW_AT_byte_size : 8
+ <149> DW_AT_encoding : 7 (unsigned)
+ <1><14a>: Abbrev Number: 8 (DW_TAG_array_type)
+ <14b> DW_AT_type : <0xed>
+ <2><14f>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <150> DW_AT_type : <0x143>
+ <154> DW_AT_lower_bound : 0
+ <155> DW_AT_count : 4
+ <2><156>: Abbrev Number: 0
+ <1><157>: Abbrev Number: 0
diff --git a/mpers-m32/struct_statfs64.d2 b/mpers-m32/struct_statfs64.d2
index ccfb573..5c41192 100644
--- a/mpers-m32/struct_statfs64.d2
+++ b/mpers-m32/struct_statfs64.d2
@@ -1,170 +1,170 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x94): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15e): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 37
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x168): struct_statfs64
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x232): struct_statfs64
DW_AT_decl_file : 4
DW_AT_decl_line : 35
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x15f): statfs64
+DW_AT_name : (indirect string, offset: 0x229): statfs64
DW_AT_byte_size : 88
DW_AT_decl_file : 2
DW_AT_decl_line : 46
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa5): f_type
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x16f): f_type
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 47
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc5): f_bsize
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x18f): f_bsize
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 48
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcd): f_blocks
-DW_AT_type : <0xfe>
+DW_AT_name : (indirect string, offset: 0x197): f_blocks
+DW_AT_type : <0xff>
DW_AT_decl_file : 2
DW_AT_decl_line : 49
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf3): f_bfree
-DW_AT_type : <0xfe>
+DW_AT_name : (indirect string, offset: 0x1bd): f_bfree
+DW_AT_type : <0xff>
DW_AT_decl_file : 2
DW_AT_decl_line : 50
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfb): f_bavail
-DW_AT_type : <0xfe>
+DW_AT_name : (indirect string, offset: 0x1c5): f_bavail
+DW_AT_type : <0xff>
DW_AT_decl_file : 2
DW_AT_decl_line : 51
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x104): f_files
-DW_AT_type : <0xfe>
+DW_AT_name : (indirect string, offset: 0x1ce): f_files
+DW_AT_type : <0xff>
DW_AT_decl_file : 2
DW_AT_decl_line : 52
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10c): f_ffree
-DW_AT_type : <0xfe>
+DW_AT_name : (indirect string, offset: 0x1d6): f_ffree
+DW_AT_type : <0xff>
DW_AT_decl_file : 2
DW_AT_decl_line : 53
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x114): f_fsid
-DW_AT_type : <0x110>
+DW_AT_name : (indirect string, offset: 0x1de): f_fsid
+DW_AT_type : <0x111>
DW_AT_decl_file : 2
DW_AT_decl_line : 54
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13c): f_namelen
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x206): f_namelen
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 55
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x146): f_frsize
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x210): f_frsize
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 56
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14f): f_flags
-DW_AT_type : <0xec>
+DW_AT_name : (indirect string, offset: 0x219): f_flags
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 57
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<2><dd>
+<2><de>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x157): f_spare
-DW_AT_type : <0x149>
+DW_AT_name : (indirect string, offset: 0x221): f_spare
+DW_AT_type : <0x14a>
DW_AT_decl_file : 2
DW_AT_decl_line : 58
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
-<1><ec>
+<1><ed>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xf7>
-DW_AT_name : (indirect string, offset: 0xb5): __kernel_long_t
+DW_AT_type : <0xf8>
+DW_AT_name : (indirect string, offset: 0x17f): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><f7>
+<1><f8>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xac): long int
+DW_AT_name : (indirect string, offset: 0x176): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><fe>
+<1><ff>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x109>
-DW_AT_name : (indirect string, offset: 0xed): __u64
+DW_AT_type : <0x10a>
+DW_AT_name : (indirect string, offset: 0x1b7): __u64
DW_AT_decl_file : 3
DW_AT_decl_line : 31
-<1><109>
+<1><10a>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd6): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x1a0): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><110>
+<1><111>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x11b>
-DW_AT_name : (indirect string, offset: 0x12c): __kernel_fsid_t
+DW_AT_type : <0x11c>
+DW_AT_name : (indirect string, offset: 0x1f6): __kernel_fsid_t
DW_AT_decl_file : 1
DW_AT_decl_line : 73
-<1><11b>
+<1><11c>
Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_byte_size : 8
DW_AT_decl_file : 1
DW_AT_decl_line : 71
-<2><11f>
+<2><120>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11b): val
-DW_AT_type : <0x12e>
+DW_AT_name : (indirect string, offset: 0x1e5): val
+DW_AT_type : <0x12f>
DW_AT_decl_file : 1
DW_AT_decl_line : 72
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><12e>
+<1><12f>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0x13b>
-<2><133>
+DW_AT_type : <0x13c>
+<2><134>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0x142>
+DW_AT_type : <0x143>
DW_AT_lower_bound : 0
DW_AT_count : 2
-<1><13b>
+<1><13c>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x11f): int
+DW_AT_name : (indirect string, offset: 0x1e9): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><142>
+<1><143>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x123): sizetype
+DW_AT_name : (indirect string, offset: 0x1ed): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><149>
+<1><14a>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0xec>
-<2><14e>
+DW_AT_type : <0xed>
+<2><14f>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0x142>
+DW_AT_type : <0x143>
DW_AT_lower_bound : 0
DW_AT_count : 4
diff --git a/mpers-m32/struct_timex.d1 b/mpers-m32/struct_timex.d1
index e6c5968..7782867 100644
--- a/mpers-m32/struct_timex.d1
+++ b/mpers-m32/struct_timex.d1
@@ -1,198 +1,199 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x1b4 (32-bit)
+ Length: 0x1b5 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_timex.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_timex.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x56): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x91): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 38
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x19c): struct_timex
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 36
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x196): timex
- <40> DW_AT_byte_size : 128
- <41> DW_AT_decl_file : 1
- <42> DW_AT_decl_line : 23
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa2): modes
- <48> DW_AT_type : <0x15c>
- <4c> DW_AT_decl_file : 1
- <4d> DW_AT_decl_line : 24
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xb5): offset
- <56> DW_AT_type : <0x163>
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 25
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xd5): freq
- <64> DW_AT_type : <0x163>
- <68> DW_AT_decl_file : 1
- <69> DW_AT_decl_line : 26
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xda): maxerror
- <72> DW_AT_type : <0x163>
- <76> DW_AT_decl_file : 1
- <77> DW_AT_decl_line : 27
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0xe3): esterror
- <80> DW_AT_type : <0x163>
- <84> DW_AT_decl_file : 1
- <85> DW_AT_decl_line : 28
- <86> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0xec): status
- <8e> DW_AT_type : <0x175>
- <92> DW_AT_decl_file : 1
- <93> DW_AT_decl_line : 29
- <94> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0xf7): constant
- <9c> DW_AT_type : <0x163>
- <a0> DW_AT_decl_file : 1
- <a1> DW_AT_decl_line : 30
- <a2> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x100): precision
- <aa> DW_AT_type : <0x163>
- <ae> DW_AT_decl_file : 1
- <af> DW_AT_decl_line : 31
- <b0> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x10a): tolerance
- <b8> DW_AT_type : <0x163>
- <bc> DW_AT_decl_file : 1
- <bd> DW_AT_decl_line : 32
- <be> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x114): time
- <c6> DW_AT_type : <0x17c>
- <ca> DW_AT_decl_file : 1
- <cb> DW_AT_decl_line : 33
- <cc> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x155): tick
- <d4> DW_AT_type : <0x163>
- <d8> DW_AT_decl_file : 1
- <d9> DW_AT_decl_line : 34
- <da> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><dd>: Abbrev Number: 5 (DW_TAG_member)
- <de> DW_AT_name : (indirect string, offset: 0x15a): ppsfreq
- <e2> DW_AT_type : <0x163>
- <e6> DW_AT_decl_file : 1
- <e7> DW_AT_decl_line : 35
- <e8> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><eb>: Abbrev Number: 5 (DW_TAG_member)
- <ec> DW_AT_name : (indirect string, offset: 0x162): jitter
- <f0> DW_AT_type : <0x163>
- <f4> DW_AT_decl_file : 1
- <f5> DW_AT_decl_line : 36
- <f6> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><f9>: Abbrev Number: 5 (DW_TAG_member)
- <fa> DW_AT_name : (indirect string, offset: 0x169): shift
- <fe> DW_AT_type : <0x175>
- <102> DW_AT_decl_file : 1
- <103> DW_AT_decl_line : 37
- <104> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><107>: Abbrev Number: 5 (DW_TAG_member)
- <108> DW_AT_name : (indirect string, offset: 0x16f): stabil
- <10c> DW_AT_type : <0x163>
- <110> DW_AT_decl_file : 1
- <111> DW_AT_decl_line : 38
- <112> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><115>: Abbrev Number: 5 (DW_TAG_member)
- <116> DW_AT_name : (indirect string, offset: 0x176): jitcnt
- <11a> DW_AT_type : <0x163>
- <11e> DW_AT_decl_file : 1
- <11f> DW_AT_decl_line : 39
- <120> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><123>: Abbrev Number: 5 (DW_TAG_member)
- <124> DW_AT_name : (indirect string, offset: 0x17d): calcnt
- <128> DW_AT_type : <0x163>
- <12c> DW_AT_decl_file : 1
- <12d> DW_AT_decl_line : 40
- <12e> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
- <2><131>: Abbrev Number: 5 (DW_TAG_member)
- <132> DW_AT_name : (indirect string, offset: 0x184): errcnt
- <136> DW_AT_type : <0x163>
- <13a> DW_AT_decl_file : 1
- <13b> DW_AT_decl_line : 41
- <13c> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
- <2><13f>: Abbrev Number: 5 (DW_TAG_member)
- <140> DW_AT_name : (indirect string, offset: 0x18b): stbcnt
- <144> DW_AT_type : <0x163>
- <148> DW_AT_decl_file : 1
- <149> DW_AT_decl_line : 42
- <14a> DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst: 76)
- <2><14d>: Abbrev Number: 5 (DW_TAG_member)
- <14e> DW_AT_name : (indirect string, offset: 0x192): tai
- <152> DW_AT_type : <0x175>
- <156> DW_AT_decl_file : 1
- <157> DW_AT_decl_line : 43
- <158> DW_AT_data_member_location: 2 byte block: 23 50 (DW_OP_plus_uconst: 80)
- <2><15b>: Abbrev Number: 0
- <1><15c>: Abbrev Number: 6 (DW_TAG_base_type)
- <15d> DW_AT_name : (indirect string, offset: 0xa8): unsigned int
- <161> DW_AT_encoding : 7 (unsigned)
- <162> DW_AT_byte_size : 4
- <1><163>: Abbrev Number: 3 (DW_TAG_typedef)
- <164> DW_AT_type : <0x16e>
- <168> DW_AT_name : (indirect string, offset: 0xc5): __kernel_long_t
- <16c> DW_AT_decl_file : 2
- <16d> DW_AT_decl_line : 23
- <1><16e>: Abbrev Number: 6 (DW_TAG_base_type)
- <16f> DW_AT_name : (indirect string, offset: 0xbc): long int
- <173> DW_AT_encoding : 5 (signed)
- <174> DW_AT_byte_size : 4
- <1><175>: Abbrev Number: 6 (DW_TAG_base_type)
- <176> DW_AT_name : (indirect string, offset: 0xf3): int
- <17a> DW_AT_encoding : 5 (signed)
- <17b> DW_AT_byte_size : 4
- <1><17c>: Abbrev Number: 4 (DW_TAG_structure_type)
- <17d> DW_AT_name : (indirect string, offset: 0x14d): timeval
- <181> DW_AT_byte_size : 8
- <182> DW_AT_decl_file : 3
- <183> DW_AT_decl_line : 29
- <2><184>: Abbrev Number: 5 (DW_TAG_member)
- <185> DW_AT_name : (indirect string, offset: 0x119): tv_sec
- <189> DW_AT_type : <0x1a1>
- <18d> DW_AT_decl_file : 3
- <18e> DW_AT_decl_line : 30
- <18f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><192>: Abbrev Number: 5 (DW_TAG_member)
- <193> DW_AT_name : (indirect string, offset: 0x130): tv_usec
- <197> DW_AT_type : <0x1ac>
- <19b> DW_AT_decl_file : 3
- <19c> DW_AT_decl_line : 31
- <19d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><1a0>: Abbrev Number: 0
- <1><1a1>: Abbrev Number: 3 (DW_TAG_typedef)
- <1a2> DW_AT_type : <0x163>
- <1a6> DW_AT_name : (indirect string, offset: 0x120): __kernel_time_t
- <1aa> DW_AT_decl_file : 2
- <1ab> DW_AT_decl_line : 77
- <1><1ac>: Abbrev Number: 3 (DW_TAG_typedef)
- <1ad> DW_AT_type : <0x163>
- <1b1> DW_AT_name : (indirect string, offset: 0x138): __kernel_suseconds_t
- <1b5> DW_AT_decl_file : 2
- <1b6> DW_AT_decl_line : 43
- <1><1b7>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x120): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15b): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 38
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x266): struct_timex
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 36
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x260): timex
+ <41> DW_AT_byte_size : 128
+ <42> DW_AT_decl_file : 1
+ <43> DW_AT_decl_line : 23
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16c): modes
+ <49> DW_AT_type : <0x15d>
+ <4d> DW_AT_decl_file : 1
+ <4e> DW_AT_decl_line : 24
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x17f): offset
+ <57> DW_AT_type : <0x164>
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 25
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x19f): freq
+ <65> DW_AT_type : <0x164>
+ <69> DW_AT_decl_file : 1
+ <6a> DW_AT_decl_line : 26
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1a4): maxerror
+ <73> DW_AT_type : <0x164>
+ <77> DW_AT_decl_file : 1
+ <78> DW_AT_decl_line : 27
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1ad): esterror
+ <81> DW_AT_type : <0x164>
+ <85> DW_AT_decl_file : 1
+ <86> DW_AT_decl_line : 28
+ <87> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1b6): status
+ <8f> DW_AT_type : <0x176>
+ <93> DW_AT_decl_file : 1
+ <94> DW_AT_decl_line : 29
+ <95> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1c1): constant
+ <9d> DW_AT_type : <0x164>
+ <a1> DW_AT_decl_file : 1
+ <a2> DW_AT_decl_line : 30
+ <a3> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1ca): precision
+ <ab> DW_AT_type : <0x164>
+ <af> DW_AT_decl_file : 1
+ <b0> DW_AT_decl_line : 31
+ <b1> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x1d4): tolerance
+ <b9> DW_AT_type : <0x164>
+ <bd> DW_AT_decl_file : 1
+ <be> DW_AT_decl_line : 32
+ <bf> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x1de): time
+ <c7> DW_AT_type : <0x17d>
+ <cb> DW_AT_decl_file : 1
+ <cc> DW_AT_decl_line : 33
+ <cd> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x21f): tick
+ <d5> DW_AT_type : <0x164>
+ <d9> DW_AT_decl_file : 1
+ <da> DW_AT_decl_line : 34
+ <db> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><de>: Abbrev Number: 5 (DW_TAG_member)
+ <df> DW_AT_name : (indirect string, offset: 0x224): ppsfreq
+ <e3> DW_AT_type : <0x164>
+ <e7> DW_AT_decl_file : 1
+ <e8> DW_AT_decl_line : 35
+ <e9> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><ec>: Abbrev Number: 5 (DW_TAG_member)
+ <ed> DW_AT_name : (indirect string, offset: 0x22c): jitter
+ <f1> DW_AT_type : <0x164>
+ <f5> DW_AT_decl_file : 1
+ <f6> DW_AT_decl_line : 36
+ <f7> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><fa>: Abbrev Number: 5 (DW_TAG_member)
+ <fb> DW_AT_name : (indirect string, offset: 0x233): shift
+ <ff> DW_AT_type : <0x176>
+ <103> DW_AT_decl_file : 1
+ <104> DW_AT_decl_line : 37
+ <105> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><108>: Abbrev Number: 5 (DW_TAG_member)
+ <109> DW_AT_name : (indirect string, offset: 0x239): stabil
+ <10d> DW_AT_type : <0x164>
+ <111> DW_AT_decl_file : 1
+ <112> DW_AT_decl_line : 38
+ <113> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><116>: Abbrev Number: 5 (DW_TAG_member)
+ <117> DW_AT_name : (indirect string, offset: 0x240): jitcnt
+ <11b> DW_AT_type : <0x164>
+ <11f> DW_AT_decl_file : 1
+ <120> DW_AT_decl_line : 39
+ <121> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><124>: Abbrev Number: 5 (DW_TAG_member)
+ <125> DW_AT_name : (indirect string, offset: 0x247): calcnt
+ <129> DW_AT_type : <0x164>
+ <12d> DW_AT_decl_file : 1
+ <12e> DW_AT_decl_line : 40
+ <12f> DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
+ <2><132>: Abbrev Number: 5 (DW_TAG_member)
+ <133> DW_AT_name : (indirect string, offset: 0x24e): errcnt
+ <137> DW_AT_type : <0x164>
+ <13b> DW_AT_decl_file : 1
+ <13c> DW_AT_decl_line : 41
+ <13d> DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
+ <2><140>: Abbrev Number: 5 (DW_TAG_member)
+ <141> DW_AT_name : (indirect string, offset: 0x255): stbcnt
+ <145> DW_AT_type : <0x164>
+ <149> DW_AT_decl_file : 1
+ <14a> DW_AT_decl_line : 42
+ <14b> DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst: 76)
+ <2><14e>: Abbrev Number: 5 (DW_TAG_member)
+ <14f> DW_AT_name : (indirect string, offset: 0x25c): tai
+ <153> DW_AT_type : <0x176>
+ <157> DW_AT_decl_file : 1
+ <158> DW_AT_decl_line : 43
+ <159> DW_AT_data_member_location: 2 byte block: 23 50 (DW_OP_plus_uconst: 80)
+ <2><15c>: Abbrev Number: 0
+ <1><15d>: Abbrev Number: 6 (DW_TAG_base_type)
+ <15e> DW_AT_name : (indirect string, offset: 0x172): unsigned int
+ <162> DW_AT_encoding : 7 (unsigned)
+ <163> DW_AT_byte_size : 4
+ <1><164>: Abbrev Number: 3 (DW_TAG_typedef)
+ <165> DW_AT_type : <0x16f>
+ <169> DW_AT_name : (indirect string, offset: 0x18f): __kernel_long_t
+ <16d> DW_AT_decl_file : 2
+ <16e> DW_AT_decl_line : 23
+ <1><16f>: Abbrev Number: 6 (DW_TAG_base_type)
+ <170> DW_AT_name : (indirect string, offset: 0x186): long int
+ <174> DW_AT_encoding : 5 (signed)
+ <175> DW_AT_byte_size : 4
+ <1><176>: Abbrev Number: 6 (DW_TAG_base_type)
+ <177> DW_AT_name : (indirect string, offset: 0x1bd): int
+ <17b> DW_AT_encoding : 5 (signed)
+ <17c> DW_AT_byte_size : 4
+ <1><17d>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <17e> DW_AT_name : (indirect string, offset: 0x217): timeval
+ <182> DW_AT_byte_size : 8
+ <183> DW_AT_decl_file : 3
+ <184> DW_AT_decl_line : 29
+ <2><185>: Abbrev Number: 5 (DW_TAG_member)
+ <186> DW_AT_name : (indirect string, offset: 0x1e3): tv_sec
+ <18a> DW_AT_type : <0x1a2>
+ <18e> DW_AT_decl_file : 3
+ <18f> DW_AT_decl_line : 30
+ <190> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><193>: Abbrev Number: 5 (DW_TAG_member)
+ <194> DW_AT_name : (indirect string, offset: 0x1fa): tv_usec
+ <198> DW_AT_type : <0x1ad>
+ <19c> DW_AT_decl_file : 3
+ <19d> DW_AT_decl_line : 31
+ <19e> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><1a1>: Abbrev Number: 0
+ <1><1a2>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1a3> DW_AT_type : <0x164>
+ <1a7> DW_AT_name : (indirect string, offset: 0x1ea): __kernel_time_t
+ <1ab> DW_AT_decl_file : 2
+ <1ac> DW_AT_decl_line : 77
+ <1><1ad>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1ae> DW_AT_type : <0x164>
+ <1b2> DW_AT_name : (indirect string, offset: 0x202): __kernel_suseconds_t
+ <1b6> DW_AT_decl_file : 2
+ <1b7> DW_AT_decl_line : 43
+ <1><1b8>: Abbrev Number: 0
diff --git a/mpers-m32/struct_timex.d2 b/mpers-m32/struct_timex.d2
index eb99903..f5d8915 100644
--- a/mpers-m32/struct_timex.d2
+++ b/mpers-m32/struct_timex.d2
@@ -1,213 +1,213 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x91): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15b): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 38
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x19c): struct_timex
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x266): struct_timex
DW_AT_decl_file : 4
DW_AT_decl_line : 36
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x196): timex
+DW_AT_name : (indirect string, offset: 0x260): timex
DW_AT_byte_size : 128
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa2): modes
-DW_AT_type : <0x15c>
+DW_AT_name : (indirect string, offset: 0x16c): modes
+DW_AT_type : <0x15d>
DW_AT_decl_file : 1
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb5): offset
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x17f): offset
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd5): freq
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x19f): freq
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xda): maxerror
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1a4): maxerror
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe3): esterror
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1ad): esterror
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xec): status
-DW_AT_type : <0x175>
+DW_AT_name : (indirect string, offset: 0x1b6): status
+DW_AT_type : <0x176>
DW_AT_decl_file : 1
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf7): constant
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1c1): constant
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x100): precision
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1ca): precision
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10a): tolerance
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x1d4): tolerance
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x114): time
-DW_AT_type : <0x17c>
+DW_AT_name : (indirect string, offset: 0x1de): time
+DW_AT_type : <0x17d>
DW_AT_decl_file : 1
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x155): tick
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x21f): tick
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><dd>
+<2><de>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15a): ppsfreq
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x224): ppsfreq
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><eb>
+<2><ec>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x162): jitter
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x22c): jitter
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><f9>
+<2><fa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x169): shift
-DW_AT_type : <0x175>
+DW_AT_name : (indirect string, offset: 0x233): shift
+DW_AT_type : <0x176>
DW_AT_decl_file : 1
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><107>
+<2><108>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x16f): stabil
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x239): stabil
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 38
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><115>
+<2><116>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x176): jitcnt
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x240): jitcnt
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 39
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<2><123>
+<2><124>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17d): calcnt
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x247): calcnt
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 40
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst: 68)
-<2><131>
+<2><132>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x184): errcnt
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x24e): errcnt
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 41
DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst: 72)
-<2><13f>
+<2><140>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x18b): stbcnt
-DW_AT_type : <0x163>
+DW_AT_name : (indirect string, offset: 0x255): stbcnt
+DW_AT_type : <0x164>
DW_AT_decl_file : 1
DW_AT_decl_line : 42
DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst: 76)
-<2><14d>
+<2><14e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x192): tai
-DW_AT_type : <0x175>
+DW_AT_name : (indirect string, offset: 0x25c): tai
+DW_AT_type : <0x176>
DW_AT_decl_file : 1
DW_AT_decl_line : 43
DW_AT_data_member_location: 2 byte block: 23 50 (DW_OP_plus_uconst: 80)
-<1><15c>
+<1><15d>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa8): unsigned int
+DW_AT_name : (indirect string, offset: 0x172): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><163>
+<1><164>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x16e>
-DW_AT_name : (indirect string, offset: 0xc5): __kernel_long_t
+DW_AT_type : <0x16f>
+DW_AT_name : (indirect string, offset: 0x18f): __kernel_long_t
DW_AT_decl_file : 2
DW_AT_decl_line : 23
-<1><16e>
+<1><16f>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xbc): long int
+DW_AT_name : (indirect string, offset: 0x186): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><175>
+<1><176>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf3): int
+DW_AT_name : (indirect string, offset: 0x1bd): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><17c>
+<1><17d>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x14d): timeval
+DW_AT_name : (indirect string, offset: 0x217): timeval
DW_AT_byte_size : 8
DW_AT_decl_file : 3
DW_AT_decl_line : 29
-<2><184>
+<2><185>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x119): tv_sec
-DW_AT_type : <0x1a1>
+DW_AT_name : (indirect string, offset: 0x1e3): tv_sec
+DW_AT_type : <0x1a2>
DW_AT_decl_file : 3
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><192>
+<2><193>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x130): tv_usec
-DW_AT_type : <0x1ac>
+DW_AT_name : (indirect string, offset: 0x1fa): tv_usec
+DW_AT_type : <0x1ad>
DW_AT_decl_file : 3
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><1a1>
+<1><1a2>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x163>
-DW_AT_name : (indirect string, offset: 0x120): __kernel_time_t
+DW_AT_type : <0x164>
+DW_AT_name : (indirect string, offset: 0x1ea): __kernel_time_t
DW_AT_decl_file : 2
DW_AT_decl_line : 77
-<1><1ac>
+<1><1ad>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x163>
-DW_AT_name : (indirect string, offset: 0x138): __kernel_suseconds_t
+DW_AT_type : <0x164>
+DW_AT_name : (indirect string, offset: 0x202): __kernel_suseconds_t
DW_AT_decl_file : 2
DW_AT_decl_line : 43
diff --git a/mpers-m32/struct_v4l2_buffer.d1 b/mpers-m32/struct_v4l2_buffer.d1
index cb106cf..8720e24 100644
--- a/mpers-m32/struct_v4l2_buffer.d1
+++ b/mpers-m32/struct_v4l2_buffer.d1
@@ -1,335 +1,336 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x2f2 (32-bit)
+ Length: 0x2f3 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_buffer.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_buffer.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5c): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 5
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x223): struct_v4l2_buffer
- <39> DW_AT_decl_file : 5
- <3a> DW_AT_decl_line : 41
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x217): v4l2_buffer
- <40> DW_AT_byte_size : 68
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 466
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xa8): index
- <49> DW_AT_type : <0x14a>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 467
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xc1): type
- <58> DW_AT_type : <0x14a>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 468
- <5f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xc6): bytesused
- <67> DW_AT_type : <0x14a>
- <6b> DW_AT_decl_file : 2
- <6c> DW_AT_decl_line : 469
- <6e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0xd0): flags
- <76> DW_AT_type : <0x14a>
- <7a> DW_AT_decl_file : 2
- <7b> DW_AT_decl_line : 470
- <7d> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><80>: Abbrev Number: 5 (DW_TAG_member)
- <81> DW_AT_name : (indirect string, offset: 0xd6): field
- <85> DW_AT_type : <0x14a>
- <89> DW_AT_decl_file : 2
- <8a> DW_AT_decl_line : 471
- <8c> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><8f>: Abbrev Number: 5 (DW_TAG_member)
- <90> DW_AT_name : (indirect string, offset: 0xdc): timestamp
- <94> DW_AT_type : <0x15c>
- <98> DW_AT_decl_file : 2
- <99> DW_AT_decl_line : 472
- <9b> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><9e>: Abbrev Number: 5 (DW_TAG_member)
- <9f> DW_AT_name : (indirect string, offset: 0x13b): timecode
- <a3> DW_AT_type : <0x1a9>
- <a7> DW_AT_decl_file : 2
- <a8> DW_AT_decl_line : 473
- <aa> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><ad>: Abbrev Number: 5 (DW_TAG_member)
- <ae> DW_AT_name : (indirect string, offset: 0x194): sequence
- <b2> DW_AT_type : <0x14a>
- <b6> DW_AT_decl_file : 2
- <b7> DW_AT_decl_line : 474
- <b9> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><bc>: Abbrev Number: 5 (DW_TAG_member)
- <bd> DW_AT_name : (indirect string, offset: 0x19d): memory
- <c1> DW_AT_type : <0x14a>
- <c5> DW_AT_decl_file : 2
- <c6> DW_AT_decl_line : 475
- <c8> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><cb>: Abbrev Number: 5 (DW_TAG_member)
- <cc> DW_AT_name : (indirect string, offset: 0x1a4): m
- <d0> DW_AT_type : <0xda>
- <d4> DW_AT_decl_file : 2
- <d5> DW_AT_decl_line : 481
- <d7> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><da>: Abbrev Number: 6 (DW_TAG_union_type)
- <db> DW_AT_byte_size : 4
- <dc> DW_AT_decl_file : 2
- <dd> DW_AT_decl_line : 476
- <3><df>: Abbrev Number: 5 (DW_TAG_member)
- <e0> DW_AT_name : (indirect string, offset: 0x1a6): offset
- <e4> DW_AT_type : <0x14a>
- <e8> DW_AT_decl_file : 2
- <e9> DW_AT_decl_line : 477
- <eb> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><ee>: Abbrev Number: 5 (DW_TAG_member)
- <ef> DW_AT_name : (indirect string, offset: 0x1ad): userptr
- <f3> DW_AT_type : <0x242>
- <f7> DW_AT_decl_file : 2
- <f8> DW_AT_decl_line : 478
- <fa> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><fd>: Abbrev Number: 5 (DW_TAG_member)
- <fe> DW_AT_name : (indirect string, offset: 0x1c7): planes
- <102> DW_AT_type : <0x249>
- <106> DW_AT_decl_file : 2
- <107> DW_AT_decl_line : 479
- <109> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><10c>: Abbrev Number: 5 (DW_TAG_member)
- <10d> DW_AT_name : (indirect string, offset: 0x1e0): fd
- <111> DW_AT_type : <0x2d6>
- <115> DW_AT_decl_file : 2
- <116> DW_AT_decl_line : 480
- <118> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><11b>: Abbrev Number: 0
- <2><11c>: Abbrev Number: 5 (DW_TAG_member)
- <11d> DW_AT_name : (indirect string, offset: 0x1ce): length
- <121> DW_AT_type : <0x14a>
- <125> DW_AT_decl_file : 2
- <126> DW_AT_decl_line : 482
- <128> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><12b>: Abbrev Number: 5 (DW_TAG_member)
- <12c> DW_AT_name : (indirect string, offset: 0x20d): reserved2
- <130> DW_AT_type : <0x14a>
- <134> DW_AT_decl_file : 2
- <135> DW_AT_decl_line : 483
- <137> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><13a>: Abbrev Number: 5 (DW_TAG_member)
- <13b> DW_AT_name : (indirect string, offset: 0x1f9): reserved
- <13f> DW_AT_type : <0x14a>
- <143> DW_AT_decl_file : 2
- <144> DW_AT_decl_line : 484
- <146> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><149>: Abbrev Number: 0
- <1><14a>: Abbrev Number: 3 (DW_TAG_typedef)
- <14b> DW_AT_type : <0x155>
- <14f> DW_AT_name : (indirect string, offset: 0xbb): __u32
- <153> DW_AT_decl_file : 1
- <154> DW_AT_decl_line : 28
- <1><155>: Abbrev Number: 7 (DW_TAG_base_type)
- <156> DW_AT_name : (indirect string, offset: 0xae): unsigned int
- <15a> DW_AT_encoding : 7 (unsigned)
- <15b> DW_AT_byte_size : 4
- <1><15c>: Abbrev Number: 8 (DW_TAG_structure_type)
- <15d> DW_AT_name : (indirect string, offset: 0x133): timeval
- <161> DW_AT_byte_size : 8
- <162> DW_AT_decl_file : 4
- <163> DW_AT_decl_line : 29
- <2><164>: Abbrev Number: 9 (DW_TAG_member)
- <165> DW_AT_name : (indirect string, offset: 0xe6): tv_sec
- <169> DW_AT_type : <0x181>
- <16d> DW_AT_decl_file : 4
- <16e> DW_AT_decl_line : 30
- <16f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><172>: Abbrev Number: 9 (DW_TAG_member)
- <173> DW_AT_name : (indirect string, offset: 0x116): tv_usec
- <177> DW_AT_type : <0x19e>
- <17b> DW_AT_decl_file : 4
- <17c> DW_AT_decl_line : 31
- <17d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><180>: Abbrev Number: 0
- <1><181>: Abbrev Number: 3 (DW_TAG_typedef)
- <182> DW_AT_type : <0x18c>
- <186> DW_AT_name : (indirect string, offset: 0x106): __kernel_time_t
- <18a> DW_AT_decl_file : 3
- <18b> DW_AT_decl_line : 77
- <1><18c>: Abbrev Number: 3 (DW_TAG_typedef)
- <18d> DW_AT_type : <0x197>
- <191> DW_AT_name : (indirect string, offset: 0xf6): __kernel_long_t
- <195> DW_AT_decl_file : 3
- <196> DW_AT_decl_line : 23
- <1><197>: Abbrev Number: 7 (DW_TAG_base_type)
- <198> DW_AT_name : (indirect string, offset: 0xed): long int
- <19c> DW_AT_encoding : 5 (signed)
- <19d> DW_AT_byte_size : 4
- <1><19e>: Abbrev Number: 3 (DW_TAG_typedef)
- <19f> DW_AT_type : <0x18c>
- <1a3> DW_AT_name : (indirect string, offset: 0x11e): __kernel_suseconds_t
- <1a7> DW_AT_decl_file : 3
- <1a8> DW_AT_decl_line : 43
- <1><1a9>: Abbrev Number: 4 (DW_TAG_structure_type)
- <1aa> DW_AT_name : (indirect string, offset: 0x186): v4l2_timecode
- <1ae> DW_AT_byte_size : 16
- <1af> DW_AT_decl_file : 2
- <1b0> DW_AT_decl_line : 416
- <2><1b2>: Abbrev Number: 5 (DW_TAG_member)
- <1b3> DW_AT_name : (indirect string, offset: 0xc1): type
- <1b7> DW_AT_type : <0x14a>
- <1bb> DW_AT_decl_file : 2
- <1bc> DW_AT_decl_line : 417
- <1be> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><1c1>: Abbrev Number: 5 (DW_TAG_member)
- <1c2> DW_AT_name : (indirect string, offset: 0xd0): flags
- <1c6> DW_AT_type : <0x14a>
- <1ca> DW_AT_decl_file : 2
- <1cb> DW_AT_decl_line : 418
- <1cd> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><1d0>: Abbrev Number: 5 (DW_TAG_member)
- <1d1> DW_AT_name : (indirect string, offset: 0x144): frames
- <1d5> DW_AT_type : <0x21c>
- <1d9> DW_AT_decl_file : 2
- <1da> DW_AT_decl_line : 419
- <1dc> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><1df>: Abbrev Number: 5 (DW_TAG_member)
- <1e0> DW_AT_name : (indirect string, offset: 0x15e): seconds
- <1e4> DW_AT_type : <0x21c>
- <1e8> DW_AT_decl_file : 2
- <1e9> DW_AT_decl_line : 420
- <1eb> DW_AT_data_member_location: 2 byte block: 23 9 (DW_OP_plus_uconst: 9)
- <2><1ee>: Abbrev Number: 5 (DW_TAG_member)
- <1ef> DW_AT_name : (indirect string, offset: 0x166): minutes
- <1f3> DW_AT_type : <0x21c>
- <1f7> DW_AT_decl_file : 2
- <1f8> DW_AT_decl_line : 421
- <1fa> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
- <2><1fd>: Abbrev Number: 5 (DW_TAG_member)
- <1fe> DW_AT_name : (indirect string, offset: 0x16e): hours
- <202> DW_AT_type : <0x21c>
- <206> DW_AT_decl_file : 2
- <207> DW_AT_decl_line : 422
- <209> DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
- <2><20c>: Abbrev Number: 5 (DW_TAG_member)
- <20d> DW_AT_name : (indirect string, offset: 0x174): userbits
- <211> DW_AT_type : <0x22e>
- <215> DW_AT_decl_file : 2
- <216> DW_AT_decl_line : 423
- <218> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><21b>: Abbrev Number: 0
- <1><21c>: Abbrev Number: 3 (DW_TAG_typedef)
- <21d> DW_AT_type : <0x227>
- <221> DW_AT_name : (indirect string, offset: 0x159): __u8
- <225> DW_AT_decl_file : 1
- <226> DW_AT_decl_line : 24
- <1><227>: Abbrev Number: 7 (DW_TAG_base_type)
- <228> DW_AT_name : (indirect string, offset: 0x14b): unsigned char
- <22c> DW_AT_encoding : 8 (unsigned char)
- <22d> DW_AT_byte_size : 1
- <1><22e>: Abbrev Number: 10 (DW_TAG_array_type)
- <22f> DW_AT_type : <0x21c>
- <2><233>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <234> DW_AT_type : <0x23b>
- <238> DW_AT_lower_bound : 0
- <239> DW_AT_count : 4
- <2><23a>: Abbrev Number: 0
- <1><23b>: Abbrev Number: 12 (DW_TAG_base_type)
- <23c> DW_AT_name : (indirect string, offset: 0x17d): sizetype
- <240> DW_AT_byte_size : 8
- <241> DW_AT_encoding : 7 (unsigned)
- <1><242>: Abbrev Number: 7 (DW_TAG_base_type)
- <243> DW_AT_name : (indirect string, offset: 0x1b5): long unsigned int
- <247> DW_AT_encoding : 7 (unsigned)
- <248> DW_AT_byte_size : 4
- <1><249>: Abbrev Number: 13 (DW_TAG_pointer_type)
- <24a> DW_AT_type : <0x24e>
- <1><24e>: Abbrev Number: 4 (DW_TAG_structure_type)
- <24f> DW_AT_name : (indirect string, offset: 0x202): v4l2_plane
- <253> DW_AT_byte_size : 60
- <254> DW_AT_decl_file : 2
- <255> DW_AT_decl_line : 455
- <2><257>: Abbrev Number: 5 (DW_TAG_member)
- <258> DW_AT_name : (indirect string, offset: 0xc6): bytesused
- <25c> DW_AT_type : <0x14a>
- <260> DW_AT_decl_file : 2
- <261> DW_AT_decl_line : 456
- <263> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><266>: Abbrev Number: 5 (DW_TAG_member)
- <267> DW_AT_name : (indirect string, offset: 0x1ce): length
- <26b> DW_AT_type : <0x14a>
- <26f> DW_AT_decl_file : 2
- <270> DW_AT_decl_line : 457
- <272> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><275>: Abbrev Number: 5 (DW_TAG_member)
- <276> DW_AT_name : (indirect string, offset: 0x1a4): m
- <27a> DW_AT_type : <0x284>
- <27e> DW_AT_decl_file : 2
- <27f> DW_AT_decl_line : 462
- <281> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><284>: Abbrev Number: 6 (DW_TAG_union_type)
- <285> DW_AT_byte_size : 4
- <286> DW_AT_decl_file : 2
- <287> DW_AT_decl_line : 458
- <3><289>: Abbrev Number: 5 (DW_TAG_member)
- <28a> DW_AT_name : (indirect string, offset: 0x1d5): mem_offset
- <28e> DW_AT_type : <0x14a>
- <292> DW_AT_decl_file : 2
- <293> DW_AT_decl_line : 459
- <295> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><298>: Abbrev Number: 5 (DW_TAG_member)
- <299> DW_AT_name : (indirect string, offset: 0x1ad): userptr
- <29d> DW_AT_type : <0x242>
- <2a1> DW_AT_decl_file : 2
- <2a2> DW_AT_decl_line : 460
- <2a4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2a7>: Abbrev Number: 5 (DW_TAG_member)
- <2a8> DW_AT_name : (indirect string, offset: 0x1e0): fd
- <2ac> DW_AT_type : <0x2d6>
- <2b0> DW_AT_decl_file : 2
- <2b1> DW_AT_decl_line : 461
- <2b3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2b6>: Abbrev Number: 0
- <2><2b7>: Abbrev Number: 5 (DW_TAG_member)
- <2b8> DW_AT_name : (indirect string, offset: 0x1ed): data_offset
- <2bc> DW_AT_type : <0x14a>
- <2c0> DW_AT_decl_file : 2
- <2c1> DW_AT_decl_line : 463
- <2c3> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><2c6>: Abbrev Number: 5 (DW_TAG_member)
- <2c7> DW_AT_name : (indirect string, offset: 0x1f9): reserved
- <2cb> DW_AT_type : <0x2e8>
- <2cf> DW_AT_decl_file : 2
- <2d0> DW_AT_decl_line : 464
- <2d2> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><2d5>: Abbrev Number: 0
- <1><2d6>: Abbrev Number: 3 (DW_TAG_typedef)
- <2d7> DW_AT_type : <0x2e1>
- <2db> DW_AT_name : (indirect string, offset: 0x1e7): __s32
- <2df> DW_AT_decl_file : 1
- <2e0> DW_AT_decl_line : 27
- <1><2e1>: Abbrev Number: 7 (DW_TAG_base_type)
- <2e2> DW_AT_name : (indirect string, offset: 0x1e3): int
- <2e6> DW_AT_encoding : 5 (signed)
- <2e7> DW_AT_byte_size : 4
- <1><2e8>: Abbrev Number: 10 (DW_TAG_array_type)
- <2e9> DW_AT_type : <0x14a>
- <2><2ed>: Abbrev Number: 11 (DW_TAG_subrange_type)
- <2ee> DW_AT_type : <0x23b>
- <2f2> DW_AT_lower_bound : 0
- <2f3> DW_AT_count : 11
- <2><2f4>: Abbrev Number: 0
- <1><2f5>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x126): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 5
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x2ed): struct_v4l2_buffer
+ <3a> DW_AT_decl_file : 5
+ <3b> DW_AT_decl_line : 41
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x2e1): v4l2_buffer
+ <41> DW_AT_byte_size : 68
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 473
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x172): index
+ <4a> DW_AT_type : <0x14b>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 474
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x18b): type
+ <59> DW_AT_type : <0x14b>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 475
+ <60> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x190): bytesused
+ <68> DW_AT_type : <0x14b>
+ <6c> DW_AT_decl_file : 2
+ <6d> DW_AT_decl_line : 476
+ <6f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x19a): flags
+ <77> DW_AT_type : <0x14b>
+ <7b> DW_AT_decl_file : 2
+ <7c> DW_AT_decl_line : 477
+ <7e> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><81>: Abbrev Number: 5 (DW_TAG_member)
+ <82> DW_AT_name : (indirect string, offset: 0x1a0): field
+ <86> DW_AT_type : <0x14b>
+ <8a> DW_AT_decl_file : 2
+ <8b> DW_AT_decl_line : 478
+ <8d> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><90>: Abbrev Number: 5 (DW_TAG_member)
+ <91> DW_AT_name : (indirect string, offset: 0x1a6): timestamp
+ <95> DW_AT_type : <0x15d>
+ <99> DW_AT_decl_file : 2
+ <9a> DW_AT_decl_line : 479
+ <9c> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><9f>: Abbrev Number: 5 (DW_TAG_member)
+ <a0> DW_AT_name : (indirect string, offset: 0x205): timecode
+ <a4> DW_AT_type : <0x1aa>
+ <a8> DW_AT_decl_file : 2
+ <a9> DW_AT_decl_line : 480
+ <ab> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><ae>: Abbrev Number: 5 (DW_TAG_member)
+ <af> DW_AT_name : (indirect string, offset: 0x25e): sequence
+ <b3> DW_AT_type : <0x14b>
+ <b7> DW_AT_decl_file : 2
+ <b8> DW_AT_decl_line : 481
+ <ba> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><bd>: Abbrev Number: 5 (DW_TAG_member)
+ <be> DW_AT_name : (indirect string, offset: 0x267): memory
+ <c2> DW_AT_type : <0x14b>
+ <c6> DW_AT_decl_file : 2
+ <c7> DW_AT_decl_line : 482
+ <c9> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><cc>: Abbrev Number: 5 (DW_TAG_member)
+ <cd> DW_AT_name : (indirect string, offset: 0x26e): m
+ <d1> DW_AT_type : <0xdb>
+ <d5> DW_AT_decl_file : 2
+ <d6> DW_AT_decl_line : 488
+ <d8> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><db>: Abbrev Number: 6 (DW_TAG_union_type)
+ <dc> DW_AT_byte_size : 4
+ <dd> DW_AT_decl_file : 2
+ <de> DW_AT_decl_line : 483
+ <3><e0>: Abbrev Number: 5 (DW_TAG_member)
+ <e1> DW_AT_name : (indirect string, offset: 0x270): offset
+ <e5> DW_AT_type : <0x14b>
+ <e9> DW_AT_decl_file : 2
+ <ea> DW_AT_decl_line : 484
+ <ec> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><ef>: Abbrev Number: 5 (DW_TAG_member)
+ <f0> DW_AT_name : (indirect string, offset: 0x277): userptr
+ <f4> DW_AT_type : <0x243>
+ <f8> DW_AT_decl_file : 2
+ <f9> DW_AT_decl_line : 485
+ <fb> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><fe>: Abbrev Number: 5 (DW_TAG_member)
+ <ff> DW_AT_name : (indirect string, offset: 0x291): planes
+ <103> DW_AT_type : <0x24a>
+ <107> DW_AT_decl_file : 2
+ <108> DW_AT_decl_line : 486
+ <10a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><10d>: Abbrev Number: 5 (DW_TAG_member)
+ <10e> DW_AT_name : (indirect string, offset: 0x2aa): fd
+ <112> DW_AT_type : <0x2d7>
+ <116> DW_AT_decl_file : 2
+ <117> DW_AT_decl_line : 487
+ <119> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><11c>: Abbrev Number: 0
+ <2><11d>: Abbrev Number: 5 (DW_TAG_member)
+ <11e> DW_AT_name : (indirect string, offset: 0x298): length
+ <122> DW_AT_type : <0x14b>
+ <126> DW_AT_decl_file : 2
+ <127> DW_AT_decl_line : 489
+ <129> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><12c>: Abbrev Number: 5 (DW_TAG_member)
+ <12d> DW_AT_name : (indirect string, offset: 0x2d7): reserved2
+ <131> DW_AT_type : <0x14b>
+ <135> DW_AT_decl_file : 2
+ <136> DW_AT_decl_line : 490
+ <138> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><13b>: Abbrev Number: 5 (DW_TAG_member)
+ <13c> DW_AT_name : (indirect string, offset: 0x2c3): reserved
+ <140> DW_AT_type : <0x14b>
+ <144> DW_AT_decl_file : 2
+ <145> DW_AT_decl_line : 491
+ <147> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><14a>: Abbrev Number: 0
+ <1><14b>: Abbrev Number: 3 (DW_TAG_typedef)
+ <14c> DW_AT_type : <0x156>
+ <150> DW_AT_name : (indirect string, offset: 0x185): __u32
+ <154> DW_AT_decl_file : 1
+ <155> DW_AT_decl_line : 28
+ <1><156>: Abbrev Number: 7 (DW_TAG_base_type)
+ <157> DW_AT_name : (indirect string, offset: 0x178): unsigned int
+ <15b> DW_AT_encoding : 7 (unsigned)
+ <15c> DW_AT_byte_size : 4
+ <1><15d>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <15e> DW_AT_name : (indirect string, offset: 0x1fd): timeval
+ <162> DW_AT_byte_size : 8
+ <163> DW_AT_decl_file : 4
+ <164> DW_AT_decl_line : 29
+ <2><165>: Abbrev Number: 9 (DW_TAG_member)
+ <166> DW_AT_name : (indirect string, offset: 0x1b0): tv_sec
+ <16a> DW_AT_type : <0x182>
+ <16e> DW_AT_decl_file : 4
+ <16f> DW_AT_decl_line : 30
+ <170> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><173>: Abbrev Number: 9 (DW_TAG_member)
+ <174> DW_AT_name : (indirect string, offset: 0x1e0): tv_usec
+ <178> DW_AT_type : <0x19f>
+ <17c> DW_AT_decl_file : 4
+ <17d> DW_AT_decl_line : 31
+ <17e> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><181>: Abbrev Number: 0
+ <1><182>: Abbrev Number: 3 (DW_TAG_typedef)
+ <183> DW_AT_type : <0x18d>
+ <187> DW_AT_name : (indirect string, offset: 0x1d0): __kernel_time_t
+ <18b> DW_AT_decl_file : 3
+ <18c> DW_AT_decl_line : 77
+ <1><18d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <18e> DW_AT_type : <0x198>
+ <192> DW_AT_name : (indirect string, offset: 0x1c0): __kernel_long_t
+ <196> DW_AT_decl_file : 3
+ <197> DW_AT_decl_line : 23
+ <1><198>: Abbrev Number: 7 (DW_TAG_base_type)
+ <199> DW_AT_name : (indirect string, offset: 0x1b7): long int
+ <19d> DW_AT_encoding : 5 (signed)
+ <19e> DW_AT_byte_size : 4
+ <1><19f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1a0> DW_AT_type : <0x18d>
+ <1a4> DW_AT_name : (indirect string, offset: 0x1e8): __kernel_suseconds_t
+ <1a8> DW_AT_decl_file : 3
+ <1a9> DW_AT_decl_line : 43
+ <1><1aa>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <1ab> DW_AT_name : (indirect string, offset: 0x250): v4l2_timecode
+ <1af> DW_AT_byte_size : 16
+ <1b0> DW_AT_decl_file : 2
+ <1b1> DW_AT_decl_line : 423
+ <2><1b3>: Abbrev Number: 5 (DW_TAG_member)
+ <1b4> DW_AT_name : (indirect string, offset: 0x18b): type
+ <1b8> DW_AT_type : <0x14b>
+ <1bc> DW_AT_decl_file : 2
+ <1bd> DW_AT_decl_line : 424
+ <1bf> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><1c2>: Abbrev Number: 5 (DW_TAG_member)
+ <1c3> DW_AT_name : (indirect string, offset: 0x19a): flags
+ <1c7> DW_AT_type : <0x14b>
+ <1cb> DW_AT_decl_file : 2
+ <1cc> DW_AT_decl_line : 425
+ <1ce> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><1d1>: Abbrev Number: 5 (DW_TAG_member)
+ <1d2> DW_AT_name : (indirect string, offset: 0x20e): frames
+ <1d6> DW_AT_type : <0x21d>
+ <1da> DW_AT_decl_file : 2
+ <1db> DW_AT_decl_line : 426
+ <1dd> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><1e0>: Abbrev Number: 5 (DW_TAG_member)
+ <1e1> DW_AT_name : (indirect string, offset: 0x228): seconds
+ <1e5> DW_AT_type : <0x21d>
+ <1e9> DW_AT_decl_file : 2
+ <1ea> DW_AT_decl_line : 427
+ <1ec> DW_AT_data_member_location: 2 byte block: 23 9 (DW_OP_plus_uconst: 9)
+ <2><1ef>: Abbrev Number: 5 (DW_TAG_member)
+ <1f0> DW_AT_name : (indirect string, offset: 0x230): minutes
+ <1f4> DW_AT_type : <0x21d>
+ <1f8> DW_AT_decl_file : 2
+ <1f9> DW_AT_decl_line : 428
+ <1fb> DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+ <2><1fe>: Abbrev Number: 5 (DW_TAG_member)
+ <1ff> DW_AT_name : (indirect string, offset: 0x238): hours
+ <203> DW_AT_type : <0x21d>
+ <207> DW_AT_decl_file : 2
+ <208> DW_AT_decl_line : 429
+ <20a> DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
+ <2><20d>: Abbrev Number: 5 (DW_TAG_member)
+ <20e> DW_AT_name : (indirect string, offset: 0x23e): userbits
+ <212> DW_AT_type : <0x22f>
+ <216> DW_AT_decl_file : 2
+ <217> DW_AT_decl_line : 430
+ <219> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><21c>: Abbrev Number: 0
+ <1><21d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <21e> DW_AT_type : <0x228>
+ <222> DW_AT_name : (indirect string, offset: 0x223): __u8
+ <226> DW_AT_decl_file : 1
+ <227> DW_AT_decl_line : 24
+ <1><228>: Abbrev Number: 7 (DW_TAG_base_type)
+ <229> DW_AT_name : (indirect string, offset: 0x215): unsigned char
+ <22d> DW_AT_encoding : 8 (unsigned char)
+ <22e> DW_AT_byte_size : 1
+ <1><22f>: Abbrev Number: 10 (DW_TAG_array_type)
+ <230> DW_AT_type : <0x21d>
+ <2><234>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <235> DW_AT_type : <0x23c>
+ <239> DW_AT_lower_bound : 0
+ <23a> DW_AT_count : 4
+ <2><23b>: Abbrev Number: 0
+ <1><23c>: Abbrev Number: 12 (DW_TAG_base_type)
+ <23d> DW_AT_name : (indirect string, offset: 0x247): sizetype
+ <241> DW_AT_byte_size : 8
+ <242> DW_AT_encoding : 7 (unsigned)
+ <1><243>: Abbrev Number: 7 (DW_TAG_base_type)
+ <244> DW_AT_name : (indirect string, offset: 0x27f): long unsigned int
+ <248> DW_AT_encoding : 7 (unsigned)
+ <249> DW_AT_byte_size : 4
+ <1><24a>: Abbrev Number: 13 (DW_TAG_pointer_type)
+ <24b> DW_AT_type : <0x24f>
+ <1><24f>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <250> DW_AT_name : (indirect string, offset: 0x2cc): v4l2_plane
+ <254> DW_AT_byte_size : 60
+ <255> DW_AT_decl_file : 2
+ <256> DW_AT_decl_line : 462
+ <2><258>: Abbrev Number: 5 (DW_TAG_member)
+ <259> DW_AT_name : (indirect string, offset: 0x190): bytesused
+ <25d> DW_AT_type : <0x14b>
+ <261> DW_AT_decl_file : 2
+ <262> DW_AT_decl_line : 463
+ <264> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><267>: Abbrev Number: 5 (DW_TAG_member)
+ <268> DW_AT_name : (indirect string, offset: 0x298): length
+ <26c> DW_AT_type : <0x14b>
+ <270> DW_AT_decl_file : 2
+ <271> DW_AT_decl_line : 464
+ <273> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><276>: Abbrev Number: 5 (DW_TAG_member)
+ <277> DW_AT_name : (indirect string, offset: 0x26e): m
+ <27b> DW_AT_type : <0x285>
+ <27f> DW_AT_decl_file : 2
+ <280> DW_AT_decl_line : 469
+ <282> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><285>: Abbrev Number: 6 (DW_TAG_union_type)
+ <286> DW_AT_byte_size : 4
+ <287> DW_AT_decl_file : 2
+ <288> DW_AT_decl_line : 465
+ <3><28a>: Abbrev Number: 5 (DW_TAG_member)
+ <28b> DW_AT_name : (indirect string, offset: 0x29f): mem_offset
+ <28f> DW_AT_type : <0x14b>
+ <293> DW_AT_decl_file : 2
+ <294> DW_AT_decl_line : 466
+ <296> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><299>: Abbrev Number: 5 (DW_TAG_member)
+ <29a> DW_AT_name : (indirect string, offset: 0x277): userptr
+ <29e> DW_AT_type : <0x243>
+ <2a2> DW_AT_decl_file : 2
+ <2a3> DW_AT_decl_line : 467
+ <2a5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2a8>: Abbrev Number: 5 (DW_TAG_member)
+ <2a9> DW_AT_name : (indirect string, offset: 0x2aa): fd
+ <2ad> DW_AT_type : <0x2d7>
+ <2b1> DW_AT_decl_file : 2
+ <2b2> DW_AT_decl_line : 468
+ <2b4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2b7>: Abbrev Number: 0
+ <2><2b8>: Abbrev Number: 5 (DW_TAG_member)
+ <2b9> DW_AT_name : (indirect string, offset: 0x2b7): data_offset
+ <2bd> DW_AT_type : <0x14b>
+ <2c1> DW_AT_decl_file : 2
+ <2c2> DW_AT_decl_line : 470
+ <2c4> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><2c7>: Abbrev Number: 5 (DW_TAG_member)
+ <2c8> DW_AT_name : (indirect string, offset: 0x2c3): reserved
+ <2cc> DW_AT_type : <0x2e9>
+ <2d0> DW_AT_decl_file : 2
+ <2d1> DW_AT_decl_line : 471
+ <2d3> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><2d6>: Abbrev Number: 0
+ <1><2d7>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2d8> DW_AT_type : <0x2e2>
+ <2dc> DW_AT_name : (indirect string, offset: 0x2b1): __s32
+ <2e0> DW_AT_decl_file : 1
+ <2e1> DW_AT_decl_line : 27
+ <1><2e2>: Abbrev Number: 7 (DW_TAG_base_type)
+ <2e3> DW_AT_name : (indirect string, offset: 0x2ad): int
+ <2e7> DW_AT_encoding : 5 (signed)
+ <2e8> DW_AT_byte_size : 4
+ <1><2e9>: Abbrev Number: 10 (DW_TAG_array_type)
+ <2ea> DW_AT_type : <0x14b>
+ <2><2ee>: Abbrev Number: 11 (DW_TAG_subrange_type)
+ <2ef> DW_AT_type : <0x23c>
+ <2f3> DW_AT_lower_bound : 0
+ <2f4> DW_AT_count : 11
+ <2><2f5>: Abbrev Number: 0
+ <1><2f6>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_buffer.d2 b/mpers-m32/struct_v4l2_buffer.d2
index a7985eb..4509c92 100644
--- a/mpers-m32/struct_v4l2_buffer.d2
+++ b/mpers-m32/struct_v4l2_buffer.d2
@@ -1,371 +1,371 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 5
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x223): struct_v4l2_buffer
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x2ed): struct_v4l2_buffer
DW_AT_decl_file : 5
DW_AT_decl_line : 41
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x217): v4l2_buffer
+DW_AT_name : (indirect string, offset: 0x2e1): v4l2_buffer
DW_AT_byte_size : 68
DW_AT_decl_file : 2
-DW_AT_decl_line : 466
-<2><44>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa8): index
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 467
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc1): type
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 468
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><62>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc6): bytesused
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 469
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><71>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd0): flags
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 470
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><80>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd6): field
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 471
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><8f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdc): timestamp
-DW_AT_type : <0x15c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 472
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><9e>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13b): timecode
-DW_AT_type : <0x1a9>
-DW_AT_decl_file : 2
DW_AT_decl_line : 473
-DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><ad>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x194): sequence
-DW_AT_type : <0x14a>
+DW_AT_name : (indirect string, offset: 0x172): index
+DW_AT_type : <0x14b>
DW_AT_decl_file : 2
DW_AT_decl_line : 474
-DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><bc>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x19d): memory
-DW_AT_type : <0x14a>
+DW_AT_name : (indirect string, offset: 0x18b): type
+DW_AT_type : <0x14b>
DW_AT_decl_file : 2
DW_AT_decl_line : 475
-DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><cb>
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><63>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1a4): m
-DW_AT_type : <0xda>
+DW_AT_name : (indirect string, offset: 0x190): bytesused
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 476
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><72>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x19a): flags
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 477
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><81>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1a0): field
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 478
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><90>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1a6): timestamp
+DW_AT_type : <0x15d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 479
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<2><9f>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x205): timecode
+DW_AT_type : <0x1aa>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 480
+DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+<2><ae>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x25e): sequence
+DW_AT_type : <0x14b>
DW_AT_decl_file : 2
DW_AT_decl_line : 481
+DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+<2><bd>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x267): memory
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 482
+DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+<2><cc>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x26e): m
+DW_AT_type : <0xdb>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 488
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><da>
+<2><db>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 2
-DW_AT_decl_line : 476
-<3><df>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1a6): offset
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 477
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><ee>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ad): userptr
-DW_AT_type : <0x242>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 478
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><fd>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1c7): planes
-DW_AT_type : <0x249>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 479
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><10c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e0): fd
-DW_AT_type : <0x2d6>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 480
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><11c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ce): length
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 482
-DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><12b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x20d): reserved2
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
DW_AT_decl_line : 483
-DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><13a>
+<3><e0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f9): reserved
-DW_AT_type : <0x14a>
+DW_AT_name : (indirect string, offset: 0x270): offset
+DW_AT_type : <0x14b>
DW_AT_decl_file : 2
DW_AT_decl_line : 484
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><ef>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x277): userptr
+DW_AT_type : <0x243>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 485
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><fe>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x291): planes
+DW_AT_type : <0x24a>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 486
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><10d>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2aa): fd
+DW_AT_type : <0x2d7>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 487
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><11d>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x298): length
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 489
+DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+<2><12c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2d7): reserved2
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 490
+DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+<2><13b>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2c3): reserved
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 491
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<1><14a>
+<1><14b>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x155>
-DW_AT_name : (indirect string, offset: 0xbb): __u32
+DW_AT_type : <0x156>
+DW_AT_name : (indirect string, offset: 0x185): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><155>
+<1><156>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xae): unsigned int
+DW_AT_name : (indirect string, offset: 0x178): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><15c>
+<1><15d>
Abbrev Number: 8 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x133): timeval
+DW_AT_name : (indirect string, offset: 0x1fd): timeval
DW_AT_byte_size : 8
DW_AT_decl_file : 4
DW_AT_decl_line : 29
-<2><164>
+<2><165>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe6): tv_sec
-DW_AT_type : <0x181>
+DW_AT_name : (indirect string, offset: 0x1b0): tv_sec
+DW_AT_type : <0x182>
DW_AT_decl_file : 4
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><172>
+<2><173>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x116): tv_usec
-DW_AT_type : <0x19e>
+DW_AT_name : (indirect string, offset: 0x1e0): tv_usec
+DW_AT_type : <0x19f>
DW_AT_decl_file : 4
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><181>
+<1><182>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x18c>
-DW_AT_name : (indirect string, offset: 0x106): __kernel_time_t
+DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x1d0): __kernel_time_t
DW_AT_decl_file : 3
DW_AT_decl_line : 77
-<1><18c>
+<1><18d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x197>
-DW_AT_name : (indirect string, offset: 0xf6): __kernel_long_t
+DW_AT_type : <0x198>
+DW_AT_name : (indirect string, offset: 0x1c0): __kernel_long_t
DW_AT_decl_file : 3
DW_AT_decl_line : 23
-<1><197>
+<1><198>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xed): long int
+DW_AT_name : (indirect string, offset: 0x1b7): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><19e>
+<1><19f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x18c>
-DW_AT_name : (indirect string, offset: 0x11e): __kernel_suseconds_t
+DW_AT_type : <0x18d>
+DW_AT_name : (indirect string, offset: 0x1e8): __kernel_suseconds_t
DW_AT_decl_file : 3
DW_AT_decl_line : 43
-<1><1a9>
+<1><1aa>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x186): v4l2_timecode
+DW_AT_name : (indirect string, offset: 0x250): v4l2_timecode
DW_AT_byte_size : 16
DW_AT_decl_file : 2
-DW_AT_decl_line : 416
-<2><1b2>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc1): type
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 417
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1c1>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd0): flags
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 418
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><1d0>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x144): frames
-DW_AT_type : <0x21c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 419
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><1df>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): seconds
-DW_AT_type : <0x21c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 420
-DW_AT_data_member_location: 2 byte block: 23 9 (DW_OP_plus_uconst: 9)
-<2><1ee>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x166): minutes
-DW_AT_type : <0x21c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 421
-DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
-<2><1fd>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x16e): hours
-DW_AT_type : <0x21c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 422
-DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
-<2><20c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x174): userbits
-DW_AT_type : <0x22e>
-DW_AT_decl_file : 2
DW_AT_decl_line : 423
+<2><1b3>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x18b): type
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 424
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><1c2>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x19a): flags
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 425
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><1d1>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x20e): frames
+DW_AT_type : <0x21d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 426
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><1e0>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x228): seconds
+DW_AT_type : <0x21d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 427
+DW_AT_data_member_location: 2 byte block: 23 9 (DW_OP_plus_uconst: 9)
+<2><1ef>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x230): minutes
+DW_AT_type : <0x21d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 428
+DW_AT_data_member_location: 2 byte block: 23 a (DW_OP_plus_uconst: 10)
+<2><1fe>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x238): hours
+DW_AT_type : <0x21d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 429
+DW_AT_data_member_location: 2 byte block: 23 b (DW_OP_plus_uconst: 11)
+<2><20d>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x23e): userbits
+DW_AT_type : <0x22f>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 430
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><21c>
+<1><21d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x227>
-DW_AT_name : (indirect string, offset: 0x159): __u8
+DW_AT_type : <0x228>
+DW_AT_name : (indirect string, offset: 0x223): __u8
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><227>
+<1><228>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x14b): unsigned char
+DW_AT_name : (indirect string, offset: 0x215): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><22e>
+<1><22f>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x21c>
-<2><233>
+DW_AT_type : <0x21d>
+<2><234>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x23b>
+DW_AT_type : <0x23c>
DW_AT_lower_bound : 0
DW_AT_count : 4
-<1><23b>
+<1><23c>
Abbrev Number: 12 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x17d): sizetype
+DW_AT_name : (indirect string, offset: 0x247): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><242>
+<1><243>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1b5): long unsigned int
+DW_AT_name : (indirect string, offset: 0x27f): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><249>
+<1><24a>
Abbrev Number: 13 (DW_TAG_pointer_type)
-DW_AT_type : <0x24e>
-<1><24e>
+DW_AT_type : <0x24f>
+<1><24f>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x202): v4l2_plane
+DW_AT_name : (indirect string, offset: 0x2cc): v4l2_plane
DW_AT_byte_size : 60
DW_AT_decl_file : 2
-DW_AT_decl_line : 455
-<2><257>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc6): bytesused
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 456
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><266>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ce): length
-DW_AT_type : <0x14a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 457
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><275>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1a4): m
-DW_AT_type : <0x284>
-DW_AT_decl_file : 2
DW_AT_decl_line : 462
+<2><258>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x190): bytesused
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 463
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><267>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x298): length
+DW_AT_type : <0x14b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 464
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><276>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x26e): m
+DW_AT_type : <0x285>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 469
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><284>
+<2><285>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 2
-DW_AT_decl_line : 458
-<3><289>
+DW_AT_decl_line : 465
+<3><28a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d5): mem_offset
-DW_AT_type : <0x14a>
+DW_AT_name : (indirect string, offset: 0x29f): mem_offset
+DW_AT_type : <0x14b>
DW_AT_decl_file : 2
-DW_AT_decl_line : 459
+DW_AT_decl_line : 466
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><298>
+<3><299>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ad): userptr
-DW_AT_type : <0x242>
+DW_AT_name : (indirect string, offset: 0x277): userptr
+DW_AT_type : <0x243>
DW_AT_decl_file : 2
-DW_AT_decl_line : 460
+DW_AT_decl_line : 467
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><2a7>
+<3><2a8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e0): fd
-DW_AT_type : <0x2d6>
+DW_AT_name : (indirect string, offset: 0x2aa): fd
+DW_AT_type : <0x2d7>
DW_AT_decl_file : 2
-DW_AT_decl_line : 461
+DW_AT_decl_line : 468
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><2b7>
+<2><2b8>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1ed): data_offset
-DW_AT_type : <0x14a>
+DW_AT_name : (indirect string, offset: 0x2b7): data_offset
+DW_AT_type : <0x14b>
DW_AT_decl_file : 2
-DW_AT_decl_line : 463
+DW_AT_decl_line : 470
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><2c6>
+<2><2c7>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f9): reserved
-DW_AT_type : <0x2e8>
+DW_AT_name : (indirect string, offset: 0x2c3): reserved
+DW_AT_type : <0x2e9>
DW_AT_decl_file : 2
-DW_AT_decl_line : 464
+DW_AT_decl_line : 471
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<1><2d6>
+<1><2d7>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x2e1>
-DW_AT_name : (indirect string, offset: 0x1e7): __s32
+DW_AT_type : <0x2e2>
+DW_AT_name : (indirect string, offset: 0x2b1): __s32
DW_AT_decl_file : 1
DW_AT_decl_line : 27
-<1><2e1>
+<1><2e2>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1e3): int
+DW_AT_name : (indirect string, offset: 0x2ad): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><2e8>
+<1><2e9>
Abbrev Number: 10 (DW_TAG_array_type)
-DW_AT_type : <0x14a>
-<2><2ed>
+DW_AT_type : <0x14b>
+<2><2ee>
Abbrev Number: 11 (DW_TAG_subrange_type)
-DW_AT_type : <0x23b>
+DW_AT_type : <0x23c>
DW_AT_lower_bound : 0
DW_AT_count : 11
diff --git a/mpers-m32/struct_v4l2_clip.d1 b/mpers-m32/struct_v4l2_clip.d1
index 7d5b725..b8eff5a 100644
--- a/mpers-m32/struct_v4l2_clip.d1
+++ b/mpers-m32/struct_v4l2_clip.d1
@@ -1,95 +1,96 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0xca (32-bit)
+ Length: 0xcb (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_clip.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_clip.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5a): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xf4): struct_v4l2_clip
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 42
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xea): v4l2_clip
- <40> DW_AT_byte_size : 20
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 543
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xa6): c
- <49> DW_AT_type : <0x63>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 544
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xe5): next
- <58> DW_AT_type : <0xc8>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 545
- <5f> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><62>: Abbrev Number: 0
- <1><63>: Abbrev Number: 6 (DW_TAG_structure_type)
- <64> DW_AT_name : (indirect string, offset: 0xdb): v4l2_rect
- <68> DW_AT_byte_size : 16
- <69> DW_AT_decl_file : 2
- <6a> DW_AT_decl_line : 135
- <2><6b>: Abbrev Number: 7 (DW_TAG_member)
- <6c> DW_AT_name : (indirect string, offset: 0xa8): left
- <70> DW_AT_type : <0xa4>
- <74> DW_AT_decl_file : 2
- <75> DW_AT_decl_line : 136
- <76> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><79>: Abbrev Number: 7 (DW_TAG_member)
- <7a> DW_AT_name : (indirect string, offset: 0xb7): top
- <7e> DW_AT_type : <0xa4>
- <82> DW_AT_decl_file : 2
- <83> DW_AT_decl_line : 137
- <84> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><87>: Abbrev Number: 7 (DW_TAG_member)
- <88> DW_AT_name : (indirect string, offset: 0xbb): width
- <8c> DW_AT_type : <0xb6>
- <90> DW_AT_decl_file : 2
- <91> DW_AT_decl_line : 138
- <92> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><95>: Abbrev Number: 7 (DW_TAG_member)
- <96> DW_AT_name : (indirect string, offset: 0xd4): height
- <9a> DW_AT_type : <0xb6>
- <9e> DW_AT_decl_file : 2
- <9f> DW_AT_decl_line : 139
- <a0> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><a3>: Abbrev Number: 0
- <1><a4>: Abbrev Number: 3 (DW_TAG_typedef)
- <a5> DW_AT_type : <0xaf>
- <a9> DW_AT_name : (indirect string, offset: 0xb1): __s32
- <ad> DW_AT_decl_file : 1
- <ae> DW_AT_decl_line : 27
- <1><af>: Abbrev Number: 8 (DW_TAG_base_type)
- <b0> DW_AT_name : (indirect string, offset: 0xad): int
- <b4> DW_AT_encoding : 5 (signed)
- <b5> DW_AT_byte_size : 4
- <1><b6>: Abbrev Number: 3 (DW_TAG_typedef)
- <b7> DW_AT_type : <0xc1>
- <bb> DW_AT_name : (indirect string, offset: 0xce): __u32
- <bf> DW_AT_decl_file : 1
- <c0> DW_AT_decl_line : 28
- <1><c1>: Abbrev Number: 8 (DW_TAG_base_type)
- <c2> DW_AT_name : (indirect string, offset: 0xc1): unsigned int
- <c6> DW_AT_encoding : 7 (unsigned)
- <c7> DW_AT_byte_size : 4
- <1><c8>: Abbrev Number: 9 (DW_TAG_pointer_type)
- <c9> DW_AT_type : <0x3b>
- <1><cd>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x124): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1be): struct_v4l2_clip
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 42
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1b4): v4l2_clip
+ <41> DW_AT_byte_size : 20
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 550
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x170): c
+ <4a> DW_AT_type : <0x64>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 551
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x1af): next
+ <59> DW_AT_type : <0xc9>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 552
+ <60> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><63>: Abbrev Number: 0
+ <1><64>: Abbrev Number: 6 (DW_TAG_structure_type)
+ <65> DW_AT_name : (indirect string, offset: 0x1a5): v4l2_rect
+ <69> DW_AT_byte_size : 16
+ <6a> DW_AT_decl_file : 2
+ <6b> DW_AT_decl_line : 135
+ <2><6c>: Abbrev Number: 7 (DW_TAG_member)
+ <6d> DW_AT_name : (indirect string, offset: 0x172): left
+ <71> DW_AT_type : <0xa5>
+ <75> DW_AT_decl_file : 2
+ <76> DW_AT_decl_line : 136
+ <77> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><7a>: Abbrev Number: 7 (DW_TAG_member)
+ <7b> DW_AT_name : (indirect string, offset: 0x181): top
+ <7f> DW_AT_type : <0xa5>
+ <83> DW_AT_decl_file : 2
+ <84> DW_AT_decl_line : 137
+ <85> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><88>: Abbrev Number: 7 (DW_TAG_member)
+ <89> DW_AT_name : (indirect string, offset: 0x185): width
+ <8d> DW_AT_type : <0xb7>
+ <91> DW_AT_decl_file : 2
+ <92> DW_AT_decl_line : 138
+ <93> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><96>: Abbrev Number: 7 (DW_TAG_member)
+ <97> DW_AT_name : (indirect string, offset: 0x19e): height
+ <9b> DW_AT_type : <0xb7>
+ <9f> DW_AT_decl_file : 2
+ <a0> DW_AT_decl_line : 139
+ <a1> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><a4>: Abbrev Number: 0
+ <1><a5>: Abbrev Number: 3 (DW_TAG_typedef)
+ <a6> DW_AT_type : <0xb0>
+ <aa> DW_AT_name : (indirect string, offset: 0x17b): __s32
+ <ae> DW_AT_decl_file : 1
+ <af> DW_AT_decl_line : 27
+ <1><b0>: Abbrev Number: 8 (DW_TAG_base_type)
+ <b1> DW_AT_name : (indirect string, offset: 0x177): int
+ <b5> DW_AT_encoding : 5 (signed)
+ <b6> DW_AT_byte_size : 4
+ <1><b7>: Abbrev Number: 3 (DW_TAG_typedef)
+ <b8> DW_AT_type : <0xc2>
+ <bc> DW_AT_name : (indirect string, offset: 0x198): __u32
+ <c0> DW_AT_decl_file : 1
+ <c1> DW_AT_decl_line : 28
+ <1><c2>: Abbrev Number: 8 (DW_TAG_base_type)
+ <c3> DW_AT_name : (indirect string, offset: 0x18b): unsigned int
+ <c7> DW_AT_encoding : 7 (unsigned)
+ <c8> DW_AT_byte_size : 4
+ <1><c9>: Abbrev Number: 9 (DW_TAG_pointer_type)
+ <ca> DW_AT_type : <0x3c>
+ <1><ce>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_clip.d2 b/mpers-m32/struct_v4l2_clip.d2
index 2274f93..1b5c8fc 100644
--- a/mpers-m32/struct_v4l2_clip.d2
+++ b/mpers-m32/struct_v4l2_clip.d2
@@ -1,93 +1,93 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x95): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x15f): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xf4): struct_v4l2_clip
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1be): struct_v4l2_clip
DW_AT_decl_file : 3
DW_AT_decl_line : 42
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xea): v4l2_clip
+DW_AT_name : (indirect string, offset: 0x1b4): v4l2_clip
DW_AT_byte_size : 20
DW_AT_decl_file : 2
-DW_AT_decl_line : 543
-<2><44>
+DW_AT_decl_line : 550
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa6): c
-DW_AT_type : <0x63>
+DW_AT_name : (indirect string, offset: 0x170): c
+DW_AT_type : <0x64>
DW_AT_decl_file : 2
-DW_AT_decl_line : 544
+DW_AT_decl_line : 551
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe5): next
-DW_AT_type : <0xc8>
+DW_AT_name : (indirect string, offset: 0x1af): next
+DW_AT_type : <0xc9>
DW_AT_decl_file : 2
-DW_AT_decl_line : 545
+DW_AT_decl_line : 552
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<1><63>
+<1><64>
Abbrev Number: 6 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xdb): v4l2_rect
+DW_AT_name : (indirect string, offset: 0x1a5): v4l2_rect
DW_AT_byte_size : 16
DW_AT_decl_file : 2
DW_AT_decl_line : 135
-<2><6b>
+<2><6c>
Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa8): left
-DW_AT_type : <0xa4>
+DW_AT_name : (indirect string, offset: 0x172): left
+DW_AT_type : <0xa5>
DW_AT_decl_file : 2
DW_AT_decl_line : 136
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><79>
+<2><7a>
Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb7): top
-DW_AT_type : <0xa4>
+DW_AT_name : (indirect string, offset: 0x181): top
+DW_AT_type : <0xa5>
DW_AT_decl_file : 2
DW_AT_decl_line : 137
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><87>
+<2><88>
Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbb): width
-DW_AT_type : <0xb6>
+DW_AT_name : (indirect string, offset: 0x185): width
+DW_AT_type : <0xb7>
DW_AT_decl_file : 2
DW_AT_decl_line : 138
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><95>
+<2><96>
Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd4): height
-DW_AT_type : <0xb6>
+DW_AT_name : (indirect string, offset: 0x19e): height
+DW_AT_type : <0xb7>
DW_AT_decl_file : 2
DW_AT_decl_line : 139
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><a4>
+<1><a5>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xaf>
-DW_AT_name : (indirect string, offset: 0xb1): __s32
+DW_AT_type : <0xb0>
+DW_AT_name : (indirect string, offset: 0x17b): __s32
DW_AT_decl_file : 1
DW_AT_decl_line : 27
-<1><af>
+<1><b0>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xad): int
+DW_AT_name : (indirect string, offset: 0x177): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><b6>
+<1><b7>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xc1>
-DW_AT_name : (indirect string, offset: 0xce): __u32
+DW_AT_type : <0xc2>
+DW_AT_name : (indirect string, offset: 0x198): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><c1>
+<1><c2>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc1): unsigned int
+DW_AT_name : (indirect string, offset: 0x18b): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><c8>
+<1><c9>
Abbrev Number: 9 (DW_TAG_pointer_type)
-DW_AT_type : <0x3b>
+DW_AT_type : <0x3c>
diff --git a/mpers-m32/struct_v4l2_create_buffers.d1 b/mpers-m32/struct_v4l2_create_buffers.d1
index b9c1f97..339249f 100644
--- a/mpers-m32/struct_v4l2_create_buffers.d1
+++ b/mpers-m32/struct_v4l2_create_buffers.d1
@@ -1,678 +1,679 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x5f1 (32-bit)
+ Length: 0x5f2 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_create_buffers.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_create_buffers.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x64): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x9f): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x357): struct_v4l2_create_buffers
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 44
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x343): v4l2_create_buffers
- <40> DW_AT_byte_size : 248
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 1253
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xb0): index
- <49> DW_AT_type : <0x91>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 1254
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xc9): count
- <58> DW_AT_type : <0x91>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 1255
- <5f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xcf): memory
- <67> DW_AT_type : <0x91>
- <6b> DW_AT_decl_file : 2
- <6c> DW_AT_decl_line : 1256
- <6e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0xd6): format
- <76> DW_AT_type : <0xa3>
- <7a> DW_AT_decl_file : 2
- <7b> DW_AT_decl_line : 1257
- <7d> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><80>: Abbrev Number: 5 (DW_TAG_member)
- <81> DW_AT_name : (indirect string, offset: 0x180): reserved
- <85> DW_AT_type : <0x5e7>
- <89> DW_AT_decl_file : 2
- <8a> DW_AT_decl_line : 1258
- <8c> DW_AT_data_member_location: 3 byte block: 23 d8 1 (DW_OP_plus_uconst: 216)
- <2><90>: Abbrev Number: 0
- <1><91>: Abbrev Number: 3 (DW_TAG_typedef)
- <92> DW_AT_type : <0x9c>
- <96> DW_AT_name : (indirect string, offset: 0xc3): __u32
- <9a> DW_AT_decl_file : 1
- <9b> DW_AT_decl_line : 28
- <1><9c>: Abbrev Number: 6 (DW_TAG_base_type)
- <9d> DW_AT_name : (indirect string, offset: 0xb6): unsigned int
- <a1> DW_AT_encoding : 7 (unsigned)
- <a2> DW_AT_byte_size : 4
- <1><a3>: Abbrev Number: 4 (DW_TAG_structure_type)
- <a4> DW_AT_name : (indirect string, offset: 0x337): v4l2_format
- <a8> DW_AT_byte_size : 204
- <a9> DW_AT_decl_file : 2
- <aa> DW_AT_decl_line : 1141
- <2><ac>: Abbrev Number: 5 (DW_TAG_member)
- <ad> DW_AT_name : (indirect string, offset: 0xdd): type
- <b1> DW_AT_type : <0x91>
- <b5> DW_AT_decl_file : 2
- <b6> DW_AT_decl_line : 1142
- <b8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><bb>: Abbrev Number: 5 (DW_TAG_member)
- <bc> DW_AT_name : (indirect string, offset: 0xe2): fmt
- <c0> DW_AT_type : <0xca>
- <c4> DW_AT_decl_file : 2
- <c5> DW_AT_decl_line : 1152
- <c7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><ca>: Abbrev Number: 7 (DW_TAG_union_type)
- <cb> DW_AT_byte_size : 200
- <cc> DW_AT_decl_file : 2
- <cd> DW_AT_decl_line : 1143
- <3><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0xe6): pix
- <d4> DW_AT_type : <0x149>
- <d8> DW_AT_decl_file : 2
- <d9> DW_AT_decl_line : 1144
- <db> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><de>: Abbrev Number: 5 (DW_TAG_member)
- <df> DW_AT_name : (indirect string, offset: 0x16f): pix_mp
- <e3> DW_AT_type : <0x217>
- <e7> DW_AT_decl_file : 2
- <e8> DW_AT_decl_line : 1145
- <ea> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><ed>: Abbrev Number: 5 (DW_TAG_member)
- <ee> DW_AT_name : (indirect string, offset: 0x1f2): win
- <f2> DW_AT_type : <0x384>
- <f6> DW_AT_decl_file : 2
- <f7> DW_AT_decl_line : 1146
- <f9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><fc>: Abbrev Number: 5 (DW_TAG_member)
- <fd> DW_AT_name : (indirect string, offset: 0x260): vbi
- <101> DW_AT_type : <0x478>
- <105> DW_AT_decl_file : 2
- <106> DW_AT_decl_line : 1147
- <108> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><10b>: Abbrev Number: 5 (DW_TAG_member)
- <10c> DW_AT_name : (indirect string, offset: 0x2ae): sliced
- <110> DW_AT_type : <0x514>
- <114> DW_AT_decl_file : 2
- <115> DW_AT_decl_line : 1148
- <117> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><11a>: Abbrev Number: 5 (DW_TAG_member)
- <11b> DW_AT_name : (indirect string, offset: 0x2ee): sdr
- <11f> DW_AT_type : <0x56e>
- <123> DW_AT_decl_file : 2
- <124> DW_AT_decl_line : 1149
- <126> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><129>: Abbrev Number: 5 (DW_TAG_member)
- <12a> DW_AT_name : (indirect string, offset: 0x30d): meta
- <12e> DW_AT_type : <0x5b2>
- <132> DW_AT_decl_file : 2
- <133> DW_AT_decl_line : 1150
- <135> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><138>: Abbrev Number: 5 (DW_TAG_member)
- <139> DW_AT_name : (indirect string, offset: 0x32e): raw_data
- <13d> DW_AT_type : <0x5da>
- <141> DW_AT_decl_file : 2
- <142> DW_AT_decl_line : 1151
- <144> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><147>: Abbrev Number: 0
- <2><148>: Abbrev Number: 0
- <1><149>: Abbrev Number: 8 (DW_TAG_structure_type)
- <14a> DW_AT_name : (indirect string, offset: 0x15f): v4l2_pix_format
- <14e> DW_AT_byte_size : 48
- <14f> DW_AT_decl_file : 2
- <150> DW_AT_decl_line : 182
- <2><151>: Abbrev Number: 9 (DW_TAG_member)
- <152> DW_AT_name : (indirect string, offset: 0xea): width
- <156> DW_AT_type : <0x91>
- <15a> DW_AT_decl_file : 2
- <15b> DW_AT_decl_line : 183
- <15c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><15f>: Abbrev Number: 9 (DW_TAG_member)
- <160> DW_AT_name : (indirect string, offset: 0xf0): height
- <164> DW_AT_type : <0x91>
- <168> DW_AT_decl_file : 2
- <169> DW_AT_decl_line : 184
- <16a> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><16d>: Abbrev Number: 9 (DW_TAG_member)
- <16e> DW_AT_name : (indirect string, offset: 0xf7): pixelformat
- <172> DW_AT_type : <0x91>
- <176> DW_AT_decl_file : 2
- <177> DW_AT_decl_line : 185
- <178> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><17b>: Abbrev Number: 9 (DW_TAG_member)
- <17c> DW_AT_name : (indirect string, offset: 0x103): field
- <180> DW_AT_type : <0x91>
- <184> DW_AT_decl_file : 2
- <185> DW_AT_decl_line : 186
- <186> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><189>: Abbrev Number: 9 (DW_TAG_member)
- <18a> DW_AT_name : (indirect string, offset: 0x109): bytesperline
- <18e> DW_AT_type : <0x91>
- <192> DW_AT_decl_file : 2
- <193> DW_AT_decl_line : 187
- <194> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><197>: Abbrev Number: 9 (DW_TAG_member)
- <198> DW_AT_name : (indirect string, offset: 0x116): sizeimage
- <19c> DW_AT_type : <0x91>
- <1a0> DW_AT_decl_file : 2
- <1a1> DW_AT_decl_line : 188
- <1a2> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><1a5>: Abbrev Number: 9 (DW_TAG_member)
- <1a6> DW_AT_name : (indirect string, offset: 0x120): colorspace
- <1aa> DW_AT_type : <0x91>
- <1ae> DW_AT_decl_file : 2
- <1af> DW_AT_decl_line : 189
- <1b0> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><1b3>: Abbrev Number: 9 (DW_TAG_member)
- <1b4> DW_AT_name : (indirect string, offset: 0x12b): priv
- <1b8> DW_AT_type : <0x91>
- <1bc> DW_AT_decl_file : 2
- <1bd> DW_AT_decl_line : 190
- <1be> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><1c1>: Abbrev Number: 9 (DW_TAG_member)
- <1c2> DW_AT_name : (indirect string, offset: 0x130): flags
- <1c6> DW_AT_type : <0x91>
- <1ca> DW_AT_decl_file : 2
- <1cb> DW_AT_decl_line : 191
- <1cc> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><1cf>: Abbrev Number: 10 (DW_TAG_member)
- <1d0> DW_AT_type : <0x1d9>
- <1d4> DW_AT_decl_file : 2
- <1d5> DW_AT_decl_line : 192
- <1d6> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><1d9>: Abbrev Number: 11 (DW_TAG_union_type)
- <1da> DW_AT_byte_size : 4
- <1db> DW_AT_decl_file : 2
- <1dc> DW_AT_decl_line : 192
- <3><1dd>: Abbrev Number: 9 (DW_TAG_member)
- <1de> DW_AT_name : (indirect string, offset: 0x136): ycbcr_enc
- <1e2> DW_AT_type : <0x91>
- <1e6> DW_AT_decl_file : 2
- <1e7> DW_AT_decl_line : 193
- <1e8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><1eb>: Abbrev Number: 9 (DW_TAG_member)
- <1ec> DW_AT_name : (indirect string, offset: 0x140): hsv_enc
- <1f0> DW_AT_type : <0x91>
- <1f4> DW_AT_decl_file : 2
- <1f5> DW_AT_decl_line : 194
- <1f6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><1f9>: Abbrev Number: 0
- <2><1fa>: Abbrev Number: 9 (DW_TAG_member)
- <1fb> DW_AT_name : (indirect string, offset: 0x148): quantization
- <1ff> DW_AT_type : <0x91>
- <203> DW_AT_decl_file : 2
- <204> DW_AT_decl_line : 196
- <205> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><208>: Abbrev Number: 9 (DW_TAG_member)
- <209> DW_AT_name : (indirect string, offset: 0x155): xfer_func
- <20d> DW_AT_type : <0x91>
- <211> DW_AT_decl_file : 2
- <212> DW_AT_decl_line : 197
- <213> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><216>: Abbrev Number: 0
- <1><217>: Abbrev Number: 4 (DW_TAG_structure_type)
- <218> DW_AT_name : (indirect string, offset: 0x1db): v4l2_pix_format_mplane
- <21c> DW_AT_byte_size : 192
- <21d> DW_AT_decl_file : 2
- <21e> DW_AT_decl_line : 1115
- <2><220>: Abbrev Number: 5 (DW_TAG_member)
- <221> DW_AT_name : (indirect string, offset: 0xea): width
- <225> DW_AT_type : <0x91>
- <229> DW_AT_decl_file : 2
- <22a> DW_AT_decl_line : 1116
- <22c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><22f>: Abbrev Number: 5 (DW_TAG_member)
- <230> DW_AT_name : (indirect string, offset: 0xf0): height
- <234> DW_AT_type : <0x91>
- <238> DW_AT_decl_file : 2
- <239> DW_AT_decl_line : 1117
- <23b> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><23e>: Abbrev Number: 5 (DW_TAG_member)
- <23f> DW_AT_name : (indirect string, offset: 0xf7): pixelformat
- <243> DW_AT_type : <0x91>
- <247> DW_AT_decl_file : 2
- <248> DW_AT_decl_line : 1118
- <24a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><24d>: Abbrev Number: 5 (DW_TAG_member)
- <24e> DW_AT_name : (indirect string, offset: 0x103): field
- <252> DW_AT_type : <0x91>
- <256> DW_AT_decl_file : 2
- <257> DW_AT_decl_line : 1119
- <259> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><25c>: Abbrev Number: 5 (DW_TAG_member)
- <25d> DW_AT_name : (indirect string, offset: 0x120): colorspace
- <261> DW_AT_type : <0x91>
- <265> DW_AT_decl_file : 2
- <266> DW_AT_decl_line : 1120
- <268> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><26b>: Abbrev Number: 5 (DW_TAG_member)
- <26c> DW_AT_name : (indirect string, offset: 0x176): plane_fmt
- <270> DW_AT_type : <0x2fb>
- <274> DW_AT_decl_file : 2
- <275> DW_AT_decl_line : 1121
- <277> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><27a>: Abbrev Number: 5 (DW_TAG_member)
- <27b> DW_AT_name : (indirect string, offset: 0x1bd): num_planes
- <27f> DW_AT_type : <0x365>
- <283> DW_AT_decl_file : 2
- <284> DW_AT_decl_line : 1122
- <286> DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
- <2><28a>: Abbrev Number: 5 (DW_TAG_member)
- <28b> DW_AT_name : (indirect string, offset: 0x130): flags
- <28f> DW_AT_type : <0x365>
- <293> DW_AT_decl_file : 2
- <294> DW_AT_decl_line : 1123
- <296> DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
- <2><29a>: Abbrev Number: 12 (DW_TAG_member)
- <29b> DW_AT_type : <0x2a6>
- <29f> DW_AT_decl_file : 2
- <2a0> DW_AT_decl_line : 1124
- <2a2> DW_AT_data_member_location: 3 byte block: 23 b6 1 (DW_OP_plus_uconst: 182)
- <2><2a6>: Abbrev Number: 7 (DW_TAG_union_type)
- <2a7> DW_AT_byte_size : 1
- <2a8> DW_AT_decl_file : 2
- <2a9> DW_AT_decl_line : 1124
- <3><2ab>: Abbrev Number: 5 (DW_TAG_member)
- <2ac> DW_AT_name : (indirect string, offset: 0x136): ycbcr_enc
- <2b0> DW_AT_type : <0x365>
- <2b4> DW_AT_decl_file : 2
- <2b5> DW_AT_decl_line : 1125
- <2b7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2ba>: Abbrev Number: 5 (DW_TAG_member)
- <2bb> DW_AT_name : (indirect string, offset: 0x140): hsv_enc
- <2bf> DW_AT_type : <0x365>
- <2c3> DW_AT_decl_file : 2
- <2c4> DW_AT_decl_line : 1126
- <2c6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><2c9>: Abbrev Number: 0
- <2><2ca>: Abbrev Number: 5 (DW_TAG_member)
- <2cb> DW_AT_name : (indirect string, offset: 0x148): quantization
- <2cf> DW_AT_type : <0x365>
- <2d3> DW_AT_decl_file : 2
- <2d4> DW_AT_decl_line : 1128
- <2d6> DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
- <2><2da>: Abbrev Number: 5 (DW_TAG_member)
- <2db> DW_AT_name : (indirect string, offset: 0x155): xfer_func
- <2df> DW_AT_type : <0x365>
- <2e3> DW_AT_decl_file : 2
- <2e4> DW_AT_decl_line : 1129
- <2e6> DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
- <2><2ea>: Abbrev Number: 5 (DW_TAG_member)
- <2eb> DW_AT_name : (indirect string, offset: 0x180): reserved
- <2ef> DW_AT_type : <0x377>
- <2f3> DW_AT_decl_file : 2
- <2f4> DW_AT_decl_line : 1130
- <2f6> DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
- <2><2fa>: Abbrev Number: 0
- <1><2fb>: Abbrev Number: 13 (DW_TAG_array_type)
- <2fc> DW_AT_type : <0x308>
- <2><300>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <301> DW_AT_type : <0x35e>
- <305> DW_AT_lower_bound : 0
- <306> DW_AT_count : 8
- <2><307>: Abbrev Number: 0
- <1><308>: Abbrev Number: 4 (DW_TAG_structure_type)
- <309> DW_AT_name : (indirect string, offset: 0x1a7): v4l2_plane_pix_format
- <30d> DW_AT_byte_size : 20
- <30e> DW_AT_decl_file : 2
- <30f> DW_AT_decl_line : 1110
- <2><311>: Abbrev Number: 5 (DW_TAG_member)
- <312> DW_AT_name : (indirect string, offset: 0x116): sizeimage
- <316> DW_AT_type : <0x91>
- <31a> DW_AT_decl_file : 2
- <31b> DW_AT_decl_line : 1111
- <31d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><320>: Abbrev Number: 5 (DW_TAG_member)
- <321> DW_AT_name : (indirect string, offset: 0x109): bytesperline
- <325> DW_AT_type : <0x91>
- <329> DW_AT_decl_file : 2
- <32a> DW_AT_decl_line : 1112
- <32c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><32f>: Abbrev Number: 5 (DW_TAG_member)
- <330> DW_AT_name : (indirect string, offset: 0x180): reserved
- <334> DW_AT_type : <0x33f>
- <338> DW_AT_decl_file : 2
- <339> DW_AT_decl_line : 1113
- <33b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><33e>: Abbrev Number: 0
- <1><33f>: Abbrev Number: 13 (DW_TAG_array_type)
- <340> DW_AT_type : <0x34c>
- <2><344>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <345> DW_AT_type : <0x35e>
- <349> DW_AT_lower_bound : 0
- <34a> DW_AT_count : 6
- <2><34b>: Abbrev Number: 0
- <1><34c>: Abbrev Number: 3 (DW_TAG_typedef)
- <34d> DW_AT_type : <0x357>
- <351> DW_AT_name : (indirect string, offset: 0x198): __u16
- <355> DW_AT_decl_file : 1
- <356> DW_AT_decl_line : 26
- <1><357>: Abbrev Number: 6 (DW_TAG_base_type)
- <358> DW_AT_name : (indirect string, offset: 0x189): unsigned short
- <35c> DW_AT_encoding : 7 (unsigned)
- <35d> DW_AT_byte_size : 2
- <1><35e>: Abbrev Number: 15 (DW_TAG_base_type)
- <35f> DW_AT_name : (indirect string, offset: 0x19e): sizetype
- <363> DW_AT_byte_size : 8
- <364> DW_AT_encoding : 7 (unsigned)
- <1><365>: Abbrev Number: 3 (DW_TAG_typedef)
- <366> DW_AT_type : <0x370>
- <36a> DW_AT_name : (indirect string, offset: 0x1d6): __u8
- <36e> DW_AT_decl_file : 1
- <36f> DW_AT_decl_line : 24
- <1><370>: Abbrev Number: 6 (DW_TAG_base_type)
- <371> DW_AT_name : (indirect string, offset: 0x1c8): unsigned char
- <375> DW_AT_encoding : 8 (unsigned char)
- <376> DW_AT_byte_size : 1
- <1><377>: Abbrev Number: 13 (DW_TAG_array_type)
- <378> DW_AT_type : <0x365>
- <2><37c>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <37d> DW_AT_type : <0x35e>
- <381> DW_AT_lower_bound : 0
- <382> DW_AT_count : 7
- <2><383>: Abbrev Number: 0
- <1><384>: Abbrev Number: 4 (DW_TAG_structure_type)
- <385> DW_AT_name : (indirect string, offset: 0x254): v4l2_window
- <389> DW_AT_byte_size : 40
- <38a> DW_AT_decl_file : 2
- <38b> DW_AT_decl_line : 547
- <2><38d>: Abbrev Number: 5 (DW_TAG_member)
- <38e> DW_AT_name : (indirect string, offset: 0x1f6): w
- <392> DW_AT_type : <0x3f7>
- <396> DW_AT_decl_file : 2
- <397> DW_AT_decl_line : 548
- <399> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><39c>: Abbrev Number: 5 (DW_TAG_member)
- <39d> DW_AT_name : (indirect string, offset: 0x103): field
- <3a1> DW_AT_type : <0x91>
- <3a5> DW_AT_decl_file : 2
- <3a6> DW_AT_decl_line : 549
- <3a8> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><3ab>: Abbrev Number: 5 (DW_TAG_member)
- <3ac> DW_AT_name : (indirect string, offset: 0x215): chromakey
- <3b0> DW_AT_type : <0x91>
- <3b4> DW_AT_decl_file : 2
- <3b5> DW_AT_decl_line : 550
- <3b7> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><3ba>: Abbrev Number: 5 (DW_TAG_member)
- <3bb> DW_AT_name : (indirect string, offset: 0x21f): clips
- <3bf> DW_AT_type : <0x44a>
- <3c3> DW_AT_decl_file : 2
- <3c4> DW_AT_decl_line : 551
- <3c6> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><3c9>: Abbrev Number: 5 (DW_TAG_member)
- <3ca> DW_AT_name : (indirect string, offset: 0x236): clipcount
- <3ce> DW_AT_type : <0x91>
- <3d2> DW_AT_decl_file : 2
- <3d3> DW_AT_decl_line : 552
- <3d5> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><3d8>: Abbrev Number: 5 (DW_TAG_member)
- <3d9> DW_AT_name : (indirect string, offset: 0x240): bitmap
- <3dd> DW_AT_type : <0x477>
- <3e1> DW_AT_decl_file : 2
- <3e2> DW_AT_decl_line : 553
- <3e4> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><3e7>: Abbrev Number: 5 (DW_TAG_member)
- <3e8> DW_AT_name : (indirect string, offset: 0x247): global_alpha
- <3ec> DW_AT_type : <0x365>
- <3f0> DW_AT_decl_file : 2
- <3f1> DW_AT_decl_line : 554
- <3f3> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><3f6>: Abbrev Number: 0
- <1><3f7>: Abbrev Number: 8 (DW_TAG_structure_type)
- <3f8> DW_AT_name : (indirect string, offset: 0x20b): v4l2_rect
- <3fc> DW_AT_byte_size : 16
- <3fd> DW_AT_decl_file : 2
- <3fe> DW_AT_decl_line : 135
- <2><3ff>: Abbrev Number: 9 (DW_TAG_member)
- <400> DW_AT_name : (indirect string, offset: 0x1f8): left
- <404> DW_AT_type : <0x438>
- <408> DW_AT_decl_file : 2
- <409> DW_AT_decl_line : 136
- <40a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><40d>: Abbrev Number: 9 (DW_TAG_member)
- <40e> DW_AT_name : (indirect string, offset: 0x207): top
- <412> DW_AT_type : <0x438>
- <416> DW_AT_decl_file : 2
- <417> DW_AT_decl_line : 137
- <418> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><41b>: Abbrev Number: 9 (DW_TAG_member)
- <41c> DW_AT_name : (indirect string, offset: 0xea): width
- <420> DW_AT_type : <0x91>
- <424> DW_AT_decl_file : 2
- <425> DW_AT_decl_line : 138
- <426> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><429>: Abbrev Number: 9 (DW_TAG_member)
- <42a> DW_AT_name : (indirect string, offset: 0xf0): height
- <42e> DW_AT_type : <0x91>
- <432> DW_AT_decl_file : 2
- <433> DW_AT_decl_line : 139
- <434> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><437>: Abbrev Number: 0
- <1><438>: Abbrev Number: 3 (DW_TAG_typedef)
- <439> DW_AT_type : <0x443>
- <43d> DW_AT_name : (indirect string, offset: 0x201): __s32
- <441> DW_AT_decl_file : 1
- <442> DW_AT_decl_line : 27
- <1><443>: Abbrev Number: 6 (DW_TAG_base_type)
- <444> DW_AT_name : (indirect string, offset: 0x1fd): int
- <448> DW_AT_encoding : 5 (signed)
- <449> DW_AT_byte_size : 4
- <1><44a>: Abbrev Number: 16 (DW_TAG_pointer_type)
- <44b> DW_AT_type : <0x44f>
- <1><44f>: Abbrev Number: 4 (DW_TAG_structure_type)
- <450> DW_AT_name : (indirect string, offset: 0x22c): v4l2_clip
- <454> DW_AT_byte_size : 20
- <455> DW_AT_decl_file : 2
- <456> DW_AT_decl_line : 543
- <2><458>: Abbrev Number: 5 (DW_TAG_member)
- <459> DW_AT_name : (indirect string, offset: 0x225): c
- <45d> DW_AT_type : <0x3f7>
- <461> DW_AT_decl_file : 2
- <462> DW_AT_decl_line : 544
- <464> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><467>: Abbrev Number: 5 (DW_TAG_member)
- <468> DW_AT_name : (indirect string, offset: 0x227): next
- <46c> DW_AT_type : <0x44a>
- <470> DW_AT_decl_file : 2
- <471> DW_AT_decl_line : 545
- <473> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><476>: Abbrev Number: 0
- <1><477>: Abbrev Number: 17 (DW_TAG_pointer_type)
- <1><478>: Abbrev Number: 4 (DW_TAG_structure_type)
- <479> DW_AT_name : (indirect string, offset: 0x29e): v4l2_vbi_format
- <47d> DW_AT_byte_size : 44
- <47e> DW_AT_decl_file : 2
- <47f> DW_AT_decl_line : 1045
- <2><481>: Abbrev Number: 5 (DW_TAG_member)
- <482> DW_AT_name : (indirect string, offset: 0x264): sampling_rate
- <486> DW_AT_type : <0x91>
- <48a> DW_AT_decl_file : 2
- <48b> DW_AT_decl_line : 1046
- <48d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><490>: Abbrev Number: 5 (DW_TAG_member)
- <491> DW_AT_name : (indirect string, offset: 0x272): offset
- <495> DW_AT_type : <0x91>
- <499> DW_AT_decl_file : 2
- <49a> DW_AT_decl_line : 1047
- <49c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><49f>: Abbrev Number: 5 (DW_TAG_member)
- <4a0> DW_AT_name : (indirect string, offset: 0x279): samples_per_line
- <4a4> DW_AT_type : <0x91>
- <4a8> DW_AT_decl_file : 2
- <4a9> DW_AT_decl_line : 1048
- <4ab> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><4ae>: Abbrev Number: 5 (DW_TAG_member)
- <4af> DW_AT_name : (indirect string, offset: 0x28a): sample_format
- <4b3> DW_AT_type : <0x91>
- <4b7> DW_AT_decl_file : 2
- <4b8> DW_AT_decl_line : 1049
- <4ba> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><4bd>: Abbrev Number: 5 (DW_TAG_member)
- <4be> DW_AT_name : (indirect string, offset: 0x298): start
- <4c2> DW_AT_type : <0x4fa>
- <4c6> DW_AT_decl_file : 2
- <4c7> DW_AT_decl_line : 1050
- <4c9> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><4cc>: Abbrev Number: 5 (DW_TAG_member)
- <4cd> DW_AT_name : (indirect string, offset: 0xc9): count
- <4d1> DW_AT_type : <0x507>
- <4d5> DW_AT_decl_file : 2
- <4d6> DW_AT_decl_line : 1051
- <4d8> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><4db>: Abbrev Number: 5 (DW_TAG_member)
- <4dc> DW_AT_name : (indirect string, offset: 0x130): flags
- <4e0> DW_AT_type : <0x91>
- <4e4> DW_AT_decl_file : 2
- <4e5> DW_AT_decl_line : 1052
- <4e7> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><4ea>: Abbrev Number: 5 (DW_TAG_member)
- <4eb> DW_AT_name : (indirect string, offset: 0x180): reserved
- <4ef> DW_AT_type : <0x507>
- <4f3> DW_AT_decl_file : 2
- <4f4> DW_AT_decl_line : 1053
- <4f6> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><4f9>: Abbrev Number: 0
- <1><4fa>: Abbrev Number: 13 (DW_TAG_array_type)
- <4fb> DW_AT_type : <0x438>
- <2><4ff>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <500> DW_AT_type : <0x35e>
- <504> DW_AT_lower_bound : 0
- <505> DW_AT_count : 2
- <2><506>: Abbrev Number: 0
- <1><507>: Abbrev Number: 13 (DW_TAG_array_type)
- <508> DW_AT_type : <0x91>
- <2><50c>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <50d> DW_AT_type : <0x35e>
- <511> DW_AT_lower_bound : 0
- <512> DW_AT_count : 2
- <2><513>: Abbrev Number: 0
- <1><514>: Abbrev Number: 4 (DW_TAG_structure_type)
- <515> DW_AT_name : (indirect string, offset: 0x2d7): v4l2_sliced_vbi_format
- <519> DW_AT_byte_size : 112
- <51a> DW_AT_decl_file : 2
- <51b> DW_AT_decl_line : 1061
- <2><51d>: Abbrev Number: 5 (DW_TAG_member)
- <51e> DW_AT_name : (indirect string, offset: 0x2b5): service_set
- <522> DW_AT_type : <0x34c>
- <526> DW_AT_decl_file : 2
- <527> DW_AT_decl_line : 1062
- <529> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><52c>: Abbrev Number: 5 (DW_TAG_member)
- <52d> DW_AT_name : (indirect string, offset: 0x2c1): service_lines
- <531> DW_AT_type : <0x55a>
- <535> DW_AT_decl_file : 2
- <536> DW_AT_decl_line : 1063
- <538> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><53b>: Abbrev Number: 5 (DW_TAG_member)
- <53c> DW_AT_name : (indirect string, offset: 0x2cf): io_size
- <540> DW_AT_type : <0x91>
- <544> DW_AT_decl_file : 2
- <545> DW_AT_decl_line : 1064
- <547> DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
- <2><54a>: Abbrev Number: 5 (DW_TAG_member)
- <54b> DW_AT_name : (indirect string, offset: 0x180): reserved
- <54f> DW_AT_type : <0x507>
- <553> DW_AT_decl_file : 2
- <554> DW_AT_decl_line : 1065
- <556> DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
- <2><559>: Abbrev Number: 0
- <1><55a>: Abbrev Number: 13 (DW_TAG_array_type)
- <55b> DW_AT_type : <0x34c>
- <2><55f>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <560> DW_AT_type : <0x35e>
- <564> DW_AT_lower_bound : 0
- <565> DW_AT_count : 2
- <2><566>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <567> DW_AT_type : <0x35e>
- <56b> DW_AT_lower_bound : 0
- <56c> DW_AT_count : 24
- <2><56d>: Abbrev Number: 0
- <1><56e>: Abbrev Number: 4 (DW_TAG_structure_type)
- <56f> DW_AT_name : (indirect string, offset: 0x2fd): v4l2_sdr_format
- <573> DW_AT_byte_size : 32
- <574> DW_AT_decl_file : 2
- <575> DW_AT_decl_line : 1132
- <2><577>: Abbrev Number: 5 (DW_TAG_member)
- <578> DW_AT_name : (indirect string, offset: 0xf7): pixelformat
- <57c> DW_AT_type : <0x91>
- <580> DW_AT_decl_file : 2
- <581> DW_AT_decl_line : 1133
- <583> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><586>: Abbrev Number: 5 (DW_TAG_member)
- <587> DW_AT_name : (indirect string, offset: 0x2f2): buffersize
- <58b> DW_AT_type : <0x91>
- <58f> DW_AT_decl_file : 2
- <590> DW_AT_decl_line : 1134
- <592> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><595>: Abbrev Number: 5 (DW_TAG_member)
- <596> DW_AT_name : (indirect string, offset: 0x180): reserved
- <59a> DW_AT_type : <0x5a5>
- <59e> DW_AT_decl_file : 2
- <59f> DW_AT_decl_line : 1135
- <5a1> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><5a4>: Abbrev Number: 0
- <1><5a5>: Abbrev Number: 13 (DW_TAG_array_type)
- <5a6> DW_AT_type : <0x365>
- <2><5aa>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <5ab> DW_AT_type : <0x35e>
- <5af> DW_AT_lower_bound : 0
- <5b0> DW_AT_count : 24
- <2><5b1>: Abbrev Number: 0
- <1><5b2>: Abbrev Number: 4 (DW_TAG_structure_type)
- <5b3> DW_AT_name : (indirect string, offset: 0x31d): v4l2_meta_format
- <5b7> DW_AT_byte_size : 8
- <5b8> DW_AT_decl_file : 2
- <5b9> DW_AT_decl_line : 1137
- <2><5bb>: Abbrev Number: 5 (DW_TAG_member)
- <5bc> DW_AT_name : (indirect string, offset: 0x312): dataformat
- <5c0> DW_AT_type : <0x91>
- <5c4> DW_AT_decl_file : 2
- <5c5> DW_AT_decl_line : 1138
- <5c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><5ca>: Abbrev Number: 5 (DW_TAG_member)
- <5cb> DW_AT_name : (indirect string, offset: 0x2f2): buffersize
- <5cf> DW_AT_type : <0x91>
- <5d3> DW_AT_decl_file : 2
- <5d4> DW_AT_decl_line : 1139
- <5d6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5d9>: Abbrev Number: 0
- <1><5da>: Abbrev Number: 13 (DW_TAG_array_type)
- <5db> DW_AT_type : <0x365>
- <2><5df>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <5e0> DW_AT_type : <0x35e>
- <5e4> DW_AT_lower_bound : 0
- <5e5> DW_AT_count : 200
- <2><5e6>: Abbrev Number: 0
- <1><5e7>: Abbrev Number: 13 (DW_TAG_array_type)
- <5e8> DW_AT_type : <0x91>
- <2><5ec>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <5ed> DW_AT_type : <0x35e>
- <5f1> DW_AT_lower_bound : 0
- <5f2> DW_AT_count : 8
- <2><5f3>: Abbrev Number: 0
- <1><5f4>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12e): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x169): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x421): struct_v4l2_create_buffers
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 44
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x40d): v4l2_create_buffers
+ <41> DW_AT_byte_size : 248
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 1260
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x17a): index
+ <4a> DW_AT_type : <0x92>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 1261
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x193): count
+ <59> DW_AT_type : <0x92>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 1262
+ <60> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x199): memory
+ <68> DW_AT_type : <0x92>
+ <6c> DW_AT_decl_file : 2
+ <6d> DW_AT_decl_line : 1263
+ <6f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x1a0): format
+ <77> DW_AT_type : <0xa4>
+ <7b> DW_AT_decl_file : 2
+ <7c> DW_AT_decl_line : 1264
+ <7e> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><81>: Abbrev Number: 5 (DW_TAG_member)
+ <82> DW_AT_name : (indirect string, offset: 0x24a): reserved
+ <86> DW_AT_type : <0x5e8>
+ <8a> DW_AT_decl_file : 2
+ <8b> DW_AT_decl_line : 1265
+ <8d> DW_AT_data_member_location: 3 byte block: 23 d8 1 (DW_OP_plus_uconst: 216)
+ <2><91>: Abbrev Number: 0
+ <1><92>: Abbrev Number: 3 (DW_TAG_typedef)
+ <93> DW_AT_type : <0x9d>
+ <97> DW_AT_name : (indirect string, offset: 0x18d): __u32
+ <9b> DW_AT_decl_file : 1
+ <9c> DW_AT_decl_line : 28
+ <1><9d>: Abbrev Number: 6 (DW_TAG_base_type)
+ <9e> DW_AT_name : (indirect string, offset: 0x180): unsigned int
+ <a2> DW_AT_encoding : 7 (unsigned)
+ <a3> DW_AT_byte_size : 4
+ <1><a4>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <a5> DW_AT_name : (indirect string, offset: 0x401): v4l2_format
+ <a9> DW_AT_byte_size : 204
+ <aa> DW_AT_decl_file : 2
+ <ab> DW_AT_decl_line : 1148
+ <2><ad>: Abbrev Number: 5 (DW_TAG_member)
+ <ae> DW_AT_name : (indirect string, offset: 0x1a7): type
+ <b2> DW_AT_type : <0x92>
+ <b6> DW_AT_decl_file : 2
+ <b7> DW_AT_decl_line : 1149
+ <b9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><bc>: Abbrev Number: 5 (DW_TAG_member)
+ <bd> DW_AT_name : (indirect string, offset: 0x1ac): fmt
+ <c1> DW_AT_type : <0xcb>
+ <c5> DW_AT_decl_file : 2
+ <c6> DW_AT_decl_line : 1159
+ <c8> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><cb>: Abbrev Number: 7 (DW_TAG_union_type)
+ <cc> DW_AT_byte_size : 200
+ <cd> DW_AT_decl_file : 2
+ <ce> DW_AT_decl_line : 1150
+ <3><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x1b0): pix
+ <d5> DW_AT_type : <0x14a>
+ <d9> DW_AT_decl_file : 2
+ <da> DW_AT_decl_line : 1151
+ <dc> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><df>: Abbrev Number: 5 (DW_TAG_member)
+ <e0> DW_AT_name : (indirect string, offset: 0x239): pix_mp
+ <e4> DW_AT_type : <0x218>
+ <e8> DW_AT_decl_file : 2
+ <e9> DW_AT_decl_line : 1152
+ <eb> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><ee>: Abbrev Number: 5 (DW_TAG_member)
+ <ef> DW_AT_name : (indirect string, offset: 0x2bc): win
+ <f3> DW_AT_type : <0x385>
+ <f7> DW_AT_decl_file : 2
+ <f8> DW_AT_decl_line : 1153
+ <fa> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><fd>: Abbrev Number: 5 (DW_TAG_member)
+ <fe> DW_AT_name : (indirect string, offset: 0x32a): vbi
+ <102> DW_AT_type : <0x479>
+ <106> DW_AT_decl_file : 2
+ <107> DW_AT_decl_line : 1154
+ <109> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><10c>: Abbrev Number: 5 (DW_TAG_member)
+ <10d> DW_AT_name : (indirect string, offset: 0x378): sliced
+ <111> DW_AT_type : <0x515>
+ <115> DW_AT_decl_file : 2
+ <116> DW_AT_decl_line : 1155
+ <118> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><11b>: Abbrev Number: 5 (DW_TAG_member)
+ <11c> DW_AT_name : (indirect string, offset: 0x3b8): sdr
+ <120> DW_AT_type : <0x56f>
+ <124> DW_AT_decl_file : 2
+ <125> DW_AT_decl_line : 1156
+ <127> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><12a>: Abbrev Number: 5 (DW_TAG_member)
+ <12b> DW_AT_name : (indirect string, offset: 0x3d7): meta
+ <12f> DW_AT_type : <0x5b3>
+ <133> DW_AT_decl_file : 2
+ <134> DW_AT_decl_line : 1157
+ <136> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><139>: Abbrev Number: 5 (DW_TAG_member)
+ <13a> DW_AT_name : (indirect string, offset: 0x3f8): raw_data
+ <13e> DW_AT_type : <0x5db>
+ <142> DW_AT_decl_file : 2
+ <143> DW_AT_decl_line : 1158
+ <145> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><148>: Abbrev Number: 0
+ <2><149>: Abbrev Number: 0
+ <1><14a>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <14b> DW_AT_name : (indirect string, offset: 0x229): v4l2_pix_format
+ <14f> DW_AT_byte_size : 48
+ <150> DW_AT_decl_file : 2
+ <151> DW_AT_decl_line : 182
+ <2><152>: Abbrev Number: 9 (DW_TAG_member)
+ <153> DW_AT_name : (indirect string, offset: 0x1b4): width
+ <157> DW_AT_type : <0x92>
+ <15b> DW_AT_decl_file : 2
+ <15c> DW_AT_decl_line : 183
+ <15d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><160>: Abbrev Number: 9 (DW_TAG_member)
+ <161> DW_AT_name : (indirect string, offset: 0x1ba): height
+ <165> DW_AT_type : <0x92>
+ <169> DW_AT_decl_file : 2
+ <16a> DW_AT_decl_line : 184
+ <16b> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><16e>: Abbrev Number: 9 (DW_TAG_member)
+ <16f> DW_AT_name : (indirect string, offset: 0x1c1): pixelformat
+ <173> DW_AT_type : <0x92>
+ <177> DW_AT_decl_file : 2
+ <178> DW_AT_decl_line : 185
+ <179> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><17c>: Abbrev Number: 9 (DW_TAG_member)
+ <17d> DW_AT_name : (indirect string, offset: 0x1cd): field
+ <181> DW_AT_type : <0x92>
+ <185> DW_AT_decl_file : 2
+ <186> DW_AT_decl_line : 186
+ <187> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><18a>: Abbrev Number: 9 (DW_TAG_member)
+ <18b> DW_AT_name : (indirect string, offset: 0x1d3): bytesperline
+ <18f> DW_AT_type : <0x92>
+ <193> DW_AT_decl_file : 2
+ <194> DW_AT_decl_line : 187
+ <195> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><198>: Abbrev Number: 9 (DW_TAG_member)
+ <199> DW_AT_name : (indirect string, offset: 0x1e0): sizeimage
+ <19d> DW_AT_type : <0x92>
+ <1a1> DW_AT_decl_file : 2
+ <1a2> DW_AT_decl_line : 188
+ <1a3> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><1a6>: Abbrev Number: 9 (DW_TAG_member)
+ <1a7> DW_AT_name : (indirect string, offset: 0x1ea): colorspace
+ <1ab> DW_AT_type : <0x92>
+ <1af> DW_AT_decl_file : 2
+ <1b0> DW_AT_decl_line : 189
+ <1b1> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><1b4>: Abbrev Number: 9 (DW_TAG_member)
+ <1b5> DW_AT_name : (indirect string, offset: 0x1f5): priv
+ <1b9> DW_AT_type : <0x92>
+ <1bd> DW_AT_decl_file : 2
+ <1be> DW_AT_decl_line : 190
+ <1bf> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><1c2>: Abbrev Number: 9 (DW_TAG_member)
+ <1c3> DW_AT_name : (indirect string, offset: 0x1fa): flags
+ <1c7> DW_AT_type : <0x92>
+ <1cb> DW_AT_decl_file : 2
+ <1cc> DW_AT_decl_line : 191
+ <1cd> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><1d0>: Abbrev Number: 10 (DW_TAG_member)
+ <1d1> DW_AT_type : <0x1da>
+ <1d5> DW_AT_decl_file : 2
+ <1d6> DW_AT_decl_line : 192
+ <1d7> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><1da>: Abbrev Number: 11 (DW_TAG_union_type)
+ <1db> DW_AT_byte_size : 4
+ <1dc> DW_AT_decl_file : 2
+ <1dd> DW_AT_decl_line : 192
+ <3><1de>: Abbrev Number: 9 (DW_TAG_member)
+ <1df> DW_AT_name : (indirect string, offset: 0x200): ycbcr_enc
+ <1e3> DW_AT_type : <0x92>
+ <1e7> DW_AT_decl_file : 2
+ <1e8> DW_AT_decl_line : 193
+ <1e9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><1ec>: Abbrev Number: 9 (DW_TAG_member)
+ <1ed> DW_AT_name : (indirect string, offset: 0x20a): hsv_enc
+ <1f1> DW_AT_type : <0x92>
+ <1f5> DW_AT_decl_file : 2
+ <1f6> DW_AT_decl_line : 194
+ <1f7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><1fa>: Abbrev Number: 0
+ <2><1fb>: Abbrev Number: 9 (DW_TAG_member)
+ <1fc> DW_AT_name : (indirect string, offset: 0x212): quantization
+ <200> DW_AT_type : <0x92>
+ <204> DW_AT_decl_file : 2
+ <205> DW_AT_decl_line : 196
+ <206> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><209>: Abbrev Number: 9 (DW_TAG_member)
+ <20a> DW_AT_name : (indirect string, offset: 0x21f): xfer_func
+ <20e> DW_AT_type : <0x92>
+ <212> DW_AT_decl_file : 2
+ <213> DW_AT_decl_line : 197
+ <214> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><217>: Abbrev Number: 0
+ <1><218>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <219> DW_AT_name : (indirect string, offset: 0x2a5): v4l2_pix_format_mplane
+ <21d> DW_AT_byte_size : 192
+ <21e> DW_AT_decl_file : 2
+ <21f> DW_AT_decl_line : 1122
+ <2><221>: Abbrev Number: 5 (DW_TAG_member)
+ <222> DW_AT_name : (indirect string, offset: 0x1b4): width
+ <226> DW_AT_type : <0x92>
+ <22a> DW_AT_decl_file : 2
+ <22b> DW_AT_decl_line : 1123
+ <22d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><230>: Abbrev Number: 5 (DW_TAG_member)
+ <231> DW_AT_name : (indirect string, offset: 0x1ba): height
+ <235> DW_AT_type : <0x92>
+ <239> DW_AT_decl_file : 2
+ <23a> DW_AT_decl_line : 1124
+ <23c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><23f>: Abbrev Number: 5 (DW_TAG_member)
+ <240> DW_AT_name : (indirect string, offset: 0x1c1): pixelformat
+ <244> DW_AT_type : <0x92>
+ <248> DW_AT_decl_file : 2
+ <249> DW_AT_decl_line : 1125
+ <24b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><24e>: Abbrev Number: 5 (DW_TAG_member)
+ <24f> DW_AT_name : (indirect string, offset: 0x1cd): field
+ <253> DW_AT_type : <0x92>
+ <257> DW_AT_decl_file : 2
+ <258> DW_AT_decl_line : 1126
+ <25a> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><25d>: Abbrev Number: 5 (DW_TAG_member)
+ <25e> DW_AT_name : (indirect string, offset: 0x1ea): colorspace
+ <262> DW_AT_type : <0x92>
+ <266> DW_AT_decl_file : 2
+ <267> DW_AT_decl_line : 1127
+ <269> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><26c>: Abbrev Number: 5 (DW_TAG_member)
+ <26d> DW_AT_name : (indirect string, offset: 0x240): plane_fmt
+ <271> DW_AT_type : <0x2fc>
+ <275> DW_AT_decl_file : 2
+ <276> DW_AT_decl_line : 1128
+ <278> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><27b>: Abbrev Number: 5 (DW_TAG_member)
+ <27c> DW_AT_name : (indirect string, offset: 0x287): num_planes
+ <280> DW_AT_type : <0x366>
+ <284> DW_AT_decl_file : 2
+ <285> DW_AT_decl_line : 1129
+ <287> DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
+ <2><28b>: Abbrev Number: 5 (DW_TAG_member)
+ <28c> DW_AT_name : (indirect string, offset: 0x1fa): flags
+ <290> DW_AT_type : <0x366>
+ <294> DW_AT_decl_file : 2
+ <295> DW_AT_decl_line : 1130
+ <297> DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
+ <2><29b>: Abbrev Number: 12 (DW_TAG_member)
+ <29c> DW_AT_type : <0x2a7>
+ <2a0> DW_AT_decl_file : 2
+ <2a1> DW_AT_decl_line : 1131
+ <2a3> DW_AT_data_member_location: 3 byte block: 23 b6 1 (DW_OP_plus_uconst: 182)
+ <2><2a7>: Abbrev Number: 7 (DW_TAG_union_type)
+ <2a8> DW_AT_byte_size : 1
+ <2a9> DW_AT_decl_file : 2
+ <2aa> DW_AT_decl_line : 1131
+ <3><2ac>: Abbrev Number: 5 (DW_TAG_member)
+ <2ad> DW_AT_name : (indirect string, offset: 0x200): ycbcr_enc
+ <2b1> DW_AT_type : <0x366>
+ <2b5> DW_AT_decl_file : 2
+ <2b6> DW_AT_decl_line : 1132
+ <2b8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2bb>: Abbrev Number: 5 (DW_TAG_member)
+ <2bc> DW_AT_name : (indirect string, offset: 0x20a): hsv_enc
+ <2c0> DW_AT_type : <0x366>
+ <2c4> DW_AT_decl_file : 2
+ <2c5> DW_AT_decl_line : 1133
+ <2c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><2ca>: Abbrev Number: 0
+ <2><2cb>: Abbrev Number: 5 (DW_TAG_member)
+ <2cc> DW_AT_name : (indirect string, offset: 0x212): quantization
+ <2d0> DW_AT_type : <0x366>
+ <2d4> DW_AT_decl_file : 2
+ <2d5> DW_AT_decl_line : 1135
+ <2d7> DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
+ <2><2db>: Abbrev Number: 5 (DW_TAG_member)
+ <2dc> DW_AT_name : (indirect string, offset: 0x21f): xfer_func
+ <2e0> DW_AT_type : <0x366>
+ <2e4> DW_AT_decl_file : 2
+ <2e5> DW_AT_decl_line : 1136
+ <2e7> DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
+ <2><2eb>: Abbrev Number: 5 (DW_TAG_member)
+ <2ec> DW_AT_name : (indirect string, offset: 0x24a): reserved
+ <2f0> DW_AT_type : <0x378>
+ <2f4> DW_AT_decl_file : 2
+ <2f5> DW_AT_decl_line : 1137
+ <2f7> DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
+ <2><2fb>: Abbrev Number: 0
+ <1><2fc>: Abbrev Number: 13 (DW_TAG_array_type)
+ <2fd> DW_AT_type : <0x309>
+ <2><301>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <302> DW_AT_type : <0x35f>
+ <306> DW_AT_lower_bound : 0
+ <307> DW_AT_count : 8
+ <2><308>: Abbrev Number: 0
+ <1><309>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <30a> DW_AT_name : (indirect string, offset: 0x271): v4l2_plane_pix_format
+ <30e> DW_AT_byte_size : 20
+ <30f> DW_AT_decl_file : 2
+ <310> DW_AT_decl_line : 1117
+ <2><312>: Abbrev Number: 5 (DW_TAG_member)
+ <313> DW_AT_name : (indirect string, offset: 0x1e0): sizeimage
+ <317> DW_AT_type : <0x92>
+ <31b> DW_AT_decl_file : 2
+ <31c> DW_AT_decl_line : 1118
+ <31e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><321>: Abbrev Number: 5 (DW_TAG_member)
+ <322> DW_AT_name : (indirect string, offset: 0x1d3): bytesperline
+ <326> DW_AT_type : <0x92>
+ <32a> DW_AT_decl_file : 2
+ <32b> DW_AT_decl_line : 1119
+ <32d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><330>: Abbrev Number: 5 (DW_TAG_member)
+ <331> DW_AT_name : (indirect string, offset: 0x24a): reserved
+ <335> DW_AT_type : <0x340>
+ <339> DW_AT_decl_file : 2
+ <33a> DW_AT_decl_line : 1120
+ <33c> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><33f>: Abbrev Number: 0
+ <1><340>: Abbrev Number: 13 (DW_TAG_array_type)
+ <341> DW_AT_type : <0x34d>
+ <2><345>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <346> DW_AT_type : <0x35f>
+ <34a> DW_AT_lower_bound : 0
+ <34b> DW_AT_count : 6
+ <2><34c>: Abbrev Number: 0
+ <1><34d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <34e> DW_AT_type : <0x358>
+ <352> DW_AT_name : (indirect string, offset: 0x262): __u16
+ <356> DW_AT_decl_file : 1
+ <357> DW_AT_decl_line : 26
+ <1><358>: Abbrev Number: 6 (DW_TAG_base_type)
+ <359> DW_AT_name : (indirect string, offset: 0x253): unsigned short
+ <35d> DW_AT_encoding : 7 (unsigned)
+ <35e> DW_AT_byte_size : 2
+ <1><35f>: Abbrev Number: 15 (DW_TAG_base_type)
+ <360> DW_AT_name : (indirect string, offset: 0x268): sizetype
+ <364> DW_AT_byte_size : 8
+ <365> DW_AT_encoding : 7 (unsigned)
+ <1><366>: Abbrev Number: 3 (DW_TAG_typedef)
+ <367> DW_AT_type : <0x371>
+ <36b> DW_AT_name : (indirect string, offset: 0x2a0): __u8
+ <36f> DW_AT_decl_file : 1
+ <370> DW_AT_decl_line : 24
+ <1><371>: Abbrev Number: 6 (DW_TAG_base_type)
+ <372> DW_AT_name : (indirect string, offset: 0x292): unsigned char
+ <376> DW_AT_encoding : 8 (unsigned char)
+ <377> DW_AT_byte_size : 1
+ <1><378>: Abbrev Number: 13 (DW_TAG_array_type)
+ <379> DW_AT_type : <0x366>
+ <2><37d>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <37e> DW_AT_type : <0x35f>
+ <382> DW_AT_lower_bound : 0
+ <383> DW_AT_count : 7
+ <2><384>: Abbrev Number: 0
+ <1><385>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <386> DW_AT_name : (indirect string, offset: 0x31e): v4l2_window
+ <38a> DW_AT_byte_size : 40
+ <38b> DW_AT_decl_file : 2
+ <38c> DW_AT_decl_line : 554
+ <2><38e>: Abbrev Number: 5 (DW_TAG_member)
+ <38f> DW_AT_name : (indirect string, offset: 0x2c0): w
+ <393> DW_AT_type : <0x3f8>
+ <397> DW_AT_decl_file : 2
+ <398> DW_AT_decl_line : 555
+ <39a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><39d>: Abbrev Number: 5 (DW_TAG_member)
+ <39e> DW_AT_name : (indirect string, offset: 0x1cd): field
+ <3a2> DW_AT_type : <0x92>
+ <3a6> DW_AT_decl_file : 2
+ <3a7> DW_AT_decl_line : 556
+ <3a9> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><3ac>: Abbrev Number: 5 (DW_TAG_member)
+ <3ad> DW_AT_name : (indirect string, offset: 0x2df): chromakey
+ <3b1> DW_AT_type : <0x92>
+ <3b5> DW_AT_decl_file : 2
+ <3b6> DW_AT_decl_line : 557
+ <3b8> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><3bb>: Abbrev Number: 5 (DW_TAG_member)
+ <3bc> DW_AT_name : (indirect string, offset: 0x2e9): clips
+ <3c0> DW_AT_type : <0x44b>
+ <3c4> DW_AT_decl_file : 2
+ <3c5> DW_AT_decl_line : 558
+ <3c7> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><3ca>: Abbrev Number: 5 (DW_TAG_member)
+ <3cb> DW_AT_name : (indirect string, offset: 0x300): clipcount
+ <3cf> DW_AT_type : <0x92>
+ <3d3> DW_AT_decl_file : 2
+ <3d4> DW_AT_decl_line : 559
+ <3d6> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><3d9>: Abbrev Number: 5 (DW_TAG_member)
+ <3da> DW_AT_name : (indirect string, offset: 0x30a): bitmap
+ <3de> DW_AT_type : <0x478>
+ <3e2> DW_AT_decl_file : 2
+ <3e3> DW_AT_decl_line : 560
+ <3e5> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><3e8>: Abbrev Number: 5 (DW_TAG_member)
+ <3e9> DW_AT_name : (indirect string, offset: 0x311): global_alpha
+ <3ed> DW_AT_type : <0x366>
+ <3f1> DW_AT_decl_file : 2
+ <3f2> DW_AT_decl_line : 561
+ <3f4> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><3f7>: Abbrev Number: 0
+ <1><3f8>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <3f9> DW_AT_name : (indirect string, offset: 0x2d5): v4l2_rect
+ <3fd> DW_AT_byte_size : 16
+ <3fe> DW_AT_decl_file : 2
+ <3ff> DW_AT_decl_line : 135
+ <2><400>: Abbrev Number: 9 (DW_TAG_member)
+ <401> DW_AT_name : (indirect string, offset: 0x2c2): left
+ <405> DW_AT_type : <0x439>
+ <409> DW_AT_decl_file : 2
+ <40a> DW_AT_decl_line : 136
+ <40b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><40e>: Abbrev Number: 9 (DW_TAG_member)
+ <40f> DW_AT_name : (indirect string, offset: 0x2d1): top
+ <413> DW_AT_type : <0x439>
+ <417> DW_AT_decl_file : 2
+ <418> DW_AT_decl_line : 137
+ <419> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><41c>: Abbrev Number: 9 (DW_TAG_member)
+ <41d> DW_AT_name : (indirect string, offset: 0x1b4): width
+ <421> DW_AT_type : <0x92>
+ <425> DW_AT_decl_file : 2
+ <426> DW_AT_decl_line : 138
+ <427> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><42a>: Abbrev Number: 9 (DW_TAG_member)
+ <42b> DW_AT_name : (indirect string, offset: 0x1ba): height
+ <42f> DW_AT_type : <0x92>
+ <433> DW_AT_decl_file : 2
+ <434> DW_AT_decl_line : 139
+ <435> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><438>: Abbrev Number: 0
+ <1><439>: Abbrev Number: 3 (DW_TAG_typedef)
+ <43a> DW_AT_type : <0x444>
+ <43e> DW_AT_name : (indirect string, offset: 0x2cb): __s32
+ <442> DW_AT_decl_file : 1
+ <443> DW_AT_decl_line : 27
+ <1><444>: Abbrev Number: 6 (DW_TAG_base_type)
+ <445> DW_AT_name : (indirect string, offset: 0x2c7): int
+ <449> DW_AT_encoding : 5 (signed)
+ <44a> DW_AT_byte_size : 4
+ <1><44b>: Abbrev Number: 16 (DW_TAG_pointer_type)
+ <44c> DW_AT_type : <0x450>
+ <1><450>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <451> DW_AT_name : (indirect string, offset: 0x2f6): v4l2_clip
+ <455> DW_AT_byte_size : 20
+ <456> DW_AT_decl_file : 2
+ <457> DW_AT_decl_line : 550
+ <2><459>: Abbrev Number: 5 (DW_TAG_member)
+ <45a> DW_AT_name : (indirect string, offset: 0x2ef): c
+ <45e> DW_AT_type : <0x3f8>
+ <462> DW_AT_decl_file : 2
+ <463> DW_AT_decl_line : 551
+ <465> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><468>: Abbrev Number: 5 (DW_TAG_member)
+ <469> DW_AT_name : (indirect string, offset: 0x2f1): next
+ <46d> DW_AT_type : <0x44b>
+ <471> DW_AT_decl_file : 2
+ <472> DW_AT_decl_line : 552
+ <474> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><477>: Abbrev Number: 0
+ <1><478>: Abbrev Number: 17 (DW_TAG_pointer_type)
+ <1><479>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <47a> DW_AT_name : (indirect string, offset: 0x368): v4l2_vbi_format
+ <47e> DW_AT_byte_size : 44
+ <47f> DW_AT_decl_file : 2
+ <480> DW_AT_decl_line : 1052
+ <2><482>: Abbrev Number: 5 (DW_TAG_member)
+ <483> DW_AT_name : (indirect string, offset: 0x32e): sampling_rate
+ <487> DW_AT_type : <0x92>
+ <48b> DW_AT_decl_file : 2
+ <48c> DW_AT_decl_line : 1053
+ <48e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><491>: Abbrev Number: 5 (DW_TAG_member)
+ <492> DW_AT_name : (indirect string, offset: 0x33c): offset
+ <496> DW_AT_type : <0x92>
+ <49a> DW_AT_decl_file : 2
+ <49b> DW_AT_decl_line : 1054
+ <49d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><4a0>: Abbrev Number: 5 (DW_TAG_member)
+ <4a1> DW_AT_name : (indirect string, offset: 0x343): samples_per_line
+ <4a5> DW_AT_type : <0x92>
+ <4a9> DW_AT_decl_file : 2
+ <4aa> DW_AT_decl_line : 1055
+ <4ac> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><4af>: Abbrev Number: 5 (DW_TAG_member)
+ <4b0> DW_AT_name : (indirect string, offset: 0x354): sample_format
+ <4b4> DW_AT_type : <0x92>
+ <4b8> DW_AT_decl_file : 2
+ <4b9> DW_AT_decl_line : 1056
+ <4bb> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><4be>: Abbrev Number: 5 (DW_TAG_member)
+ <4bf> DW_AT_name : (indirect string, offset: 0x362): start
+ <4c3> DW_AT_type : <0x4fb>
+ <4c7> DW_AT_decl_file : 2
+ <4c8> DW_AT_decl_line : 1057
+ <4ca> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><4cd>: Abbrev Number: 5 (DW_TAG_member)
+ <4ce> DW_AT_name : (indirect string, offset: 0x193): count
+ <4d2> DW_AT_type : <0x508>
+ <4d6> DW_AT_decl_file : 2
+ <4d7> DW_AT_decl_line : 1058
+ <4d9> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><4dc>: Abbrev Number: 5 (DW_TAG_member)
+ <4dd> DW_AT_name : (indirect string, offset: 0x1fa): flags
+ <4e1> DW_AT_type : <0x92>
+ <4e5> DW_AT_decl_file : 2
+ <4e6> DW_AT_decl_line : 1059
+ <4e8> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><4eb>: Abbrev Number: 5 (DW_TAG_member)
+ <4ec> DW_AT_name : (indirect string, offset: 0x24a): reserved
+ <4f0> DW_AT_type : <0x508>
+ <4f4> DW_AT_decl_file : 2
+ <4f5> DW_AT_decl_line : 1060
+ <4f7> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><4fa>: Abbrev Number: 0
+ <1><4fb>: Abbrev Number: 13 (DW_TAG_array_type)
+ <4fc> DW_AT_type : <0x439>
+ <2><500>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <501> DW_AT_type : <0x35f>
+ <505> DW_AT_lower_bound : 0
+ <506> DW_AT_count : 2
+ <2><507>: Abbrev Number: 0
+ <1><508>: Abbrev Number: 13 (DW_TAG_array_type)
+ <509> DW_AT_type : <0x92>
+ <2><50d>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <50e> DW_AT_type : <0x35f>
+ <512> DW_AT_lower_bound : 0
+ <513> DW_AT_count : 2
+ <2><514>: Abbrev Number: 0
+ <1><515>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <516> DW_AT_name : (indirect string, offset: 0x3a1): v4l2_sliced_vbi_format
+ <51a> DW_AT_byte_size : 112
+ <51b> DW_AT_decl_file : 2
+ <51c> DW_AT_decl_line : 1068
+ <2><51e>: Abbrev Number: 5 (DW_TAG_member)
+ <51f> DW_AT_name : (indirect string, offset: 0x37f): service_set
+ <523> DW_AT_type : <0x34d>
+ <527> DW_AT_decl_file : 2
+ <528> DW_AT_decl_line : 1069
+ <52a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52d>: Abbrev Number: 5 (DW_TAG_member)
+ <52e> DW_AT_name : (indirect string, offset: 0x38b): service_lines
+ <532> DW_AT_type : <0x55b>
+ <536> DW_AT_decl_file : 2
+ <537> DW_AT_decl_line : 1070
+ <539> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><53c>: Abbrev Number: 5 (DW_TAG_member)
+ <53d> DW_AT_name : (indirect string, offset: 0x399): io_size
+ <541> DW_AT_type : <0x92>
+ <545> DW_AT_decl_file : 2
+ <546> DW_AT_decl_line : 1071
+ <548> DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
+ <2><54b>: Abbrev Number: 5 (DW_TAG_member)
+ <54c> DW_AT_name : (indirect string, offset: 0x24a): reserved
+ <550> DW_AT_type : <0x508>
+ <554> DW_AT_decl_file : 2
+ <555> DW_AT_decl_line : 1072
+ <557> DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
+ <2><55a>: Abbrev Number: 0
+ <1><55b>: Abbrev Number: 13 (DW_TAG_array_type)
+ <55c> DW_AT_type : <0x34d>
+ <2><560>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <561> DW_AT_type : <0x35f>
+ <565> DW_AT_lower_bound : 0
+ <566> DW_AT_count : 2
+ <2><567>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <568> DW_AT_type : <0x35f>
+ <56c> DW_AT_lower_bound : 0
+ <56d> DW_AT_count : 24
+ <2><56e>: Abbrev Number: 0
+ <1><56f>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <570> DW_AT_name : (indirect string, offset: 0x3c7): v4l2_sdr_format
+ <574> DW_AT_byte_size : 32
+ <575> DW_AT_decl_file : 2
+ <576> DW_AT_decl_line : 1139
+ <2><578>: Abbrev Number: 5 (DW_TAG_member)
+ <579> DW_AT_name : (indirect string, offset: 0x1c1): pixelformat
+ <57d> DW_AT_type : <0x92>
+ <581> DW_AT_decl_file : 2
+ <582> DW_AT_decl_line : 1140
+ <584> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><587>: Abbrev Number: 5 (DW_TAG_member)
+ <588> DW_AT_name : (indirect string, offset: 0x3bc): buffersize
+ <58c> DW_AT_type : <0x92>
+ <590> DW_AT_decl_file : 2
+ <591> DW_AT_decl_line : 1141
+ <593> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><596>: Abbrev Number: 5 (DW_TAG_member)
+ <597> DW_AT_name : (indirect string, offset: 0x24a): reserved
+ <59b> DW_AT_type : <0x5a6>
+ <59f> DW_AT_decl_file : 2
+ <5a0> DW_AT_decl_line : 1142
+ <5a2> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><5a5>: Abbrev Number: 0
+ <1><5a6>: Abbrev Number: 13 (DW_TAG_array_type)
+ <5a7> DW_AT_type : <0x366>
+ <2><5ab>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <5ac> DW_AT_type : <0x35f>
+ <5b0> DW_AT_lower_bound : 0
+ <5b1> DW_AT_count : 24
+ <2><5b2>: Abbrev Number: 0
+ <1><5b3>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <5b4> DW_AT_name : (indirect string, offset: 0x3e7): v4l2_meta_format
+ <5b8> DW_AT_byte_size : 8
+ <5b9> DW_AT_decl_file : 2
+ <5ba> DW_AT_decl_line : 1144
+ <2><5bc>: Abbrev Number: 5 (DW_TAG_member)
+ <5bd> DW_AT_name : (indirect string, offset: 0x3dc): dataformat
+ <5c1> DW_AT_type : <0x92>
+ <5c5> DW_AT_decl_file : 2
+ <5c6> DW_AT_decl_line : 1145
+ <5c8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><5cb>: Abbrev Number: 5 (DW_TAG_member)
+ <5cc> DW_AT_name : (indirect string, offset: 0x3bc): buffersize
+ <5d0> DW_AT_type : <0x92>
+ <5d4> DW_AT_decl_file : 2
+ <5d5> DW_AT_decl_line : 1146
+ <5d7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><5da>: Abbrev Number: 0
+ <1><5db>: Abbrev Number: 13 (DW_TAG_array_type)
+ <5dc> DW_AT_type : <0x366>
+ <2><5e0>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <5e1> DW_AT_type : <0x35f>
+ <5e5> DW_AT_lower_bound : 0
+ <5e6> DW_AT_count : 200
+ <2><5e7>: Abbrev Number: 0
+ <1><5e8>: Abbrev Number: 13 (DW_TAG_array_type)
+ <5e9> DW_AT_type : <0x92>
+ <2><5ed>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <5ee> DW_AT_type : <0x35f>
+ <5f2> DW_AT_lower_bound : 0
+ <5f3> DW_AT_count : 8
+ <2><5f4>: Abbrev Number: 0
+ <1><5f5>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_create_buffers.d2 b/mpers-m32/struct_v4l2_create_buffers.d2
index c71641d..29d8b0a 100644
--- a/mpers-m32/struct_v4l2_create_buffers.d2
+++ b/mpers-m32/struct_v4l2_create_buffers.d2
@@ -1,762 +1,762 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x9f): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x169): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x357): struct_v4l2_create_buffers
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x421): struct_v4l2_create_buffers
DW_AT_decl_file : 3
DW_AT_decl_line : 44
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x343): v4l2_create_buffers
+DW_AT_name : (indirect string, offset: 0x40d): v4l2_create_buffers
DW_AT_byte_size : 248
DW_AT_decl_file : 2
-DW_AT_decl_line : 1253
-<2><44>
+DW_AT_decl_line : 1260
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xb0): index
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x17a): index
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
-DW_AT_decl_line : 1254
+DW_AT_decl_line : 1261
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc9): count
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x193): count
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
-DW_AT_decl_line : 1255
+DW_AT_decl_line : 1262
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><62>
+<2><63>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcf): memory
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x199): memory
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
-DW_AT_decl_line : 1256
+DW_AT_decl_line : 1263
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><71>
+<2><72>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd6): format
-DW_AT_type : <0xa3>
+DW_AT_name : (indirect string, offset: 0x1a0): format
+DW_AT_type : <0xa4>
DW_AT_decl_file : 2
-DW_AT_decl_line : 1257
+DW_AT_decl_line : 1264
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><80>
+<2><81>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x180): reserved
-DW_AT_type : <0x5e7>
+DW_AT_name : (indirect string, offset: 0x24a): reserved
+DW_AT_type : <0x5e8>
DW_AT_decl_file : 2
-DW_AT_decl_line : 1258
+DW_AT_decl_line : 1265
DW_AT_data_member_location: 3 byte block: 23 d8 1 (DW_OP_plus_uconst: 216)
-<1><91>
+<1><92>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x9c>
-DW_AT_name : (indirect string, offset: 0xc3): __u32
+DW_AT_type : <0x9d>
+DW_AT_name : (indirect string, offset: 0x18d): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><9c>
+<1><9d>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb6): unsigned int
+DW_AT_name : (indirect string, offset: 0x180): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><a3>
+<1><a4>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x337): v4l2_format
+DW_AT_name : (indirect string, offset: 0x401): v4l2_format
DW_AT_byte_size : 204
DW_AT_decl_file : 2
-DW_AT_decl_line : 1141
-<2><ac>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdd): type
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1142
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><bb>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe2): fmt
-DW_AT_type : <0xca>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1152
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><ca>
-Abbrev Number: 7 (DW_TAG_union_type)
-DW_AT_byte_size : 200
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1143
-<3><cf>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe6): pix
-DW_AT_type : <0x149>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1144
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><de>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x16f): pix_mp
-DW_AT_type : <0x217>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1145
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><ed>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f2): win
-DW_AT_type : <0x384>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1146
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><fc>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x260): vbi
-DW_AT_type : <0x478>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1147
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><10b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2ae): sliced
-DW_AT_type : <0x514>
-DW_AT_decl_file : 2
DW_AT_decl_line : 1148
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><11a>
+<2><ad>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2ee): sdr
-DW_AT_type : <0x56e>
+DW_AT_name : (indirect string, offset: 0x1a7): type
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 1149
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><129>
+<2><bc>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x30d): meta
-DW_AT_type : <0x5b2>
+DW_AT_name : (indirect string, offset: 0x1ac): fmt
+DW_AT_type : <0xcb>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1159
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><cb>
+Abbrev Number: 7 (DW_TAG_union_type)
+DW_AT_byte_size : 200
DW_AT_decl_file : 2
DW_AT_decl_line : 1150
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><138>
+<3><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x32e): raw_data
-DW_AT_type : <0x5da>
+DW_AT_name : (indirect string, offset: 0x1b0): pix
+DW_AT_type : <0x14a>
DW_AT_decl_file : 2
DW_AT_decl_line : 1151
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><149>
+<3><df>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x239): pix_mp
+DW_AT_type : <0x218>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1152
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><ee>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2bc): win
+DW_AT_type : <0x385>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1153
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><fd>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x32a): vbi
+DW_AT_type : <0x479>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1154
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><10c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x378): sliced
+DW_AT_type : <0x515>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1155
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><11b>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3b8): sdr
+DW_AT_type : <0x56f>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1156
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><12a>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3d7): meta
+DW_AT_type : <0x5b3>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1157
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><139>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3f8): raw_data
+DW_AT_type : <0x5db>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1158
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><14a>
Abbrev Number: 8 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x15f): v4l2_pix_format
+DW_AT_name : (indirect string, offset: 0x229): v4l2_pix_format
DW_AT_byte_size : 48
DW_AT_decl_file : 2
DW_AT_decl_line : 182
-<2><151>
+<2><152>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xea): width
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1b4): width
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 183
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><15f>
+<2><160>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): height
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1ba): height
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 184
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><16d>
+<2><16e>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf7): pixelformat
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1c1): pixelformat
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 185
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><17b>
+<2><17c>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x103): field
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1cd): field
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 186
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><189>
+<2><18a>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x109): bytesperline
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1d3): bytesperline
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 187
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><197>
+<2><198>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x116): sizeimage
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1e0): sizeimage
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 188
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><1a5>
+<2><1a6>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x120): colorspace
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1ea): colorspace
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 189
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><1b3>
+<2><1b4>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12b): priv
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1f5): priv
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 190
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><1c1>
+<2><1c2>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x130): flags
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1fa): flags
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 191
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><1cf>
+<2><1d0>
Abbrev Number: 10 (DW_TAG_member)
-DW_AT_type : <0x1d9>
+DW_AT_type : <0x1da>
DW_AT_decl_file : 2
DW_AT_decl_line : 192
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><1d9>
+<2><1da>
Abbrev Number: 11 (DW_TAG_union_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 2
DW_AT_decl_line : 192
-<3><1dd>
+<3><1de>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x136): ycbcr_enc
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x200): ycbcr_enc
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 193
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><1eb>
+<3><1ec>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x140): hsv_enc
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x20a): hsv_enc
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 194
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1fa>
+<2><1fb>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x148): quantization
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x212): quantization
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 196
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><208>
+<2><209>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x155): xfer_func
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x21f): xfer_func
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 197
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<1><217>
+<1><218>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1db): v4l2_pix_format_mplane
+DW_AT_name : (indirect string, offset: 0x2a5): v4l2_pix_format_mplane
DW_AT_byte_size : 192
DW_AT_decl_file : 2
-DW_AT_decl_line : 1115
-<2><220>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xea): width
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1116
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><22f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): height
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1117
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><23e>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf7): pixelformat
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1118
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><24d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x103): field
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1119
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><25c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x120): colorspace
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1120
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><26b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x176): plane_fmt
-DW_AT_type : <0x2fb>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1121
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><27a>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1bd): num_planes
-DW_AT_type : <0x365>
-DW_AT_decl_file : 2
DW_AT_decl_line : 1122
-DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
-<2><28a>
+<2><221>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x130): flags
-DW_AT_type : <0x365>
+DW_AT_name : (indirect string, offset: 0x1b4): width
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 1123
-DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
-<2><29a>
-Abbrev Number: 12 (DW_TAG_member)
-DW_AT_type : <0x2a6>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><230>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ba): height
+DW_AT_type : <0x92>
DW_AT_decl_file : 2
DW_AT_decl_line : 1124
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><23f>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1c1): pixelformat
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1125
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><24e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1cd): field
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1126
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><25d>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ea): colorspace
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1127
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><26c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x240): plane_fmt
+DW_AT_type : <0x2fc>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1128
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<2><27b>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x287): num_planes
+DW_AT_type : <0x366>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1129
+DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
+<2><28b>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1fa): flags
+DW_AT_type : <0x366>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1130
+DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
+<2><29b>
+Abbrev Number: 12 (DW_TAG_member)
+DW_AT_type : <0x2a7>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1131
DW_AT_data_member_location: 3 byte block: 23 b6 1 (DW_OP_plus_uconst: 182)
-<2><2a6>
+<2><2a7>
Abbrev Number: 7 (DW_TAG_union_type)
DW_AT_byte_size : 1
DW_AT_decl_file : 2
-DW_AT_decl_line : 1124
-<3><2ab>
+DW_AT_decl_line : 1131
+<3><2ac>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x136): ycbcr_enc
-DW_AT_type : <0x365>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1125
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><2ba>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x140): hsv_enc
-DW_AT_type : <0x365>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1126
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><2ca>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x148): quantization
-DW_AT_type : <0x365>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1128
-DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
-<2><2da>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x155): xfer_func
-DW_AT_type : <0x365>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1129
-DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
-<2><2ea>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x180): reserved
-DW_AT_type : <0x377>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1130
-DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
-<1><2fb>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x308>
-<2><300>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 8
-<1><308>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1a7): v4l2_plane_pix_format
-DW_AT_byte_size : 20
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1110
-<2><311>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x116): sizeimage
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1111
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><320>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x109): bytesperline
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1112
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><32f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x180): reserved
-DW_AT_type : <0x33f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1113
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><33f>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x34c>
-<2><344>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 6
-<1><34c>
-Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x357>
-DW_AT_name : (indirect string, offset: 0x198): __u16
-DW_AT_decl_file : 1
-DW_AT_decl_line : 26
-<1><357>
-Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x189): unsigned short
-DW_AT_encoding : 7 (unsigned)
-DW_AT_byte_size : 2
-<1><35e>
-Abbrev Number: 15 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x19e): sizetype
-DW_AT_byte_size : 8
-DW_AT_encoding : 7 (unsigned)
-<1><365>
-Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x370>
-DW_AT_name : (indirect string, offset: 0x1d6): __u8
-DW_AT_decl_file : 1
-DW_AT_decl_line : 24
-<1><370>
-Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1c8): unsigned char
-DW_AT_encoding : 8 (unsigned char)
-DW_AT_byte_size : 1
-<1><377>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x365>
-<2><37c>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 7
-<1><384>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x254): v4l2_window
-DW_AT_byte_size : 40
-DW_AT_decl_file : 2
-DW_AT_decl_line : 547
-<2><38d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f6): w
-DW_AT_type : <0x3f7>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 548
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><39c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x103): field
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 549
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><3ab>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x215): chromakey
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 550
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><3ba>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x21f): clips
-DW_AT_type : <0x44a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 551
-DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><3c9>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x236): clipcount
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 552
-DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><3d8>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x240): bitmap
-DW_AT_type : <0x477>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 553
-DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><3e7>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x247): global_alpha
-DW_AT_type : <0x365>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 554
-DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<1><3f7>
-Abbrev Number: 8 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x20b): v4l2_rect
-DW_AT_byte_size : 16
-DW_AT_decl_file : 2
-DW_AT_decl_line : 135
-<2><3ff>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f8): left
-DW_AT_type : <0x438>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 136
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><40d>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x207): top
-DW_AT_type : <0x438>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 137
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><41b>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xea): width
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 138
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><429>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf0): height
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 139
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><438>
-Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x443>
-DW_AT_name : (indirect string, offset: 0x201): __s32
-DW_AT_decl_file : 1
-DW_AT_decl_line : 27
-<1><443>
-Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1fd): int
-DW_AT_encoding : 5 (signed)
-DW_AT_byte_size : 4
-<1><44a>
-Abbrev Number: 16 (DW_TAG_pointer_type)
-DW_AT_type : <0x44f>
-<1><44f>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x22c): v4l2_clip
-DW_AT_byte_size : 20
-DW_AT_decl_file : 2
-DW_AT_decl_line : 543
-<2><458>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x225): c
-DW_AT_type : <0x3f7>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 544
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><467>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x227): next
-DW_AT_type : <0x44a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 545
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<1><477>
-Abbrev Number: 17 (DW_TAG_pointer_type)
-<1><478>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x29e): v4l2_vbi_format
-DW_AT_byte_size : 44
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1045
-<2><481>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x264): sampling_rate
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1046
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><490>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x272): offset
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1047
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><49f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x279): samples_per_line
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1048
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><4ae>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x28a): sample_format
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1049
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><4bd>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x298): start
-DW_AT_type : <0x4fa>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1050
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><4cc>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc9): count
-DW_AT_type : <0x507>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1051
-DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><4db>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x130): flags
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1052
-DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><4ea>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x180): reserved
-DW_AT_type : <0x507>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1053
-DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<1><4fa>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x438>
-<2><4ff>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 2
-<1><507>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x91>
-<2><50c>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 2
-<1><514>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x2d7): v4l2_sliced_vbi_format
-DW_AT_byte_size : 112
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1061
-<2><51d>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2b5): service_set
-DW_AT_type : <0x34c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1062
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><52c>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2c1): service_lines
-DW_AT_type : <0x55a>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1063
-DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><53b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2cf): io_size
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1064
-DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
-<2><54a>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x180): reserved
-DW_AT_type : <0x507>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1065
-DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
-<1><55a>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x34c>
-<2><55f>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 2
-<2><566>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 24
-<1><56e>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x2fd): v4l2_sdr_format
-DW_AT_byte_size : 32
+DW_AT_name : (indirect string, offset: 0x200): ycbcr_enc
+DW_AT_type : <0x366>
DW_AT_decl_file : 2
DW_AT_decl_line : 1132
-<2><577>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><2bb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf7): pixelformat
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x20a): hsv_enc
+DW_AT_type : <0x366>
DW_AT_decl_file : 2
DW_AT_decl_line : 1133
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><586>
+<2><2cb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f2): buffersize
-DW_AT_type : <0x91>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1134
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><595>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x180): reserved
-DW_AT_type : <0x5a5>
+DW_AT_name : (indirect string, offset: 0x212): quantization
+DW_AT_type : <0x366>
DW_AT_decl_file : 2
DW_AT_decl_line : 1135
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><5a5>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x365>
-<2><5aa>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
-DW_AT_lower_bound : 0
-DW_AT_count : 24
-<1><5b2>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x31d): v4l2_meta_format
-DW_AT_byte_size : 8
+DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
+<2><2db>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x21f): xfer_func
+DW_AT_type : <0x366>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1136
+DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
+<2><2eb>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x24a): reserved
+DW_AT_type : <0x378>
DW_AT_decl_file : 2
DW_AT_decl_line : 1137
-<2><5bb>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x312): dataformat
-DW_AT_type : <0x91>
+DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
+<1><2fc>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x309>
+<2><301>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 8
+<1><309>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x271): v4l2_plane_pix_format
+DW_AT_byte_size : 20
DW_AT_decl_file : 2
-DW_AT_decl_line : 1138
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><5ca>
+DW_AT_decl_line : 1117
+<2><312>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f2): buffersize
-DW_AT_type : <0x91>
+DW_AT_name : (indirect string, offset: 0x1e0): sizeimage
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1118
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><321>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1d3): bytesperline
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1119
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><330>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x24a): reserved
+DW_AT_type : <0x340>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1120
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<1><340>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x34d>
+<2><345>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 6
+<1><34d>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x358>
+DW_AT_name : (indirect string, offset: 0x262): __u16
+DW_AT_decl_file : 1
+DW_AT_decl_line : 26
+<1><358>
+Abbrev Number: 6 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x253): unsigned short
+DW_AT_encoding : 7 (unsigned)
+DW_AT_byte_size : 2
+<1><35f>
+Abbrev Number: 15 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x268): sizetype
+DW_AT_byte_size : 8
+DW_AT_encoding : 7 (unsigned)
+<1><366>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x371>
+DW_AT_name : (indirect string, offset: 0x2a0): __u8
+DW_AT_decl_file : 1
+DW_AT_decl_line : 24
+<1><371>
+Abbrev Number: 6 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x292): unsigned char
+DW_AT_encoding : 8 (unsigned char)
+DW_AT_byte_size : 1
+<1><378>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x366>
+<2><37d>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 7
+<1><385>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x31e): v4l2_window
+DW_AT_byte_size : 40
+DW_AT_decl_file : 2
+DW_AT_decl_line : 554
+<2><38e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2c0): w
+DW_AT_type : <0x3f8>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 555
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><39d>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1cd): field
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 556
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><3ac>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2df): chromakey
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 557
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<2><3bb>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2e9): clips
+DW_AT_type : <0x44b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 558
+DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+<2><3ca>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x300): clipcount
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 559
+DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+<2><3d9>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x30a): bitmap
+DW_AT_type : <0x478>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 560
+DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+<2><3e8>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x311): global_alpha
+DW_AT_type : <0x366>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 561
+DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+<1><3f8>
+Abbrev Number: 8 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x2d5): v4l2_rect
+DW_AT_byte_size : 16
+DW_AT_decl_file : 2
+DW_AT_decl_line : 135
+<2><400>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2c2): left
+DW_AT_type : <0x439>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 136
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><40e>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2d1): top
+DW_AT_type : <0x439>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 137
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><41c>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b4): width
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 138
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><42a>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ba): height
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 139
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<1><439>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x444>
+DW_AT_name : (indirect string, offset: 0x2cb): __s32
+DW_AT_decl_file : 1
+DW_AT_decl_line : 27
+<1><444>
+Abbrev Number: 6 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x2c7): int
+DW_AT_encoding : 5 (signed)
+DW_AT_byte_size : 4
+<1><44b>
+Abbrev Number: 16 (DW_TAG_pointer_type)
+DW_AT_type : <0x450>
+<1><450>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x2f6): v4l2_clip
+DW_AT_byte_size : 20
+DW_AT_decl_file : 2
+DW_AT_decl_line : 550
+<2><459>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2ef): c
+DW_AT_type : <0x3f8>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 551
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><468>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2f1): next
+DW_AT_type : <0x44b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 552
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<1><478>
+Abbrev Number: 17 (DW_TAG_pointer_type)
+<1><479>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x368): v4l2_vbi_format
+DW_AT_byte_size : 44
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1052
+<2><482>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x32e): sampling_rate
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1053
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><491>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x33c): offset
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1054
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><4a0>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x343): samples_per_line
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1055
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><4af>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x354): sample_format
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1056
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><4be>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x362): start
+DW_AT_type : <0x4fb>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1057
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><4cd>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x193): count
+DW_AT_type : <0x508>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1058
+DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+<2><4dc>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1fa): flags
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1059
+DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+<2><4eb>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x24a): reserved
+DW_AT_type : <0x508>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1060
+DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+<1><4fb>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x439>
+<2><500>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 2
+<1><508>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x92>
+<2><50d>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 2
+<1><515>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x3a1): v4l2_sliced_vbi_format
+DW_AT_byte_size : 112
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1068
+<2><51e>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x37f): service_set
+DW_AT_type : <0x34d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1069
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><52d>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x38b): service_lines
+DW_AT_type : <0x55b>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1070
+DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+<2><53c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x399): io_size
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1071
+DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
+<2><54b>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x24a): reserved
+DW_AT_type : <0x508>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1072
+DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
+<1><55b>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x34d>
+<2><560>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 2
+<2><567>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 24
+<1><56f>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x3c7): v4l2_sdr_format
+DW_AT_byte_size : 32
DW_AT_decl_file : 2
DW_AT_decl_line : 1139
+<2><578>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1c1): pixelformat
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1140
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><587>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3bc): buffersize
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1141
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><5da>
+<2><596>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x24a): reserved
+DW_AT_type : <0x5a6>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1142
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<1><5a6>
Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x365>
-<2><5df>
+DW_AT_type : <0x366>
+<2><5ab>
Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
+DW_AT_type : <0x35f>
+DW_AT_lower_bound : 0
+DW_AT_count : 24
+<1><5b3>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x3e7): v4l2_meta_format
+DW_AT_byte_size : 8
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1144
+<2><5bc>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3dc): dataformat
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1145
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><5cb>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3bc): buffersize
+DW_AT_type : <0x92>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1146
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<1><5db>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x366>
+<2><5e0>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x35f>
DW_AT_lower_bound : 0
DW_AT_count : 200
-<1><5e7>
+<1><5e8>
Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x91>
-<2><5ec>
+DW_AT_type : <0x92>
+<2><5ed>
Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x35e>
+DW_AT_type : <0x35f>
DW_AT_lower_bound : 0
DW_AT_count : 8
diff --git a/mpers-m32/struct_v4l2_ext_control.d1 b/mpers-m32/struct_v4l2_ext_control.d1
index 5ebcc89..8333df7 100644
--- a/mpers-m32/struct_v4l2_ext_control.d1
+++ b/mpers-m32/struct_v4l2_ext_control.d1
@@ -1,172 +1,173 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x173 (32-bit)
+ Length: 0x174 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_ext_control.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_ext_control.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x61): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x9c): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 1 0 0 0 (DW_OP_addr: 1)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x161): struct_v4l2_ext_control
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 46
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x150): v4l2_ext_control
- <40> DW_AT_byte_size : 20
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 782
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xad): id
- <49> DW_AT_type : <0xec>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 783
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xc3): size
- <58> DW_AT_type : <0xec>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 784
- <5f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xc8): reserved2
- <67> DW_AT_type : <0xfe>
- <6b> DW_AT_decl_file : 2
- <6c> DW_AT_decl_line : 785
- <6e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><71>: Abbrev Number: 6 (DW_TAG_member)
- <72> DW_AT_type : <0x7c>
- <76> DW_AT_decl_file : 2
- <77> DW_AT_decl_line : 786
- <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7c>: Abbrev Number: 7 (DW_TAG_union_type)
- <7d> DW_AT_byte_size : 8
- <7e> DW_AT_decl_file : 2
- <7f> DW_AT_decl_line : 786
- <3><81>: Abbrev Number: 5 (DW_TAG_member)
- <82> DW_AT_name : (indirect string, offset: 0xdb): value
- <86> DW_AT_type : <0x112>
- <8a> DW_AT_decl_file : 2
- <8b> DW_AT_decl_line : 787
- <8d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><90>: Abbrev Number: 5 (DW_TAG_member)
- <91> DW_AT_name : (indirect string, offset: 0xeb): value64
- <95> DW_AT_type : <0x124>
- <99> DW_AT_decl_file : 2
- <9a> DW_AT_decl_line : 788
- <9c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><9f>: Abbrev Number: 5 (DW_TAG_member)
- <a0> DW_AT_name : (indirect string, offset: 0x107): string
- <a4> DW_AT_type : <0x136>
- <a8> DW_AT_decl_file : 2
- <a9> DW_AT_decl_line : 789
- <ab> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><ae>: Abbrev Number: 5 (DW_TAG_member)
- <af> DW_AT_name : (indirect string, offset: 0x113): p_u8
- <b3> DW_AT_type : <0x142>
- <b7> DW_AT_decl_file : 2
- <b8> DW_AT_decl_line : 790
- <ba> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><bd>: Abbrev Number: 5 (DW_TAG_member)
- <be> DW_AT_name : (indirect string, offset: 0x12b): p_u16
- <c2> DW_AT_type : <0x159>
- <c6> DW_AT_decl_file : 2
- <c7> DW_AT_decl_line : 791
- <c9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><cc>: Abbrev Number: 5 (DW_TAG_member)
- <cd> DW_AT_name : (indirect string, offset: 0x146): p_u32
- <d1> DW_AT_type : <0x170>
- <d5> DW_AT_decl_file : 2
- <d6> DW_AT_decl_line : 792
- <d8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><db>: Abbrev Number: 5 (DW_TAG_member)
- <dc> DW_AT_name : (indirect string, offset: 0x14c): ptr
- <e0> DW_AT_type : <0x175>
- <e4> DW_AT_decl_file : 2
- <e5> DW_AT_decl_line : 793
- <e7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><ea>: Abbrev Number: 0
- <2><eb>: Abbrev Number: 0
- <1><ec>: Abbrev Number: 3 (DW_TAG_typedef)
- <ed> DW_AT_type : <0xf7>
- <f1> DW_AT_name : (indirect string, offset: 0xbd): __u32
- <f5> DW_AT_decl_file : 1
- <f6> DW_AT_decl_line : 28
- <1><f7>: Abbrev Number: 8 (DW_TAG_base_type)
- <f8> DW_AT_name : (indirect string, offset: 0xb0): unsigned int
- <fc> DW_AT_encoding : 7 (unsigned)
- <fd> DW_AT_byte_size : 4
- <1><fe>: Abbrev Number: 9 (DW_TAG_array_type)
- <ff> DW_AT_type : <0xec>
- <2><103>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <104> DW_AT_type : <0x10b>
- <108> DW_AT_lower_bound : 0
- <109> DW_AT_count : 1
- <2><10a>: Abbrev Number: 0
- <1><10b>: Abbrev Number: 11 (DW_TAG_base_type)
- <10c> DW_AT_name : (indirect string, offset: 0xd2): sizetype
- <110> DW_AT_byte_size : 8
- <111> DW_AT_encoding : 7 (unsigned)
- <1><112>: Abbrev Number: 3 (DW_TAG_typedef)
- <113> DW_AT_type : <0x11d>
- <117> DW_AT_name : (indirect string, offset: 0xe5): __s32
- <11b> DW_AT_decl_file : 1
- <11c> DW_AT_decl_line : 27
- <1><11d>: Abbrev Number: 8 (DW_TAG_base_type)
- <11e> DW_AT_name : (indirect string, offset: 0xe1): int
- <122> DW_AT_encoding : 5 (signed)
- <123> DW_AT_byte_size : 4
- <1><124>: Abbrev Number: 3 (DW_TAG_typedef)
- <125> DW_AT_type : <0x12f>
- <129> DW_AT_name : (indirect string, offset: 0x101): __s64
- <12d> DW_AT_decl_file : 1
- <12e> DW_AT_decl_line : 30
- <1><12f>: Abbrev Number: 8 (DW_TAG_base_type)
- <130> DW_AT_name : (indirect string, offset: 0xf3): long long int
- <134> DW_AT_encoding : 5 (signed)
- <135> DW_AT_byte_size : 8
- <1><136>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <137> DW_AT_type : <0x13b>
- <1><13b>: Abbrev Number: 8 (DW_TAG_base_type)
- <13c> DW_AT_name : (indirect string, offset: 0x10e): char
- <140> DW_AT_encoding : 8 (unsigned char)
- <141> DW_AT_byte_size : 1
- <1><142>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <143> DW_AT_type : <0x147>
- <1><147>: Abbrev Number: 3 (DW_TAG_typedef)
- <148> DW_AT_type : <0x152>
- <14c> DW_AT_name : (indirect string, offset: 0x126): __u8
- <150> DW_AT_decl_file : 1
- <151> DW_AT_decl_line : 24
- <1><152>: Abbrev Number: 8 (DW_TAG_base_type)
- <153> DW_AT_name : (indirect string, offset: 0x118): unsigned char
- <157> DW_AT_encoding : 8 (unsigned char)
- <158> DW_AT_byte_size : 1
- <1><159>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <15a> DW_AT_type : <0x15e>
- <1><15e>: Abbrev Number: 3 (DW_TAG_typedef)
- <15f> DW_AT_type : <0x169>
- <163> DW_AT_name : (indirect string, offset: 0x140): __u16
- <167> DW_AT_decl_file : 1
- <168> DW_AT_decl_line : 26
- <1><169>: Abbrev Number: 8 (DW_TAG_base_type)
- <16a> DW_AT_name : (indirect string, offset: 0x131): unsigned short
- <16e> DW_AT_encoding : 7 (unsigned)
- <16f> DW_AT_byte_size : 2
- <1><170>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <171> DW_AT_type : <0xec>
- <1><175>: Abbrev Number: 13 (DW_TAG_pointer_type)
- <1><176>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12b): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x166): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 1 0 0 0 (DW_OP_addr: 1)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x22b): struct_v4l2_ext_control
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 46
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x21a): v4l2_ext_control
+ <41> DW_AT_byte_size : 20
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 789
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x177): id
+ <4a> DW_AT_type : <0xed>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 790
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x18d): size
+ <59> DW_AT_type : <0xed>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 791
+ <60> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x192): reserved2
+ <68> DW_AT_type : <0xff>
+ <6c> DW_AT_decl_file : 2
+ <6d> DW_AT_decl_line : 792
+ <6f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><72>: Abbrev Number: 6 (DW_TAG_member)
+ <73> DW_AT_type : <0x7d>
+ <77> DW_AT_decl_file : 2
+ <78> DW_AT_decl_line : 793
+ <7a> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7d>: Abbrev Number: 7 (DW_TAG_union_type)
+ <7e> DW_AT_byte_size : 8
+ <7f> DW_AT_decl_file : 2
+ <80> DW_AT_decl_line : 793
+ <3><82>: Abbrev Number: 5 (DW_TAG_member)
+ <83> DW_AT_name : (indirect string, offset: 0x1a5): value
+ <87> DW_AT_type : <0x113>
+ <8b> DW_AT_decl_file : 2
+ <8c> DW_AT_decl_line : 794
+ <8e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><91>: Abbrev Number: 5 (DW_TAG_member)
+ <92> DW_AT_name : (indirect string, offset: 0x1b5): value64
+ <96> DW_AT_type : <0x125>
+ <9a> DW_AT_decl_file : 2
+ <9b> DW_AT_decl_line : 795
+ <9d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><a0>: Abbrev Number: 5 (DW_TAG_member)
+ <a1> DW_AT_name : (indirect string, offset: 0x1d1): string
+ <a5> DW_AT_type : <0x137>
+ <a9> DW_AT_decl_file : 2
+ <aa> DW_AT_decl_line : 796
+ <ac> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><af>: Abbrev Number: 5 (DW_TAG_member)
+ <b0> DW_AT_name : (indirect string, offset: 0x1dd): p_u8
+ <b4> DW_AT_type : <0x143>
+ <b8> DW_AT_decl_file : 2
+ <b9> DW_AT_decl_line : 797
+ <bb> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><be>: Abbrev Number: 5 (DW_TAG_member)
+ <bf> DW_AT_name : (indirect string, offset: 0x1f5): p_u16
+ <c3> DW_AT_type : <0x15a>
+ <c7> DW_AT_decl_file : 2
+ <c8> DW_AT_decl_line : 798
+ <ca> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><cd>: Abbrev Number: 5 (DW_TAG_member)
+ <ce> DW_AT_name : (indirect string, offset: 0x210): p_u32
+ <d2> DW_AT_type : <0x171>
+ <d6> DW_AT_decl_file : 2
+ <d7> DW_AT_decl_line : 799
+ <d9> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><dc>: Abbrev Number: 5 (DW_TAG_member)
+ <dd> DW_AT_name : (indirect string, offset: 0x216): ptr
+ <e1> DW_AT_type : <0x176>
+ <e5> DW_AT_decl_file : 2
+ <e6> DW_AT_decl_line : 800
+ <e8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><eb>: Abbrev Number: 0
+ <2><ec>: Abbrev Number: 0
+ <1><ed>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ee> DW_AT_type : <0xf8>
+ <f2> DW_AT_name : (indirect string, offset: 0x187): __u32
+ <f6> DW_AT_decl_file : 1
+ <f7> DW_AT_decl_line : 28
+ <1><f8>: Abbrev Number: 8 (DW_TAG_base_type)
+ <f9> DW_AT_name : (indirect string, offset: 0x17a): unsigned int
+ <fd> DW_AT_encoding : 7 (unsigned)
+ <fe> DW_AT_byte_size : 4
+ <1><ff>: Abbrev Number: 9 (DW_TAG_array_type)
+ <100> DW_AT_type : <0xed>
+ <2><104>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <105> DW_AT_type : <0x10c>
+ <109> DW_AT_lower_bound : 0
+ <10a> DW_AT_count : 1
+ <2><10b>: Abbrev Number: 0
+ <1><10c>: Abbrev Number: 11 (DW_TAG_base_type)
+ <10d> DW_AT_name : (indirect string, offset: 0x19c): sizetype
+ <111> DW_AT_byte_size : 8
+ <112> DW_AT_encoding : 7 (unsigned)
+ <1><113>: Abbrev Number: 3 (DW_TAG_typedef)
+ <114> DW_AT_type : <0x11e>
+ <118> DW_AT_name : (indirect string, offset: 0x1af): __s32
+ <11c> DW_AT_decl_file : 1
+ <11d> DW_AT_decl_line : 27
+ <1><11e>: Abbrev Number: 8 (DW_TAG_base_type)
+ <11f> DW_AT_name : (indirect string, offset: 0x1ab): int
+ <123> DW_AT_encoding : 5 (signed)
+ <124> DW_AT_byte_size : 4
+ <1><125>: Abbrev Number: 3 (DW_TAG_typedef)
+ <126> DW_AT_type : <0x130>
+ <12a> DW_AT_name : (indirect string, offset: 0x1cb): __s64
+ <12e> DW_AT_decl_file : 1
+ <12f> DW_AT_decl_line : 30
+ <1><130>: Abbrev Number: 8 (DW_TAG_base_type)
+ <131> DW_AT_name : (indirect string, offset: 0x1bd): long long int
+ <135> DW_AT_encoding : 5 (signed)
+ <136> DW_AT_byte_size : 8
+ <1><137>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <138> DW_AT_type : <0x13c>
+ <1><13c>: Abbrev Number: 8 (DW_TAG_base_type)
+ <13d> DW_AT_name : (indirect string, offset: 0x1d8): char
+ <141> DW_AT_encoding : 8 (unsigned char)
+ <142> DW_AT_byte_size : 1
+ <1><143>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <144> DW_AT_type : <0x148>
+ <1><148>: Abbrev Number: 3 (DW_TAG_typedef)
+ <149> DW_AT_type : <0x153>
+ <14d> DW_AT_name : (indirect string, offset: 0x1f0): __u8
+ <151> DW_AT_decl_file : 1
+ <152> DW_AT_decl_line : 24
+ <1><153>: Abbrev Number: 8 (DW_TAG_base_type)
+ <154> DW_AT_name : (indirect string, offset: 0x1e2): unsigned char
+ <158> DW_AT_encoding : 8 (unsigned char)
+ <159> DW_AT_byte_size : 1
+ <1><15a>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <15b> DW_AT_type : <0x15f>
+ <1><15f>: Abbrev Number: 3 (DW_TAG_typedef)
+ <160> DW_AT_type : <0x16a>
+ <164> DW_AT_name : (indirect string, offset: 0x20a): __u16
+ <168> DW_AT_decl_file : 1
+ <169> DW_AT_decl_line : 26
+ <1><16a>: Abbrev Number: 8 (DW_TAG_base_type)
+ <16b> DW_AT_name : (indirect string, offset: 0x1fb): unsigned short
+ <16f> DW_AT_encoding : 7 (unsigned)
+ <170> DW_AT_byte_size : 2
+ <1><171>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <172> DW_AT_type : <0xed>
+ <1><176>: Abbrev Number: 13 (DW_TAG_pointer_type)
+ <1><177>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_ext_control.d2 b/mpers-m32/struct_v4l2_ext_control.d2
index cd2dc1e..4ef90f1 100644
--- a/mpers-m32/struct_v4l2_ext_control.d2
+++ b/mpers-m32/struct_v4l2_ext_control.d2
@@ -1,188 +1,188 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x9c): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x166): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 1 0 0 0 (DW_OP_addr: 1)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x161): struct_v4l2_ext_control
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x22b): struct_v4l2_ext_control
DW_AT_decl_file : 3
DW_AT_decl_line : 46
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x150): v4l2_ext_control
+DW_AT_name : (indirect string, offset: 0x21a): v4l2_ext_control
DW_AT_byte_size : 20
DW_AT_decl_file : 2
-DW_AT_decl_line : 782
-<2><44>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xad): id
-DW_AT_type : <0xec>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 783
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc3): size
-DW_AT_type : <0xec>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 784
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><62>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc8): reserved2
-DW_AT_type : <0xfe>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 785
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><71>
-Abbrev Number: 6 (DW_TAG_member)
-DW_AT_type : <0x7c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 786
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><7c>
-Abbrev Number: 7 (DW_TAG_union_type)
-DW_AT_byte_size : 8
-DW_AT_decl_file : 2
-DW_AT_decl_line : 786
-<3><81>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xdb): value
-DW_AT_type : <0x112>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 787
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><90>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xeb): value64
-DW_AT_type : <0x124>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 788
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><9f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x107): string
-DW_AT_type : <0x136>
-DW_AT_decl_file : 2
DW_AT_decl_line : 789
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><ae>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x113): p_u8
-DW_AT_type : <0x142>
+DW_AT_name : (indirect string, offset: 0x177): id
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 790
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><bd>
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x12b): p_u16
-DW_AT_type : <0x159>
+DW_AT_name : (indirect string, offset: 0x18d): size
+DW_AT_type : <0xed>
DW_AT_decl_file : 2
DW_AT_decl_line : 791
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><cc>
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><63>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x146): p_u32
-DW_AT_type : <0x170>
+DW_AT_name : (indirect string, offset: 0x192): reserved2
+DW_AT_type : <0xff>
DW_AT_decl_file : 2
DW_AT_decl_line : 792
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><db>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14c): ptr
-DW_AT_type : <0x175>
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><72>
+Abbrev Number: 6 (DW_TAG_member)
+DW_AT_type : <0x7d>
DW_AT_decl_file : 2
DW_AT_decl_line : 793
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><7d>
+Abbrev Number: 7 (DW_TAG_union_type)
+DW_AT_byte_size : 8
+DW_AT_decl_file : 2
+DW_AT_decl_line : 793
+<3><82>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1a5): value
+DW_AT_type : <0x113>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 794
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><ec>
+<3><91>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b5): value64
+DW_AT_type : <0x125>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 795
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><a0>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1d1): string
+DW_AT_type : <0x137>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 796
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><af>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1dd): p_u8
+DW_AT_type : <0x143>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 797
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><be>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1f5): p_u16
+DW_AT_type : <0x15a>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 798
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><cd>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x210): p_u32
+DW_AT_type : <0x171>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 799
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><dc>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x216): ptr
+DW_AT_type : <0x176>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 800
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><ed>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xf7>
-DW_AT_name : (indirect string, offset: 0xbd): __u32
+DW_AT_type : <0xf8>
+DW_AT_name : (indirect string, offset: 0x187): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><f7>
+<1><f8>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb0): unsigned int
+DW_AT_name : (indirect string, offset: 0x17a): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><fe>
+<1><ff>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0xec>
-<2><103>
+DW_AT_type : <0xed>
+<2><104>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0x10b>
+DW_AT_type : <0x10c>
DW_AT_lower_bound : 0
DW_AT_count : 1
-<1><10b>
+<1><10c>
Abbrev Number: 11 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd2): sizetype
+DW_AT_name : (indirect string, offset: 0x19c): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><112>
+<1><113>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x11d>
-DW_AT_name : (indirect string, offset: 0xe5): __s32
+DW_AT_type : <0x11e>
+DW_AT_name : (indirect string, offset: 0x1af): __s32
DW_AT_decl_file : 1
DW_AT_decl_line : 27
-<1><11d>
+<1><11e>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe1): int
+DW_AT_name : (indirect string, offset: 0x1ab): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><124>
+<1><125>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x12f>
-DW_AT_name : (indirect string, offset: 0x101): __s64
+DW_AT_type : <0x130>
+DW_AT_name : (indirect string, offset: 0x1cb): __s64
DW_AT_decl_file : 1
DW_AT_decl_line : 30
-<1><12f>
+<1><130>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf3): long long int
+DW_AT_name : (indirect string, offset: 0x1bd): long long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 8
-<1><136>
+<1><137>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x13b>
-<1><13b>
+DW_AT_type : <0x13c>
+<1><13c>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x10e): char
+DW_AT_name : (indirect string, offset: 0x1d8): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><142>
+<1><143>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x147>
-<1><147>
+DW_AT_type : <0x148>
+<1><148>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x152>
-DW_AT_name : (indirect string, offset: 0x126): __u8
+DW_AT_type : <0x153>
+DW_AT_name : (indirect string, offset: 0x1f0): __u8
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><152>
+<1><153>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x118): unsigned char
+DW_AT_name : (indirect string, offset: 0x1e2): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><159>
+<1><15a>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x15e>
-<1><15e>
+DW_AT_type : <0x15f>
+<1><15f>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x169>
-DW_AT_name : (indirect string, offset: 0x140): __u16
+DW_AT_type : <0x16a>
+DW_AT_name : (indirect string, offset: 0x20a): __u16
DW_AT_decl_file : 1
DW_AT_decl_line : 26
-<1><169>
+<1><16a>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x131): unsigned short
+DW_AT_name : (indirect string, offset: 0x1fb): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><170>
+<1><171>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0xec>
-<1><175>
+DW_AT_type : <0xed>
+<1><176>
Abbrev Number: 13 (DW_TAG_pointer_type)
diff --git a/mpers-m32/struct_v4l2_ext_controls.d1 b/mpers-m32/struct_v4l2_ext_controls.d1
index e6501f2..379ea63 100644
--- a/mpers-m32/struct_v4l2_ext_controls.d1
+++ b/mpers-m32/struct_v4l2_ext_controls.d1
@@ -1,233 +1,234 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x1fa (32-bit)
+ Length: 0x1fb (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_ext_controls.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_ext_controls.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x62): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x9d): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x1a7): struct_v4l2_ext_controls
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 47
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x195): v4l2_ext_controls
- <40> DW_AT_byte_size : 24
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 796
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_type : <0x4f>
- <49> DW_AT_decl_file : 2
- <4a> DW_AT_decl_line : 797
- <4c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4f>: Abbrev Number: 6 (DW_TAG_union_type)
- <50> DW_AT_byte_size : 4
- <51> DW_AT_decl_file : 2
- <52> DW_AT_decl_line : 797
- <3><54>: Abbrev Number: 7 (DW_TAG_member)
- <55> DW_AT_name : (indirect string, offset: 0xae): ctrl_class
- <59> DW_AT_type : <0xb0>
- <5d> DW_AT_decl_file : 2
- <5e> DW_AT_decl_line : 798
- <60> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><63>: Abbrev Number: 7 (DW_TAG_member)
- <64> DW_AT_name : (indirect string, offset: 0xcc): which
- <68> DW_AT_type : <0xb0>
- <6c> DW_AT_decl_file : 2
- <6d> DW_AT_decl_line : 799
- <6f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><72>: Abbrev Number: 0
- <2><73>: Abbrev Number: 7 (DW_TAG_member)
- <74> DW_AT_name : (indirect string, offset: 0xd2): count
- <78> DW_AT_type : <0xb0>
- <7c> DW_AT_decl_file : 2
- <7d> DW_AT_decl_line : 801
- <7f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><82>: Abbrev Number: 7 (DW_TAG_member)
- <83> DW_AT_name : (indirect string, offset: 0xd8): error_idx
- <87> DW_AT_type : <0xb0>
- <8b> DW_AT_decl_file : 2
- <8c> DW_AT_decl_line : 802
- <8e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><91>: Abbrev Number: 7 (DW_TAG_member)
- <92> DW_AT_name : (indirect string, offset: 0xe2): reserved
- <96> DW_AT_type : <0xc2>
- <9a> DW_AT_decl_file : 2
- <9b> DW_AT_decl_line : 803
- <9d> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><a0>: Abbrev Number: 7 (DW_TAG_member)
- <a1> DW_AT_name : (indirect string, offset: 0xf4): controls
- <a5> DW_AT_type : <0xd6>
- <a9> DW_AT_decl_file : 2
- <aa> DW_AT_decl_line : 804
- <ac> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><af>: Abbrev Number: 0
- <1><b0>: Abbrev Number: 3 (DW_TAG_typedef)
- <b1> DW_AT_type : <0xbb>
- <b5> DW_AT_name : (indirect string, offset: 0xc6): __u32
- <b9> DW_AT_decl_file : 1
- <ba> DW_AT_decl_line : 28
- <1><bb>: Abbrev Number: 8 (DW_TAG_base_type)
- <bc> DW_AT_name : (indirect string, offset: 0xb9): unsigned int
- <c0> DW_AT_encoding : 7 (unsigned)
- <c1> DW_AT_byte_size : 4
- <1><c2>: Abbrev Number: 9 (DW_TAG_array_type)
- <c3> DW_AT_type : <0xb0>
- <2><c7>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <c8> DW_AT_type : <0xcf>
- <cc> DW_AT_lower_bound : 0
- <cd> DW_AT_count : 2
- <2><ce>: Abbrev Number: 0
- <1><cf>: Abbrev Number: 11 (DW_TAG_base_type)
- <d0> DW_AT_name : (indirect string, offset: 0xeb): sizetype
- <d4> DW_AT_byte_size : 8
- <d5> DW_AT_encoding : 7 (unsigned)
- <1><d6>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <d7> DW_AT_type : <0xdb>
- <1><db>: Abbrev Number: 4 (DW_TAG_structure_type)
- <dc> DW_AT_name : (indirect string, offset: 0x184): v4l2_ext_control
- <e0> DW_AT_byte_size : 20
- <e1> DW_AT_decl_file : 2
- <e2> DW_AT_decl_line : 782
- <2><e4>: Abbrev Number: 7 (DW_TAG_member)
- <e5> DW_AT_name : (indirect string, offset: 0xfd): id
- <e9> DW_AT_type : <0xb0>
- <ed> DW_AT_decl_file : 2
- <ee> DW_AT_decl_line : 783
- <f0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><f3>: Abbrev Number: 7 (DW_TAG_member)
- <f4> DW_AT_name : (indirect string, offset: 0x100): size
- <f8> DW_AT_type : <0xb0>
- <fc> DW_AT_decl_file : 2
- <fd> DW_AT_decl_line : 784
- <ff> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><102>: Abbrev Number: 7 (DW_TAG_member)
- <103> DW_AT_name : (indirect string, offset: 0x105): reserved2
- <107> DW_AT_type : <0x18c>
- <10b> DW_AT_decl_file : 2
- <10c> DW_AT_decl_line : 785
- <10e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><111>: Abbrev Number: 5 (DW_TAG_member)
- <112> DW_AT_type : <0x11c>
- <116> DW_AT_decl_file : 2
- <117> DW_AT_decl_line : 786
- <119> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><11c>: Abbrev Number: 6 (DW_TAG_union_type)
- <11d> DW_AT_byte_size : 8
- <11e> DW_AT_decl_file : 2
- <11f> DW_AT_decl_line : 786
- <3><121>: Abbrev Number: 7 (DW_TAG_member)
- <122> DW_AT_name : (indirect string, offset: 0x10f): value
- <126> DW_AT_type : <0x199>
- <12a> DW_AT_decl_file : 2
- <12b> DW_AT_decl_line : 787
- <12d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><130>: Abbrev Number: 7 (DW_TAG_member)
- <131> DW_AT_name : (indirect string, offset: 0x11f): value64
- <135> DW_AT_type : <0x1ab>
- <139> DW_AT_decl_file : 2
- <13a> DW_AT_decl_line : 788
- <13c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><13f>: Abbrev Number: 7 (DW_TAG_member)
- <140> DW_AT_name : (indirect string, offset: 0x13b): string
- <144> DW_AT_type : <0x1bd>
- <148> DW_AT_decl_file : 2
- <149> DW_AT_decl_line : 789
- <14b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><14e>: Abbrev Number: 7 (DW_TAG_member)
- <14f> DW_AT_name : (indirect string, offset: 0x147): p_u8
- <153> DW_AT_type : <0x1c9>
- <157> DW_AT_decl_file : 2
- <158> DW_AT_decl_line : 790
- <15a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><15d>: Abbrev Number: 7 (DW_TAG_member)
- <15e> DW_AT_name : (indirect string, offset: 0x15f): p_u16
- <162> DW_AT_type : <0x1e0>
- <166> DW_AT_decl_file : 2
- <167> DW_AT_decl_line : 791
- <169> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><16c>: Abbrev Number: 7 (DW_TAG_member)
- <16d> DW_AT_name : (indirect string, offset: 0x17a): p_u32
- <171> DW_AT_type : <0x1f7>
- <175> DW_AT_decl_file : 2
- <176> DW_AT_decl_line : 792
- <178> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><17b>: Abbrev Number: 7 (DW_TAG_member)
- <17c> DW_AT_name : (indirect string, offset: 0x180): ptr
- <180> DW_AT_type : <0x1fc>
- <184> DW_AT_decl_file : 2
- <185> DW_AT_decl_line : 793
- <187> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><18a>: Abbrev Number: 0
- <2><18b>: Abbrev Number: 0
- <1><18c>: Abbrev Number: 9 (DW_TAG_array_type)
- <18d> DW_AT_type : <0xb0>
- <2><191>: Abbrev Number: 10 (DW_TAG_subrange_type)
- <192> DW_AT_type : <0xcf>
- <196> DW_AT_lower_bound : 0
- <197> DW_AT_count : 1
- <2><198>: Abbrev Number: 0
- <1><199>: Abbrev Number: 3 (DW_TAG_typedef)
- <19a> DW_AT_type : <0x1a4>
- <19e> DW_AT_name : (indirect string, offset: 0x119): __s32
- <1a2> DW_AT_decl_file : 1
- <1a3> DW_AT_decl_line : 27
- <1><1a4>: Abbrev Number: 8 (DW_TAG_base_type)
- <1a5> DW_AT_name : (indirect string, offset: 0x115): int
- <1a9> DW_AT_encoding : 5 (signed)
- <1aa> DW_AT_byte_size : 4
- <1><1ab>: Abbrev Number: 3 (DW_TAG_typedef)
- <1ac> DW_AT_type : <0x1b6>
- <1b0> DW_AT_name : (indirect string, offset: 0x135): __s64
- <1b4> DW_AT_decl_file : 1
- <1b5> DW_AT_decl_line : 30
- <1><1b6>: Abbrev Number: 8 (DW_TAG_base_type)
- <1b7> DW_AT_name : (indirect string, offset: 0x127): long long int
- <1bb> DW_AT_encoding : 5 (signed)
- <1bc> DW_AT_byte_size : 8
- <1><1bd>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <1be> DW_AT_type : <0x1c2>
- <1><1c2>: Abbrev Number: 8 (DW_TAG_base_type)
- <1c3> DW_AT_name : (indirect string, offset: 0x142): char
- <1c7> DW_AT_encoding : 8 (unsigned char)
- <1c8> DW_AT_byte_size : 1
- <1><1c9>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <1ca> DW_AT_type : <0x1ce>
- <1><1ce>: Abbrev Number: 3 (DW_TAG_typedef)
- <1cf> DW_AT_type : <0x1d9>
- <1d3> DW_AT_name : (indirect string, offset: 0x15a): __u8
- <1d7> DW_AT_decl_file : 1
- <1d8> DW_AT_decl_line : 24
- <1><1d9>: Abbrev Number: 8 (DW_TAG_base_type)
- <1da> DW_AT_name : (indirect string, offset: 0x14c): unsigned char
- <1de> DW_AT_encoding : 8 (unsigned char)
- <1df> DW_AT_byte_size : 1
- <1><1e0>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <1e1> DW_AT_type : <0x1e5>
- <1><1e5>: Abbrev Number: 3 (DW_TAG_typedef)
- <1e6> DW_AT_type : <0x1f0>
- <1ea> DW_AT_name : (indirect string, offset: 0x174): __u16
- <1ee> DW_AT_decl_file : 1
- <1ef> DW_AT_decl_line : 26
- <1><1f0>: Abbrev Number: 8 (DW_TAG_base_type)
- <1f1> DW_AT_name : (indirect string, offset: 0x165): unsigned short
- <1f5> DW_AT_encoding : 7 (unsigned)
- <1f6> DW_AT_byte_size : 2
- <1><1f7>: Abbrev Number: 12 (DW_TAG_pointer_type)
- <1f8> DW_AT_type : <0xb0>
- <1><1fc>: Abbrev Number: 13 (DW_TAG_pointer_type)
- <1><1fd>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12c): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x167): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x271): struct_v4l2_ext_controls
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 47
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x25f): v4l2_ext_controls
+ <41> DW_AT_byte_size : 24
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 803
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_type : <0x50>
+ <4a> DW_AT_decl_file : 2
+ <4b> DW_AT_decl_line : 804
+ <4d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><50>: Abbrev Number: 6 (DW_TAG_union_type)
+ <51> DW_AT_byte_size : 4
+ <52> DW_AT_decl_file : 2
+ <53> DW_AT_decl_line : 804
+ <3><55>: Abbrev Number: 7 (DW_TAG_member)
+ <56> DW_AT_name : (indirect string, offset: 0x178): ctrl_class
+ <5a> DW_AT_type : <0xb1>
+ <5e> DW_AT_decl_file : 2
+ <5f> DW_AT_decl_line : 805
+ <61> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><64>: Abbrev Number: 7 (DW_TAG_member)
+ <65> DW_AT_name : (indirect string, offset: 0x196): which
+ <69> DW_AT_type : <0xb1>
+ <6d> DW_AT_decl_file : 2
+ <6e> DW_AT_decl_line : 806
+ <70> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><73>: Abbrev Number: 0
+ <2><74>: Abbrev Number: 7 (DW_TAG_member)
+ <75> DW_AT_name : (indirect string, offset: 0x19c): count
+ <79> DW_AT_type : <0xb1>
+ <7d> DW_AT_decl_file : 2
+ <7e> DW_AT_decl_line : 808
+ <80> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><83>: Abbrev Number: 7 (DW_TAG_member)
+ <84> DW_AT_name : (indirect string, offset: 0x1a2): error_idx
+ <88> DW_AT_type : <0xb1>
+ <8c> DW_AT_decl_file : 2
+ <8d> DW_AT_decl_line : 809
+ <8f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><92>: Abbrev Number: 7 (DW_TAG_member)
+ <93> DW_AT_name : (indirect string, offset: 0x1ac): reserved
+ <97> DW_AT_type : <0xc3>
+ <9b> DW_AT_decl_file : 2
+ <9c> DW_AT_decl_line : 810
+ <9e> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><a1>: Abbrev Number: 7 (DW_TAG_member)
+ <a2> DW_AT_name : (indirect string, offset: 0x1be): controls
+ <a6> DW_AT_type : <0xd7>
+ <aa> DW_AT_decl_file : 2
+ <ab> DW_AT_decl_line : 811
+ <ad> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><b0>: Abbrev Number: 0
+ <1><b1>: Abbrev Number: 3 (DW_TAG_typedef)
+ <b2> DW_AT_type : <0xbc>
+ <b6> DW_AT_name : (indirect string, offset: 0x190): __u32
+ <ba> DW_AT_decl_file : 1
+ <bb> DW_AT_decl_line : 28
+ <1><bc>: Abbrev Number: 8 (DW_TAG_base_type)
+ <bd> DW_AT_name : (indirect string, offset: 0x183): unsigned int
+ <c1> DW_AT_encoding : 7 (unsigned)
+ <c2> DW_AT_byte_size : 4
+ <1><c3>: Abbrev Number: 9 (DW_TAG_array_type)
+ <c4> DW_AT_type : <0xb1>
+ <2><c8>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <c9> DW_AT_type : <0xd0>
+ <cd> DW_AT_lower_bound : 0
+ <ce> DW_AT_count : 2
+ <2><cf>: Abbrev Number: 0
+ <1><d0>: Abbrev Number: 11 (DW_TAG_base_type)
+ <d1> DW_AT_name : (indirect string, offset: 0x1b5): sizetype
+ <d5> DW_AT_byte_size : 8
+ <d6> DW_AT_encoding : 7 (unsigned)
+ <1><d7>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <d8> DW_AT_type : <0xdc>
+ <1><dc>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <dd> DW_AT_name : (indirect string, offset: 0x24e): v4l2_ext_control
+ <e1> DW_AT_byte_size : 20
+ <e2> DW_AT_decl_file : 2
+ <e3> DW_AT_decl_line : 789
+ <2><e5>: Abbrev Number: 7 (DW_TAG_member)
+ <e6> DW_AT_name : (indirect string, offset: 0x1c7): id
+ <ea> DW_AT_type : <0xb1>
+ <ee> DW_AT_decl_file : 2
+ <ef> DW_AT_decl_line : 790
+ <f1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><f4>: Abbrev Number: 7 (DW_TAG_member)
+ <f5> DW_AT_name : (indirect string, offset: 0x1ca): size
+ <f9> DW_AT_type : <0xb1>
+ <fd> DW_AT_decl_file : 2
+ <fe> DW_AT_decl_line : 791
+ <100> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><103>: Abbrev Number: 7 (DW_TAG_member)
+ <104> DW_AT_name : (indirect string, offset: 0x1cf): reserved2
+ <108> DW_AT_type : <0x18d>
+ <10c> DW_AT_decl_file : 2
+ <10d> DW_AT_decl_line : 792
+ <10f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><112>: Abbrev Number: 5 (DW_TAG_member)
+ <113> DW_AT_type : <0x11d>
+ <117> DW_AT_decl_file : 2
+ <118> DW_AT_decl_line : 793
+ <11a> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><11d>: Abbrev Number: 6 (DW_TAG_union_type)
+ <11e> DW_AT_byte_size : 8
+ <11f> DW_AT_decl_file : 2
+ <120> DW_AT_decl_line : 793
+ <3><122>: Abbrev Number: 7 (DW_TAG_member)
+ <123> DW_AT_name : (indirect string, offset: 0x1d9): value
+ <127> DW_AT_type : <0x19a>
+ <12b> DW_AT_decl_file : 2
+ <12c> DW_AT_decl_line : 794
+ <12e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><131>: Abbrev Number: 7 (DW_TAG_member)
+ <132> DW_AT_name : (indirect string, offset: 0x1e9): value64
+ <136> DW_AT_type : <0x1ac>
+ <13a> DW_AT_decl_file : 2
+ <13b> DW_AT_decl_line : 795
+ <13d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><140>: Abbrev Number: 7 (DW_TAG_member)
+ <141> DW_AT_name : (indirect string, offset: 0x205): string
+ <145> DW_AT_type : <0x1be>
+ <149> DW_AT_decl_file : 2
+ <14a> DW_AT_decl_line : 796
+ <14c> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><14f>: Abbrev Number: 7 (DW_TAG_member)
+ <150> DW_AT_name : (indirect string, offset: 0x211): p_u8
+ <154> DW_AT_type : <0x1ca>
+ <158> DW_AT_decl_file : 2
+ <159> DW_AT_decl_line : 797
+ <15b> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><15e>: Abbrev Number: 7 (DW_TAG_member)
+ <15f> DW_AT_name : (indirect string, offset: 0x229): p_u16
+ <163> DW_AT_type : <0x1e1>
+ <167> DW_AT_decl_file : 2
+ <168> DW_AT_decl_line : 798
+ <16a> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><16d>: Abbrev Number: 7 (DW_TAG_member)
+ <16e> DW_AT_name : (indirect string, offset: 0x244): p_u32
+ <172> DW_AT_type : <0x1f8>
+ <176> DW_AT_decl_file : 2
+ <177> DW_AT_decl_line : 799
+ <179> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><17c>: Abbrev Number: 7 (DW_TAG_member)
+ <17d> DW_AT_name : (indirect string, offset: 0x24a): ptr
+ <181> DW_AT_type : <0x1fd>
+ <185> DW_AT_decl_file : 2
+ <186> DW_AT_decl_line : 800
+ <188> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><18b>: Abbrev Number: 0
+ <2><18c>: Abbrev Number: 0
+ <1><18d>: Abbrev Number: 9 (DW_TAG_array_type)
+ <18e> DW_AT_type : <0xb1>
+ <2><192>: Abbrev Number: 10 (DW_TAG_subrange_type)
+ <193> DW_AT_type : <0xd0>
+ <197> DW_AT_lower_bound : 0
+ <198> DW_AT_count : 1
+ <2><199>: Abbrev Number: 0
+ <1><19a>: Abbrev Number: 3 (DW_TAG_typedef)
+ <19b> DW_AT_type : <0x1a5>
+ <19f> DW_AT_name : (indirect string, offset: 0x1e3): __s32
+ <1a3> DW_AT_decl_file : 1
+ <1a4> DW_AT_decl_line : 27
+ <1><1a5>: Abbrev Number: 8 (DW_TAG_base_type)
+ <1a6> DW_AT_name : (indirect string, offset: 0x1df): int
+ <1aa> DW_AT_encoding : 5 (signed)
+ <1ab> DW_AT_byte_size : 4
+ <1><1ac>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1ad> DW_AT_type : <0x1b7>
+ <1b1> DW_AT_name : (indirect string, offset: 0x1ff): __s64
+ <1b5> DW_AT_decl_file : 1
+ <1b6> DW_AT_decl_line : 30
+ <1><1b7>: Abbrev Number: 8 (DW_TAG_base_type)
+ <1b8> DW_AT_name : (indirect string, offset: 0x1f1): long long int
+ <1bc> DW_AT_encoding : 5 (signed)
+ <1bd> DW_AT_byte_size : 8
+ <1><1be>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <1bf> DW_AT_type : <0x1c3>
+ <1><1c3>: Abbrev Number: 8 (DW_TAG_base_type)
+ <1c4> DW_AT_name : (indirect string, offset: 0x20c): char
+ <1c8> DW_AT_encoding : 8 (unsigned char)
+ <1c9> DW_AT_byte_size : 1
+ <1><1ca>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <1cb> DW_AT_type : <0x1cf>
+ <1><1cf>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1d0> DW_AT_type : <0x1da>
+ <1d4> DW_AT_name : (indirect string, offset: 0x224): __u8
+ <1d8> DW_AT_decl_file : 1
+ <1d9> DW_AT_decl_line : 24
+ <1><1da>: Abbrev Number: 8 (DW_TAG_base_type)
+ <1db> DW_AT_name : (indirect string, offset: 0x216): unsigned char
+ <1df> DW_AT_encoding : 8 (unsigned char)
+ <1e0> DW_AT_byte_size : 1
+ <1><1e1>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <1e2> DW_AT_type : <0x1e6>
+ <1><1e6>: Abbrev Number: 3 (DW_TAG_typedef)
+ <1e7> DW_AT_type : <0x1f1>
+ <1eb> DW_AT_name : (indirect string, offset: 0x23e): __u16
+ <1ef> DW_AT_decl_file : 1
+ <1f0> DW_AT_decl_line : 26
+ <1><1f1>: Abbrev Number: 8 (DW_TAG_base_type)
+ <1f2> DW_AT_name : (indirect string, offset: 0x22f): unsigned short
+ <1f6> DW_AT_encoding : 7 (unsigned)
+ <1f7> DW_AT_byte_size : 2
+ <1><1f8>: Abbrev Number: 12 (DW_TAG_pointer_type)
+ <1f9> DW_AT_type : <0xb1>
+ <1><1fd>: Abbrev Number: 13 (DW_TAG_pointer_type)
+ <1><1fe>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_ext_controls.d2 b/mpers-m32/struct_v4l2_ext_controls.d2
index 9d81543..2157d5e 100644
--- a/mpers-m32/struct_v4l2_ext_controls.d2
+++ b/mpers-m32/struct_v4l2_ext_controls.d2
@@ -1,258 +1,258 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x9d): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x167): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x1a7): struct_v4l2_ext_controls
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x271): struct_v4l2_ext_controls
DW_AT_decl_file : 3
DW_AT_decl_line : 47
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x195): v4l2_ext_controls
+DW_AT_name : (indirect string, offset: 0x25f): v4l2_ext_controls
DW_AT_byte_size : 24
DW_AT_decl_file : 2
-DW_AT_decl_line : 796
-<2><44>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_type : <0x4f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 797
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4f>
-Abbrev Number: 6 (DW_TAG_union_type)
-DW_AT_byte_size : 4
-DW_AT_decl_file : 2
-DW_AT_decl_line : 797
-<3><54>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xae): ctrl_class
-DW_AT_type : <0xb0>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 798
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><63>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcc): which
-DW_AT_type : <0xb0>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 799
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><73>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd2): count
-DW_AT_type : <0xb0>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 801
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><82>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd8): error_idx
-DW_AT_type : <0xb0>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 802
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><91>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe2): reserved
-DW_AT_type : <0xc2>
-DW_AT_decl_file : 2
DW_AT_decl_line : 803
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><a0>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf4): controls
-DW_AT_type : <0xd6>
+<2><45>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_type : <0x50>
DW_AT_decl_file : 2
DW_AT_decl_line : 804
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><50>
+Abbrev Number: 6 (DW_TAG_union_type)
+DW_AT_byte_size : 4
+DW_AT_decl_file : 2
+DW_AT_decl_line : 804
+<3><55>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x178): ctrl_class
+DW_AT_type : <0xb1>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 805
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><64>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x196): which
+DW_AT_type : <0xb1>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 806
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><74>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x19c): count
+DW_AT_type : <0xb1>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 808
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><83>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1a2): error_idx
+DW_AT_type : <0xb1>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 809
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><92>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ac): reserved
+DW_AT_type : <0xc3>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 810
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><a1>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1be): controls
+DW_AT_type : <0xd7>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 811
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<1><b0>
+<1><b1>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xbb>
-DW_AT_name : (indirect string, offset: 0xc6): __u32
+DW_AT_type : <0xbc>
+DW_AT_name : (indirect string, offset: 0x190): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><bb>
+<1><bc>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb9): unsigned int
+DW_AT_name : (indirect string, offset: 0x183): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><c2>
+<1><c3>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0xb0>
-<2><c7>
+DW_AT_type : <0xb1>
+<2><c8>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0xcf>
+DW_AT_type : <0xd0>
DW_AT_lower_bound : 0
DW_AT_count : 2
-<1><cf>
+<1><d0>
Abbrev Number: 11 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xeb): sizetype
+DW_AT_name : (indirect string, offset: 0x1b5): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><d6>
+<1><d7>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0xdb>
-<1><db>
+DW_AT_type : <0xdc>
+<1><dc>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x184): v4l2_ext_control
+DW_AT_name : (indirect string, offset: 0x24e): v4l2_ext_control
DW_AT_byte_size : 20
DW_AT_decl_file : 2
-DW_AT_decl_line : 782
-<2><e4>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfd): id
-DW_AT_type : <0xb0>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 783
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><f3>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x100): size
-DW_AT_type : <0xb0>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 784
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><102>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x105): reserved2
-DW_AT_type : <0x18c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 785
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><111>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_type : <0x11c>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 786
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><11c>
-Abbrev Number: 6 (DW_TAG_union_type)
-DW_AT_byte_size : 8
-DW_AT_decl_file : 2
-DW_AT_decl_line : 786
-<3><121>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10f): value
-DW_AT_type : <0x199>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 787
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><130>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11f): value64
-DW_AT_type : <0x1ab>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 788
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><13f>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13b): string
-DW_AT_type : <0x1bd>
-DW_AT_decl_file : 2
DW_AT_decl_line : 789
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><14e>
+<2><e5>
Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x147): p_u8
-DW_AT_type : <0x1c9>
+DW_AT_name : (indirect string, offset: 0x1c7): id
+DW_AT_type : <0xb1>
DW_AT_decl_file : 2
DW_AT_decl_line : 790
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><15d>
+<2><f4>
Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15f): p_u16
-DW_AT_type : <0x1e0>
+DW_AT_name : (indirect string, offset: 0x1ca): size
+DW_AT_type : <0xb1>
DW_AT_decl_file : 2
DW_AT_decl_line : 791
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><16c>
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><103>
Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x17a): p_u32
-DW_AT_type : <0x1f7>
+DW_AT_name : (indirect string, offset: 0x1cf): reserved2
+DW_AT_type : <0x18d>
DW_AT_decl_file : 2
DW_AT_decl_line : 792
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><17b>
-Abbrev Number: 7 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x180): ptr
-DW_AT_type : <0x1fc>
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><112>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_type : <0x11d>
DW_AT_decl_file : 2
DW_AT_decl_line : 793
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><11d>
+Abbrev Number: 6 (DW_TAG_union_type)
+DW_AT_byte_size : 8
+DW_AT_decl_file : 2
+DW_AT_decl_line : 793
+<3><122>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1d9): value
+DW_AT_type : <0x19a>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 794
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><18c>
+<3><131>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1e9): value64
+DW_AT_type : <0x1ac>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 795
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><140>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x205): string
+DW_AT_type : <0x1be>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 796
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><14f>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x211): p_u8
+DW_AT_type : <0x1ca>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 797
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><15e>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x229): p_u16
+DW_AT_type : <0x1e1>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 798
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><16d>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x244): p_u32
+DW_AT_type : <0x1f8>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 799
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><17c>
+Abbrev Number: 7 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x24a): ptr
+DW_AT_type : <0x1fd>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 800
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><18d>
Abbrev Number: 9 (DW_TAG_array_type)
-DW_AT_type : <0xb0>
-<2><191>
+DW_AT_type : <0xb1>
+<2><192>
Abbrev Number: 10 (DW_TAG_subrange_type)
-DW_AT_type : <0xcf>
+DW_AT_type : <0xd0>
DW_AT_lower_bound : 0
DW_AT_count : 1
-<1><199>
+<1><19a>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1a4>
-DW_AT_name : (indirect string, offset: 0x119): __s32
+DW_AT_type : <0x1a5>
+DW_AT_name : (indirect string, offset: 0x1e3): __s32
DW_AT_decl_file : 1
DW_AT_decl_line : 27
-<1><1a4>
+<1><1a5>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x115): int
+DW_AT_name : (indirect string, offset: 0x1df): int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><1ab>
+<1><1ac>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1b6>
-DW_AT_name : (indirect string, offset: 0x135): __s64
+DW_AT_type : <0x1b7>
+DW_AT_name : (indirect string, offset: 0x1ff): __s64
DW_AT_decl_file : 1
DW_AT_decl_line : 30
-<1><1b6>
+<1><1b7>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x127): long long int
+DW_AT_name : (indirect string, offset: 0x1f1): long long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 8
-<1><1bd>
+<1><1be>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x1c2>
-<1><1c2>
+DW_AT_type : <0x1c3>
+<1><1c3>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x142): char
+DW_AT_name : (indirect string, offset: 0x20c): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><1c9>
+<1><1ca>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x1ce>
-<1><1ce>
+DW_AT_type : <0x1cf>
+<1><1cf>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1d9>
-DW_AT_name : (indirect string, offset: 0x15a): __u8
+DW_AT_type : <0x1da>
+DW_AT_name : (indirect string, offset: 0x224): __u8
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><1d9>
+<1><1da>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x14c): unsigned char
+DW_AT_name : (indirect string, offset: 0x216): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><1e0>
+<1><1e1>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0x1e5>
-<1><1e5>
+DW_AT_type : <0x1e6>
+<1><1e6>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x1f0>
-DW_AT_name : (indirect string, offset: 0x174): __u16
+DW_AT_type : <0x1f1>
+DW_AT_name : (indirect string, offset: 0x23e): __u16
DW_AT_decl_file : 1
DW_AT_decl_line : 26
-<1><1f0>
+<1><1f1>
Abbrev Number: 8 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x165): unsigned short
+DW_AT_name : (indirect string, offset: 0x22f): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><1f7>
+<1><1f8>
Abbrev Number: 12 (DW_TAG_pointer_type)
-DW_AT_type : <0xb0>
-<1><1fc>
+DW_AT_type : <0xb1>
+<1><1fd>
Abbrev Number: 13 (DW_TAG_pointer_type)
diff --git a/mpers-m32/struct_v4l2_format.d1 b/mpers-m32/struct_v4l2_format.d1
index 684527f..5afff8f 100644
--- a/mpers-m32/struct_v4l2_format.d1
+++ b/mpers-m32/struct_v4l2_format.d1
@@ -1,635 +1,636 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x58e (32-bit)
+ Length: 0x58f (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_format.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_format.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5c): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x327): struct_v4l2_format
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 48
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x31b): v4l2_format
- <40> DW_AT_byte_size : 204
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 1141
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xa8): type
- <49> DW_AT_type : <0xe1>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 1142
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xc0): fmt
- <58> DW_AT_type : <0x62>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 1152
- <5f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><62>: Abbrev Number: 6 (DW_TAG_union_type)
- <63> DW_AT_byte_size : 200
- <64> DW_AT_decl_file : 2
- <65> DW_AT_decl_line : 1143
- <3><67>: Abbrev Number: 5 (DW_TAG_member)
- <68> DW_AT_name : (indirect string, offset: 0xc4): pix
- <6c> DW_AT_type : <0xf3>
- <70> DW_AT_decl_file : 2
- <71> DW_AT_decl_line : 1144
- <73> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><76>: Abbrev Number: 5 (DW_TAG_member)
- <77> DW_AT_name : (indirect string, offset: 0x14d): pix_mp
- <7b> DW_AT_type : <0x1c1>
- <7f> DW_AT_decl_file : 2
- <80> DW_AT_decl_line : 1145
- <82> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><85>: Abbrev Number: 5 (DW_TAG_member)
- <86> DW_AT_name : (indirect string, offset: 0x1d0): win
- <8a> DW_AT_type : <0x32e>
- <8e> DW_AT_decl_file : 2
- <8f> DW_AT_decl_line : 1146
- <91> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><94>: Abbrev Number: 5 (DW_TAG_member)
- <95> DW_AT_name : (indirect string, offset: 0x23e): vbi
- <99> DW_AT_type : <0x422>
- <9d> DW_AT_decl_file : 2
- <9e> DW_AT_decl_line : 1147
- <a0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><a3>: Abbrev Number: 5 (DW_TAG_member)
- <a4> DW_AT_name : (indirect string, offset: 0x292): sliced
- <a8> DW_AT_type : <0x4be>
- <ac> DW_AT_decl_file : 2
- <ad> DW_AT_decl_line : 1148
- <af> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><b2>: Abbrev Number: 5 (DW_TAG_member)
- <b3> DW_AT_name : (indirect string, offset: 0x2d2): sdr
- <b7> DW_AT_type : <0x518>
- <bb> DW_AT_decl_file : 2
- <bc> DW_AT_decl_line : 1149
- <be> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x2f1): meta
- <c6> DW_AT_type : <0x55c>
- <ca> DW_AT_decl_file : 2
- <cb> DW_AT_decl_line : 1150
- <cd> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><d0>: Abbrev Number: 5 (DW_TAG_member)
- <d1> DW_AT_name : (indirect string, offset: 0x312): raw_data
- <d5> DW_AT_type : <0x584>
- <d9> DW_AT_decl_file : 2
- <da> DW_AT_decl_line : 1151
- <dc> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><df>: Abbrev Number: 0
- <2><e0>: Abbrev Number: 0
- <1><e1>: Abbrev Number: 3 (DW_TAG_typedef)
- <e2> DW_AT_type : <0xec>
- <e6> DW_AT_name : (indirect string, offset: 0xba): __u32
- <ea> DW_AT_decl_file : 1
- <eb> DW_AT_decl_line : 28
- <1><ec>: Abbrev Number: 7 (DW_TAG_base_type)
- <ed> DW_AT_name : (indirect string, offset: 0xad): unsigned int
- <f1> DW_AT_encoding : 7 (unsigned)
- <f2> DW_AT_byte_size : 4
- <1><f3>: Abbrev Number: 8 (DW_TAG_structure_type)
- <f4> DW_AT_name : (indirect string, offset: 0x13d): v4l2_pix_format
- <f8> DW_AT_byte_size : 48
- <f9> DW_AT_decl_file : 2
- <fa> DW_AT_decl_line : 182
- <2><fb>: Abbrev Number: 9 (DW_TAG_member)
- <fc> DW_AT_name : (indirect string, offset: 0xc8): width
- <100> DW_AT_type : <0xe1>
- <104> DW_AT_decl_file : 2
- <105> DW_AT_decl_line : 183
- <106> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><109>: Abbrev Number: 9 (DW_TAG_member)
- <10a> DW_AT_name : (indirect string, offset: 0xce): height
- <10e> DW_AT_type : <0xe1>
- <112> DW_AT_decl_file : 2
- <113> DW_AT_decl_line : 184
- <114> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><117>: Abbrev Number: 9 (DW_TAG_member)
- <118> DW_AT_name : (indirect string, offset: 0xd5): pixelformat
- <11c> DW_AT_type : <0xe1>
- <120> DW_AT_decl_file : 2
- <121> DW_AT_decl_line : 185
- <122> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><125>: Abbrev Number: 9 (DW_TAG_member)
- <126> DW_AT_name : (indirect string, offset: 0xe1): field
- <12a> DW_AT_type : <0xe1>
- <12e> DW_AT_decl_file : 2
- <12f> DW_AT_decl_line : 186
- <130> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><133>: Abbrev Number: 9 (DW_TAG_member)
- <134> DW_AT_name : (indirect string, offset: 0xe7): bytesperline
- <138> DW_AT_type : <0xe1>
- <13c> DW_AT_decl_file : 2
- <13d> DW_AT_decl_line : 187
- <13e> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><141>: Abbrev Number: 9 (DW_TAG_member)
- <142> DW_AT_name : (indirect string, offset: 0xf4): sizeimage
- <146> DW_AT_type : <0xe1>
- <14a> DW_AT_decl_file : 2
- <14b> DW_AT_decl_line : 188
- <14c> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><14f>: Abbrev Number: 9 (DW_TAG_member)
- <150> DW_AT_name : (indirect string, offset: 0xfe): colorspace
- <154> DW_AT_type : <0xe1>
- <158> DW_AT_decl_file : 2
- <159> DW_AT_decl_line : 189
- <15a> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><15d>: Abbrev Number: 9 (DW_TAG_member)
- <15e> DW_AT_name : (indirect string, offset: 0x109): priv
- <162> DW_AT_type : <0xe1>
- <166> DW_AT_decl_file : 2
- <167> DW_AT_decl_line : 190
- <168> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><16b>: Abbrev Number: 9 (DW_TAG_member)
- <16c> DW_AT_name : (indirect string, offset: 0x10e): flags
- <170> DW_AT_type : <0xe1>
- <174> DW_AT_decl_file : 2
- <175> DW_AT_decl_line : 191
- <176> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><179>: Abbrev Number: 10 (DW_TAG_member)
- <17a> DW_AT_type : <0x183>
- <17e> DW_AT_decl_file : 2
- <17f> DW_AT_decl_line : 192
- <180> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><183>: Abbrev Number: 11 (DW_TAG_union_type)
- <184> DW_AT_byte_size : 4
- <185> DW_AT_decl_file : 2
- <186> DW_AT_decl_line : 192
- <3><187>: Abbrev Number: 9 (DW_TAG_member)
- <188> DW_AT_name : (indirect string, offset: 0x114): ycbcr_enc
- <18c> DW_AT_type : <0xe1>
- <190> DW_AT_decl_file : 2
- <191> DW_AT_decl_line : 193
- <192> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><195>: Abbrev Number: 9 (DW_TAG_member)
- <196> DW_AT_name : (indirect string, offset: 0x11e): hsv_enc
- <19a> DW_AT_type : <0xe1>
- <19e> DW_AT_decl_file : 2
- <19f> DW_AT_decl_line : 194
- <1a0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><1a3>: Abbrev Number: 0
- <2><1a4>: Abbrev Number: 9 (DW_TAG_member)
- <1a5> DW_AT_name : (indirect string, offset: 0x126): quantization
- <1a9> DW_AT_type : <0xe1>
- <1ad> DW_AT_decl_file : 2
- <1ae> DW_AT_decl_line : 196
- <1af> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><1b2>: Abbrev Number: 9 (DW_TAG_member)
- <1b3> DW_AT_name : (indirect string, offset: 0x133): xfer_func
- <1b7> DW_AT_type : <0xe1>
- <1bb> DW_AT_decl_file : 2
- <1bc> DW_AT_decl_line : 197
- <1bd> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><1c0>: Abbrev Number: 0
- <1><1c1>: Abbrev Number: 4 (DW_TAG_structure_type)
- <1c2> DW_AT_name : (indirect string, offset: 0x1b9): v4l2_pix_format_mplane
- <1c6> DW_AT_byte_size : 192
- <1c7> DW_AT_decl_file : 2
- <1c8> DW_AT_decl_line : 1115
- <2><1ca>: Abbrev Number: 5 (DW_TAG_member)
- <1cb> DW_AT_name : (indirect string, offset: 0xc8): width
- <1cf> DW_AT_type : <0xe1>
- <1d3> DW_AT_decl_file : 2
- <1d4> DW_AT_decl_line : 1116
- <1d6> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><1d9>: Abbrev Number: 5 (DW_TAG_member)
- <1da> DW_AT_name : (indirect string, offset: 0xce): height
- <1de> DW_AT_type : <0xe1>
- <1e2> DW_AT_decl_file : 2
- <1e3> DW_AT_decl_line : 1117
- <1e5> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><1e8>: Abbrev Number: 5 (DW_TAG_member)
- <1e9> DW_AT_name : (indirect string, offset: 0xd5): pixelformat
- <1ed> DW_AT_type : <0xe1>
- <1f1> DW_AT_decl_file : 2
- <1f2> DW_AT_decl_line : 1118
- <1f4> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><1f7>: Abbrev Number: 5 (DW_TAG_member)
- <1f8> DW_AT_name : (indirect string, offset: 0xe1): field
- <1fc> DW_AT_type : <0xe1>
- <200> DW_AT_decl_file : 2
- <201> DW_AT_decl_line : 1119
- <203> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><206>: Abbrev Number: 5 (DW_TAG_member)
- <207> DW_AT_name : (indirect string, offset: 0xfe): colorspace
- <20b> DW_AT_type : <0xe1>
- <20f> DW_AT_decl_file : 2
- <210> DW_AT_decl_line : 1120
- <212> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><215>: Abbrev Number: 5 (DW_TAG_member)
- <216> DW_AT_name : (indirect string, offset: 0x154): plane_fmt
- <21a> DW_AT_type : <0x2a5>
- <21e> DW_AT_decl_file : 2
- <21f> DW_AT_decl_line : 1121
- <221> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><224>: Abbrev Number: 5 (DW_TAG_member)
- <225> DW_AT_name : (indirect string, offset: 0x19b): num_planes
- <229> DW_AT_type : <0x30f>
- <22d> DW_AT_decl_file : 2
- <22e> DW_AT_decl_line : 1122
- <230> DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
- <2><234>: Abbrev Number: 5 (DW_TAG_member)
- <235> DW_AT_name : (indirect string, offset: 0x10e): flags
- <239> DW_AT_type : <0x30f>
- <23d> DW_AT_decl_file : 2
- <23e> DW_AT_decl_line : 1123
- <240> DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
- <2><244>: Abbrev Number: 12 (DW_TAG_member)
- <245> DW_AT_type : <0x250>
- <249> DW_AT_decl_file : 2
- <24a> DW_AT_decl_line : 1124
- <24c> DW_AT_data_member_location: 3 byte block: 23 b6 1 (DW_OP_plus_uconst: 182)
- <2><250>: Abbrev Number: 6 (DW_TAG_union_type)
- <251> DW_AT_byte_size : 1
- <252> DW_AT_decl_file : 2
- <253> DW_AT_decl_line : 1124
- <3><255>: Abbrev Number: 5 (DW_TAG_member)
- <256> DW_AT_name : (indirect string, offset: 0x114): ycbcr_enc
- <25a> DW_AT_type : <0x30f>
- <25e> DW_AT_decl_file : 2
- <25f> DW_AT_decl_line : 1125
- <261> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><264>: Abbrev Number: 5 (DW_TAG_member)
- <265> DW_AT_name : (indirect string, offset: 0x11e): hsv_enc
- <269> DW_AT_type : <0x30f>
- <26d> DW_AT_decl_file : 2
- <26e> DW_AT_decl_line : 1126
- <270> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><273>: Abbrev Number: 0
- <2><274>: Abbrev Number: 5 (DW_TAG_member)
- <275> DW_AT_name : (indirect string, offset: 0x126): quantization
- <279> DW_AT_type : <0x30f>
- <27d> DW_AT_decl_file : 2
- <27e> DW_AT_decl_line : 1128
- <280> DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
- <2><284>: Abbrev Number: 5 (DW_TAG_member)
- <285> DW_AT_name : (indirect string, offset: 0x133): xfer_func
- <289> DW_AT_type : <0x30f>
- <28d> DW_AT_decl_file : 2
- <28e> DW_AT_decl_line : 1129
- <290> DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
- <2><294>: Abbrev Number: 5 (DW_TAG_member)
- <295> DW_AT_name : (indirect string, offset: 0x15e): reserved
- <299> DW_AT_type : <0x321>
- <29d> DW_AT_decl_file : 2
- <29e> DW_AT_decl_line : 1130
- <2a0> DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
- <2><2a4>: Abbrev Number: 0
- <1><2a5>: Abbrev Number: 13 (DW_TAG_array_type)
- <2a6> DW_AT_type : <0x2b2>
- <2><2aa>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <2ab> DW_AT_type : <0x308>
- <2af> DW_AT_lower_bound : 0
- <2b0> DW_AT_count : 8
- <2><2b1>: Abbrev Number: 0
- <1><2b2>: Abbrev Number: 4 (DW_TAG_structure_type)
- <2b3> DW_AT_name : (indirect string, offset: 0x185): v4l2_plane_pix_format
- <2b7> DW_AT_byte_size : 20
- <2b8> DW_AT_decl_file : 2
- <2b9> DW_AT_decl_line : 1110
- <2><2bb>: Abbrev Number: 5 (DW_TAG_member)
- <2bc> DW_AT_name : (indirect string, offset: 0xf4): sizeimage
- <2c0> DW_AT_type : <0xe1>
- <2c4> DW_AT_decl_file : 2
- <2c5> DW_AT_decl_line : 1111
- <2c7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><2ca>: Abbrev Number: 5 (DW_TAG_member)
- <2cb> DW_AT_name : (indirect string, offset: 0xe7): bytesperline
- <2cf> DW_AT_type : <0xe1>
- <2d3> DW_AT_decl_file : 2
- <2d4> DW_AT_decl_line : 1112
- <2d6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><2d9>: Abbrev Number: 5 (DW_TAG_member)
- <2da> DW_AT_name : (indirect string, offset: 0x15e): reserved
- <2de> DW_AT_type : <0x2e9>
- <2e2> DW_AT_decl_file : 2
- <2e3> DW_AT_decl_line : 1113
- <2e5> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><2e8>: Abbrev Number: 0
- <1><2e9>: Abbrev Number: 13 (DW_TAG_array_type)
- <2ea> DW_AT_type : <0x2f6>
- <2><2ee>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <2ef> DW_AT_type : <0x308>
- <2f3> DW_AT_lower_bound : 0
- <2f4> DW_AT_count : 6
- <2><2f5>: Abbrev Number: 0
- <1><2f6>: Abbrev Number: 3 (DW_TAG_typedef)
- <2f7> DW_AT_type : <0x301>
- <2fb> DW_AT_name : (indirect string, offset: 0x176): __u16
- <2ff> DW_AT_decl_file : 1
- <300> DW_AT_decl_line : 26
- <1><301>: Abbrev Number: 7 (DW_TAG_base_type)
- <302> DW_AT_name : (indirect string, offset: 0x167): unsigned short
- <306> DW_AT_encoding : 7 (unsigned)
- <307> DW_AT_byte_size : 2
- <1><308>: Abbrev Number: 15 (DW_TAG_base_type)
- <309> DW_AT_name : (indirect string, offset: 0x17c): sizetype
- <30d> DW_AT_byte_size : 8
- <30e> DW_AT_encoding : 7 (unsigned)
- <1><30f>: Abbrev Number: 3 (DW_TAG_typedef)
- <310> DW_AT_type : <0x31a>
- <314> DW_AT_name : (indirect string, offset: 0x1b4): __u8
- <318> DW_AT_decl_file : 1
- <319> DW_AT_decl_line : 24
- <1><31a>: Abbrev Number: 7 (DW_TAG_base_type)
- <31b> DW_AT_name : (indirect string, offset: 0x1a6): unsigned char
- <31f> DW_AT_encoding : 8 (unsigned char)
- <320> DW_AT_byte_size : 1
- <1><321>: Abbrev Number: 13 (DW_TAG_array_type)
- <322> DW_AT_type : <0x30f>
- <2><326>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <327> DW_AT_type : <0x308>
- <32b> DW_AT_lower_bound : 0
- <32c> DW_AT_count : 7
- <2><32d>: Abbrev Number: 0
- <1><32e>: Abbrev Number: 4 (DW_TAG_structure_type)
- <32f> DW_AT_name : (indirect string, offset: 0x232): v4l2_window
- <333> DW_AT_byte_size : 40
- <334> DW_AT_decl_file : 2
- <335> DW_AT_decl_line : 547
- <2><337>: Abbrev Number: 5 (DW_TAG_member)
- <338> DW_AT_name : (indirect string, offset: 0x1d4): w
- <33c> DW_AT_type : <0x3a1>
- <340> DW_AT_decl_file : 2
- <341> DW_AT_decl_line : 548
- <343> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><346>: Abbrev Number: 5 (DW_TAG_member)
- <347> DW_AT_name : (indirect string, offset: 0xe1): field
- <34b> DW_AT_type : <0xe1>
- <34f> DW_AT_decl_file : 2
- <350> DW_AT_decl_line : 549
- <352> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><355>: Abbrev Number: 5 (DW_TAG_member)
- <356> DW_AT_name : (indirect string, offset: 0x1f3): chromakey
- <35a> DW_AT_type : <0xe1>
- <35e> DW_AT_decl_file : 2
- <35f> DW_AT_decl_line : 550
- <361> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><364>: Abbrev Number: 5 (DW_TAG_member)
- <365> DW_AT_name : (indirect string, offset: 0x1fd): clips
- <369> DW_AT_type : <0x3f4>
- <36d> DW_AT_decl_file : 2
- <36e> DW_AT_decl_line : 551
- <370> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><373>: Abbrev Number: 5 (DW_TAG_member)
- <374> DW_AT_name : (indirect string, offset: 0x214): clipcount
- <378> DW_AT_type : <0xe1>
- <37c> DW_AT_decl_file : 2
- <37d> DW_AT_decl_line : 552
- <37f> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><382>: Abbrev Number: 5 (DW_TAG_member)
- <383> DW_AT_name : (indirect string, offset: 0x21e): bitmap
- <387> DW_AT_type : <0x421>
- <38b> DW_AT_decl_file : 2
- <38c> DW_AT_decl_line : 553
- <38e> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><391>: Abbrev Number: 5 (DW_TAG_member)
- <392> DW_AT_name : (indirect string, offset: 0x225): global_alpha
- <396> DW_AT_type : <0x30f>
- <39a> DW_AT_decl_file : 2
- <39b> DW_AT_decl_line : 554
- <39d> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><3a0>: Abbrev Number: 0
- <1><3a1>: Abbrev Number: 8 (DW_TAG_structure_type)
- <3a2> DW_AT_name : (indirect string, offset: 0x1e9): v4l2_rect
- <3a6> DW_AT_byte_size : 16
- <3a7> DW_AT_decl_file : 2
- <3a8> DW_AT_decl_line : 135
- <2><3a9>: Abbrev Number: 9 (DW_TAG_member)
- <3aa> DW_AT_name : (indirect string, offset: 0x1d6): left
- <3ae> DW_AT_type : <0x3e2>
- <3b2> DW_AT_decl_file : 2
- <3b3> DW_AT_decl_line : 136
- <3b4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><3b7>: Abbrev Number: 9 (DW_TAG_member)
- <3b8> DW_AT_name : (indirect string, offset: 0x1e5): top
- <3bc> DW_AT_type : <0x3e2>
- <3c0> DW_AT_decl_file : 2
- <3c1> DW_AT_decl_line : 137
- <3c2> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><3c5>: Abbrev Number: 9 (DW_TAG_member)
- <3c6> DW_AT_name : (indirect string, offset: 0xc8): width
- <3ca> DW_AT_type : <0xe1>
- <3ce> DW_AT_decl_file : 2
- <3cf> DW_AT_decl_line : 138
- <3d0> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><3d3>: Abbrev Number: 9 (DW_TAG_member)
- <3d4> DW_AT_name : (indirect string, offset: 0xce): height
- <3d8> DW_AT_type : <0xe1>
- <3dc> DW_AT_decl_file : 2
- <3dd> DW_AT_decl_line : 139
- <3de> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><3e1>: Abbrev Number: 0
- <1><3e2>: Abbrev Number: 3 (DW_TAG_typedef)
- <3e3> DW_AT_type : <0x3ed>
- <3e7> DW_AT_name : (indirect string, offset: 0x1df): __s32
- <3eb> DW_AT_decl_file : 1
- <3ec> DW_AT_decl_line : 27
- <1><3ed>: Abbrev Number: 7 (DW_TAG_base_type)
- <3ee> DW_AT_name : (indirect string, offset: 0x1db): int
- <3f2> DW_AT_encoding : 5 (signed)
- <3f3> DW_AT_byte_size : 4
- <1><3f4>: Abbrev Number: 16 (DW_TAG_pointer_type)
- <3f5> DW_AT_type : <0x3f9>
- <1><3f9>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3fa> DW_AT_name : (indirect string, offset: 0x20a): v4l2_clip
- <3fe> DW_AT_byte_size : 20
- <3ff> DW_AT_decl_file : 2
- <400> DW_AT_decl_line : 543
- <2><402>: Abbrev Number: 5 (DW_TAG_member)
- <403> DW_AT_name : (indirect string, offset: 0x203): c
- <407> DW_AT_type : <0x3a1>
- <40b> DW_AT_decl_file : 2
- <40c> DW_AT_decl_line : 544
- <40e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><411>: Abbrev Number: 5 (DW_TAG_member)
- <412> DW_AT_name : (indirect string, offset: 0x205): next
- <416> DW_AT_type : <0x3f4>
- <41a> DW_AT_decl_file : 2
- <41b> DW_AT_decl_line : 545
- <41d> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><420>: Abbrev Number: 0
- <1><421>: Abbrev Number: 17 (DW_TAG_pointer_type)
- <1><422>: Abbrev Number: 4 (DW_TAG_structure_type)
- <423> DW_AT_name : (indirect string, offset: 0x282): v4l2_vbi_format
- <427> DW_AT_byte_size : 44
- <428> DW_AT_decl_file : 2
- <429> DW_AT_decl_line : 1045
- <2><42b>: Abbrev Number: 5 (DW_TAG_member)
- <42c> DW_AT_name : (indirect string, offset: 0x242): sampling_rate
- <430> DW_AT_type : <0xe1>
- <434> DW_AT_decl_file : 2
- <435> DW_AT_decl_line : 1046
- <437> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><43a>: Abbrev Number: 5 (DW_TAG_member)
- <43b> DW_AT_name : (indirect string, offset: 0x250): offset
- <43f> DW_AT_type : <0xe1>
- <443> DW_AT_decl_file : 2
- <444> DW_AT_decl_line : 1047
- <446> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><449>: Abbrev Number: 5 (DW_TAG_member)
- <44a> DW_AT_name : (indirect string, offset: 0x257): samples_per_line
- <44e> DW_AT_type : <0xe1>
- <452> DW_AT_decl_file : 2
- <453> DW_AT_decl_line : 1048
- <455> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><458>: Abbrev Number: 5 (DW_TAG_member)
- <459> DW_AT_name : (indirect string, offset: 0x268): sample_format
- <45d> DW_AT_type : <0xe1>
- <461> DW_AT_decl_file : 2
- <462> DW_AT_decl_line : 1049
- <464> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><467>: Abbrev Number: 5 (DW_TAG_member)
- <468> DW_AT_name : (indirect string, offset: 0x276): start
- <46c> DW_AT_type : <0x4a4>
- <470> DW_AT_decl_file : 2
- <471> DW_AT_decl_line : 1050
- <473> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><476>: Abbrev Number: 5 (DW_TAG_member)
- <477> DW_AT_name : (indirect string, offset: 0x27c): count
- <47b> DW_AT_type : <0x4b1>
- <47f> DW_AT_decl_file : 2
- <480> DW_AT_decl_line : 1051
- <482> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><485>: Abbrev Number: 5 (DW_TAG_member)
- <486> DW_AT_name : (indirect string, offset: 0x10e): flags
- <48a> DW_AT_type : <0xe1>
- <48e> DW_AT_decl_file : 2
- <48f> DW_AT_decl_line : 1052
- <491> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><494>: Abbrev Number: 5 (DW_TAG_member)
- <495> DW_AT_name : (indirect string, offset: 0x15e): reserved
- <499> DW_AT_type : <0x4b1>
- <49d> DW_AT_decl_file : 2
- <49e> DW_AT_decl_line : 1053
- <4a0> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><4a3>: Abbrev Number: 0
- <1><4a4>: Abbrev Number: 13 (DW_TAG_array_type)
- <4a5> DW_AT_type : <0x3e2>
- <2><4a9>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <4aa> DW_AT_type : <0x308>
- <4ae> DW_AT_lower_bound : 0
- <4af> DW_AT_count : 2
- <2><4b0>: Abbrev Number: 0
- <1><4b1>: Abbrev Number: 13 (DW_TAG_array_type)
- <4b2> DW_AT_type : <0xe1>
- <2><4b6>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <4b7> DW_AT_type : <0x308>
- <4bb> DW_AT_lower_bound : 0
- <4bc> DW_AT_count : 2
- <2><4bd>: Abbrev Number: 0
- <1><4be>: Abbrev Number: 4 (DW_TAG_structure_type)
- <4bf> DW_AT_name : (indirect string, offset: 0x2bb): v4l2_sliced_vbi_format
- <4c3> DW_AT_byte_size : 112
- <4c4> DW_AT_decl_file : 2
- <4c5> DW_AT_decl_line : 1061
- <2><4c7>: Abbrev Number: 5 (DW_TAG_member)
- <4c8> DW_AT_name : (indirect string, offset: 0x299): service_set
- <4cc> DW_AT_type : <0x2f6>
- <4d0> DW_AT_decl_file : 2
- <4d1> DW_AT_decl_line : 1062
- <4d3> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><4d6>: Abbrev Number: 5 (DW_TAG_member)
- <4d7> DW_AT_name : (indirect string, offset: 0x2a5): service_lines
- <4db> DW_AT_type : <0x504>
- <4df> DW_AT_decl_file : 2
- <4e0> DW_AT_decl_line : 1063
- <4e2> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
- <2><4e5>: Abbrev Number: 5 (DW_TAG_member)
- <4e6> DW_AT_name : (indirect string, offset: 0x2b3): io_size
- <4ea> DW_AT_type : <0xe1>
- <4ee> DW_AT_decl_file : 2
- <4ef> DW_AT_decl_line : 1064
- <4f1> DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
- <2><4f4>: Abbrev Number: 5 (DW_TAG_member)
- <4f5> DW_AT_name : (indirect string, offset: 0x15e): reserved
- <4f9> DW_AT_type : <0x4b1>
- <4fd> DW_AT_decl_file : 2
- <4fe> DW_AT_decl_line : 1065
- <500> DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
- <2><503>: Abbrev Number: 0
- <1><504>: Abbrev Number: 13 (DW_TAG_array_type)
- <505> DW_AT_type : <0x2f6>
- <2><509>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <50a> DW_AT_type : <0x308>
- <50e> DW_AT_lower_bound : 0
- <50f> DW_AT_count : 2
- <2><510>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <511> DW_AT_type : <0x308>
- <515> DW_AT_lower_bound : 0
- <516> DW_AT_count : 24
- <2><517>: Abbrev Number: 0
- <1><518>: Abbrev Number: 4 (DW_TAG_structure_type)
- <519> DW_AT_name : (indirect string, offset: 0x2e1): v4l2_sdr_format
- <51d> DW_AT_byte_size : 32
- <51e> DW_AT_decl_file : 2
- <51f> DW_AT_decl_line : 1132
- <2><521>: Abbrev Number: 5 (DW_TAG_member)
- <522> DW_AT_name : (indirect string, offset: 0xd5): pixelformat
- <526> DW_AT_type : <0xe1>
- <52a> DW_AT_decl_file : 2
- <52b> DW_AT_decl_line : 1133
- <52d> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><530>: Abbrev Number: 5 (DW_TAG_member)
- <531> DW_AT_name : (indirect string, offset: 0x2d6): buffersize
- <535> DW_AT_type : <0xe1>
- <539> DW_AT_decl_file : 2
- <53a> DW_AT_decl_line : 1134
- <53c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><53f>: Abbrev Number: 5 (DW_TAG_member)
- <540> DW_AT_name : (indirect string, offset: 0x15e): reserved
- <544> DW_AT_type : <0x54f>
- <548> DW_AT_decl_file : 2
- <549> DW_AT_decl_line : 1135
- <54b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><54e>: Abbrev Number: 0
- <1><54f>: Abbrev Number: 13 (DW_TAG_array_type)
- <550> DW_AT_type : <0x30f>
- <2><554>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <555> DW_AT_type : <0x308>
- <559> DW_AT_lower_bound : 0
- <55a> DW_AT_count : 24
- <2><55b>: Abbrev Number: 0
- <1><55c>: Abbrev Number: 4 (DW_TAG_structure_type)
- <55d> DW_AT_name : (indirect string, offset: 0x301): v4l2_meta_format
- <561> DW_AT_byte_size : 8
- <562> DW_AT_decl_file : 2
- <563> DW_AT_decl_line : 1137
- <2><565>: Abbrev Number: 5 (DW_TAG_member)
- <566> DW_AT_name : (indirect string, offset: 0x2f6): dataformat
- <56a> DW_AT_type : <0xe1>
- <56e> DW_AT_decl_file : 2
- <56f> DW_AT_decl_line : 1138
- <571> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><574>: Abbrev Number: 5 (DW_TAG_member)
- <575> DW_AT_name : (indirect string, offset: 0x2d6): buffersize
- <579> DW_AT_type : <0xe1>
- <57d> DW_AT_decl_file : 2
- <57e> DW_AT_decl_line : 1139
- <580> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><583>: Abbrev Number: 0
- <1><584>: Abbrev Number: 13 (DW_TAG_array_type)
- <585> DW_AT_type : <0x30f>
- <2><589>: Abbrev Number: 14 (DW_TAG_subrange_type)
- <58a> DW_AT_type : <0x308>
- <58e> DW_AT_lower_bound : 0
- <58f> DW_AT_count : 200
- <2><590>: Abbrev Number: 0
- <1><591>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x126): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x3f1): struct_v4l2_format
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 48
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x3e5): v4l2_format
+ <41> DW_AT_byte_size : 204
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 1148
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x172): type
+ <4a> DW_AT_type : <0xe2>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 1149
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x18a): fmt
+ <59> DW_AT_type : <0x63>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 1159
+ <60> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><63>: Abbrev Number: 6 (DW_TAG_union_type)
+ <64> DW_AT_byte_size : 200
+ <65> DW_AT_decl_file : 2
+ <66> DW_AT_decl_line : 1150
+ <3><68>: Abbrev Number: 5 (DW_TAG_member)
+ <69> DW_AT_name : (indirect string, offset: 0x18e): pix
+ <6d> DW_AT_type : <0xf4>
+ <71> DW_AT_decl_file : 2
+ <72> DW_AT_decl_line : 1151
+ <74> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><77>: Abbrev Number: 5 (DW_TAG_member)
+ <78> DW_AT_name : (indirect string, offset: 0x217): pix_mp
+ <7c> DW_AT_type : <0x1c2>
+ <80> DW_AT_decl_file : 2
+ <81> DW_AT_decl_line : 1152
+ <83> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><86>: Abbrev Number: 5 (DW_TAG_member)
+ <87> DW_AT_name : (indirect string, offset: 0x29a): win
+ <8b> DW_AT_type : <0x32f>
+ <8f> DW_AT_decl_file : 2
+ <90> DW_AT_decl_line : 1153
+ <92> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><95>: Abbrev Number: 5 (DW_TAG_member)
+ <96> DW_AT_name : (indirect string, offset: 0x308): vbi
+ <9a> DW_AT_type : <0x423>
+ <9e> DW_AT_decl_file : 2
+ <9f> DW_AT_decl_line : 1154
+ <a1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><a4>: Abbrev Number: 5 (DW_TAG_member)
+ <a5> DW_AT_name : (indirect string, offset: 0x35c): sliced
+ <a9> DW_AT_type : <0x4bf>
+ <ad> DW_AT_decl_file : 2
+ <ae> DW_AT_decl_line : 1155
+ <b0> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><b3>: Abbrev Number: 5 (DW_TAG_member)
+ <b4> DW_AT_name : (indirect string, offset: 0x39c): sdr
+ <b8> DW_AT_type : <0x519>
+ <bc> DW_AT_decl_file : 2
+ <bd> DW_AT_decl_line : 1156
+ <bf> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x3bb): meta
+ <c7> DW_AT_type : <0x55d>
+ <cb> DW_AT_decl_file : 2
+ <cc> DW_AT_decl_line : 1157
+ <ce> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><d1>: Abbrev Number: 5 (DW_TAG_member)
+ <d2> DW_AT_name : (indirect string, offset: 0x3dc): raw_data
+ <d6> DW_AT_type : <0x585>
+ <da> DW_AT_decl_file : 2
+ <db> DW_AT_decl_line : 1158
+ <dd> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><e0>: Abbrev Number: 0
+ <2><e1>: Abbrev Number: 0
+ <1><e2>: Abbrev Number: 3 (DW_TAG_typedef)
+ <e3> DW_AT_type : <0xed>
+ <e7> DW_AT_name : (indirect string, offset: 0x184): __u32
+ <eb> DW_AT_decl_file : 1
+ <ec> DW_AT_decl_line : 28
+ <1><ed>: Abbrev Number: 7 (DW_TAG_base_type)
+ <ee> DW_AT_name : (indirect string, offset: 0x177): unsigned int
+ <f2> DW_AT_encoding : 7 (unsigned)
+ <f3> DW_AT_byte_size : 4
+ <1><f4>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <f5> DW_AT_name : (indirect string, offset: 0x207): v4l2_pix_format
+ <f9> DW_AT_byte_size : 48
+ <fa> DW_AT_decl_file : 2
+ <fb> DW_AT_decl_line : 182
+ <2><fc>: Abbrev Number: 9 (DW_TAG_member)
+ <fd> DW_AT_name : (indirect string, offset: 0x192): width
+ <101> DW_AT_type : <0xe2>
+ <105> DW_AT_decl_file : 2
+ <106> DW_AT_decl_line : 183
+ <107> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><10a>: Abbrev Number: 9 (DW_TAG_member)
+ <10b> DW_AT_name : (indirect string, offset: 0x198): height
+ <10f> DW_AT_type : <0xe2>
+ <113> DW_AT_decl_file : 2
+ <114> DW_AT_decl_line : 184
+ <115> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><118>: Abbrev Number: 9 (DW_TAG_member)
+ <119> DW_AT_name : (indirect string, offset: 0x19f): pixelformat
+ <11d> DW_AT_type : <0xe2>
+ <121> DW_AT_decl_file : 2
+ <122> DW_AT_decl_line : 185
+ <123> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><126>: Abbrev Number: 9 (DW_TAG_member)
+ <127> DW_AT_name : (indirect string, offset: 0x1ab): field
+ <12b> DW_AT_type : <0xe2>
+ <12f> DW_AT_decl_file : 2
+ <130> DW_AT_decl_line : 186
+ <131> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><134>: Abbrev Number: 9 (DW_TAG_member)
+ <135> DW_AT_name : (indirect string, offset: 0x1b1): bytesperline
+ <139> DW_AT_type : <0xe2>
+ <13d> DW_AT_decl_file : 2
+ <13e> DW_AT_decl_line : 187
+ <13f> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><142>: Abbrev Number: 9 (DW_TAG_member)
+ <143> DW_AT_name : (indirect string, offset: 0x1be): sizeimage
+ <147> DW_AT_type : <0xe2>
+ <14b> DW_AT_decl_file : 2
+ <14c> DW_AT_decl_line : 188
+ <14d> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><150>: Abbrev Number: 9 (DW_TAG_member)
+ <151> DW_AT_name : (indirect string, offset: 0x1c8): colorspace
+ <155> DW_AT_type : <0xe2>
+ <159> DW_AT_decl_file : 2
+ <15a> DW_AT_decl_line : 189
+ <15b> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><15e>: Abbrev Number: 9 (DW_TAG_member)
+ <15f> DW_AT_name : (indirect string, offset: 0x1d3): priv
+ <163> DW_AT_type : <0xe2>
+ <167> DW_AT_decl_file : 2
+ <168> DW_AT_decl_line : 190
+ <169> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><16c>: Abbrev Number: 9 (DW_TAG_member)
+ <16d> DW_AT_name : (indirect string, offset: 0x1d8): flags
+ <171> DW_AT_type : <0xe2>
+ <175> DW_AT_decl_file : 2
+ <176> DW_AT_decl_line : 191
+ <177> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><17a>: Abbrev Number: 10 (DW_TAG_member)
+ <17b> DW_AT_type : <0x184>
+ <17f> DW_AT_decl_file : 2
+ <180> DW_AT_decl_line : 192
+ <181> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><184>: Abbrev Number: 11 (DW_TAG_union_type)
+ <185> DW_AT_byte_size : 4
+ <186> DW_AT_decl_file : 2
+ <187> DW_AT_decl_line : 192
+ <3><188>: Abbrev Number: 9 (DW_TAG_member)
+ <189> DW_AT_name : (indirect string, offset: 0x1de): ycbcr_enc
+ <18d> DW_AT_type : <0xe2>
+ <191> DW_AT_decl_file : 2
+ <192> DW_AT_decl_line : 193
+ <193> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><196>: Abbrev Number: 9 (DW_TAG_member)
+ <197> DW_AT_name : (indirect string, offset: 0x1e8): hsv_enc
+ <19b> DW_AT_type : <0xe2>
+ <19f> DW_AT_decl_file : 2
+ <1a0> DW_AT_decl_line : 194
+ <1a1> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><1a4>: Abbrev Number: 0
+ <2><1a5>: Abbrev Number: 9 (DW_TAG_member)
+ <1a6> DW_AT_name : (indirect string, offset: 0x1f0): quantization
+ <1aa> DW_AT_type : <0xe2>
+ <1ae> DW_AT_decl_file : 2
+ <1af> DW_AT_decl_line : 196
+ <1b0> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><1b3>: Abbrev Number: 9 (DW_TAG_member)
+ <1b4> DW_AT_name : (indirect string, offset: 0x1fd): xfer_func
+ <1b8> DW_AT_type : <0xe2>
+ <1bc> DW_AT_decl_file : 2
+ <1bd> DW_AT_decl_line : 197
+ <1be> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><1c1>: Abbrev Number: 0
+ <1><1c2>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <1c3> DW_AT_name : (indirect string, offset: 0x283): v4l2_pix_format_mplane
+ <1c7> DW_AT_byte_size : 192
+ <1c8> DW_AT_decl_file : 2
+ <1c9> DW_AT_decl_line : 1122
+ <2><1cb>: Abbrev Number: 5 (DW_TAG_member)
+ <1cc> DW_AT_name : (indirect string, offset: 0x192): width
+ <1d0> DW_AT_type : <0xe2>
+ <1d4> DW_AT_decl_file : 2
+ <1d5> DW_AT_decl_line : 1123
+ <1d7> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><1da>: Abbrev Number: 5 (DW_TAG_member)
+ <1db> DW_AT_name : (indirect string, offset: 0x198): height
+ <1df> DW_AT_type : <0xe2>
+ <1e3> DW_AT_decl_file : 2
+ <1e4> DW_AT_decl_line : 1124
+ <1e6> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><1e9>: Abbrev Number: 5 (DW_TAG_member)
+ <1ea> DW_AT_name : (indirect string, offset: 0x19f): pixelformat
+ <1ee> DW_AT_type : <0xe2>
+ <1f2> DW_AT_decl_file : 2
+ <1f3> DW_AT_decl_line : 1125
+ <1f5> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><1f8>: Abbrev Number: 5 (DW_TAG_member)
+ <1f9> DW_AT_name : (indirect string, offset: 0x1ab): field
+ <1fd> DW_AT_type : <0xe2>
+ <201> DW_AT_decl_file : 2
+ <202> DW_AT_decl_line : 1126
+ <204> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><207>: Abbrev Number: 5 (DW_TAG_member)
+ <208> DW_AT_name : (indirect string, offset: 0x1c8): colorspace
+ <20c> DW_AT_type : <0xe2>
+ <210> DW_AT_decl_file : 2
+ <211> DW_AT_decl_line : 1127
+ <213> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><216>: Abbrev Number: 5 (DW_TAG_member)
+ <217> DW_AT_name : (indirect string, offset: 0x21e): plane_fmt
+ <21b> DW_AT_type : <0x2a6>
+ <21f> DW_AT_decl_file : 2
+ <220> DW_AT_decl_line : 1128
+ <222> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><225>: Abbrev Number: 5 (DW_TAG_member)
+ <226> DW_AT_name : (indirect string, offset: 0x265): num_planes
+ <22a> DW_AT_type : <0x310>
+ <22e> DW_AT_decl_file : 2
+ <22f> DW_AT_decl_line : 1129
+ <231> DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
+ <2><235>: Abbrev Number: 5 (DW_TAG_member)
+ <236> DW_AT_name : (indirect string, offset: 0x1d8): flags
+ <23a> DW_AT_type : <0x310>
+ <23e> DW_AT_decl_file : 2
+ <23f> DW_AT_decl_line : 1130
+ <241> DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
+ <2><245>: Abbrev Number: 12 (DW_TAG_member)
+ <246> DW_AT_type : <0x251>
+ <24a> DW_AT_decl_file : 2
+ <24b> DW_AT_decl_line : 1131
+ <24d> DW_AT_data_member_location: 3 byte block: 23 b6 1 (DW_OP_plus_uconst: 182)
+ <2><251>: Abbrev Number: 6 (DW_TAG_union_type)
+ <252> DW_AT_byte_size : 1
+ <253> DW_AT_decl_file : 2
+ <254> DW_AT_decl_line : 1131
+ <3><256>: Abbrev Number: 5 (DW_TAG_member)
+ <257> DW_AT_name : (indirect string, offset: 0x1de): ycbcr_enc
+ <25b> DW_AT_type : <0x310>
+ <25f> DW_AT_decl_file : 2
+ <260> DW_AT_decl_line : 1132
+ <262> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><265>: Abbrev Number: 5 (DW_TAG_member)
+ <266> DW_AT_name : (indirect string, offset: 0x1e8): hsv_enc
+ <26a> DW_AT_type : <0x310>
+ <26e> DW_AT_decl_file : 2
+ <26f> DW_AT_decl_line : 1133
+ <271> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><274>: Abbrev Number: 0
+ <2><275>: Abbrev Number: 5 (DW_TAG_member)
+ <276> DW_AT_name : (indirect string, offset: 0x1f0): quantization
+ <27a> DW_AT_type : <0x310>
+ <27e> DW_AT_decl_file : 2
+ <27f> DW_AT_decl_line : 1135
+ <281> DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
+ <2><285>: Abbrev Number: 5 (DW_TAG_member)
+ <286> DW_AT_name : (indirect string, offset: 0x1fd): xfer_func
+ <28a> DW_AT_type : <0x310>
+ <28e> DW_AT_decl_file : 2
+ <28f> DW_AT_decl_line : 1136
+ <291> DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
+ <2><295>: Abbrev Number: 5 (DW_TAG_member)
+ <296> DW_AT_name : (indirect string, offset: 0x228): reserved
+ <29a> DW_AT_type : <0x322>
+ <29e> DW_AT_decl_file : 2
+ <29f> DW_AT_decl_line : 1137
+ <2a1> DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
+ <2><2a5>: Abbrev Number: 0
+ <1><2a6>: Abbrev Number: 13 (DW_TAG_array_type)
+ <2a7> DW_AT_type : <0x2b3>
+ <2><2ab>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <2ac> DW_AT_type : <0x309>
+ <2b0> DW_AT_lower_bound : 0
+ <2b1> DW_AT_count : 8
+ <2><2b2>: Abbrev Number: 0
+ <1><2b3>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <2b4> DW_AT_name : (indirect string, offset: 0x24f): v4l2_plane_pix_format
+ <2b8> DW_AT_byte_size : 20
+ <2b9> DW_AT_decl_file : 2
+ <2ba> DW_AT_decl_line : 1117
+ <2><2bc>: Abbrev Number: 5 (DW_TAG_member)
+ <2bd> DW_AT_name : (indirect string, offset: 0x1be): sizeimage
+ <2c1> DW_AT_type : <0xe2>
+ <2c5> DW_AT_decl_file : 2
+ <2c6> DW_AT_decl_line : 1118
+ <2c8> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><2cb>: Abbrev Number: 5 (DW_TAG_member)
+ <2cc> DW_AT_name : (indirect string, offset: 0x1b1): bytesperline
+ <2d0> DW_AT_type : <0xe2>
+ <2d4> DW_AT_decl_file : 2
+ <2d5> DW_AT_decl_line : 1119
+ <2d7> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><2da>: Abbrev Number: 5 (DW_TAG_member)
+ <2db> DW_AT_name : (indirect string, offset: 0x228): reserved
+ <2df> DW_AT_type : <0x2ea>
+ <2e3> DW_AT_decl_file : 2
+ <2e4> DW_AT_decl_line : 1120
+ <2e6> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><2e9>: Abbrev Number: 0
+ <1><2ea>: Abbrev Number: 13 (DW_TAG_array_type)
+ <2eb> DW_AT_type : <0x2f7>
+ <2><2ef>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <2f0> DW_AT_type : <0x309>
+ <2f4> DW_AT_lower_bound : 0
+ <2f5> DW_AT_count : 6
+ <2><2f6>: Abbrev Number: 0
+ <1><2f7>: Abbrev Number: 3 (DW_TAG_typedef)
+ <2f8> DW_AT_type : <0x302>
+ <2fc> DW_AT_name : (indirect string, offset: 0x240): __u16
+ <300> DW_AT_decl_file : 1
+ <301> DW_AT_decl_line : 26
+ <1><302>: Abbrev Number: 7 (DW_TAG_base_type)
+ <303> DW_AT_name : (indirect string, offset: 0x231): unsigned short
+ <307> DW_AT_encoding : 7 (unsigned)
+ <308> DW_AT_byte_size : 2
+ <1><309>: Abbrev Number: 15 (DW_TAG_base_type)
+ <30a> DW_AT_name : (indirect string, offset: 0x246): sizetype
+ <30e> DW_AT_byte_size : 8
+ <30f> DW_AT_encoding : 7 (unsigned)
+ <1><310>: Abbrev Number: 3 (DW_TAG_typedef)
+ <311> DW_AT_type : <0x31b>
+ <315> DW_AT_name : (indirect string, offset: 0x27e): __u8
+ <319> DW_AT_decl_file : 1
+ <31a> DW_AT_decl_line : 24
+ <1><31b>: Abbrev Number: 7 (DW_TAG_base_type)
+ <31c> DW_AT_name : (indirect string, offset: 0x270): unsigned char
+ <320> DW_AT_encoding : 8 (unsigned char)
+ <321> DW_AT_byte_size : 1
+ <1><322>: Abbrev Number: 13 (DW_TAG_array_type)
+ <323> DW_AT_type : <0x310>
+ <2><327>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <328> DW_AT_type : <0x309>
+ <32c> DW_AT_lower_bound : 0
+ <32d> DW_AT_count : 7
+ <2><32e>: Abbrev Number: 0
+ <1><32f>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <330> DW_AT_name : (indirect string, offset: 0x2fc): v4l2_window
+ <334> DW_AT_byte_size : 40
+ <335> DW_AT_decl_file : 2
+ <336> DW_AT_decl_line : 554
+ <2><338>: Abbrev Number: 5 (DW_TAG_member)
+ <339> DW_AT_name : (indirect string, offset: 0x29e): w
+ <33d> DW_AT_type : <0x3a2>
+ <341> DW_AT_decl_file : 2
+ <342> DW_AT_decl_line : 555
+ <344> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><347>: Abbrev Number: 5 (DW_TAG_member)
+ <348> DW_AT_name : (indirect string, offset: 0x1ab): field
+ <34c> DW_AT_type : <0xe2>
+ <350> DW_AT_decl_file : 2
+ <351> DW_AT_decl_line : 556
+ <353> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><356>: Abbrev Number: 5 (DW_TAG_member)
+ <357> DW_AT_name : (indirect string, offset: 0x2bd): chromakey
+ <35b> DW_AT_type : <0xe2>
+ <35f> DW_AT_decl_file : 2
+ <360> DW_AT_decl_line : 557
+ <362> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><365>: Abbrev Number: 5 (DW_TAG_member)
+ <366> DW_AT_name : (indirect string, offset: 0x2c7): clips
+ <36a> DW_AT_type : <0x3f5>
+ <36e> DW_AT_decl_file : 2
+ <36f> DW_AT_decl_line : 558
+ <371> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><374>: Abbrev Number: 5 (DW_TAG_member)
+ <375> DW_AT_name : (indirect string, offset: 0x2de): clipcount
+ <379> DW_AT_type : <0xe2>
+ <37d> DW_AT_decl_file : 2
+ <37e> DW_AT_decl_line : 559
+ <380> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><383>: Abbrev Number: 5 (DW_TAG_member)
+ <384> DW_AT_name : (indirect string, offset: 0x2e8): bitmap
+ <388> DW_AT_type : <0x422>
+ <38c> DW_AT_decl_file : 2
+ <38d> DW_AT_decl_line : 560
+ <38f> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><392>: Abbrev Number: 5 (DW_TAG_member)
+ <393> DW_AT_name : (indirect string, offset: 0x2ef): global_alpha
+ <397> DW_AT_type : <0x310>
+ <39b> DW_AT_decl_file : 2
+ <39c> DW_AT_decl_line : 561
+ <39e> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><3a1>: Abbrev Number: 0
+ <1><3a2>: Abbrev Number: 8 (DW_TAG_structure_type)
+ <3a3> DW_AT_name : (indirect string, offset: 0x2b3): v4l2_rect
+ <3a7> DW_AT_byte_size : 16
+ <3a8> DW_AT_decl_file : 2
+ <3a9> DW_AT_decl_line : 135
+ <2><3aa>: Abbrev Number: 9 (DW_TAG_member)
+ <3ab> DW_AT_name : (indirect string, offset: 0x2a0): left
+ <3af> DW_AT_type : <0x3e3>
+ <3b3> DW_AT_decl_file : 2
+ <3b4> DW_AT_decl_line : 136
+ <3b5> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><3b8>: Abbrev Number: 9 (DW_TAG_member)
+ <3b9> DW_AT_name : (indirect string, offset: 0x2af): top
+ <3bd> DW_AT_type : <0x3e3>
+ <3c1> DW_AT_decl_file : 2
+ <3c2> DW_AT_decl_line : 137
+ <3c3> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><3c6>: Abbrev Number: 9 (DW_TAG_member)
+ <3c7> DW_AT_name : (indirect string, offset: 0x192): width
+ <3cb> DW_AT_type : <0xe2>
+ <3cf> DW_AT_decl_file : 2
+ <3d0> DW_AT_decl_line : 138
+ <3d1> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><3d4>: Abbrev Number: 9 (DW_TAG_member)
+ <3d5> DW_AT_name : (indirect string, offset: 0x198): height
+ <3d9> DW_AT_type : <0xe2>
+ <3dd> DW_AT_decl_file : 2
+ <3de> DW_AT_decl_line : 139
+ <3df> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><3e2>: Abbrev Number: 0
+ <1><3e3>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3e4> DW_AT_type : <0x3ee>
+ <3e8> DW_AT_name : (indirect string, offset: 0x2a9): __s32
+ <3ec> DW_AT_decl_file : 1
+ <3ed> DW_AT_decl_line : 27
+ <1><3ee>: Abbrev Number: 7 (DW_TAG_base_type)
+ <3ef> DW_AT_name : (indirect string, offset: 0x2a5): int
+ <3f3> DW_AT_encoding : 5 (signed)
+ <3f4> DW_AT_byte_size : 4
+ <1><3f5>: Abbrev Number: 16 (DW_TAG_pointer_type)
+ <3f6> DW_AT_type : <0x3fa>
+ <1><3fa>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3fb> DW_AT_name : (indirect string, offset: 0x2d4): v4l2_clip
+ <3ff> DW_AT_byte_size : 20
+ <400> DW_AT_decl_file : 2
+ <401> DW_AT_decl_line : 550
+ <2><403>: Abbrev Number: 5 (DW_TAG_member)
+ <404> DW_AT_name : (indirect string, offset: 0x2cd): c
+ <408> DW_AT_type : <0x3a2>
+ <40c> DW_AT_decl_file : 2
+ <40d> DW_AT_decl_line : 551
+ <40f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><412>: Abbrev Number: 5 (DW_TAG_member)
+ <413> DW_AT_name : (indirect string, offset: 0x2cf): next
+ <417> DW_AT_type : <0x3f5>
+ <41b> DW_AT_decl_file : 2
+ <41c> DW_AT_decl_line : 552
+ <41e> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><421>: Abbrev Number: 0
+ <1><422>: Abbrev Number: 17 (DW_TAG_pointer_type)
+ <1><423>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <424> DW_AT_name : (indirect string, offset: 0x34c): v4l2_vbi_format
+ <428> DW_AT_byte_size : 44
+ <429> DW_AT_decl_file : 2
+ <42a> DW_AT_decl_line : 1052
+ <2><42c>: Abbrev Number: 5 (DW_TAG_member)
+ <42d> DW_AT_name : (indirect string, offset: 0x30c): sampling_rate
+ <431> DW_AT_type : <0xe2>
+ <435> DW_AT_decl_file : 2
+ <436> DW_AT_decl_line : 1053
+ <438> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><43b>: Abbrev Number: 5 (DW_TAG_member)
+ <43c> DW_AT_name : (indirect string, offset: 0x31a): offset
+ <440> DW_AT_type : <0xe2>
+ <444> DW_AT_decl_file : 2
+ <445> DW_AT_decl_line : 1054
+ <447> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><44a>: Abbrev Number: 5 (DW_TAG_member)
+ <44b> DW_AT_name : (indirect string, offset: 0x321): samples_per_line
+ <44f> DW_AT_type : <0xe2>
+ <453> DW_AT_decl_file : 2
+ <454> DW_AT_decl_line : 1055
+ <456> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><459>: Abbrev Number: 5 (DW_TAG_member)
+ <45a> DW_AT_name : (indirect string, offset: 0x332): sample_format
+ <45e> DW_AT_type : <0xe2>
+ <462> DW_AT_decl_file : 2
+ <463> DW_AT_decl_line : 1056
+ <465> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><468>: Abbrev Number: 5 (DW_TAG_member)
+ <469> DW_AT_name : (indirect string, offset: 0x340): start
+ <46d> DW_AT_type : <0x4a5>
+ <471> DW_AT_decl_file : 2
+ <472> DW_AT_decl_line : 1057
+ <474> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><477>: Abbrev Number: 5 (DW_TAG_member)
+ <478> DW_AT_name : (indirect string, offset: 0x346): count
+ <47c> DW_AT_type : <0x4b2>
+ <480> DW_AT_decl_file : 2
+ <481> DW_AT_decl_line : 1058
+ <483> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><486>: Abbrev Number: 5 (DW_TAG_member)
+ <487> DW_AT_name : (indirect string, offset: 0x1d8): flags
+ <48b> DW_AT_type : <0xe2>
+ <48f> DW_AT_decl_file : 2
+ <490> DW_AT_decl_line : 1059
+ <492> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><495>: Abbrev Number: 5 (DW_TAG_member)
+ <496> DW_AT_name : (indirect string, offset: 0x228): reserved
+ <49a> DW_AT_type : <0x4b2>
+ <49e> DW_AT_decl_file : 2
+ <49f> DW_AT_decl_line : 1060
+ <4a1> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><4a4>: Abbrev Number: 0
+ <1><4a5>: Abbrev Number: 13 (DW_TAG_array_type)
+ <4a6> DW_AT_type : <0x3e3>
+ <2><4aa>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <4ab> DW_AT_type : <0x309>
+ <4af> DW_AT_lower_bound : 0
+ <4b0> DW_AT_count : 2
+ <2><4b1>: Abbrev Number: 0
+ <1><4b2>: Abbrev Number: 13 (DW_TAG_array_type)
+ <4b3> DW_AT_type : <0xe2>
+ <2><4b7>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <4b8> DW_AT_type : <0x309>
+ <4bc> DW_AT_lower_bound : 0
+ <4bd> DW_AT_count : 2
+ <2><4be>: Abbrev Number: 0
+ <1><4bf>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <4c0> DW_AT_name : (indirect string, offset: 0x385): v4l2_sliced_vbi_format
+ <4c4> DW_AT_byte_size : 112
+ <4c5> DW_AT_decl_file : 2
+ <4c6> DW_AT_decl_line : 1068
+ <2><4c8>: Abbrev Number: 5 (DW_TAG_member)
+ <4c9> DW_AT_name : (indirect string, offset: 0x363): service_set
+ <4cd> DW_AT_type : <0x2f7>
+ <4d1> DW_AT_decl_file : 2
+ <4d2> DW_AT_decl_line : 1069
+ <4d4> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><4d7>: Abbrev Number: 5 (DW_TAG_member)
+ <4d8> DW_AT_name : (indirect string, offset: 0x36f): service_lines
+ <4dc> DW_AT_type : <0x505>
+ <4e0> DW_AT_decl_file : 2
+ <4e1> DW_AT_decl_line : 1070
+ <4e3> DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+ <2><4e6>: Abbrev Number: 5 (DW_TAG_member)
+ <4e7> DW_AT_name : (indirect string, offset: 0x37d): io_size
+ <4eb> DW_AT_type : <0xe2>
+ <4ef> DW_AT_decl_file : 2
+ <4f0> DW_AT_decl_line : 1071
+ <4f2> DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
+ <2><4f5>: Abbrev Number: 5 (DW_TAG_member)
+ <4f6> DW_AT_name : (indirect string, offset: 0x228): reserved
+ <4fa> DW_AT_type : <0x4b2>
+ <4fe> DW_AT_decl_file : 2
+ <4ff> DW_AT_decl_line : 1072
+ <501> DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
+ <2><504>: Abbrev Number: 0
+ <1><505>: Abbrev Number: 13 (DW_TAG_array_type)
+ <506> DW_AT_type : <0x2f7>
+ <2><50a>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <50b> DW_AT_type : <0x309>
+ <50f> DW_AT_lower_bound : 0
+ <510> DW_AT_count : 2
+ <2><511>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <512> DW_AT_type : <0x309>
+ <516> DW_AT_lower_bound : 0
+ <517> DW_AT_count : 24
+ <2><518>: Abbrev Number: 0
+ <1><519>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <51a> DW_AT_name : (indirect string, offset: 0x3ab): v4l2_sdr_format
+ <51e> DW_AT_byte_size : 32
+ <51f> DW_AT_decl_file : 2
+ <520> DW_AT_decl_line : 1139
+ <2><522>: Abbrev Number: 5 (DW_TAG_member)
+ <523> DW_AT_name : (indirect string, offset: 0x19f): pixelformat
+ <527> DW_AT_type : <0xe2>
+ <52b> DW_AT_decl_file : 2
+ <52c> DW_AT_decl_line : 1140
+ <52e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><531>: Abbrev Number: 5 (DW_TAG_member)
+ <532> DW_AT_name : (indirect string, offset: 0x3a0): buffersize
+ <536> DW_AT_type : <0xe2>
+ <53a> DW_AT_decl_file : 2
+ <53b> DW_AT_decl_line : 1141
+ <53d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><540>: Abbrev Number: 5 (DW_TAG_member)
+ <541> DW_AT_name : (indirect string, offset: 0x228): reserved
+ <545> DW_AT_type : <0x550>
+ <549> DW_AT_decl_file : 2
+ <54a> DW_AT_decl_line : 1142
+ <54c> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><54f>: Abbrev Number: 0
+ <1><550>: Abbrev Number: 13 (DW_TAG_array_type)
+ <551> DW_AT_type : <0x310>
+ <2><555>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <556> DW_AT_type : <0x309>
+ <55a> DW_AT_lower_bound : 0
+ <55b> DW_AT_count : 24
+ <2><55c>: Abbrev Number: 0
+ <1><55d>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <55e> DW_AT_name : (indirect string, offset: 0x3cb): v4l2_meta_format
+ <562> DW_AT_byte_size : 8
+ <563> DW_AT_decl_file : 2
+ <564> DW_AT_decl_line : 1144
+ <2><566>: Abbrev Number: 5 (DW_TAG_member)
+ <567> DW_AT_name : (indirect string, offset: 0x3c0): dataformat
+ <56b> DW_AT_type : <0xe2>
+ <56f> DW_AT_decl_file : 2
+ <570> DW_AT_decl_line : 1145
+ <572> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><575>: Abbrev Number: 5 (DW_TAG_member)
+ <576> DW_AT_name : (indirect string, offset: 0x3a0): buffersize
+ <57a> DW_AT_type : <0xe2>
+ <57e> DW_AT_decl_file : 2
+ <57f> DW_AT_decl_line : 1146
+ <581> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><584>: Abbrev Number: 0
+ <1><585>: Abbrev Number: 13 (DW_TAG_array_type)
+ <586> DW_AT_type : <0x310>
+ <2><58a>: Abbrev Number: 14 (DW_TAG_subrange_type)
+ <58b> DW_AT_type : <0x309>
+ <58f> DW_AT_lower_bound : 0
+ <590> DW_AT_count : 200
+ <2><591>: Abbrev Number: 0
+ <1><592>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_format.d2 b/mpers-m32/struct_v4l2_format.d2
index b5b5168..e80bdc1 100644
--- a/mpers-m32/struct_v4l2_format.d2
+++ b/mpers-m32/struct_v4l2_format.d2
@@ -1,713 +1,713 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x97): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x161): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x327): struct_v4l2_format
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x3f1): struct_v4l2_format
DW_AT_decl_file : 3
DW_AT_decl_line : 48
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x31b): v4l2_format
+DW_AT_name : (indirect string, offset: 0x3e5): v4l2_format
DW_AT_byte_size : 204
DW_AT_decl_file : 2
-DW_AT_decl_line : 1141
-<2><44>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa8): type
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1142
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc0): fmt
-DW_AT_type : <0x62>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1152
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><62>
-Abbrev Number: 6 (DW_TAG_union_type)
-DW_AT_byte_size : 200
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1143
-<3><67>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc4): pix
-DW_AT_type : <0xf3>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1144
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><76>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x14d): pix_mp
-DW_AT_type : <0x1c1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1145
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><85>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d0): win
-DW_AT_type : <0x32e>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1146
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><94>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x23e): vbi
-DW_AT_type : <0x422>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1147
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><a3>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x292): sliced
-DW_AT_type : <0x4be>
-DW_AT_decl_file : 2
DW_AT_decl_line : 1148
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><b2>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2d2): sdr
-DW_AT_type : <0x518>
+DW_AT_name : (indirect string, offset: 0x172): type
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 1149
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><c1>
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f1): meta
-DW_AT_type : <0x55c>
+DW_AT_name : (indirect string, offset: 0x18a): fmt
+DW_AT_type : <0x63>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1159
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><63>
+Abbrev Number: 6 (DW_TAG_union_type)
+DW_AT_byte_size : 200
DW_AT_decl_file : 2
DW_AT_decl_line : 1150
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><d0>
+<3><68>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x312): raw_data
-DW_AT_type : <0x584>
+DW_AT_name : (indirect string, offset: 0x18e): pix
+DW_AT_type : <0xf4>
DW_AT_decl_file : 2
DW_AT_decl_line : 1151
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<1><e1>
+<3><77>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x217): pix_mp
+DW_AT_type : <0x1c2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1152
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><86>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x29a): win
+DW_AT_type : <0x32f>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1153
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><95>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x308): vbi
+DW_AT_type : <0x423>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1154
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><a4>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x35c): sliced
+DW_AT_type : <0x4bf>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1155
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><b3>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x39c): sdr
+DW_AT_type : <0x519>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1156
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><c2>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3bb): meta
+DW_AT_type : <0x55d>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1157
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><d1>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3dc): raw_data
+DW_AT_type : <0x585>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1158
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<1><e2>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xec>
-DW_AT_name : (indirect string, offset: 0xba): __u32
+DW_AT_type : <0xed>
+DW_AT_name : (indirect string, offset: 0x184): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><ec>
+<1><ed>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xad): unsigned int
+DW_AT_name : (indirect string, offset: 0x177): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><f3>
+<1><f4>
Abbrev Number: 8 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x13d): v4l2_pix_format
+DW_AT_name : (indirect string, offset: 0x207): v4l2_pix_format
DW_AT_byte_size : 48
DW_AT_decl_file : 2
DW_AT_decl_line : 182
-<2><fb>
+<2><fc>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc8): width
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x192): width
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 183
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><109>
+<2><10a>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xce): height
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x198): height
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 184
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><117>
+<2><118>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd5): pixelformat
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x19f): pixelformat
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 185
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><125>
+<2><126>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): field
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1ab): field
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 186
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><133>
+<2><134>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe7): bytesperline
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1b1): bytesperline
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 187
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><141>
+<2><142>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf4): sizeimage
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1be): sizeimage
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 188
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><14f>
+<2><150>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfe): colorspace
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1c8): colorspace
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 189
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><15d>
+<2><15e>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x109): priv
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1d3): priv
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 190
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><16b>
+<2><16c>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10e): flags
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1d8): flags
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 191
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><179>
+<2><17a>
Abbrev Number: 10 (DW_TAG_member)
-DW_AT_type : <0x183>
+DW_AT_type : <0x184>
DW_AT_decl_file : 2
DW_AT_decl_line : 192
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><183>
+<2><184>
Abbrev Number: 11 (DW_TAG_union_type)
DW_AT_byte_size : 4
DW_AT_decl_file : 2
DW_AT_decl_line : 192
-<3><187>
+<3><188>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x114): ycbcr_enc
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1de): ycbcr_enc
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 193
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><195>
+<3><196>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11e): hsv_enc
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1e8): hsv_enc
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 194
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1a4>
+<2><1a5>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x126): quantization
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1f0): quantization
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 196
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><1b2>
+<2><1b3>
Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x133): xfer_func
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1fd): xfer_func
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 197
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<1><1c1>
+<1><1c2>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1b9): v4l2_pix_format_mplane
+DW_AT_name : (indirect string, offset: 0x283): v4l2_pix_format_mplane
DW_AT_byte_size : 192
DW_AT_decl_file : 2
-DW_AT_decl_line : 1115
-<2><1ca>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc8): width
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1116
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><1d9>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xce): height
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1117
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><1e8>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd5): pixelformat
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1118
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><1f7>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): field
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1119
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><206>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfe): colorspace
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1120
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><215>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x154): plane_fmt
-DW_AT_type : <0x2a5>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1121
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><224>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x19b): num_planes
-DW_AT_type : <0x30f>
-DW_AT_decl_file : 2
DW_AT_decl_line : 1122
-DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
-<2><234>
+<2><1cb>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10e): flags
-DW_AT_type : <0x30f>
+DW_AT_name : (indirect string, offset: 0x192): width
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 1123
-DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
-<2><244>
-Abbrev Number: 12 (DW_TAG_member)
-DW_AT_type : <0x250>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><1da>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x198): height
+DW_AT_type : <0xe2>
DW_AT_decl_file : 2
DW_AT_decl_line : 1124
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><1e9>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x19f): pixelformat
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1125
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><1f8>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ab): field
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1126
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><207>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1c8): colorspace
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1127
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><216>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x21e): plane_fmt
+DW_AT_type : <0x2a6>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1128
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<2><225>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x265): num_planes
+DW_AT_type : <0x310>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1129
+DW_AT_data_member_location: 3 byte block: 23 b4 1 (DW_OP_plus_uconst: 180)
+<2><235>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1d8): flags
+DW_AT_type : <0x310>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1130
+DW_AT_data_member_location: 3 byte block: 23 b5 1 (DW_OP_plus_uconst: 181)
+<2><245>
+Abbrev Number: 12 (DW_TAG_member)
+DW_AT_type : <0x251>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1131
DW_AT_data_member_location: 3 byte block: 23 b6 1 (DW_OP_plus_uconst: 182)
-<2><250>
+<2><251>
Abbrev Number: 6 (DW_TAG_union_type)
DW_AT_byte_size : 1
DW_AT_decl_file : 2
-DW_AT_decl_line : 1124
-<3><255>
+DW_AT_decl_line : 1131
+<3><256>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x114): ycbcr_enc
-DW_AT_type : <0x30f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1125
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><264>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11e): hsv_enc
-DW_AT_type : <0x30f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1126
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><274>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x126): quantization
-DW_AT_type : <0x30f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1128
-DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
-<2><284>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x133): xfer_func
-DW_AT_type : <0x30f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1129
-DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
-<2><294>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): reserved
-DW_AT_type : <0x321>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1130
-DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
-<1><2a5>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x2b2>
-<2><2aa>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 8
-<1><2b2>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x185): v4l2_plane_pix_format
-DW_AT_byte_size : 20
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1110
-<2><2bb>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf4): sizeimage
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1111
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><2ca>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe7): bytesperline
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1112
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><2d9>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): reserved
-DW_AT_type : <0x2e9>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1113
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><2e9>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x2f6>
-<2><2ee>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 6
-<1><2f6>
-Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x301>
-DW_AT_name : (indirect string, offset: 0x176): __u16
-DW_AT_decl_file : 1
-DW_AT_decl_line : 26
-<1><301>
-Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x167): unsigned short
-DW_AT_encoding : 7 (unsigned)
-DW_AT_byte_size : 2
-<1><308>
-Abbrev Number: 15 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x17c): sizetype
-DW_AT_byte_size : 8
-DW_AT_encoding : 7 (unsigned)
-<1><30f>
-Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x31a>
-DW_AT_name : (indirect string, offset: 0x1b4): __u8
-DW_AT_decl_file : 1
-DW_AT_decl_line : 24
-<1><31a>
-Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1a6): unsigned char
-DW_AT_encoding : 8 (unsigned char)
-DW_AT_byte_size : 1
-<1><321>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x30f>
-<2><326>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 7
-<1><32e>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x232): v4l2_window
-DW_AT_byte_size : 40
-DW_AT_decl_file : 2
-DW_AT_decl_line : 547
-<2><337>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d4): w
-DW_AT_type : <0x3a1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 548
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><346>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): field
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 549
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><355>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1f3): chromakey
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 550
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><364>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1fd): clips
-DW_AT_type : <0x3f4>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 551
-DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><373>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x214): clipcount
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 552
-DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><382>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x21e): bitmap
-DW_AT_type : <0x421>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 553
-DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><391>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x225): global_alpha
-DW_AT_type : <0x30f>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 554
-DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<1><3a1>
-Abbrev Number: 8 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x1e9): v4l2_rect
-DW_AT_byte_size : 16
-DW_AT_decl_file : 2
-DW_AT_decl_line : 135
-<2><3a9>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1d6): left
-DW_AT_type : <0x3e2>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 136
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><3b7>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x1e5): top
-DW_AT_type : <0x3e2>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 137
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><3c5>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc8): width
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 138
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><3d3>
-Abbrev Number: 9 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xce): height
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 139
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><3e2>
-Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3ed>
-DW_AT_name : (indirect string, offset: 0x1df): __s32
-DW_AT_decl_file : 1
-DW_AT_decl_line : 27
-<1><3ed>
-Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x1db): int
-DW_AT_encoding : 5 (signed)
-DW_AT_byte_size : 4
-<1><3f4>
-Abbrev Number: 16 (DW_TAG_pointer_type)
-DW_AT_type : <0x3f9>
-<1><3f9>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x20a): v4l2_clip
-DW_AT_byte_size : 20
-DW_AT_decl_file : 2
-DW_AT_decl_line : 543
-<2><402>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x203): c
-DW_AT_type : <0x3a1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 544
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><411>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x205): next
-DW_AT_type : <0x3f4>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 545
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<1><421>
-Abbrev Number: 17 (DW_TAG_pointer_type)
-<1><422>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x282): v4l2_vbi_format
-DW_AT_byte_size : 44
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1045
-<2><42b>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x242): sampling_rate
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1046
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><43a>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x250): offset
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1047
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><449>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x257): samples_per_line
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1048
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><458>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x268): sample_format
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1049
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><467>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x276): start
-DW_AT_type : <0x4a4>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1050
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><476>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x27c): count
-DW_AT_type : <0x4b1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1051
-DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><485>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10e): flags
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1052
-DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><494>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): reserved
-DW_AT_type : <0x4b1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1053
-DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<1><4a4>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x3e2>
-<2><4a9>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 2
-<1><4b1>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0xe1>
-<2><4b6>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 2
-<1><4be>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x2bb): v4l2_sliced_vbi_format
-DW_AT_byte_size : 112
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1061
-<2><4c7>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x299): service_set
-DW_AT_type : <0x2f6>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1062
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><4d6>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2a5): service_lines
-DW_AT_type : <0x504>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1063
-DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
-<2><4e5>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2b3): io_size
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1064
-DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
-<2><4f4>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): reserved
-DW_AT_type : <0x4b1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1065
-DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
-<1><504>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x2f6>
-<2><509>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 2
-<2><510>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 24
-<1><518>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x2e1): v4l2_sdr_format
-DW_AT_byte_size : 32
+DW_AT_name : (indirect string, offset: 0x1de): ycbcr_enc
+DW_AT_type : <0x310>
DW_AT_decl_file : 2
DW_AT_decl_line : 1132
-<2><521>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><265>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd5): pixelformat
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1e8): hsv_enc
+DW_AT_type : <0x310>
DW_AT_decl_file : 2
DW_AT_decl_line : 1133
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><530>
+<2><275>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2d6): buffersize
-DW_AT_type : <0xe1>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 1134
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><53f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15e): reserved
-DW_AT_type : <0x54f>
+DW_AT_name : (indirect string, offset: 0x1f0): quantization
+DW_AT_type : <0x310>
DW_AT_decl_file : 2
DW_AT_decl_line : 1135
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<1><54f>
-Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x30f>
-<2><554>
-Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
-DW_AT_lower_bound : 0
-DW_AT_count : 24
-<1><55c>
-Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x301): v4l2_meta_format
-DW_AT_byte_size : 8
+DW_AT_data_member_location: 3 byte block: 23 b7 1 (DW_OP_plus_uconst: 183)
+<2><285>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1fd): xfer_func
+DW_AT_type : <0x310>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1136
+DW_AT_data_member_location: 3 byte block: 23 b8 1 (DW_OP_plus_uconst: 184)
+<2><295>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x228): reserved
+DW_AT_type : <0x322>
DW_AT_decl_file : 2
DW_AT_decl_line : 1137
-<2><565>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2f6): dataformat
-DW_AT_type : <0xe1>
+DW_AT_data_member_location: 3 byte block: 23 b9 1 (DW_OP_plus_uconst: 185)
+<1><2a6>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x2b3>
+<2><2ab>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 8
+<1><2b3>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x24f): v4l2_plane_pix_format
+DW_AT_byte_size : 20
DW_AT_decl_file : 2
-DW_AT_decl_line : 1138
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><574>
+DW_AT_decl_line : 1117
+<2><2bc>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x2d6): buffersize
-DW_AT_type : <0xe1>
+DW_AT_name : (indirect string, offset: 0x1be): sizeimage
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1118
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><2cb>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b1): bytesperline
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1119
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><2da>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x228): reserved
+DW_AT_type : <0x2ea>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1120
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<1><2ea>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x2f7>
+<2><2ef>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 6
+<1><2f7>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x302>
+DW_AT_name : (indirect string, offset: 0x240): __u16
+DW_AT_decl_file : 1
+DW_AT_decl_line : 26
+<1><302>
+Abbrev Number: 7 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x231): unsigned short
+DW_AT_encoding : 7 (unsigned)
+DW_AT_byte_size : 2
+<1><309>
+Abbrev Number: 15 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x246): sizetype
+DW_AT_byte_size : 8
+DW_AT_encoding : 7 (unsigned)
+<1><310>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x31b>
+DW_AT_name : (indirect string, offset: 0x27e): __u8
+DW_AT_decl_file : 1
+DW_AT_decl_line : 24
+<1><31b>
+Abbrev Number: 7 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x270): unsigned char
+DW_AT_encoding : 8 (unsigned char)
+DW_AT_byte_size : 1
+<1><322>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x310>
+<2><327>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 7
+<1><32f>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x2fc): v4l2_window
+DW_AT_byte_size : 40
+DW_AT_decl_file : 2
+DW_AT_decl_line : 554
+<2><338>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x29e): w
+DW_AT_type : <0x3a2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 555
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><347>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ab): field
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 556
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><356>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2bd): chromakey
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 557
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<2><365>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2c7): clips
+DW_AT_type : <0x3f5>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 558
+DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+<2><374>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2de): clipcount
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 559
+DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+<2><383>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2e8): bitmap
+DW_AT_type : <0x422>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 560
+DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+<2><392>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2ef): global_alpha
+DW_AT_type : <0x310>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 561
+DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+<1><3a2>
+Abbrev Number: 8 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x2b3): v4l2_rect
+DW_AT_byte_size : 16
+DW_AT_decl_file : 2
+DW_AT_decl_line : 135
+<2><3aa>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2a0): left
+DW_AT_type : <0x3e3>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 136
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><3b8>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2af): top
+DW_AT_type : <0x3e3>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 137
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><3c6>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x192): width
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 138
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><3d4>
+Abbrev Number: 9 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x198): height
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 139
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<1><3e3>
+Abbrev Number: 3 (DW_TAG_typedef)
+DW_AT_type : <0x3ee>
+DW_AT_name : (indirect string, offset: 0x2a9): __s32
+DW_AT_decl_file : 1
+DW_AT_decl_line : 27
+<1><3ee>
+Abbrev Number: 7 (DW_TAG_base_type)
+DW_AT_name : (indirect string, offset: 0x2a5): int
+DW_AT_encoding : 5 (signed)
+DW_AT_byte_size : 4
+<1><3f5>
+Abbrev Number: 16 (DW_TAG_pointer_type)
+DW_AT_type : <0x3fa>
+<1><3fa>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x2d4): v4l2_clip
+DW_AT_byte_size : 20
+DW_AT_decl_file : 2
+DW_AT_decl_line : 550
+<2><403>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2cd): c
+DW_AT_type : <0x3a2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 551
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><412>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x2cf): next
+DW_AT_type : <0x3f5>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 552
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<1><422>
+Abbrev Number: 17 (DW_TAG_pointer_type)
+<1><423>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x34c): v4l2_vbi_format
+DW_AT_byte_size : 44
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1052
+<2><42c>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x30c): sampling_rate
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1053
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><43b>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x31a): offset
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1054
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><44a>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x321): samples_per_line
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1055
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<2><459>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x332): sample_format
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1056
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<2><468>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x340): start
+DW_AT_type : <0x4a5>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1057
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<2><477>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x346): count
+DW_AT_type : <0x4b2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1058
+DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+<2><486>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1d8): flags
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1059
+DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+<2><495>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x228): reserved
+DW_AT_type : <0x4b2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1060
+DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+<1><4a5>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x3e3>
+<2><4aa>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 2
+<1><4b2>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0xe2>
+<2><4b7>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 2
+<1><4bf>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x385): v4l2_sliced_vbi_format
+DW_AT_byte_size : 112
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1068
+<2><4c8>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x363): service_set
+DW_AT_type : <0x2f7>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1069
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><4d7>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x36f): service_lines
+DW_AT_type : <0x505>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1070
+DW_AT_data_member_location: 2 byte block: 23 2 (DW_OP_plus_uconst: 2)
+<2><4e6>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x37d): io_size
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1071
+DW_AT_data_member_location: 2 byte block: 23 64 (DW_OP_plus_uconst: 100)
+<2><4f5>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x228): reserved
+DW_AT_type : <0x4b2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1072
+DW_AT_data_member_location: 2 byte block: 23 68 (DW_OP_plus_uconst: 104)
+<1><505>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x2f7>
+<2><50a>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 2
+<2><511>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 24
+<1><519>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x3ab): v4l2_sdr_format
+DW_AT_byte_size : 32
DW_AT_decl_file : 2
DW_AT_decl_line : 1139
+<2><522>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x19f): pixelformat
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1140
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><531>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3a0): buffersize
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1141
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><584>
+<2><540>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x228): reserved
+DW_AT_type : <0x550>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1142
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<1><550>
Abbrev Number: 13 (DW_TAG_array_type)
-DW_AT_type : <0x30f>
-<2><589>
+DW_AT_type : <0x310>
+<2><555>
Abbrev Number: 14 (DW_TAG_subrange_type)
-DW_AT_type : <0x308>
+DW_AT_type : <0x309>
+DW_AT_lower_bound : 0
+DW_AT_count : 24
+<1><55d>
+Abbrev Number: 4 (DW_TAG_structure_type)
+DW_AT_name : (indirect string, offset: 0x3cb): v4l2_meta_format
+DW_AT_byte_size : 8
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1144
+<2><566>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3c0): dataformat
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1145
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><575>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x3a0): buffersize
+DW_AT_type : <0xe2>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 1146
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<1><585>
+Abbrev Number: 13 (DW_TAG_array_type)
+DW_AT_type : <0x310>
+<2><58a>
+Abbrev Number: 14 (DW_TAG_subrange_type)
+DW_AT_type : <0x309>
DW_AT_lower_bound : 0
DW_AT_count : 200
diff --git a/mpers-m32/struct_v4l2_framebuffer.d1 b/mpers-m32/struct_v4l2_framebuffer.d1
index c8bf45d..dbba7d5 100644
--- a/mpers-m32/struct_v4l2_framebuffer.d1
+++ b/mpers-m32/struct_v4l2_framebuffer.d1
@@ -1,120 +1,121 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x10f (32-bit)
+ Length: 0x110 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_framebuffer.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_framebuffer.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x61): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x9c): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x131): struct_v4l2_framebuffer
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 49
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x120): v4l2_framebuffer
- <40> DW_AT_byte_size : 44
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 513
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xad): capability
- <49> DW_AT_type : <0xff>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 514
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xcb): flags
- <58> DW_AT_type : <0xff>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 515
- <5f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xd1): base
- <67> DW_AT_type : <0x111>
- <6b> DW_AT_decl_file : 2
- <6c> DW_AT_decl_line : 516
- <6e> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0xd6): fmt
- <76> DW_AT_type : <0x80>
- <7a> DW_AT_decl_file : 2
- <7b> DW_AT_decl_line : 526
- <7d> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><80>: Abbrev Number: 6 (DW_TAG_structure_type)
- <81> DW_AT_byte_size : 32
- <82> DW_AT_decl_file : 2
- <83> DW_AT_decl_line : 517
- <3><85>: Abbrev Number: 5 (DW_TAG_member)
- <86> DW_AT_name : (indirect string, offset: 0xda): width
- <8a> DW_AT_type : <0xff>
- <8e> DW_AT_decl_file : 2
- <8f> DW_AT_decl_line : 518
- <91> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <3><94>: Abbrev Number: 5 (DW_TAG_member)
- <95> DW_AT_name : (indirect string, offset: 0xe0): height
- <99> DW_AT_type : <0xff>
- <9d> DW_AT_decl_file : 2
- <9e> DW_AT_decl_line : 519
- <a0> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <3><a3>: Abbrev Number: 5 (DW_TAG_member)
- <a4> DW_AT_name : (indirect string, offset: 0xe7): pixelformat
- <a8> DW_AT_type : <0xff>
- <ac> DW_AT_decl_file : 2
- <ad> DW_AT_decl_line : 520
- <af> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <3><b2>: Abbrev Number: 5 (DW_TAG_member)
- <b3> DW_AT_name : (indirect string, offset: 0xf3): field
- <b7> DW_AT_type : <0xff>
- <bb> DW_AT_decl_file : 2
- <bc> DW_AT_decl_line : 521
- <be> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <3><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0xf9): bytesperline
- <c6> DW_AT_type : <0xff>
- <ca> DW_AT_decl_file : 2
- <cb> DW_AT_decl_line : 522
- <cd> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <3><d0>: Abbrev Number: 5 (DW_TAG_member)
- <d1> DW_AT_name : (indirect string, offset: 0x106): sizeimage
- <d5> DW_AT_type : <0xff>
- <d9> DW_AT_decl_file : 2
- <da> DW_AT_decl_line : 523
- <dc> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <3><df>: Abbrev Number: 5 (DW_TAG_member)
- <e0> DW_AT_name : (indirect string, offset: 0x110): colorspace
- <e4> DW_AT_type : <0xff>
- <e8> DW_AT_decl_file : 2
- <e9> DW_AT_decl_line : 524
- <eb> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <3><ee>: Abbrev Number: 5 (DW_TAG_member)
- <ef> DW_AT_name : (indirect string, offset: 0x11b): priv
- <f3> DW_AT_type : <0xff>
- <f7> DW_AT_decl_file : 2
- <f8> DW_AT_decl_line : 525
- <fa> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <3><fd>: Abbrev Number: 0
- <2><fe>: Abbrev Number: 0
- <1><ff>: Abbrev Number: 3 (DW_TAG_typedef)
- <100> DW_AT_type : <0x10a>
- <104> DW_AT_name : (indirect string, offset: 0xc5): __u32
- <108> DW_AT_decl_file : 1
- <109> DW_AT_decl_line : 28
- <1><10a>: Abbrev Number: 7 (DW_TAG_base_type)
- <10b> DW_AT_name : (indirect string, offset: 0xb8): unsigned int
- <10f> DW_AT_encoding : 7 (unsigned)
- <110> DW_AT_byte_size : 4
- <1><111>: Abbrev Number: 8 (DW_TAG_pointer_type)
- <1><112>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x12b): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x166): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1fb): struct_v4l2_framebuffer
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 49
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1ea): v4l2_framebuffer
+ <41> DW_AT_byte_size : 44
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 520
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x177): capability
+ <4a> DW_AT_type : <0x100>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 521
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x195): flags
+ <59> DW_AT_type : <0x100>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 522
+ <60> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x19b): base
+ <68> DW_AT_type : <0x112>
+ <6c> DW_AT_decl_file : 2
+ <6d> DW_AT_decl_line : 523
+ <6f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x1a0): fmt
+ <77> DW_AT_type : <0x81>
+ <7b> DW_AT_decl_file : 2
+ <7c> DW_AT_decl_line : 533
+ <7e> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><81>: Abbrev Number: 6 (DW_TAG_structure_type)
+ <82> DW_AT_byte_size : 32
+ <83> DW_AT_decl_file : 2
+ <84> DW_AT_decl_line : 524
+ <3><86>: Abbrev Number: 5 (DW_TAG_member)
+ <87> DW_AT_name : (indirect string, offset: 0x1a4): width
+ <8b> DW_AT_type : <0x100>
+ <8f> DW_AT_decl_file : 2
+ <90> DW_AT_decl_line : 525
+ <92> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <3><95>: Abbrev Number: 5 (DW_TAG_member)
+ <96> DW_AT_name : (indirect string, offset: 0x1aa): height
+ <9a> DW_AT_type : <0x100>
+ <9e> DW_AT_decl_file : 2
+ <9f> DW_AT_decl_line : 526
+ <a1> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <3><a4>: Abbrev Number: 5 (DW_TAG_member)
+ <a5> DW_AT_name : (indirect string, offset: 0x1b1): pixelformat
+ <a9> DW_AT_type : <0x100>
+ <ad> DW_AT_decl_file : 2
+ <ae> DW_AT_decl_line : 527
+ <b0> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <3><b3>: Abbrev Number: 5 (DW_TAG_member)
+ <b4> DW_AT_name : (indirect string, offset: 0x1bd): field
+ <b8> DW_AT_type : <0x100>
+ <bc> DW_AT_decl_file : 2
+ <bd> DW_AT_decl_line : 528
+ <bf> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <3><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x1c3): bytesperline
+ <c7> DW_AT_type : <0x100>
+ <cb> DW_AT_decl_file : 2
+ <cc> DW_AT_decl_line : 529
+ <ce> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <3><d1>: Abbrev Number: 5 (DW_TAG_member)
+ <d2> DW_AT_name : (indirect string, offset: 0x1d0): sizeimage
+ <d6> DW_AT_type : <0x100>
+ <da> DW_AT_decl_file : 2
+ <db> DW_AT_decl_line : 530
+ <dd> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <3><e0>: Abbrev Number: 5 (DW_TAG_member)
+ <e1> DW_AT_name : (indirect string, offset: 0x1da): colorspace
+ <e5> DW_AT_type : <0x100>
+ <e9> DW_AT_decl_file : 2
+ <ea> DW_AT_decl_line : 531
+ <ec> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <3><ef>: Abbrev Number: 5 (DW_TAG_member)
+ <f0> DW_AT_name : (indirect string, offset: 0x1e5): priv
+ <f4> DW_AT_type : <0x100>
+ <f8> DW_AT_decl_file : 2
+ <f9> DW_AT_decl_line : 532
+ <fb> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <3><fe>: Abbrev Number: 0
+ <2><ff>: Abbrev Number: 0
+ <1><100>: Abbrev Number: 3 (DW_TAG_typedef)
+ <101> DW_AT_type : <0x10b>
+ <105> DW_AT_name : (indirect string, offset: 0x18f): __u32
+ <109> DW_AT_decl_file : 1
+ <10a> DW_AT_decl_line : 28
+ <1><10b>: Abbrev Number: 7 (DW_TAG_base_type)
+ <10c> DW_AT_name : (indirect string, offset: 0x182): unsigned int
+ <110> DW_AT_encoding : 7 (unsigned)
+ <111> DW_AT_byte_size : 4
+ <1><112>: Abbrev Number: 8 (DW_TAG_pointer_type)
+ <1><113>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_framebuffer.d2 b/mpers-m32/struct_v4l2_framebuffer.d2
index ea46f28..00b24c1 100644
--- a/mpers-m32/struct_v4l2_framebuffer.d2
+++ b/mpers-m32/struct_v4l2_framebuffer.d2
@@ -1,122 +1,122 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x9c): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x166): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x131): struct_v4l2_framebuffer
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1fb): struct_v4l2_framebuffer
DW_AT_decl_file : 3
DW_AT_decl_line : 49
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x120): v4l2_framebuffer
+DW_AT_name : (indirect string, offset: 0x1ea): v4l2_framebuffer
DW_AT_byte_size : 44
DW_AT_decl_file : 2
-DW_AT_decl_line : 513
-<2><44>
+DW_AT_decl_line : 520
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xad): capability
-DW_AT_type : <0xff>
+DW_AT_name : (indirect string, offset: 0x177): capability
+DW_AT_type : <0x100>
DW_AT_decl_file : 2
-DW_AT_decl_line : 514
+DW_AT_decl_line : 521
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcb): flags
-DW_AT_type : <0xff>
+DW_AT_name : (indirect string, offset: 0x195): flags
+DW_AT_type : <0x100>
DW_AT_decl_file : 2
-DW_AT_decl_line : 515
+DW_AT_decl_line : 522
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><62>
+<2><63>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd1): base
-DW_AT_type : <0x111>
+DW_AT_name : (indirect string, offset: 0x19b): base
+DW_AT_type : <0x112>
DW_AT_decl_file : 2
-DW_AT_decl_line : 516
+DW_AT_decl_line : 523
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><71>
+<2><72>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd6): fmt
-DW_AT_type : <0x80>
+DW_AT_name : (indirect string, offset: 0x1a0): fmt
+DW_AT_type : <0x81>
DW_AT_decl_file : 2
-DW_AT_decl_line : 526
+DW_AT_decl_line : 533
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<2><80>
+<2><81>
Abbrev Number: 6 (DW_TAG_structure_type)
DW_AT_byte_size : 32
DW_AT_decl_file : 2
-DW_AT_decl_line : 517
-<3><85>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xda): width
-DW_AT_type : <0xff>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 518
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<3><94>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe0): height
-DW_AT_type : <0xff>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 519
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<3><a3>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe7): pixelformat
-DW_AT_type : <0xff>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 520
-DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<3><b2>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf3): field
-DW_AT_type : <0xff>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 521
-DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<3><c1>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf9): bytesperline
-DW_AT_type : <0xff>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 522
-DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<3><d0>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x106): sizeimage
-DW_AT_type : <0xff>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 523
-DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<3><df>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x110): colorspace
-DW_AT_type : <0xff>
-DW_AT_decl_file : 2
DW_AT_decl_line : 524
-DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<3><ee>
+<3><86>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11b): priv
-DW_AT_type : <0xff>
+DW_AT_name : (indirect string, offset: 0x1a4): width
+DW_AT_type : <0x100>
DW_AT_decl_file : 2
DW_AT_decl_line : 525
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<3><95>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1aa): height
+DW_AT_type : <0x100>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 526
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<3><a4>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b1): pixelformat
+DW_AT_type : <0x100>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 527
+DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+<3><b3>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1bd): field
+DW_AT_type : <0x100>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 528
+DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+<3><c2>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1c3): bytesperline
+DW_AT_type : <0x100>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 529
+DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+<3><d1>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1d0): sizeimage
+DW_AT_type : <0x100>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 530
+DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+<3><e0>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1da): colorspace
+DW_AT_type : <0x100>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 531
+DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+<3><ef>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1e5): priv
+DW_AT_type : <0x100>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 532
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<1><ff>
+<1><100>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x10a>
-DW_AT_name : (indirect string, offset: 0xc5): __u32
+DW_AT_type : <0x10b>
+DW_AT_name : (indirect string, offset: 0x18f): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><10a>
+<1><10b>
Abbrev Number: 7 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb8): unsigned int
+DW_AT_name : (indirect string, offset: 0x182): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><111>
+<1><112>
Abbrev Number: 8 (DW_TAG_pointer_type)
diff --git a/mpers-m32/struct_v4l2_input.d1 b/mpers-m32/struct_v4l2_input.d1
index d7d4835..45bda20 100644
--- a/mpers-m32/struct_v4l2_input.d1
+++ b/mpers-m32/struct_v4l2_input.d1
@@ -1,137 +1,138 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x12c (32-bit)
+ Length: 0x12d (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_input.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_input.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5b): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x96): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x14a): struct_v4l2_input
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 50
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x13f): v4l2_input
- <40> DW_AT_byte_size : 80
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 728
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xa7): index
- <49> DW_AT_type : <0xcc>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 729
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xc0): name
- <58> DW_AT_type : <0xde>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 730
- <5f> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xe1): type
- <67> DW_AT_type : <0xcc>
- <6b> DW_AT_decl_file : 2
- <6c> DW_AT_decl_line : 731
- <6e> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0xe6): audioset
- <76> DW_AT_type : <0xcc>
- <7a> DW_AT_decl_file : 2
- <7b> DW_AT_decl_line : 732
- <7d> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><80>: Abbrev Number: 5 (DW_TAG_member)
- <81> DW_AT_name : (indirect string, offset: 0xef): tuner
- <85> DW_AT_type : <0xcc>
- <89> DW_AT_decl_file : 2
- <8a> DW_AT_decl_line : 733
- <8c> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><8f>: Abbrev Number: 5 (DW_TAG_member)
- <90> DW_AT_name : (indirect string, offset: 0xf5): std
- <94> DW_AT_type : <0x104>
- <98> DW_AT_decl_file : 2
- <99> DW_AT_decl_line : 734
- <9b> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><9e>: Abbrev Number: 5 (DW_TAG_member)
- <9f> DW_AT_name : (indirect string, offset: 0x122): status
- <a3> DW_AT_type : <0xcc>
- <a7> DW_AT_decl_file : 2
- <a8> DW_AT_decl_line : 735
- <aa> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><ad>: Abbrev Number: 5 (DW_TAG_member)
- <ae> DW_AT_name : (indirect string, offset: 0x129): capabilities
- <b2> DW_AT_type : <0xcc>
- <b6> DW_AT_decl_file : 2
- <b7> DW_AT_decl_line : 736
- <b9> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
- <2><bc>: Abbrev Number: 5 (DW_TAG_member)
- <bd> DW_AT_name : (indirect string, offset: 0x136): reserved
- <c1> DW_AT_type : <0x122>
- <c5> DW_AT_decl_file : 2
- <c6> DW_AT_decl_line : 737
- <c8> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
- <2><cb>: Abbrev Number: 0
- <1><cc>: Abbrev Number: 3 (DW_TAG_typedef)
- <cd> DW_AT_type : <0xd7>
- <d1> DW_AT_name : (indirect string, offset: 0xba): __u32
- <d5> DW_AT_decl_file : 1
- <d6> DW_AT_decl_line : 28
- <1><d7>: Abbrev Number: 6 (DW_TAG_base_type)
- <d8> DW_AT_name : (indirect string, offset: 0xad): unsigned int
- <dc> DW_AT_encoding : 7 (unsigned)
- <dd> DW_AT_byte_size : 4
- <1><de>: Abbrev Number: 7 (DW_TAG_array_type)
- <df> DW_AT_type : <0xeb>
- <2><e3>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <e4> DW_AT_type : <0xfd>
- <e8> DW_AT_lower_bound : 0
- <e9> DW_AT_count : 32
- <2><ea>: Abbrev Number: 0
- <1><eb>: Abbrev Number: 3 (DW_TAG_typedef)
- <ec> DW_AT_type : <0xf6>
- <f0> DW_AT_name : (indirect string, offset: 0xd3): __u8
- <f4> DW_AT_decl_file : 1
- <f5> DW_AT_decl_line : 24
- <1><f6>: Abbrev Number: 6 (DW_TAG_base_type)
- <f7> DW_AT_name : (indirect string, offset: 0xc5): unsigned char
- <fb> DW_AT_encoding : 8 (unsigned char)
- <fc> DW_AT_byte_size : 1
- <1><fd>: Abbrev Number: 9 (DW_TAG_base_type)
- <fe> DW_AT_name : (indirect string, offset: 0xd8): sizetype
- <102> DW_AT_byte_size : 8
- <103> DW_AT_encoding : 7 (unsigned)
- <1><104>: Abbrev Number: 10 (DW_TAG_typedef)
- <105> DW_AT_type : <0x110>
- <109> DW_AT_name : (indirect string, offset: 0x116): v4l2_std_id
- <10d> DW_AT_decl_file : 2
- <10e> DW_AT_decl_line : 591
- <1><110>: Abbrev Number: 3 (DW_TAG_typedef)
- <111> DW_AT_type : <0x11b>
- <115> DW_AT_name : (indirect string, offset: 0x110): __u64
- <119> DW_AT_decl_file : 1
- <11a> DW_AT_decl_line : 31
- <1><11b>: Abbrev Number: 6 (DW_TAG_base_type)
- <11c> DW_AT_name : (indirect string, offset: 0xf9): long long unsigned int
- <120> DW_AT_encoding : 7 (unsigned)
- <121> DW_AT_byte_size : 8
- <1><122>: Abbrev Number: 7 (DW_TAG_array_type)
- <123> DW_AT_type : <0xcc>
- <2><127>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <128> DW_AT_type : <0xfd>
- <12c> DW_AT_lower_bound : 0
- <12d> DW_AT_count : 3
- <2><12e>: Abbrev Number: 0
- <1><12f>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x125): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x160): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x214): struct_v4l2_input
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 50
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x209): v4l2_input
+ <41> DW_AT_byte_size : 80
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 735
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x171): index
+ <4a> DW_AT_type : <0xcd>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 736
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x18a): name
+ <59> DW_AT_type : <0xdf>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 737
+ <60> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x1ab): type
+ <68> DW_AT_type : <0xcd>
+ <6c> DW_AT_decl_file : 2
+ <6d> DW_AT_decl_line : 738
+ <6f> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x1b0): audioset
+ <77> DW_AT_type : <0xcd>
+ <7b> DW_AT_decl_file : 2
+ <7c> DW_AT_decl_line : 739
+ <7e> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><81>: Abbrev Number: 5 (DW_TAG_member)
+ <82> DW_AT_name : (indirect string, offset: 0x1b9): tuner
+ <86> DW_AT_type : <0xcd>
+ <8a> DW_AT_decl_file : 2
+ <8b> DW_AT_decl_line : 740
+ <8d> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><90>: Abbrev Number: 5 (DW_TAG_member)
+ <91> DW_AT_name : (indirect string, offset: 0x1bf): std
+ <95> DW_AT_type : <0x105>
+ <99> DW_AT_decl_file : 2
+ <9a> DW_AT_decl_line : 741
+ <9c> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><9f>: Abbrev Number: 5 (DW_TAG_member)
+ <a0> DW_AT_name : (indirect string, offset: 0x1ec): status
+ <a4> DW_AT_type : <0xcd>
+ <a8> DW_AT_decl_file : 2
+ <a9> DW_AT_decl_line : 742
+ <ab> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><ae>: Abbrev Number: 5 (DW_TAG_member)
+ <af> DW_AT_name : (indirect string, offset: 0x1f3): capabilities
+ <b3> DW_AT_type : <0xcd>
+ <b7> DW_AT_decl_file : 2
+ <b8> DW_AT_decl_line : 743
+ <ba> DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+ <2><bd>: Abbrev Number: 5 (DW_TAG_member)
+ <be> DW_AT_name : (indirect string, offset: 0x200): reserved
+ <c2> DW_AT_type : <0x123>
+ <c6> DW_AT_decl_file : 2
+ <c7> DW_AT_decl_line : 744
+ <c9> DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
+ <2><cc>: Abbrev Number: 0
+ <1><cd>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ce> DW_AT_type : <0xd8>
+ <d2> DW_AT_name : (indirect string, offset: 0x184): __u32
+ <d6> DW_AT_decl_file : 1
+ <d7> DW_AT_decl_line : 28
+ <1><d8>: Abbrev Number: 6 (DW_TAG_base_type)
+ <d9> DW_AT_name : (indirect string, offset: 0x177): unsigned int
+ <dd> DW_AT_encoding : 7 (unsigned)
+ <de> DW_AT_byte_size : 4
+ <1><df>: Abbrev Number: 7 (DW_TAG_array_type)
+ <e0> DW_AT_type : <0xec>
+ <2><e4>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <e5> DW_AT_type : <0xfe>
+ <e9> DW_AT_lower_bound : 0
+ <ea> DW_AT_count : 32
+ <2><eb>: Abbrev Number: 0
+ <1><ec>: Abbrev Number: 3 (DW_TAG_typedef)
+ <ed> DW_AT_type : <0xf7>
+ <f1> DW_AT_name : (indirect string, offset: 0x19d): __u8
+ <f5> DW_AT_decl_file : 1
+ <f6> DW_AT_decl_line : 24
+ <1><f7>: Abbrev Number: 6 (DW_TAG_base_type)
+ <f8> DW_AT_name : (indirect string, offset: 0x18f): unsigned char
+ <fc> DW_AT_encoding : 8 (unsigned char)
+ <fd> DW_AT_byte_size : 1
+ <1><fe>: Abbrev Number: 9 (DW_TAG_base_type)
+ <ff> DW_AT_name : (indirect string, offset: 0x1a2): sizetype
+ <103> DW_AT_byte_size : 8
+ <104> DW_AT_encoding : 7 (unsigned)
+ <1><105>: Abbrev Number: 10 (DW_TAG_typedef)
+ <106> DW_AT_type : <0x111>
+ <10a> DW_AT_name : (indirect string, offset: 0x1e0): v4l2_std_id
+ <10e> DW_AT_decl_file : 2
+ <10f> DW_AT_decl_line : 598
+ <1><111>: Abbrev Number: 3 (DW_TAG_typedef)
+ <112> DW_AT_type : <0x11c>
+ <116> DW_AT_name : (indirect string, offset: 0x1da): __u64
+ <11a> DW_AT_decl_file : 1
+ <11b> DW_AT_decl_line : 31
+ <1><11c>: Abbrev Number: 6 (DW_TAG_base_type)
+ <11d> DW_AT_name : (indirect string, offset: 0x1c3): long long unsigned int
+ <121> DW_AT_encoding : 7 (unsigned)
+ <122> DW_AT_byte_size : 8
+ <1><123>: Abbrev Number: 7 (DW_TAG_array_type)
+ <124> DW_AT_type : <0xcd>
+ <2><128>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <129> DW_AT_type : <0xfe>
+ <12d> DW_AT_lower_bound : 0
+ <12e> DW_AT_count : 3
+ <2><12f>: Abbrev Number: 0
+ <1><130>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_input.d2 b/mpers-m32/struct_v4l2_input.d2
index 55ca5fe..01e7065 100644
--- a/mpers-m32/struct_v4l2_input.d2
+++ b/mpers-m32/struct_v4l2_input.d2
@@ -1,143 +1,143 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x96): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x160): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x14a): struct_v4l2_input
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x214): struct_v4l2_input
DW_AT_decl_file : 3
DW_AT_decl_line : 50
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x13f): v4l2_input
+DW_AT_name : (indirect string, offset: 0x209): v4l2_input
DW_AT_byte_size : 80
DW_AT_decl_file : 2
-DW_AT_decl_line : 728
-<2><44>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa7): index
-DW_AT_type : <0xcc>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 729
-DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc0): name
-DW_AT_type : <0xde>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 730
-DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><62>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe1): type
-DW_AT_type : <0xcc>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 731
-DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><71>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe6): audioset
-DW_AT_type : <0xcc>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 732
-DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><80>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xef): tuner
-DW_AT_type : <0xcc>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 733
-DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><8f>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf5): std
-DW_AT_type : <0x104>
-DW_AT_decl_file : 2
-DW_AT_decl_line : 734
-DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><9e>
-Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x122): status
-DW_AT_type : <0xcc>
-DW_AT_decl_file : 2
DW_AT_decl_line : 735
-DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<2><ad>
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x129): capabilities
-DW_AT_type : <0xcc>
+DW_AT_name : (indirect string, offset: 0x171): index
+DW_AT_type : <0xcd>
DW_AT_decl_file : 2
DW_AT_decl_line : 736
-DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
-<2><bc>
+DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x136): reserved
-DW_AT_type : <0x122>
+DW_AT_name : (indirect string, offset: 0x18a): name
+DW_AT_type : <0xdf>
DW_AT_decl_file : 2
DW_AT_decl_line : 737
+DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+<2><63>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ab): type
+DW_AT_type : <0xcd>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 738
+DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+<2><72>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b0): audioset
+DW_AT_type : <0xcd>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 739
+DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+<2><81>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1b9): tuner
+DW_AT_type : <0xcd>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 740
+DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+<2><90>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1bf): std
+DW_AT_type : <0x105>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 741
+DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+<2><9f>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1ec): status
+DW_AT_type : <0xcd>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 742
+DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+<2><ae>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x1f3): capabilities
+DW_AT_type : <0xcd>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 743
+DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst: 60)
+<2><bd>
+Abbrev Number: 5 (DW_TAG_member)
+DW_AT_name : (indirect string, offset: 0x200): reserved
+DW_AT_type : <0x123>
+DW_AT_decl_file : 2
+DW_AT_decl_line : 744
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst: 64)
-<1><cc>
+<1><cd>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xd7>
-DW_AT_name : (indirect string, offset: 0xba): __u32
+DW_AT_type : <0xd8>
+DW_AT_name : (indirect string, offset: 0x184): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><d7>
+<1><d8>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xad): unsigned int
+DW_AT_name : (indirect string, offset: 0x177): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><de>
+<1><df>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0xeb>
-<2><e3>
+DW_AT_type : <0xec>
+<2><e4>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0xfd>
+DW_AT_type : <0xfe>
DW_AT_lower_bound : 0
DW_AT_count : 32
-<1><eb>
+<1><ec>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xf6>
-DW_AT_name : (indirect string, offset: 0xd3): __u8
+DW_AT_type : <0xf7>
+DW_AT_name : (indirect string, offset: 0x19d): __u8
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><f6>
+<1><f7>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc5): unsigned char
+DW_AT_name : (indirect string, offset: 0x18f): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><fd>
+<1><fe>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xd8): sizetype
+DW_AT_name : (indirect string, offset: 0x1a2): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><104>
+<1><105>
Abbrev Number: 10 (DW_TAG_typedef)
-DW_AT_type : <0x110>
-DW_AT_name : (indirect string, offset: 0x116): v4l2_std_id
+DW_AT_type : <0x111>
+DW_AT_name : (indirect string, offset: 0x1e0): v4l2_std_id
DW_AT_decl_file : 2
-DW_AT_decl_line : 591
-<1><110>
+DW_AT_decl_line : 598
+<1><111>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x11b>
-DW_AT_name : (indirect string, offset: 0x110): __u64
+DW_AT_type : <0x11c>
+DW_AT_name : (indirect string, offset: 0x1da): __u64
DW_AT_decl_file : 1
DW_AT_decl_line : 31
-<1><11b>
+<1><11c>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf9): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x1c3): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><122>
+<1><123>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0xcc>
-<2><127>
+DW_AT_type : <0xcd>
+<2><128>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0xfd>
+DW_AT_type : <0xfe>
DW_AT_lower_bound : 0
DW_AT_count : 3
diff --git a/mpers-m32/struct_v4l2_standard.d1 b/mpers-m32/struct_v4l2_standard.d1
index 74db884..1cdaccc 100644
--- a/mpers-m32/struct_v4l2_standard.d1
+++ b/mpers-m32/struct_v4l2_standard.d1
@@ -1,137 +1,138 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x124 (32-bit)
+ Length: 0x125 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/struct_v4l2_standard.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/struct_v4l2_standard.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x5e): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x99): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 53
- <2a> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x15f): struct_v4l2_standard
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 51
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x151): v4l2_standard
- <40> DW_AT_byte_size : 72
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 638
- <2><44>: Abbrev Number: 5 (DW_TAG_member)
- <45> DW_AT_name : (indirect string, offset: 0xaa): index
- <49> DW_AT_type : <0x9f>
- <4d> DW_AT_decl_file : 2
- <4e> DW_AT_decl_line : 639
- <50> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><53>: Abbrev Number: 5 (DW_TAG_member)
- <54> DW_AT_name : (indirect string, offset: 0xc3): id
- <58> DW_AT_type : <0xb1>
- <5c> DW_AT_decl_file : 2
- <5d> DW_AT_decl_line : 640
- <5f> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><62>: Abbrev Number: 5 (DW_TAG_member)
- <63> DW_AT_name : (indirect string, offset: 0xef): name
- <67> DW_AT_type : <0xcf>
- <6b> DW_AT_decl_file : 2
- <6c> DW_AT_decl_line : 641
- <6e> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><71>: Abbrev Number: 5 (DW_TAG_member)
- <72> DW_AT_name : (indirect string, offset: 0x110): frameperiod
- <76> DW_AT_type : <0xf5>
- <7a> DW_AT_decl_file : 2
- <7b> DW_AT_decl_line : 642
- <7d> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><80>: Abbrev Number: 5 (DW_TAG_member)
- <81> DW_AT_name : (indirect string, offset: 0x13d): framelines
- <85> DW_AT_type : <0x9f>
- <89> DW_AT_decl_file : 2
- <8a> DW_AT_decl_line : 643
- <8c> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><8f>: Abbrev Number: 5 (DW_TAG_member)
- <90> DW_AT_name : (indirect string, offset: 0x148): reserved
- <94> DW_AT_type : <0x11a>
- <98> DW_AT_decl_file : 2
- <99> DW_AT_decl_line : 644
- <9b> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><9e>: Abbrev Number: 0
- <1><9f>: Abbrev Number: 3 (DW_TAG_typedef)
- <a0> DW_AT_type : <0xaa>
- <a4> DW_AT_name : (indirect string, offset: 0xbd): __u32
- <a8> DW_AT_decl_file : 1
- <a9> DW_AT_decl_line : 28
- <1><aa>: Abbrev Number: 6 (DW_TAG_base_type)
- <ab> DW_AT_name : (indirect string, offset: 0xb0): unsigned int
- <af> DW_AT_encoding : 7 (unsigned)
- <b0> DW_AT_byte_size : 4
- <1><b1>: Abbrev Number: 7 (DW_TAG_typedef)
- <b2> DW_AT_type : <0xbd>
- <b6> DW_AT_name : (indirect string, offset: 0xe3): v4l2_std_id
- <ba> DW_AT_decl_file : 2
- <bb> DW_AT_decl_line : 591
- <1><bd>: Abbrev Number: 3 (DW_TAG_typedef)
- <be> DW_AT_type : <0xc8>
- <c2> DW_AT_name : (indirect string, offset: 0xdd): __u64
- <c6> DW_AT_decl_file : 1
- <c7> DW_AT_decl_line : 31
- <1><c8>: Abbrev Number: 6 (DW_TAG_base_type)
- <c9> DW_AT_name : (indirect string, offset: 0xc6): long long unsigned int
- <cd> DW_AT_encoding : 7 (unsigned)
- <ce> DW_AT_byte_size : 8
- <1><cf>: Abbrev Number: 8 (DW_TAG_array_type)
- <d0> DW_AT_type : <0xdc>
- <2><d4>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <d5> DW_AT_type : <0xee>
- <d9> DW_AT_lower_bound : 0
- <da> DW_AT_count : 24
- <2><db>: Abbrev Number: 0
- <1><dc>: Abbrev Number: 3 (DW_TAG_typedef)
- <dd> DW_AT_type : <0xe7>
- <e1> DW_AT_name : (indirect string, offset: 0x102): __u8
- <e5> DW_AT_decl_file : 1
- <e6> DW_AT_decl_line : 24
- <1><e7>: Abbrev Number: 6 (DW_TAG_base_type)
- <e8> DW_AT_name : (indirect string, offset: 0xf4): unsigned char
- <ec> DW_AT_encoding : 8 (unsigned char)
- <ed> DW_AT_byte_size : 1
- <1><ee>: Abbrev Number: 10 (DW_TAG_base_type)
- <ef> DW_AT_name : (indirect string, offset: 0x107): sizetype
- <f3> DW_AT_byte_size : 8
- <f4> DW_AT_encoding : 7 (unsigned)
- <1><f5>: Abbrev Number: 11 (DW_TAG_structure_type)
- <f6> DW_AT_name : (indirect string, offset: 0x132): v4l2_fract
- <fa> DW_AT_byte_size : 8
- <fb> DW_AT_decl_file : 2
- <fc> DW_AT_decl_line : 141
- <2><fd>: Abbrev Number: 12 (DW_TAG_member)
- <fe> DW_AT_name : (indirect string, offset: 0x11c): numerator
- <102> DW_AT_type : <0x9f>
- <106> DW_AT_decl_file : 2
- <107> DW_AT_decl_line : 142
- <108> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><10b>: Abbrev Number: 12 (DW_TAG_member)
- <10c> DW_AT_name : (indirect string, offset: 0x126): denominator
- <110> DW_AT_type : <0x9f>
- <114> DW_AT_decl_file : 2
- <115> DW_AT_decl_line : 143
- <116> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><119>: Abbrev Number: 0
- <1><11a>: Abbrev Number: 8 (DW_TAG_array_type)
- <11b> DW_AT_type : <0x9f>
- <2><11f>: Abbrev Number: 9 (DW_TAG_subrange_type)
- <120> DW_AT_type : <0xee>
- <124> DW_AT_lower_bound : 0
- <125> DW_AT_count : 4
- <2><126>: Abbrev Number: 0
- <1><127>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x128): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x163): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 53
+ <2b> DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x229): struct_v4l2_standard
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 51
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x21b): v4l2_standard
+ <41> DW_AT_byte_size : 72
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 645
+ <2><45>: Abbrev Number: 5 (DW_TAG_member)
+ <46> DW_AT_name : (indirect string, offset: 0x174): index
+ <4a> DW_AT_type : <0xa0>
+ <4e> DW_AT_decl_file : 2
+ <4f> DW_AT_decl_line : 646
+ <51> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><54>: Abbrev Number: 5 (DW_TAG_member)
+ <55> DW_AT_name : (indirect string, offset: 0x18d): id
+ <59> DW_AT_type : <0xb2>
+ <5d> DW_AT_decl_file : 2
+ <5e> DW_AT_decl_line : 647
+ <60> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><63>: Abbrev Number: 5 (DW_TAG_member)
+ <64> DW_AT_name : (indirect string, offset: 0x1b9): name
+ <68> DW_AT_type : <0xd0>
+ <6c> DW_AT_decl_file : 2
+ <6d> DW_AT_decl_line : 648
+ <6f> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><72>: Abbrev Number: 5 (DW_TAG_member)
+ <73> DW_AT_name : (indirect string, offset: 0x1da): frameperiod
+ <77> DW_AT_type : <0xf6>
+ <7b> DW_AT_decl_file : 2
+ <7c> DW_AT_decl_line : 649
+ <7e> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><81>: Abbrev Number: 5 (DW_TAG_member)
+ <82> DW_AT_name : (indirect string, offset: 0x207): framelines
+ <86> DW_AT_type : <0xa0>
+ <8a> DW_AT_decl_file : 2
+ <8b> DW_AT_decl_line : 650
+ <8d> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><90>: Abbrev Number: 5 (DW_TAG_member)
+ <91> DW_AT_name : (indirect string, offset: 0x212): reserved
+ <95> DW_AT_type : <0x11b>
+ <99> DW_AT_decl_file : 2
+ <9a> DW_AT_decl_line : 651
+ <9c> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><9f>: Abbrev Number: 0
+ <1><a0>: Abbrev Number: 3 (DW_TAG_typedef)
+ <a1> DW_AT_type : <0xab>
+ <a5> DW_AT_name : (indirect string, offset: 0x187): __u32
+ <a9> DW_AT_decl_file : 1
+ <aa> DW_AT_decl_line : 28
+ <1><ab>: Abbrev Number: 6 (DW_TAG_base_type)
+ <ac> DW_AT_name : (indirect string, offset: 0x17a): unsigned int
+ <b0> DW_AT_encoding : 7 (unsigned)
+ <b1> DW_AT_byte_size : 4
+ <1><b2>: Abbrev Number: 7 (DW_TAG_typedef)
+ <b3> DW_AT_type : <0xbe>
+ <b7> DW_AT_name : (indirect string, offset: 0x1ad): v4l2_std_id
+ <bb> DW_AT_decl_file : 2
+ <bc> DW_AT_decl_line : 598
+ <1><be>: Abbrev Number: 3 (DW_TAG_typedef)
+ <bf> DW_AT_type : <0xc9>
+ <c3> DW_AT_name : (indirect string, offset: 0x1a7): __u64
+ <c7> DW_AT_decl_file : 1
+ <c8> DW_AT_decl_line : 31
+ <1><c9>: Abbrev Number: 6 (DW_TAG_base_type)
+ <ca> DW_AT_name : (indirect string, offset: 0x190): long long unsigned int
+ <ce> DW_AT_encoding : 7 (unsigned)
+ <cf> DW_AT_byte_size : 8
+ <1><d0>: Abbrev Number: 8 (DW_TAG_array_type)
+ <d1> DW_AT_type : <0xdd>
+ <2><d5>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <d6> DW_AT_type : <0xef>
+ <da> DW_AT_lower_bound : 0
+ <db> DW_AT_count : 24
+ <2><dc>: Abbrev Number: 0
+ <1><dd>: Abbrev Number: 3 (DW_TAG_typedef)
+ <de> DW_AT_type : <0xe8>
+ <e2> DW_AT_name : (indirect string, offset: 0x1cc): __u8
+ <e6> DW_AT_decl_file : 1
+ <e7> DW_AT_decl_line : 24
+ <1><e8>: Abbrev Number: 6 (DW_TAG_base_type)
+ <e9> DW_AT_name : (indirect string, offset: 0x1be): unsigned char
+ <ed> DW_AT_encoding : 8 (unsigned char)
+ <ee> DW_AT_byte_size : 1
+ <1><ef>: Abbrev Number: 10 (DW_TAG_base_type)
+ <f0> DW_AT_name : (indirect string, offset: 0x1d1): sizetype
+ <f4> DW_AT_byte_size : 8
+ <f5> DW_AT_encoding : 7 (unsigned)
+ <1><f6>: Abbrev Number: 11 (DW_TAG_structure_type)
+ <f7> DW_AT_name : (indirect string, offset: 0x1fc): v4l2_fract
+ <fb> DW_AT_byte_size : 8
+ <fc> DW_AT_decl_file : 2
+ <fd> DW_AT_decl_line : 141
+ <2><fe>: Abbrev Number: 12 (DW_TAG_member)
+ <ff> DW_AT_name : (indirect string, offset: 0x1e6): numerator
+ <103> DW_AT_type : <0xa0>
+ <107> DW_AT_decl_file : 2
+ <108> DW_AT_decl_line : 142
+ <109> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><10c>: Abbrev Number: 12 (DW_TAG_member)
+ <10d> DW_AT_name : (indirect string, offset: 0x1f0): denominator
+ <111> DW_AT_type : <0xa0>
+ <115> DW_AT_decl_file : 2
+ <116> DW_AT_decl_line : 143
+ <117> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><11a>: Abbrev Number: 0
+ <1><11b>: Abbrev Number: 8 (DW_TAG_array_type)
+ <11c> DW_AT_type : <0xa0>
+ <2><120>: Abbrev Number: 9 (DW_TAG_subrange_type)
+ <121> DW_AT_type : <0xef>
+ <125> DW_AT_lower_bound : 0
+ <126> DW_AT_count : 4
+ <2><127>: Abbrev Number: 0
+ <1><128>: Abbrev Number: 0
diff --git a/mpers-m32/struct_v4l2_standard.d2 b/mpers-m32/struct_v4l2_standard.d2
index dd29557..e43b962 100644
--- a/mpers-m32/struct_v4l2_standard.d2
+++ b/mpers-m32/struct_v4l2_standard.d2
@@ -1,142 +1,142 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x99): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x163): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 53
DW_AT_location : 5 byte block: 3 8 0 0 0 (DW_OP_addr: 8)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x15f): struct_v4l2_standard
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x229): struct_v4l2_standard
DW_AT_decl_file : 3
DW_AT_decl_line : 51
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x151): v4l2_standard
+DW_AT_name : (indirect string, offset: 0x21b): v4l2_standard
DW_AT_byte_size : 72
DW_AT_decl_file : 2
-DW_AT_decl_line : 638
-<2><44>
+DW_AT_decl_line : 645
+<2><45>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xaa): index
-DW_AT_type : <0x9f>
+DW_AT_name : (indirect string, offset: 0x174): index
+DW_AT_type : <0xa0>
DW_AT_decl_file : 2
-DW_AT_decl_line : 639
+DW_AT_decl_line : 646
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><53>
+<2><54>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xc3): id
-DW_AT_type : <0xb1>
+DW_AT_name : (indirect string, offset: 0x18d): id
+DW_AT_type : <0xb2>
DW_AT_decl_file : 2
-DW_AT_decl_line : 640
+DW_AT_decl_line : 647
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><62>
+<2><63>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xef): name
-DW_AT_type : <0xcf>
+DW_AT_name : (indirect string, offset: 0x1b9): name
+DW_AT_type : <0xd0>
DW_AT_decl_file : 2
-DW_AT_decl_line : 641
+DW_AT_decl_line : 648
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><71>
+<2><72>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x110): frameperiod
-DW_AT_type : <0xf5>
+DW_AT_name : (indirect string, offset: 0x1da): frameperiod
+DW_AT_type : <0xf6>
DW_AT_decl_file : 2
-DW_AT_decl_line : 642
+DW_AT_decl_line : 649
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><80>
+<2><81>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x13d): framelines
-DW_AT_type : <0x9f>
+DW_AT_name : (indirect string, offset: 0x207): framelines
+DW_AT_type : <0xa0>
DW_AT_decl_file : 2
-DW_AT_decl_line : 643
+DW_AT_decl_line : 650
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><8f>
+<2><90>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x148): reserved
-DW_AT_type : <0x11a>
+DW_AT_name : (indirect string, offset: 0x212): reserved
+DW_AT_type : <0x11b>
DW_AT_decl_file : 2
-DW_AT_decl_line : 644
+DW_AT_decl_line : 651
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<1><9f>
+<1><a0>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xaa>
-DW_AT_name : (indirect string, offset: 0xbd): __u32
+DW_AT_type : <0xab>
+DW_AT_name : (indirect string, offset: 0x187): __u32
DW_AT_decl_file : 1
DW_AT_decl_line : 28
-<1><aa>
+<1><ab>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xb0): unsigned int
+DW_AT_name : (indirect string, offset: 0x17a): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><b1>
+<1><b2>
Abbrev Number: 7 (DW_TAG_typedef)
-DW_AT_type : <0xbd>
-DW_AT_name : (indirect string, offset: 0xe3): v4l2_std_id
+DW_AT_type : <0xbe>
+DW_AT_name : (indirect string, offset: 0x1ad): v4l2_std_id
DW_AT_decl_file : 2
-DW_AT_decl_line : 591
-<1><bd>
+DW_AT_decl_line : 598
+<1><be>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xc8>
-DW_AT_name : (indirect string, offset: 0xdd): __u64
+DW_AT_type : <0xc9>
+DW_AT_name : (indirect string, offset: 0x1a7): __u64
DW_AT_decl_file : 1
DW_AT_decl_line : 31
-<1><c8>
+<1><c9>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc6): long long unsigned int
+DW_AT_name : (indirect string, offset: 0x190): long long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 8
-<1><cf>
+<1><d0>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0xdc>
-<2><d4>
+DW_AT_type : <0xdd>
+<2><d5>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0xee>
+DW_AT_type : <0xef>
DW_AT_lower_bound : 0
DW_AT_count : 24
-<1><dc>
+<1><dd>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0xe7>
-DW_AT_name : (indirect string, offset: 0x102): __u8
+DW_AT_type : <0xe8>
+DW_AT_name : (indirect string, offset: 0x1cc): __u8
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><e7>
+<1><e8>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xf4): unsigned char
+DW_AT_name : (indirect string, offset: 0x1be): unsigned char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
-<1><ee>
+<1><ef>
Abbrev Number: 10 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x107): sizetype
+DW_AT_name : (indirect string, offset: 0x1d1): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><f5>
+<1><f6>
Abbrev Number: 11 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x132): v4l2_fract
+DW_AT_name : (indirect string, offset: 0x1fc): v4l2_fract
DW_AT_byte_size : 8
DW_AT_decl_file : 2
DW_AT_decl_line : 141
-<2><fd>
+<2><fe>
Abbrev Number: 12 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x11c): numerator
-DW_AT_type : <0x9f>
+DW_AT_name : (indirect string, offset: 0x1e6): numerator
+DW_AT_type : <0xa0>
DW_AT_decl_file : 2
DW_AT_decl_line : 142
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><10b>
+<2><10c>
Abbrev Number: 12 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x126): denominator
-DW_AT_type : <0x9f>
+DW_AT_name : (indirect string, offset: 0x1f0): denominator
+DW_AT_type : <0xa0>
DW_AT_decl_file : 2
DW_AT_decl_line : 143
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><11a>
+<1><11b>
Abbrev Number: 8 (DW_TAG_array_type)
-DW_AT_type : <0x9f>
-<2><11f>
+DW_AT_type : <0xa0>
+<2><120>
Abbrev Number: 9 (DW_TAG_subrange_type)
-DW_AT_type : <0xee>
+DW_AT_type : <0xef>
DW_AT_lower_bound : 0
DW_AT_count : 4
diff --git a/mpers-m32/sysinfo_t.d1 b/mpers-m32/sysinfo_t.d1
index 60bbc41..1316de0 100644
--- a/mpers-m32/sysinfo_t.d1
+++ b/mpers-m32/sysinfo_t.d1
@@ -1,175 +1,176 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x175 (32-bit)
+ Length: 0x176 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/sysinfo_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/sysinfo_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x53): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 4
- <29> DW_AT_decl_line : 39
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0x187): sysinfo_t
- <39> DW_AT_decl_file : 4
- <3a> DW_AT_decl_line : 38
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0x17f): sysinfo
- <40> DW_AT_byte_size : 64
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 23
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9f): uptime
- <48> DW_AT_type : <0x108>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 24
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xbf): loads
- <56> DW_AT_type : <0x11a>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 25
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xf1): totalram
- <64> DW_AT_type : <0x127>
- <68> DW_AT_decl_file : 2
- <69> DW_AT_decl_line : 26
- <6a> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xfa): freeram
- <72> DW_AT_type : <0x127>
- <76> DW_AT_decl_file : 2
- <77> DW_AT_decl_line : 27
- <78> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
- <2><7b>: Abbrev Number: 5 (DW_TAG_member)
- <7c> DW_AT_name : (indirect string, offset: 0x102): sharedram
- <80> DW_AT_type : <0x127>
- <84> DW_AT_decl_file : 2
- <85> DW_AT_decl_line : 28
- <86> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
- <2><89>: Abbrev Number: 5 (DW_TAG_member)
- <8a> DW_AT_name : (indirect string, offset: 0x10c): bufferram
- <8e> DW_AT_type : <0x127>
- <92> DW_AT_decl_file : 2
- <93> DW_AT_decl_line : 29
- <94> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
- <2><97>: Abbrev Number: 5 (DW_TAG_member)
- <98> DW_AT_name : (indirect string, offset: 0x116): totalswap
- <9c> DW_AT_type : <0x127>
- <a0> DW_AT_decl_file : 2
- <a1> DW_AT_decl_line : 30
- <a2> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
- <2><a5>: Abbrev Number: 5 (DW_TAG_member)
- <a6> DW_AT_name : (indirect string, offset: 0x120): freeswap
- <aa> DW_AT_type : <0x127>
- <ae> DW_AT_decl_file : 2
- <af> DW_AT_decl_line : 31
- <b0> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
- <2><b3>: Abbrev Number: 5 (DW_TAG_member)
- <b4> DW_AT_name : (indirect string, offset: 0x129): procs
- <b8> DW_AT_type : <0x140>
- <bc> DW_AT_decl_file : 2
- <bd> DW_AT_decl_line : 32
- <be> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
- <2><c1>: Abbrev Number: 5 (DW_TAG_member)
- <c2> DW_AT_name : (indirect string, offset: 0x144): pad
- <c6> DW_AT_type : <0x140>
- <ca> DW_AT_decl_file : 2
- <cb> DW_AT_decl_line : 33
- <cc> DW_AT_data_member_location: 2 byte block: 23 2a (DW_OP_plus_uconst: 42)
- <2><cf>: Abbrev Number: 5 (DW_TAG_member)
- <d0> DW_AT_name : (indirect string, offset: 0x148): totalhigh
- <d4> DW_AT_type : <0x127>
- <d8> DW_AT_decl_file : 2
- <d9> DW_AT_decl_line : 34
- <da> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
- <2><dd>: Abbrev Number: 5 (DW_TAG_member)
- <de> DW_AT_name : (indirect string, offset: 0x152): freehigh
- <e2> DW_AT_type : <0x127>
- <e6> DW_AT_decl_file : 2
- <e7> DW_AT_decl_line : 35
- <e8> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
- <2><eb>: Abbrev Number: 5 (DW_TAG_member)
- <ec> DW_AT_name : (indirect string, offset: 0x15b): mem_unit
- <f0> DW_AT_type : <0x152>
- <f4> DW_AT_decl_file : 2
- <f5> DW_AT_decl_line : 36
- <f6> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
- <2><f9>: Abbrev Number: 5 (DW_TAG_member)
- <fa> DW_AT_name : (indirect string, offset: 0x177): _f
- <fe> DW_AT_type : <0x164>
- <102> DW_AT_decl_file : 2
- <103> DW_AT_decl_line : 37
- <104> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
- <2><107>: Abbrev Number: 0
- <1><108>: Abbrev Number: 3 (DW_TAG_typedef)
- <109> DW_AT_type : <0x113>
- <10d> DW_AT_name : (indirect string, offset: 0xaf): __kernel_long_t
- <111> DW_AT_decl_file : 1
- <112> DW_AT_decl_line : 23
- <1><113>: Abbrev Number: 6 (DW_TAG_base_type)
- <114> DW_AT_name : (indirect string, offset: 0xa6): long int
- <118> DW_AT_encoding : 5 (signed)
- <119> DW_AT_byte_size : 4
- <1><11a>: Abbrev Number: 7 (DW_TAG_array_type)
- <11b> DW_AT_type : <0x127>
- <2><11f>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <120> DW_AT_type : <0x139>
- <124> DW_AT_lower_bound : 0
- <125> DW_AT_count : 3
- <2><126>: Abbrev Number: 0
- <1><127>: Abbrev Number: 3 (DW_TAG_typedef)
- <128> DW_AT_type : <0x132>
- <12c> DW_AT_name : (indirect string, offset: 0xd7): __kernel_ulong_t
- <130> DW_AT_decl_file : 1
- <131> DW_AT_decl_line : 24
- <1><132>: Abbrev Number: 6 (DW_TAG_base_type)
- <133> DW_AT_name : (indirect string, offset: 0xc5): long unsigned int
- <137> DW_AT_encoding : 7 (unsigned)
- <138> DW_AT_byte_size : 4
- <1><139>: Abbrev Number: 9 (DW_TAG_base_type)
- <13a> DW_AT_name : (indirect string, offset: 0xe8): sizetype
- <13e> DW_AT_byte_size : 8
- <13f> DW_AT_encoding : 7 (unsigned)
- <1><140>: Abbrev Number: 3 (DW_TAG_typedef)
- <141> DW_AT_type : <0x14b>
- <145> DW_AT_name : (indirect string, offset: 0x13e): __u16
- <149> DW_AT_decl_file : 3
- <14a> DW_AT_decl_line : 26
- <1><14b>: Abbrev Number: 6 (DW_TAG_base_type)
- <14c> DW_AT_name : (indirect string, offset: 0x12f): unsigned short
- <150> DW_AT_encoding : 7 (unsigned)
- <151> DW_AT_byte_size : 2
- <1><152>: Abbrev Number: 3 (DW_TAG_typedef)
- <153> DW_AT_type : <0x15d>
- <157> DW_AT_name : (indirect string, offset: 0x171): __u32
- <15b> DW_AT_decl_file : 3
- <15c> DW_AT_decl_line : 28
- <1><15d>: Abbrev Number: 6 (DW_TAG_base_type)
- <15e> DW_AT_name : (indirect string, offset: 0x164): unsigned int
- <162> DW_AT_encoding : 7 (unsigned)
- <163> DW_AT_byte_size : 4
- <1><164>: Abbrev Number: 7 (DW_TAG_array_type)
- <165> DW_AT_type : <0x171>
- <2><169>: Abbrev Number: 8 (DW_TAG_subrange_type)
- <16a> DW_AT_type : <0x139>
- <16e> DW_AT_lower_bound : 0
- <16f> DW_AT_count : 8
- <2><170>: Abbrev Number: 0
- <1><171>: Abbrev Number: 6 (DW_TAG_base_type)
- <172> DW_AT_name : (indirect string, offset: 0x17a): char
- <176> DW_AT_encoding : 8 (unsigned char)
- <177> DW_AT_byte_size : 1
- <1><178>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11d): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 4
+ <2a> DW_AT_decl_line : 39
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x251): sysinfo_t
+ <3a> DW_AT_decl_file : 4
+ <3b> DW_AT_decl_line : 38
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x249): sysinfo
+ <41> DW_AT_byte_size : 64
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 23
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x169): uptime
+ <49> DW_AT_type : <0x109>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 24
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x189): loads
+ <57> DW_AT_type : <0x11b>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 25
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x1bb): totalram
+ <65> DW_AT_type : <0x128>
+ <69> DW_AT_decl_file : 2
+ <6a> DW_AT_decl_line : 26
+ <6b> DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1c4): freeram
+ <73> DW_AT_type : <0x128>
+ <77> DW_AT_decl_file : 2
+ <78> DW_AT_decl_line : 27
+ <79> DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
+ <2><7c>: Abbrev Number: 5 (DW_TAG_member)
+ <7d> DW_AT_name : (indirect string, offset: 0x1cc): sharedram
+ <81> DW_AT_type : <0x128>
+ <85> DW_AT_decl_file : 2
+ <86> DW_AT_decl_line : 28
+ <87> DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
+ <2><8a>: Abbrev Number: 5 (DW_TAG_member)
+ <8b> DW_AT_name : (indirect string, offset: 0x1d6): bufferram
+ <8f> DW_AT_type : <0x128>
+ <93> DW_AT_decl_file : 2
+ <94> DW_AT_decl_line : 29
+ <95> DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
+ <2><98>: Abbrev Number: 5 (DW_TAG_member)
+ <99> DW_AT_name : (indirect string, offset: 0x1e0): totalswap
+ <9d> DW_AT_type : <0x128>
+ <a1> DW_AT_decl_file : 2
+ <a2> DW_AT_decl_line : 30
+ <a3> DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
+ <2><a6>: Abbrev Number: 5 (DW_TAG_member)
+ <a7> DW_AT_name : (indirect string, offset: 0x1ea): freeswap
+ <ab> DW_AT_type : <0x128>
+ <af> DW_AT_decl_file : 2
+ <b0> DW_AT_decl_line : 31
+ <b1> DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
+ <2><b4>: Abbrev Number: 5 (DW_TAG_member)
+ <b5> DW_AT_name : (indirect string, offset: 0x1f3): procs
+ <b9> DW_AT_type : <0x141>
+ <bd> DW_AT_decl_file : 2
+ <be> DW_AT_decl_line : 32
+ <bf> DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
+ <2><c2>: Abbrev Number: 5 (DW_TAG_member)
+ <c3> DW_AT_name : (indirect string, offset: 0x20e): pad
+ <c7> DW_AT_type : <0x141>
+ <cb> DW_AT_decl_file : 2
+ <cc> DW_AT_decl_line : 33
+ <cd> DW_AT_data_member_location: 2 byte block: 23 2a (DW_OP_plus_uconst: 42)
+ <2><d0>: Abbrev Number: 5 (DW_TAG_member)
+ <d1> DW_AT_name : (indirect string, offset: 0x212): totalhigh
+ <d5> DW_AT_type : <0x128>
+ <d9> DW_AT_decl_file : 2
+ <da> DW_AT_decl_line : 34
+ <db> DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
+ <2><de>: Abbrev Number: 5 (DW_TAG_member)
+ <df> DW_AT_name : (indirect string, offset: 0x21c): freehigh
+ <e3> DW_AT_type : <0x128>
+ <e7> DW_AT_decl_file : 2
+ <e8> DW_AT_decl_line : 35
+ <e9> DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
+ <2><ec>: Abbrev Number: 5 (DW_TAG_member)
+ <ed> DW_AT_name : (indirect string, offset: 0x225): mem_unit
+ <f1> DW_AT_type : <0x153>
+ <f5> DW_AT_decl_file : 2
+ <f6> DW_AT_decl_line : 36
+ <f7> DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
+ <2><fa>: Abbrev Number: 5 (DW_TAG_member)
+ <fb> DW_AT_name : (indirect string, offset: 0x241): _f
+ <ff> DW_AT_type : <0x165>
+ <103> DW_AT_decl_file : 2
+ <104> DW_AT_decl_line : 37
+ <105> DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
+ <2><108>: Abbrev Number: 0
+ <1><109>: Abbrev Number: 3 (DW_TAG_typedef)
+ <10a> DW_AT_type : <0x114>
+ <10e> DW_AT_name : (indirect string, offset: 0x179): __kernel_long_t
+ <112> DW_AT_decl_file : 1
+ <113> DW_AT_decl_line : 23
+ <1><114>: Abbrev Number: 6 (DW_TAG_base_type)
+ <115> DW_AT_name : (indirect string, offset: 0x170): long int
+ <119> DW_AT_encoding : 5 (signed)
+ <11a> DW_AT_byte_size : 4
+ <1><11b>: Abbrev Number: 7 (DW_TAG_array_type)
+ <11c> DW_AT_type : <0x128>
+ <2><120>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <121> DW_AT_type : <0x13a>
+ <125> DW_AT_lower_bound : 0
+ <126> DW_AT_count : 3
+ <2><127>: Abbrev Number: 0
+ <1><128>: Abbrev Number: 3 (DW_TAG_typedef)
+ <129> DW_AT_type : <0x133>
+ <12d> DW_AT_name : (indirect string, offset: 0x1a1): __kernel_ulong_t
+ <131> DW_AT_decl_file : 1
+ <132> DW_AT_decl_line : 24
+ <1><133>: Abbrev Number: 6 (DW_TAG_base_type)
+ <134> DW_AT_name : (indirect string, offset: 0x18f): long unsigned int
+ <138> DW_AT_encoding : 7 (unsigned)
+ <139> DW_AT_byte_size : 4
+ <1><13a>: Abbrev Number: 9 (DW_TAG_base_type)
+ <13b> DW_AT_name : (indirect string, offset: 0x1b2): sizetype
+ <13f> DW_AT_byte_size : 8
+ <140> DW_AT_encoding : 7 (unsigned)
+ <1><141>: Abbrev Number: 3 (DW_TAG_typedef)
+ <142> DW_AT_type : <0x14c>
+ <146> DW_AT_name : (indirect string, offset: 0x208): __u16
+ <14a> DW_AT_decl_file : 3
+ <14b> DW_AT_decl_line : 26
+ <1><14c>: Abbrev Number: 6 (DW_TAG_base_type)
+ <14d> DW_AT_name : (indirect string, offset: 0x1f9): unsigned short
+ <151> DW_AT_encoding : 7 (unsigned)
+ <152> DW_AT_byte_size : 2
+ <1><153>: Abbrev Number: 3 (DW_TAG_typedef)
+ <154> DW_AT_type : <0x15e>
+ <158> DW_AT_name : (indirect string, offset: 0x23b): __u32
+ <15c> DW_AT_decl_file : 3
+ <15d> DW_AT_decl_line : 28
+ <1><15e>: Abbrev Number: 6 (DW_TAG_base_type)
+ <15f> DW_AT_name : (indirect string, offset: 0x22e): unsigned int
+ <163> DW_AT_encoding : 7 (unsigned)
+ <164> DW_AT_byte_size : 4
+ <1><165>: Abbrev Number: 7 (DW_TAG_array_type)
+ <166> DW_AT_type : <0x172>
+ <2><16a>: Abbrev Number: 8 (DW_TAG_subrange_type)
+ <16b> DW_AT_type : <0x13a>
+ <16f> DW_AT_lower_bound : 0
+ <170> DW_AT_count : 8
+ <2><171>: Abbrev Number: 0
+ <1><172>: Abbrev Number: 6 (DW_TAG_base_type)
+ <173> DW_AT_name : (indirect string, offset: 0x244): char
+ <177> DW_AT_encoding : 8 (unsigned char)
+ <178> DW_AT_byte_size : 1
+ <1><179>: Abbrev Number: 0
diff --git a/mpers-m32/sysinfo_t.d2 b/mpers-m32/sysinfo_t.d2
index 8ce0444..9434474 100644
--- a/mpers-m32/sysinfo_t.d2
+++ b/mpers-m32/sysinfo_t.d2
@@ -1,188 +1,188 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 4
DW_AT_decl_line : 39
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0x187): sysinfo_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x251): sysinfo_t
DW_AT_decl_file : 4
DW_AT_decl_line : 38
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0x17f): sysinfo
+DW_AT_name : (indirect string, offset: 0x249): sysinfo
DW_AT_byte_size : 64
DW_AT_decl_file : 2
DW_AT_decl_line : 23
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9f): uptime
-DW_AT_type : <0x108>
+DW_AT_name : (indirect string, offset: 0x169): uptime
+DW_AT_type : <0x109>
DW_AT_decl_file : 2
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xbf): loads
-DW_AT_type : <0x11a>
+DW_AT_name : (indirect string, offset: 0x189): loads
+DW_AT_type : <0x11b>
DW_AT_decl_file : 2
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xf1): totalram
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x1bb): totalram
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst: 16)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xfa): freeram
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x1c4): freeram
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 27
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst: 20)
-<2><7b>
+<2><7c>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x102): sharedram
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x1cc): sharedram
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 28
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst: 24)
-<2><89>
+<2><8a>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x10c): bufferram
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x1d6): bufferram
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 29
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst: 28)
-<2><97>
+<2><98>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x116): totalswap
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x1e0): totalswap
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst: 32)
-<2><a5>
+<2><a6>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x120): freeswap
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x1ea): freeswap
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst: 36)
-<2><b3>
+<2><b4>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x129): procs
-DW_AT_type : <0x140>
+DW_AT_name : (indirect string, offset: 0x1f3): procs
+DW_AT_type : <0x141>
DW_AT_decl_file : 2
DW_AT_decl_line : 32
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst: 40)
-<2><c1>
+<2><c2>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x144): pad
-DW_AT_type : <0x140>
+DW_AT_name : (indirect string, offset: 0x20e): pad
+DW_AT_type : <0x141>
DW_AT_decl_file : 2
DW_AT_decl_line : 33
DW_AT_data_member_location: 2 byte block: 23 2a (DW_OP_plus_uconst: 42)
-<2><cf>
+<2><d0>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x148): totalhigh
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x212): totalhigh
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 34
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst: 44)
-<2><dd>
+<2><de>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x152): freehigh
-DW_AT_type : <0x127>
+DW_AT_name : (indirect string, offset: 0x21c): freehigh
+DW_AT_type : <0x128>
DW_AT_decl_file : 2
DW_AT_decl_line : 35
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst: 48)
-<2><eb>
+<2><ec>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x15b): mem_unit
-DW_AT_type : <0x152>
+DW_AT_name : (indirect string, offset: 0x225): mem_unit
+DW_AT_type : <0x153>
DW_AT_decl_file : 2
DW_AT_decl_line : 36
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst: 52)
-<2><f9>
+<2><fa>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x177): _f
-DW_AT_type : <0x164>
+DW_AT_name : (indirect string, offset: 0x241): _f
+DW_AT_type : <0x165>
DW_AT_decl_file : 2
DW_AT_decl_line : 37
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst: 56)
-<1><108>
+<1><109>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x113>
-DW_AT_name : (indirect string, offset: 0xaf): __kernel_long_t
+DW_AT_type : <0x114>
+DW_AT_name : (indirect string, offset: 0x179): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><113>
+<1><114>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa6): long int
+DW_AT_name : (indirect string, offset: 0x170): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><11a>
+<1><11b>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x127>
-<2><11f>
+DW_AT_type : <0x128>
+<2><120>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x139>
+DW_AT_type : <0x13a>
DW_AT_lower_bound : 0
DW_AT_count : 3
-<1><127>
+<1><128>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x132>
-DW_AT_name : (indirect string, offset: 0xd7): __kernel_ulong_t
+DW_AT_type : <0x133>
+DW_AT_name : (indirect string, offset: 0x1a1): __kernel_ulong_t
DW_AT_decl_file : 1
DW_AT_decl_line : 24
-<1><132>
+<1><133>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xc5): long unsigned int
+DW_AT_name : (indirect string, offset: 0x18f): long unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><139>
+<1><13a>
Abbrev Number: 9 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xe8): sizetype
+DW_AT_name : (indirect string, offset: 0x1b2): sizetype
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
-<1><140>
+<1><141>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x14b>
-DW_AT_name : (indirect string, offset: 0x13e): __u16
+DW_AT_type : <0x14c>
+DW_AT_name : (indirect string, offset: 0x208): __u16
DW_AT_decl_file : 3
DW_AT_decl_line : 26
-<1><14b>
+<1><14c>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x12f): unsigned short
+DW_AT_name : (indirect string, offset: 0x1f9): unsigned short
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 2
-<1><152>
+<1><153>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x15d>
-DW_AT_name : (indirect string, offset: 0x171): __u32
+DW_AT_type : <0x15e>
+DW_AT_name : (indirect string, offset: 0x23b): __u32
DW_AT_decl_file : 3
DW_AT_decl_line : 28
-<1><15d>
+<1><15e>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x164): unsigned int
+DW_AT_name : (indirect string, offset: 0x22e): unsigned int
DW_AT_encoding : 7 (unsigned)
DW_AT_byte_size : 4
-<1><164>
+<1><165>
Abbrev Number: 7 (DW_TAG_array_type)
-DW_AT_type : <0x171>
-<2><169>
+DW_AT_type : <0x172>
+<2><16a>
Abbrev Number: 8 (DW_TAG_subrange_type)
-DW_AT_type : <0x139>
+DW_AT_type : <0x13a>
DW_AT_lower_bound : 0
DW_AT_count : 8
-<1><171>
+<1><172>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x17a): char
+DW_AT_name : (indirect string, offset: 0x244): char
DW_AT_encoding : 8 (unsigned char)
DW_AT_byte_size : 1
diff --git a/mpers-m32/time_t.d1 b/mpers-m32/time_t.d1
index ca0edaf..f6cb37e 100644
--- a/mpers-m32/time_t.d1
+++ b/mpers-m32/time_t.d1
@@ -1,46 +1,47 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x60 (32-bit)
+ Length: 0x61 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/time_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/time_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x50): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8b): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 32
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xce): time_t
- <39> DW_AT_decl_file : 2
- <3a> DW_AT_decl_line : 96
- <1><3b>: Abbrev Number: 3 (DW_TAG_typedef)
- <3c> DW_AT_type : <0x46>
- <40> DW_AT_name : (indirect string, offset: 0xc5): __time_t
- <44> DW_AT_decl_file : 2
- <45> DW_AT_decl_line : 95
- <1><46>: Abbrev Number: 3 (DW_TAG_typedef)
- <47> DW_AT_type : <0x51>
- <4b> DW_AT_name : (indirect string, offset: 0xb5): __kernel_time_t
- <4f> DW_AT_decl_file : 1
- <50> DW_AT_decl_line : 77
- <1><51>: Abbrev Number: 3 (DW_TAG_typedef)
- <52> DW_AT_type : <0x5c>
- <56> DW_AT_name : (indirect string, offset: 0xa5): __kernel_long_t
- <5a> DW_AT_decl_file : 1
- <5b> DW_AT_decl_line : 23
- <1><5c>: Abbrev Number: 4 (DW_TAG_base_type)
- <5d> DW_AT_name : (indirect string, offset: 0x9c): long int
- <61> DW_AT_encoding : 5 (signed)
- <62> DW_AT_byte_size : 4
- <1><63>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11a): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x155): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 32
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x198): time_t
+ <3a> DW_AT_decl_file : 2
+ <3b> DW_AT_decl_line : 96
+ <1><3c>: Abbrev Number: 3 (DW_TAG_typedef)
+ <3d> DW_AT_type : <0x47>
+ <41> DW_AT_name : (indirect string, offset: 0x18f): __time_t
+ <45> DW_AT_decl_file : 2
+ <46> DW_AT_decl_line : 95
+ <1><47>: Abbrev Number: 3 (DW_TAG_typedef)
+ <48> DW_AT_type : <0x52>
+ <4c> DW_AT_name : (indirect string, offset: 0x17f): __kernel_time_t
+ <50> DW_AT_decl_file : 1
+ <51> DW_AT_decl_line : 77
+ <1><52>: Abbrev Number: 3 (DW_TAG_typedef)
+ <53> DW_AT_type : <0x5d>
+ <57> DW_AT_name : (indirect string, offset: 0x16f): __kernel_long_t
+ <5b> DW_AT_decl_file : 1
+ <5c> DW_AT_decl_line : 23
+ <1><5d>: Abbrev Number: 4 (DW_TAG_base_type)
+ <5e> DW_AT_name : (indirect string, offset: 0x166): long int
+ <62> DW_AT_encoding : 5 (signed)
+ <63> DW_AT_byte_size : 4
+ <1><64>: Abbrev Number: 0
diff --git a/mpers-m32/time_t.d2 b/mpers-m32/time_t.d2
index d676133..2652aac 100644
--- a/mpers-m32/time_t.d2
+++ b/mpers-m32/time_t.d2
@@ -1,37 +1,37 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8b): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x155): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 32
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xce): time_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x198): time_t
DW_AT_decl_file : 2
DW_AT_decl_line : 96
-<1><3b>
+<1><3c>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x46>
-DW_AT_name : (indirect string, offset: 0xc5): __time_t
+DW_AT_type : <0x47>
+DW_AT_name : (indirect string, offset: 0x18f): __time_t
DW_AT_decl_file : 2
DW_AT_decl_line : 95
-<1><46>
+<1><47>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x51>
-DW_AT_name : (indirect string, offset: 0xb5): __kernel_time_t
+DW_AT_type : <0x52>
+DW_AT_name : (indirect string, offset: 0x17f): __kernel_time_t
DW_AT_decl_file : 1
DW_AT_decl_line : 77
-<1><51>
+<1><52>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x5c>
-DW_AT_name : (indirect string, offset: 0xa5): __kernel_long_t
+DW_AT_type : <0x5d>
+DW_AT_name : (indirect string, offset: 0x16f): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><5c>
+<1><5d>
Abbrev Number: 4 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0x9c): long int
+DW_AT_name : (indirect string, offset: 0x166): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers-m32/timespec_t.d1 b/mpers-m32/timespec_t.d1
index 54a96ce..3b63cb6 100644
--- a/mpers-m32/timespec_t.d1
+++ b/mpers-m32/timespec_t.d1
@@ -1,59 +1,60 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x7a (32-bit)
+ Length: 0x7b (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/timespec_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/timespec_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x54): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8f): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 34
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xe1): timespec_t
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 32
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xd8): timespec
- <40> DW_AT_byte_size : 8
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 24
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0xa0): tv_sec
- <48> DW_AT_type : <0x60>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 25
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xd0): tv_nsec
- <56> DW_AT_type : <0x76>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 26
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 0
- <1><60>: Abbrev Number: 3 (DW_TAG_typedef)
- <61> DW_AT_type : <0x6b>
- <65> DW_AT_name : (indirect string, offset: 0xc0): __kernel_time_t
- <69> DW_AT_decl_file : 1
- <6a> DW_AT_decl_line : 77
- <1><6b>: Abbrev Number: 3 (DW_TAG_typedef)
- <6c> DW_AT_type : <0x76>
- <70> DW_AT_name : (indirect string, offset: 0xb0): __kernel_long_t
- <74> DW_AT_decl_file : 1
- <75> DW_AT_decl_line : 23
- <1><76>: Abbrev Number: 6 (DW_TAG_base_type)
- <77> DW_AT_name : (indirect string, offset: 0xa7): long int
- <7b> DW_AT_encoding : 5 (signed)
- <7c> DW_AT_byte_size : 4
- <1><7d>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11e): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x159): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 34
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1ab): timespec_t
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 32
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1a2): timespec
+ <41> DW_AT_byte_size : 8
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 24
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x16a): tv_sec
+ <49> DW_AT_type : <0x61>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 25
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x19a): tv_nsec
+ <57> DW_AT_type : <0x77>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 26
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 0
+ <1><61>: Abbrev Number: 3 (DW_TAG_typedef)
+ <62> DW_AT_type : <0x6c>
+ <66> DW_AT_name : (indirect string, offset: 0x18a): __kernel_time_t
+ <6a> DW_AT_decl_file : 1
+ <6b> DW_AT_decl_line : 77
+ <1><6c>: Abbrev Number: 3 (DW_TAG_typedef)
+ <6d> DW_AT_type : <0x77>
+ <71> DW_AT_name : (indirect string, offset: 0x17a): __kernel_long_t
+ <75> DW_AT_decl_file : 1
+ <76> DW_AT_decl_line : 23
+ <1><77>: Abbrev Number: 6 (DW_TAG_base_type)
+ <78> DW_AT_name : (indirect string, offset: 0x171): long int
+ <7c> DW_AT_encoding : 5 (signed)
+ <7d> DW_AT_byte_size : 4
+ <1><7e>: Abbrev Number: 0
diff --git a/mpers-m32/timespec_t.d2 b/mpers-m32/timespec_t.d2
index 7e157e4..3d64697 100644
--- a/mpers-m32/timespec_t.d2
+++ b/mpers-m32/timespec_t.d2
@@ -1,51 +1,51 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8f): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x159): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 34
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xe1): timespec_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1ab): timespec_t
DW_AT_decl_file : 3
DW_AT_decl_line : 32
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xd8): timespec
+DW_AT_name : (indirect string, offset: 0x1a2): timespec
DW_AT_byte_size : 8
DW_AT_decl_file : 2
DW_AT_decl_line : 24
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xa0): tv_sec
-DW_AT_type : <0x60>
+DW_AT_name : (indirect string, offset: 0x16a): tv_sec
+DW_AT_type : <0x61>
DW_AT_decl_file : 2
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd0): tv_nsec
-DW_AT_type : <0x76>
+DW_AT_name : (indirect string, offset: 0x19a): tv_nsec
+DW_AT_type : <0x77>
DW_AT_decl_file : 2
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><60>
+<1><61>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x6b>
-DW_AT_name : (indirect string, offset: 0xc0): __kernel_time_t
+DW_AT_type : <0x6c>
+DW_AT_name : (indirect string, offset: 0x18a): __kernel_time_t
DW_AT_decl_file : 1
DW_AT_decl_line : 77
-<1><6b>
+<1><6c>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x76>
-DW_AT_name : (indirect string, offset: 0xb0): __kernel_long_t
+DW_AT_type : <0x77>
+DW_AT_name : (indirect string, offset: 0x17a): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><76>
+<1><77>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa7): long int
+DW_AT_name : (indirect string, offset: 0x171): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers-m32/timeval_t.d1 b/mpers-m32/timeval_t.d1
index 9879480..27dd9ee 100644
--- a/mpers-m32/timeval_t.d1
+++ b/mpers-m32/timeval_t.d1
@@ -1,64 +1,65 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x85 (32-bit)
+ Length: 0x86 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/timeval_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/timeval_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x53): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 34
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xf4): timeval_t
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 32
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xec): timeval
- <40> DW_AT_byte_size : 8
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 29
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9f): tv_sec
- <48> DW_AT_type : <0x60>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 30
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xcf): tv_usec
- <56> DW_AT_type : <0x7d>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 31
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 0
- <1><60>: Abbrev Number: 3 (DW_TAG_typedef)
- <61> DW_AT_type : <0x6b>
- <65> DW_AT_name : (indirect string, offset: 0xbf): __kernel_time_t
- <69> DW_AT_decl_file : 1
- <6a> DW_AT_decl_line : 77
- <1><6b>: Abbrev Number: 3 (DW_TAG_typedef)
- <6c> DW_AT_type : <0x76>
- <70> DW_AT_name : (indirect string, offset: 0xaf): __kernel_long_t
- <74> DW_AT_decl_file : 1
- <75> DW_AT_decl_line : 23
- <1><76>: Abbrev Number: 6 (DW_TAG_base_type)
- <77> DW_AT_name : (indirect string, offset: 0xa6): long int
- <7b> DW_AT_encoding : 5 (signed)
- <7c> DW_AT_byte_size : 4
- <1><7d>: Abbrev Number: 3 (DW_TAG_typedef)
- <7e> DW_AT_type : <0x6b>
- <82> DW_AT_name : (indirect string, offset: 0xd7): __kernel_suseconds_t
- <86> DW_AT_decl_file : 1
- <87> DW_AT_decl_line : 43
- <1><88>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11d): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 34
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1be): timeval_t
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 32
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1b6): timeval
+ <41> DW_AT_byte_size : 8
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 29
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x169): tv_sec
+ <49> DW_AT_type : <0x61>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 30
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x199): tv_usec
+ <57> DW_AT_type : <0x7e>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 31
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 0
+ <1><61>: Abbrev Number: 3 (DW_TAG_typedef)
+ <62> DW_AT_type : <0x6c>
+ <66> DW_AT_name : (indirect string, offset: 0x189): __kernel_time_t
+ <6a> DW_AT_decl_file : 1
+ <6b> DW_AT_decl_line : 77
+ <1><6c>: Abbrev Number: 3 (DW_TAG_typedef)
+ <6d> DW_AT_type : <0x77>
+ <71> DW_AT_name : (indirect string, offset: 0x179): __kernel_long_t
+ <75> DW_AT_decl_file : 1
+ <76> DW_AT_decl_line : 23
+ <1><77>: Abbrev Number: 6 (DW_TAG_base_type)
+ <78> DW_AT_name : (indirect string, offset: 0x170): long int
+ <7c> DW_AT_encoding : 5 (signed)
+ <7d> DW_AT_byte_size : 4
+ <1><7e>: Abbrev Number: 3 (DW_TAG_typedef)
+ <7f> DW_AT_type : <0x6c>
+ <83> DW_AT_name : (indirect string, offset: 0x1a1): __kernel_suseconds_t
+ <87> DW_AT_decl_file : 1
+ <88> DW_AT_decl_line : 43
+ <1><89>: Abbrev Number: 0
diff --git a/mpers-m32/timeval_t.d2 b/mpers-m32/timeval_t.d2
index a8f5f81..03a5da7 100644
--- a/mpers-m32/timeval_t.d2
+++ b/mpers-m32/timeval_t.d2
@@ -1,57 +1,57 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 34
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xf4): timeval_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1be): timeval_t
DW_AT_decl_file : 3
DW_AT_decl_line : 32
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xec): timeval
+DW_AT_name : (indirect string, offset: 0x1b6): timeval
DW_AT_byte_size : 8
DW_AT_decl_file : 2
DW_AT_decl_line : 29
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9f): tv_sec
-DW_AT_type : <0x60>
+DW_AT_name : (indirect string, offset: 0x169): tv_sec
+DW_AT_type : <0x61>
DW_AT_decl_file : 2
DW_AT_decl_line : 30
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcf): tv_usec
-DW_AT_type : <0x7d>
+DW_AT_name : (indirect string, offset: 0x199): tv_usec
+DW_AT_type : <0x7e>
DW_AT_decl_file : 2
DW_AT_decl_line : 31
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><60>
+<1><61>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x6b>
-DW_AT_name : (indirect string, offset: 0xbf): __kernel_time_t
+DW_AT_type : <0x6c>
+DW_AT_name : (indirect string, offset: 0x189): __kernel_time_t
DW_AT_decl_file : 1
DW_AT_decl_line : 77
-<1><6b>
+<1><6c>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x76>
-DW_AT_name : (indirect string, offset: 0xaf): __kernel_long_t
+DW_AT_type : <0x77>
+DW_AT_name : (indirect string, offset: 0x179): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><76>
+<1><77>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa6): long int
+DW_AT_name : (indirect string, offset: 0x170): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
-<1><7d>
+<1><7e>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x6b>
-DW_AT_name : (indirect string, offset: 0xd7): __kernel_suseconds_t
+DW_AT_type : <0x6c>
+DW_AT_name : (indirect string, offset: 0x1a1): __kernel_suseconds_t
DW_AT_decl_file : 1
DW_AT_decl_line : 43
diff --git a/mpers-m32/tms_t.d1 b/mpers-m32/tms_t.d1
index 324af3d..43487fe 100644
--- a/mpers-m32/tms_t.d1
+++ b/mpers-m32/tms_t.d1
@@ -1,71 +1,72 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x96 (32-bit)
+ Length: 0x97 (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/tms_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/tms_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x4f): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8a): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 38
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xf3): tms_t
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 37
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xef): tms
- <40> DW_AT_byte_size : 16
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 22
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9b): tms_utime
- <48> DW_AT_type : <0x7c>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 23
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xcf): tms_stime
- <56> DW_AT_type : <0x7c>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 24
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 5 (DW_TAG_member)
- <60> DW_AT_name : (indirect string, offset: 0xd9): tms_cutime
- <64> DW_AT_type : <0x7c>
- <68> DW_AT_decl_file : 2
- <69> DW_AT_decl_line : 25
- <6a> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
- <2><6d>: Abbrev Number: 5 (DW_TAG_member)
- <6e> DW_AT_name : (indirect string, offset: 0xe4): tms_cstime
- <72> DW_AT_type : <0x7c>
- <76> DW_AT_decl_file : 2
- <77> DW_AT_decl_line : 26
- <78> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
- <2><7b>: Abbrev Number: 0
- <1><7c>: Abbrev Number: 3 (DW_TAG_typedef)
- <7d> DW_AT_type : <0x87>
- <81> DW_AT_name : (indirect string, offset: 0xbe): __kernel_clock_t
- <85> DW_AT_decl_file : 1
- <86> DW_AT_decl_line : 78
- <1><87>: Abbrev Number: 3 (DW_TAG_typedef)
- <88> DW_AT_type : <0x92>
- <8c> DW_AT_name : (indirect string, offset: 0xae): __kernel_long_t
- <90> DW_AT_decl_file : 1
- <91> DW_AT_decl_line : 23
- <1><92>: Abbrev Number: 6 (DW_TAG_base_type)
- <93> DW_AT_name : (indirect string, offset: 0xa5): long int
- <97> DW_AT_encoding : 5 (signed)
- <98> DW_AT_byte_size : 4
- <1><99>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x119): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x154): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 38
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1bd): tms_t
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 37
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1b9): tms
+ <41> DW_AT_byte_size : 16
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 22
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x165): tms_utime
+ <49> DW_AT_type : <0x7d>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 23
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x199): tms_stime
+ <57> DW_AT_type : <0x7d>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 24
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 5 (DW_TAG_member)
+ <61> DW_AT_name : (indirect string, offset: 0x1a3): tms_cutime
+ <65> DW_AT_type : <0x7d>
+ <69> DW_AT_decl_file : 2
+ <6a> DW_AT_decl_line : 25
+ <6b> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
+ <2><6e>: Abbrev Number: 5 (DW_TAG_member)
+ <6f> DW_AT_name : (indirect string, offset: 0x1ae): tms_cstime
+ <73> DW_AT_type : <0x7d>
+ <77> DW_AT_decl_file : 2
+ <78> DW_AT_decl_line : 26
+ <79> DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
+ <2><7c>: Abbrev Number: 0
+ <1><7d>: Abbrev Number: 3 (DW_TAG_typedef)
+ <7e> DW_AT_type : <0x88>
+ <82> DW_AT_name : (indirect string, offset: 0x188): __kernel_clock_t
+ <86> DW_AT_decl_file : 1
+ <87> DW_AT_decl_line : 78
+ <1><88>: Abbrev Number: 3 (DW_TAG_typedef)
+ <89> DW_AT_type : <0x93>
+ <8d> DW_AT_name : (indirect string, offset: 0x178): __kernel_long_t
+ <91> DW_AT_decl_file : 1
+ <92> DW_AT_decl_line : 23
+ <1><93>: Abbrev Number: 6 (DW_TAG_base_type)
+ <94> DW_AT_name : (indirect string, offset: 0x16f): long int
+ <98> DW_AT_encoding : 5 (signed)
+ <99> DW_AT_byte_size : 4
+ <1><9a>: Abbrev Number: 0
diff --git a/mpers-m32/tms_t.d2 b/mpers-m32/tms_t.d2
index 19879b3..68e6ac5 100644
--- a/mpers-m32/tms_t.d2
+++ b/mpers-m32/tms_t.d2
@@ -1,65 +1,65 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8a): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x154): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 38
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xf3): tms_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1bd): tms_t
DW_AT_decl_file : 3
DW_AT_decl_line : 37
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xef): tms
+DW_AT_name : (indirect string, offset: 0x1b9): tms
DW_AT_byte_size : 16
DW_AT_decl_file : 2
DW_AT_decl_line : 22
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9b): tms_utime
-DW_AT_type : <0x7c>
+DW_AT_name : (indirect string, offset: 0x165): tms_utime
+DW_AT_type : <0x7d>
DW_AT_decl_file : 2
DW_AT_decl_line : 23
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcf): tms_stime
-DW_AT_type : <0x7c>
+DW_AT_name : (indirect string, offset: 0x199): tms_stime
+DW_AT_type : <0x7d>
DW_AT_decl_file : 2
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<2><5f>
+<2><60>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xd9): tms_cutime
-DW_AT_type : <0x7c>
+DW_AT_name : (indirect string, offset: 0x1a3): tms_cutime
+DW_AT_type : <0x7d>
DW_AT_decl_file : 2
DW_AT_decl_line : 25
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8)
-<2><6d>
+<2><6e>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xe4): tms_cstime
-DW_AT_type : <0x7c>
+DW_AT_name : (indirect string, offset: 0x1ae): tms_cstime
+DW_AT_type : <0x7d>
DW_AT_decl_file : 2
DW_AT_decl_line : 26
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst: 12)
-<1><7c>
+<1><7d>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x87>
-DW_AT_name : (indirect string, offset: 0xbe): __kernel_clock_t
+DW_AT_type : <0x88>
+DW_AT_name : (indirect string, offset: 0x188): __kernel_clock_t
DW_AT_decl_file : 1
DW_AT_decl_line : 78
-<1><87>
+<1><88>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x92>
-DW_AT_name : (indirect string, offset: 0xae): __kernel_long_t
+DW_AT_type : <0x93>
+DW_AT_name : (indirect string, offset: 0x178): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><92>
+<1><93>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa5): long int
+DW_AT_name : (indirect string, offset: 0x16f): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers-m32/utimbuf_t.d1 b/mpers-m32/utimbuf_t.d1
index df1e349..b4a5301 100644
--- a/mpers-m32/utimbuf_t.d1
+++ b/mpers-m32/utimbuf_t.d1
@@ -1,59 +1,60 @@
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
- Length: 0x7a (32-bit)
+ Length: 0x7b (32-bit)
Version: 2
Abbrev Offset: 0x0
Pointer Size: 4
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
- <c> DW_AT_producer : (indirect string, offset: 0x0): Android clang version 5.0.300080 (based on LLVM 5.0.300080)
+ <c> DW_AT_producer : (indirect string, offset: 0x0): Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
<10> DW_AT_language : 12 (ANSI C99)
- <12> DW_AT_name : (indirect string, offset: 0x3d): mpers-m32/utimbuf_t.c
+ <12> DW_AT_name : (indirect string, offset: 0x107): mpers-m32/utimbuf_t.c
<16> DW_AT_stmt_list : 0x0
- <1a> DW_AT_comp_dir : (indirect string, offset: 0x53): /usr/local/google/ndkports/.out/strace/package/strace-4.22
- <1><1e>: Abbrev Number: 2 (DW_TAG_variable)
- <1f> DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
- <23> DW_AT_type : <0x30>
- <27> DW_AT_external : 1
- <28> DW_AT_decl_file : 3
- <29> DW_AT_decl_line : 8
- <2a> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
- <1><30>: Abbrev Number: 3 (DW_TAG_typedef)
- <31> DW_AT_type : <0x3b>
- <35> DW_AT_name : (indirect string, offset: 0xdf): utimbuf_t
- <39> DW_AT_decl_file : 3
- <3a> DW_AT_decl_line : 6
- <1><3b>: Abbrev Number: 4 (DW_TAG_structure_type)
- <3c> DW_AT_name : (indirect string, offset: 0xd7): utimbuf
- <40> DW_AT_byte_size : 8
- <41> DW_AT_decl_file : 2
- <42> DW_AT_decl_line : 22
- <2><43>: Abbrev Number: 5 (DW_TAG_member)
- <44> DW_AT_name : (indirect string, offset: 0x9f): actime
- <48> DW_AT_type : <0x60>
- <4c> DW_AT_decl_file : 2
- <4d> DW_AT_decl_line : 23
- <4e> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
- <2><51>: Abbrev Number: 5 (DW_TAG_member)
- <52> DW_AT_name : (indirect string, offset: 0xcf): modtime
- <56> DW_AT_type : <0x60>
- <5a> DW_AT_decl_file : 2
- <5b> DW_AT_decl_line : 24
- <5c> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
- <2><5f>: Abbrev Number: 0
- <1><60>: Abbrev Number: 3 (DW_TAG_typedef)
- <61> DW_AT_type : <0x6b>
- <65> DW_AT_name : (indirect string, offset: 0xbf): __kernel_time_t
- <69> DW_AT_decl_file : 1
- <6a> DW_AT_decl_line : 77
- <1><6b>: Abbrev Number: 3 (DW_TAG_typedef)
- <6c> DW_AT_type : <0x76>
- <70> DW_AT_name : (indirect string, offset: 0xaf): __kernel_long_t
- <74> DW_AT_decl_file : 1
- <75> DW_AT_decl_line : 23
- <1><76>: Abbrev Number: 6 (DW_TAG_base_type)
- <77> DW_AT_name : (indirect string, offset: 0xa6): long int
- <7b> DW_AT_encoding : 5 (signed)
- <7c> DW_AT_byte_size : 4
- <1><7d>: Abbrev Number: 0
+ <1a> DW_AT_comp_dir : (indirect string, offset: 0x11d): /usr/local/google/ndkports/.out/strace/package/strace-4.23
+ <1e> DW_AT_GNU_pubnames: 1
+ <1><1f>: Abbrev Number: 2 (DW_TAG_variable)
+ <20> DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+ <24> DW_AT_type : <0x31>
+ <28> DW_AT_external : 1
+ <29> DW_AT_decl_file : 3
+ <2a> DW_AT_decl_line : 8
+ <2b> DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
+ <1><31>: Abbrev Number: 3 (DW_TAG_typedef)
+ <32> DW_AT_type : <0x3c>
+ <36> DW_AT_name : (indirect string, offset: 0x1a9): utimbuf_t
+ <3a> DW_AT_decl_file : 3
+ <3b> DW_AT_decl_line : 6
+ <1><3c>: Abbrev Number: 4 (DW_TAG_structure_type)
+ <3d> DW_AT_name : (indirect string, offset: 0x1a1): utimbuf
+ <41> DW_AT_byte_size : 8
+ <42> DW_AT_decl_file : 2
+ <43> DW_AT_decl_line : 22
+ <2><44>: Abbrev Number: 5 (DW_TAG_member)
+ <45> DW_AT_name : (indirect string, offset: 0x169): actime
+ <49> DW_AT_type : <0x61>
+ <4d> DW_AT_decl_file : 2
+ <4e> DW_AT_decl_line : 23
+ <4f> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
+ <2><52>: Abbrev Number: 5 (DW_TAG_member)
+ <53> DW_AT_name : (indirect string, offset: 0x199): modtime
+ <57> DW_AT_type : <0x61>
+ <5b> DW_AT_decl_file : 2
+ <5c> DW_AT_decl_line : 24
+ <5d> DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
+ <2><60>: Abbrev Number: 0
+ <1><61>: Abbrev Number: 3 (DW_TAG_typedef)
+ <62> DW_AT_type : <0x6c>
+ <66> DW_AT_name : (indirect string, offset: 0x189): __kernel_time_t
+ <6a> DW_AT_decl_file : 1
+ <6b> DW_AT_decl_line : 77
+ <1><6c>: Abbrev Number: 3 (DW_TAG_typedef)
+ <6d> DW_AT_type : <0x77>
+ <71> DW_AT_name : (indirect string, offset: 0x179): __kernel_long_t
+ <75> DW_AT_decl_file : 1
+ <76> DW_AT_decl_line : 23
+ <1><77>: Abbrev Number: 6 (DW_TAG_base_type)
+ <78> DW_AT_name : (indirect string, offset: 0x170): long int
+ <7c> DW_AT_encoding : 5 (signed)
+ <7d> DW_AT_byte_size : 4
+ <1><7e>: Abbrev Number: 0
diff --git a/mpers-m32/utimbuf_t.d2 b/mpers-m32/utimbuf_t.d2
index 78558f4..0662adb 100644
--- a/mpers-m32/utimbuf_t.d2
+++ b/mpers-m32/utimbuf_t.d2
@@ -1,51 +1,51 @@
-<1><1e>
+<1><1f>
Abbrev Number: 2 (DW_TAG_variable)
-DW_AT_name : (indirect string, offset: 0x8e): mpers_target_var
-DW_AT_type : <0x30>
+DW_AT_name : (indirect string, offset: 0x158): mpers_target_var
+DW_AT_type : <0x31>
DW_AT_external : 1
DW_AT_decl_file : 3
DW_AT_decl_line : 8
DW_AT_location : 5 byte block: 3 4 0 0 0 (DW_OP_addr: 4)
-<1><30>
+<1><31>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x3b>
-DW_AT_name : (indirect string, offset: 0xdf): utimbuf_t
+DW_AT_type : <0x3c>
+DW_AT_name : (indirect string, offset: 0x1a9): utimbuf_t
DW_AT_decl_file : 3
DW_AT_decl_line : 6
-<1><3b>
+<1><3c>
Abbrev Number: 4 (DW_TAG_structure_type)
-DW_AT_name : (indirect string, offset: 0xd7): utimbuf
+DW_AT_name : (indirect string, offset: 0x1a1): utimbuf
DW_AT_byte_size : 8
DW_AT_decl_file : 2
DW_AT_decl_line : 22
-<2><43>
+<2><44>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0x9f): actime
-DW_AT_type : <0x60>
+DW_AT_name : (indirect string, offset: 0x169): actime
+DW_AT_type : <0x61>
DW_AT_decl_file : 2
DW_AT_decl_line : 23
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0)
-<2><51>
+<2><52>
Abbrev Number: 5 (DW_TAG_member)
-DW_AT_name : (indirect string, offset: 0xcf): modtime
-DW_AT_type : <0x60>
+DW_AT_name : (indirect string, offset: 0x199): modtime
+DW_AT_type : <0x61>
DW_AT_decl_file : 2
DW_AT_decl_line : 24
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst: 4)
-<1><60>
+<1><61>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x6b>
-DW_AT_name : (indirect string, offset: 0xbf): __kernel_time_t
+DW_AT_type : <0x6c>
+DW_AT_name : (indirect string, offset: 0x189): __kernel_time_t
DW_AT_decl_file : 1
DW_AT_decl_line : 77
-<1><6b>
+<1><6c>
Abbrev Number: 3 (DW_TAG_typedef)
-DW_AT_type : <0x76>
-DW_AT_name : (indirect string, offset: 0xaf): __kernel_long_t
+DW_AT_type : <0x77>
+DW_AT_name : (indirect string, offset: 0x179): __kernel_long_t
DW_AT_decl_file : 1
DW_AT_decl_line : 23
-<1><76>
+<1><77>
Abbrev Number: 6 (DW_TAG_base_type)
-DW_AT_name : (indirect string, offset: 0xa6): long int
+DW_AT_name : (indirect string, offset: 0x170): long int
DW_AT_encoding : 5 (signed)
DW_AT_byte_size : 4
diff --git a/mpers.am b/mpers.am
index c255dcc..8b23b66 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 hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.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 print_timex.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 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 print_timex.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_xlat.h b/mpers_xlat.h
index e8b3e40..b8dd926 100644
--- a/mpers_xlat.h
+++ b/mpers_xlat.h
@@ -4,6 +4,7 @@
extern const struct xlat btrfs_balance_flags[];
extern const struct xlat btrfs_balance_state[];
extern const struct xlat btrfs_compress_types[];
+extern const struct xlat btrfs_cont_reading_from_srcdev_mode[];
extern const struct xlat btrfs_defrag_flags[];
extern const struct xlat btrfs_dev_replace_cmds[];
extern const struct xlat btrfs_dev_replace_results[];
@@ -35,6 +36,8 @@
extern const struct xlat mtd_flags_options[];
extern const struct xlat mtd_otp_options[];
extern const struct xlat mtd_nandecc_options[];
+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 adjtimex_modes[];
@@ -56,6 +59,7 @@
extern const struct xlat sg_io_flags[];
extern const struct xlat sigaltstack_flags[];
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_device_capabilities_flags[];
@@ -70,6 +74,8 @@
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_tuner_types[];
extern const struct xlat v4l2_tuner_capabilities[];
@@ -77,6 +83,5 @@
extern const struct xlat v4l2_tuner_audmodes[];
extern const struct xlat v4l2_control_types[];
extern const struct xlat v4l2_control_flags[];
-extern const struct xlat v4l2_control_classes[];
extern const struct xlat v4l2_framesize_types[];
extern const struct xlat v4l2_frameinterval_types[];
diff --git a/msghdr.c b/msghdr.c
index c698e54..7dca3e0 100644
--- a/msghdr.c
+++ b/msghdr.c
@@ -4,7 +4,7 @@
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <[email protected]>
* Copyright (c) 1996-2000 Wichert Akkerman <[email protected]>
* Copyright (c) 2005-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -350,8 +350,8 @@
buf_len -= len;
}
if (buf_len) {
- tprints(", ");
- printaddr(addr + (control_len - buf_len));
+ tprints(", ...");
+ printaddr_comment(addr + (control_len - buf_len));
} else if (control_len < in_control_len) {
tprints(", ...");
}
diff --git a/native_printer_decls.h b/native_printer_decls.h
index 00fc232..a10904c 100644
--- a/native_printer_decls.h
+++ b/native_printer_decls.h
@@ -1,4 +1,4 @@
-/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
+/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i perf_ioctl.c.mpers.i print_aio_sigset.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
extern int block_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
extern int btrfs_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
extern int evdev_write_ioctl_mpers(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
@@ -17,6 +17,8 @@
extern int hdio_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
extern int loop_ioctl(struct tcb *tcp, const unsigned int code, const kernel_ulong_t arg);
extern int mtd_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
+extern int perf_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
+extern void print_aio_sigset(struct tcb *tcp, const kernel_ulong_t addr);
extern void print_group_req(struct tcb *const tcp, const kernel_ulong_t addr, const int len);
extern void printmqattr(struct tcb *const tcp, const kernel_ulong_t addr, const _Bool decode_flags);
extern void tprint_msgbuf(struct tcb *const tcp, const kernel_ulong_t addr, const kernel_ulong_t count);
diff --git a/native_printer_defs.h b/native_printer_defs.h
index de2f047..d6f3f7d 100644
--- a/native_printer_defs.h
+++ b/native_printer_defs.h
@@ -1,4 +1,4 @@
-/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
+/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i perf_ioctl.c.mpers.i print_aio_sigset.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
.block_ioctl = block_ioctl,
.btrfs_ioctl = btrfs_ioctl,
.evdev_write_ioctl_mpers = evdev_write_ioctl_mpers,
@@ -17,6 +17,8 @@
.hdio_ioctl = hdio_ioctl,
.loop_ioctl = loop_ioctl,
.mtd_ioctl = mtd_ioctl,
+.perf_ioctl = perf_ioctl,
+.print_aio_sigset = print_aio_sigset,
.print_group_req = print_group_req,
.printmqattr = printmqattr,
.tprint_msgbuf = tprint_msgbuf,
diff --git a/net.c b/net.c
index 6745296..489f38a 100644
--- a/net.c
+++ b/net.c
@@ -84,10 +84,20 @@
#include "xlat/inet_protocols.h"
-#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
-# include <bluetooth/bluetooth.h>
-# include "xlat/bt_protocols.h"
-#endif
+#define XLAT_MACROS_ONLY
+# include "xlat/addrfams.h"
+#undef XLAT_MACROS_ONLY
+#include "xlat/irda_protocols.h"
+#include "xlat/can_protocols.h"
+#include "xlat/bt_protocols.h"
+#include "xlat/isdn_protocols.h"
+#include "xlat/phonet_protocols.h"
+#include "xlat/caif_protocols.h"
+#include "xlat/nfc_protocols.h"
+#include "xlat/kcm_protocols.h"
+#include "xlat/smc_protocols.h"
+
+const size_t inet_protocols_size = ARRAY_SIZE(inet_protocols) - 1;
static void
decode_sockbuf(struct tcb *const tcp, const int fd, const kernel_ulong_t addr,
@@ -113,7 +123,7 @@
const char *str = xlookup(socktypes, flags & SOCK_TYPE_MASK);
if (str) {
- tprints(str);
+ print_xlat_ex(flags & SOCK_TYPE_MASK, str, XLAT_STYLE_DEFAULT);
flags &= ~SOCK_TYPE_MASK;
if (!flags)
return;
@@ -131,18 +141,53 @@
switch (tcp->u_arg[0]) {
case AF_INET:
case AF_INET6:
- printxval(inet_protocols, tcp->u_arg[2], "IPPROTO_???");
+ printxval_search(inet_protocols, tcp->u_arg[2], "IPPROTO_???");
break;
case AF_NETLINK:
printxval(netlink_protocols, tcp->u_arg[2], "NETLINK_???");
break;
-#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
- case AF_BLUETOOTH:
- printxval(bt_protocols, tcp->u_arg[2], "BTPROTO_???");
+ case AF_IRDA:
+ printxval_index(can_protocols, tcp->u_arg[2], "IRDAPROTO_???");
break;
-#endif
+
+ case AF_CAN:
+ printxval_index(can_protocols, tcp->u_arg[2], "CAN_???");
+ break;
+
+ case AF_BLUETOOTH:
+ printxval_index(bt_protocols, tcp->u_arg[2], "BTPROTO_???");
+ break;
+
+ case AF_RXRPC:
+ printxval(addrfams, tcp->u_arg[2], "AF_???");
+ break;
+
+ case AF_ISDN:
+ printxval(isdn_protocols, tcp->u_arg[2], "ISDN_P_???");
+ break;
+
+ case AF_PHONET:
+ printxval_index(phonet_protocols, tcp->u_arg[2], "PN_PROTO_???");
+ break;
+
+ case AF_CAIF:
+ printxval_index(caif_protocols, tcp->u_arg[2], "CAIFPROTO_???");
+ break;
+
+ case AF_NFC:
+ printxval_index(nfc_protocols, tcp->u_arg[2],
+ "NFC_SOCKPROTO_???");
+ break;
+
+ case AF_KCM:
+ printxval_index(kcm_protocols, tcp->u_arg[2], "KCMPROTO_???");
+ break;
+
+ case AF_SMC:
+ printxval_index(smc_protocols, tcp->u_arg[2], "SMCPROTO_???");
+ break;
default:
tprintf("%" PRI_klu, tcp->u_arg[2]);
@@ -382,19 +427,37 @@
return 0;
}
-#include "xlat/sockoptions.h"
-#include "xlat/sockipoptions.h"
-#include "xlat/getsockipoptions.h"
-#include "xlat/setsockipoptions.h"
-#include "xlat/sockipv6options.h"
-#include "xlat/getsockipv6options.h"
-#include "xlat/setsockipv6options.h"
-#include "xlat/sockipxoptions.h"
-#include "xlat/socknetlinkoptions.h"
-#include "xlat/sockpacketoptions.h"
-#include "xlat/sockrawoptions.h"
-#include "xlat/socksctpoptions.h"
-#include "xlat/socktcpoptions.h"
+#include "xlat/sock_options.h"
+#include "xlat/getsock_options.h"
+#include "xlat/setsock_options.h"
+#include "xlat/sock_ip_options.h"
+#include "xlat/getsock_ip_options.h"
+#include "xlat/setsock_ip_options.h"
+#include "xlat/sock_ipv6_options.h"
+#include "xlat/getsock_ipv6_options.h"
+#include "xlat/setsock_ipv6_options.h"
+#include "xlat/sock_ipx_options.h"
+#include "xlat/sock_netlink_options.h"
+#include "xlat/sock_packet_options.h"
+#include "xlat/sock_raw_options.h"
+#include "xlat/sock_sctp_options.h"
+#include "xlat/sock_tcp_options.h"
+#include "xlat/sock_udp_options.h"
+#include "xlat/sock_irda_options.h"
+#include "xlat/sock_llc_options.h"
+#include "xlat/sock_dccp_options.h"
+#include "xlat/sock_tipc_options.h"
+#include "xlat/sock_rxrpc_options.h"
+#include "xlat/sock_pppol2tp_options.h"
+#include "xlat/sock_bluetooth_options.h"
+#include "xlat/sock_pnp_options.h"
+#include "xlat/sock_rds_options.h"
+#include "xlat/sock_iucv_options.h"
+#include "xlat/sock_caif_options.h"
+#include "xlat/sock_alg_options.h"
+#include "xlat/sock_nfcllcp_options.h"
+#include "xlat/sock_kcm_options.h"
+#include "xlat/sock_tls_options.h"
static void
print_sockopt_fd_level_name(struct tcb *tcp, int fd, unsigned int level,
@@ -402,38 +465,90 @@
{
printfd(tcp, fd);
tprints(", ");
- printxval(socketlayers, level, "SOL_??");
+ printxval_search(socketlayers, level, "SOL_??");
tprints(", ");
switch (level) {
case SOL_SOCKET:
- printxval(sockoptions, name, "SO_???");
+ printxvals(name, "SO_???", sock_options,
+ is_getsockopt ? getsock_options :
+ setsock_options, NULL);
break;
case SOL_IP:
- printxvals(name, "IP_???", sockipoptions,
- is_getsockopt ? getsockipoptions : setsockipoptions, NULL);
+ printxvals(name, "IP_???", sock_ip_options,
+ is_getsockopt ? getsock_ip_options :
+ setsock_ip_options, NULL);
break;
case SOL_IPV6:
- printxvals(name, "IPV6_???", sockipv6options,
- is_getsockopt ? getsockipv6options : setsockipv6options, NULL);
+ printxvals(name, "IPV6_???", sock_ipv6_options,
+ is_getsockopt ? getsock_ipv6_options :
+ setsock_ipv6_options, NULL);
break;
case SOL_IPX:
- printxval(sockipxoptions, name, "IPX_???");
+ printxval(sock_ipx_options, name, "IPX_???");
break;
case SOL_PACKET:
- printxval(sockpacketoptions, name, "PACKET_???");
+ printxval(sock_packet_options, name, "PACKET_???");
break;
case SOL_TCP:
- printxval(socktcpoptions, name, "TCP_???");
+ printxval(sock_tcp_options, name, "TCP_???");
break;
case SOL_SCTP:
- printxval(socksctpoptions, name, "SCTP_???");
+ printxval(sock_sctp_options, name, "SCTP_???");
break;
case SOL_RAW:
- printxval(sockrawoptions, name, "RAW_???");
+ printxval(sock_raw_options, name, "RAW_???");
break;
case SOL_NETLINK:
- printxval(socknetlinkoptions, name, "NETLINK_???");
+ printxval(sock_netlink_options, name, "NETLINK_???");
+ break;
+ case SOL_UDP:
+ printxval(sock_udp_options, name, "UDP_???");
+ break;
+ case SOL_IRDA:
+ printxval_index(sock_irda_options, name, "IRLMP_???");
+ break;
+ case SOL_LLC:
+ printxval_index(sock_llc_options, name, "LLC_OPT_???");
+ break;
+ case SOL_DCCP:
+ printxval_search(sock_dccp_options, name, "DCCP_SOCKOPT_???");
+ break;
+ case SOL_TIPC:
+ printxval_search(sock_tipc_options, name, "TIPC_???");
+ break;
+ case SOL_RXRPC:
+ printxval_index(sock_rxrpc_options, name, "RXRPC_???");
+ break;
+ case SOL_PPPOL2TP:
+ printxval_index(sock_pppol2tp_options, name, "PPPOL2TP_SO_???");
+ break;
+ case SOL_BLUETOOTH:
+ printxval_search(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_???");
+ break;
+ case SOL_IUCV:
+ printxval(sock_iucv_options, name, "SO_???");
+ break;
+ case SOL_CAIF:
+ printxval(sock_caif_options, name, "CAIFSO_???");
+ break;
+ case SOL_ALG:
+ printxval_index(sock_alg_options, name, "ALG_???");
+ break;
+ case SOL_NFC:
+ printxval_index(sock_nfcllcp_options, name, "NFC_LLCP_???");
+ break;
+ case SOL_KCM:
+ printxval(sock_kcm_options, name, "KCM_???");
+ break;
+ case SOL_TLS:
+ printxval(sock_tls_options, name, "TLS_???");
break;
/* Other SOL_* protocol levels still need work. */
@@ -626,7 +741,7 @@
uint32_t buf;
print_array(tcp, addr, MIN(ulen, rlen) / sizeof(buf),
&buf, sizeof(buf),
- umoven_or_printaddr, print_uint32, 0);
+ tfetch_mem, print_uint32, 0);
break;
}
default:
diff --git a/netlink.c b/netlink.c
index b5855f6..8a30483 100644
--- a/netlink.c
+++ b/netlink.c
@@ -64,17 +64,25 @@
*/
static bool
fetch_nlmsghdr(struct tcb *const tcp, struct nlmsghdr *const nlmsghdr,
- const kernel_ulong_t addr, const kernel_ulong_t len)
+ const kernel_ulong_t addr, const kernel_ulong_t len,
+ const bool in_array)
{
if (len < sizeof(struct nlmsghdr)) {
printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);
return false;
}
- if (umove_or_printaddr(tcp, addr, nlmsghdr))
- return false;
+ if (tfetch_obj(tcp, addr, nlmsghdr))
+ return true;
- return true;
+ if (in_array) {
+ tprints("...");
+ printaddr_comment(addr);
+ } else {
+ printaddr(addr);
+ }
+
+ return false;
}
static int
@@ -161,7 +169,7 @@
/* Reserved control nfnetlink messages first. */
const char *const text = xlookup(nl_netfilter_msg_types, type);
if (text) {
- tprints(text);
+ print_xlat_ex(type, text, XLAT_STYLE_DEFAULT);
return;
}
@@ -430,7 +438,8 @@
} else if (family < ARRAY_SIZE(nlmsg_flags) && nlmsg_flags[family])
table = nlmsg_flags[family](type);
- printflags_ex(flags, "NLM_F_???", netlink_flags, table, NULL);
+ printflags_ex(flags, "NLM_F_???", XLAT_STYLE_ABBREV,
+ netlink_flags, table, NULL);
}
static void
@@ -472,7 +481,7 @@
const size_t nmemb = len / sizeof(cookie);
print_array(tcp, addr, nmemb, &cookie, sizeof(cookie),
- umoven_or_printaddr, print_cookie, 0);
+ tfetch_mem, print_cookie, 0);
return true;
}
@@ -521,7 +530,7 @@
if (len) {
tprints(", msg=");
- if (fetch_nlmsghdr(tcp, &err.msg, addr, len)) {
+ if (fetch_nlmsghdr(tcp, &err.msg, addr, len, false)) {
unsigned int payload =
capped ? sizeof(err.msg) : err.msg.nlmsg_len;
if (payload > len)
@@ -606,8 +615,7 @@
const kernel_ulong_t addr,
const kernel_ulong_t len)
{
- const unsigned int nlmsg_len =
- nlmsghdr->nlmsg_len > len ? len : nlmsghdr->nlmsg_len;
+ const unsigned int nlmsg_len = MIN(nlmsghdr->nlmsg_len, len);
if (nlmsg_len > NLMSG_HDRLEN)
tprints("{");
@@ -631,15 +639,16 @@
const int family = get_fd_nl_family(tcp, fd);
if (family == NETLINK_KOBJECT_UEVENT) {
- printstrn(tcp, addr, len);
+ decode_netlink_kobject_uevent(tcp, addr, len);
return;
}
struct nlmsghdr nlmsghdr;
- bool print_array = false;
+ bool is_array = false;
unsigned int elt;
- for (elt = 0; fetch_nlmsghdr(tcp, &nlmsghdr, addr, len); elt++) {
+ for (elt = 0; fetch_nlmsghdr(tcp, &nlmsghdr, addr, len, is_array);
+ elt++) {
if (abbrev(tcp) && elt == max_strlen) {
tprints("...");
break;
@@ -656,9 +665,9 @@
next_addr = addr + nlmsg_len;
}
- if (!print_array && next_addr) {
+ if (!is_array && next_addr) {
tprints("[");
- print_array = true;
+ is_array = true;
}
decode_nlmsghdr_with_payload(tcp, fd, family,
@@ -672,7 +681,7 @@
len = next_len;
}
- if (print_array) {
+ if (is_array) {
tprints("]");
}
}
diff --git a/netlink_kobject_uevent.c b/netlink_kobject_uevent.c
new file mode 100644
index 0000000..35f305a
--- /dev/null
+++ b/netlink_kobject_uevent.c
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2018 Harsha Sharma <[email protected]>
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+#include "print_fields.h"
+#include "netlink_kobject_uevent.h"
+
+#include <arpa/inet.h>
+
+void
+decode_netlink_kobject_uevent(struct tcb *tcp, kernel_ulong_t addr,
+ kernel_ulong_t len)
+{
+ struct udev_monitor_netlink_header uh;
+ const char *prefix = "libudev";
+ unsigned int offset = sizeof(uh);
+
+ if (!verbose(tcp) || (exiting(tcp) && syserror(tcp)) ||
+ !addr || len < offset || umove(tcp, addr, &uh) ||
+ strcmp(uh.prefix, prefix) != 0) {
+ printstrn(tcp, addr, len);
+ return;
+ }
+
+ PRINT_FIELD_CSTRING("{{", uh, prefix);
+ tprintf(", magic=htonl(%#x)", ntohl(uh.magic));
+ PRINT_FIELD_U(", ", uh, header_size);
+ PRINT_FIELD_U(", ", uh, properties_off);
+ PRINT_FIELD_U(", ", uh, properties_len);
+ tprintf(", filter_subsystem_hash=htonl(%#x)", ntohl(uh.filter_subsystem_hash));
+ tprintf(", filter_devtype_hash=htonl(%#x)", ntohl(uh.filter_devtype_hash));
+ tprintf(", filter_tag_bloom_hi=htonl(%#x)", ntohl(uh.filter_tag_bloom_hi));
+ tprintf(", filter_tag_bloom_lo=htonl(%#x)", ntohl(uh.filter_tag_bloom_lo));
+ tprints("}");
+ if (len > offset) {
+ tprints(", ");
+ printstrn(tcp, addr + offset, len - offset);
+ }
+ tprints("}");
+}
diff --git a/netlink_kobject_uevent.h b/netlink_kobject_uevent.h
new file mode 100644
index 0000000..5ac57ca
--- /dev/null
+++ b/netlink_kobject_uevent.h
@@ -0,0 +1,17 @@
+#ifndef STRACE_NETLINK_KOBJECT_UEVENT_H
+#define STRACE_NETLINK_KOBJECT_UEVENT_H
+
+struct udev_monitor_netlink_header {
+ /* "libudev" prefix to distinguish libudev and kernel messages */
+ char prefix[8];
+ unsigned int magic;
+ unsigned int header_size;
+ unsigned int properties_off;
+ unsigned int properties_len;
+ unsigned int filter_subsystem_hash;
+ unsigned int filter_devtype_hash;
+ unsigned int filter_tag_bloom_hi;
+ unsigned int filter_tag_bloom_lo;
+};
+
+#endif /* !STRACE_NETLINK_KOBJECT_UEVENT_H */
diff --git a/netlink_netlink_diag.c b/netlink_netlink_diag.c
index eb689b8..7ff9887 100644
--- a/netlink_netlink_diag.c
+++ b/netlink_netlink_diag.c
@@ -98,7 +98,7 @@
return false;
print_array(tcp, addr, nmemb, &buf, current_wordsize,
- umoven_or_printaddr, print_group, 0);
+ tfetch_mem, print_group, 0);
return true;
}
diff --git a/netlink_packet_diag.c b/netlink_packet_diag.c
index db688a9..18b7091 100644
--- a/netlink_packet_diag.c
+++ b/netlink_packet_diag.c
@@ -96,8 +96,7 @@
const size_t elem_size, void *const opaque_data)
{
struct packet_diag_mclist *dml = elem_buf;
- uint16_t alen = dml->pdmc_alen > sizeof(dml->pdmc_addr) ?
- sizeof(dml->pdmc_addr) : dml->pdmc_alen;
+ uint16_t alen = MIN(dml->pdmc_alen, sizeof(dml->pdmc_addr));
PRINT_FIELD_IFINDEX("{", *dml, pdmc_index);
PRINT_FIELD_U(", ", *dml, pdmc_count);
@@ -122,7 +121,7 @@
return false;
print_array(tcp, addr, nmemb, &dml, sizeof(dml),
- umoven_or_printaddr, print_packet_diag_mclist, 0);
+ tfetch_mem, print_packet_diag_mclist, 0);
return true;
}
diff --git a/netlink_unix_diag.c b/netlink_unix_diag.c
index 4f3fbcc..409180f 100644
--- a/netlink_unix_diag.c
+++ b/netlink_unix_diag.c
@@ -107,7 +107,7 @@
return false;
print_array(tcp, addr, nmemb, &inode, sizeof(inode),
- umoven_or_printaddr, print_inode, 0);
+ tfetch_mem, print_inode, 0);
return true;
}
diff --git a/nlattr.c b/nlattr.c
index a71c79a..af7cc16 100644
--- a/nlattr.c
+++ b/nlattr.c
@@ -36,19 +36,29 @@
#include <linux/sock_diag.h>
#include "static_assert.h"
+#include "xlat/netlink_sk_meminfo_indices.h"
+
static bool
fetch_nlattr(struct tcb *const tcp, struct nlattr *const nlattr,
- const kernel_ulong_t addr, const unsigned int len)
+ const kernel_ulong_t addr, const unsigned int len,
+ const bool in_array)
{
if (len < sizeof(struct nlattr)) {
printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);
return false;
}
- if (umove_or_printaddr(tcp, addr, nlattr))
- return false;
+ if (tfetch_obj(tcp, addr, nlattr))
+ return true;
- return true;
+ if (in_array) {
+ tprints("...");
+ printaddr_comment(addr);
+ } else {
+ printaddr(addr);
+ }
+
+ return false;
}
static void
@@ -60,10 +70,14 @@
"wrong NLA_TYPE_MASK");
tprintf("{nla_len=%u, nla_type=", nla->nla_len);
- if (nla->nla_type & NLA_F_NESTED)
- tprints("NLA_F_NESTED|");
- if (nla->nla_type & NLA_F_NET_BYTEORDER)
- tprints("NLA_F_NET_BYTEORDER|");
+ if (nla->nla_type & NLA_F_NESTED) {
+ print_xlat(NLA_F_NESTED);
+ tprints("|");
+ }
+ if (nla->nla_type & NLA_F_NET_BYTEORDER) {
+ print_xlat(NLA_F_NET_BYTEORDER);
+ tprints("|");
+ }
printxval(table, nla->nla_type & NLA_TYPE_MASK, dflt);
tprints("}");
}
@@ -79,7 +93,7 @@
const unsigned int size,
const void *const opaque_data)
{
- const unsigned int nla_len = nla->nla_len > len ? len : nla->nla_len;
+ const unsigned int nla_len = MIN(nla->nla_len, len);
if (nla_len > NLA_HDRLEN)
tprints("{");
@@ -87,13 +101,18 @@
print_nlattr(nla, table, dflt);
if (nla_len > NLA_HDRLEN) {
+ const unsigned int idx = size ? nla->nla_type : 0;
+
tprints(", ");
if (!decoders
- || nla->nla_type >= size
- || !decoders[nla->nla_type]
- || !decoders[nla->nla_type](tcp, addr + NLA_HDRLEN,
- nla_len - NLA_HDRLEN,
- opaque_data))
+ || (size && idx >= size)
+ || !decoders[idx]
+ || !decoders[idx](
+ tcp, addr + NLA_HDRLEN,
+ nla_len - NLA_HDRLEN,
+ size ? opaque_data
+ : (const void *) (uintptr_t) nla->nla_type)
+ )
printstr_ex(tcp, addr + NLA_HDRLEN,
nla_len - NLA_HDRLEN, QUOTE_FORCE_HEX);
tprints("}");
@@ -111,10 +130,17 @@
const void *const opaque_data)
{
struct nlattr nla;
- bool print_array = false;
+ bool is_array = false;
unsigned int elt;
- for (elt = 0; fetch_nlattr(tcp, &nla, addr, len); elt++) {
+ if (decoders && !size && opaque_data)
+ error_func_msg("[xlat %p, dflt \"%s\", decoders %p] "
+ "size is zero (going to pass nla_type as "
+ "decoder argument), but opaque data (%p) is not "
+ "- will be ignored",
+ table, dflt, decoders, opaque_data);
+
+ for (elt = 0; fetch_nlattr(tcp, &nla, addr, len, is_array); elt++) {
if (abbrev(tcp) && elt == max_strlen) {
tprints("...");
break;
@@ -131,9 +157,9 @@
next_addr = addr + nla_len;
}
- if (!print_array && next_addr) {
+ if (!is_array && next_addr) {
tprints("[");
- print_array = true;
+ is_array = true;
}
decode_nlattr_with_data(tcp, &nla, addr, len, table, dflt,
@@ -147,7 +173,7 @@
len = next_len;
}
- if (print_array) {
+ if (is_array) {
tprints("]");
}
}
@@ -174,24 +200,6 @@
return true;
}
-static bool
-print_meminfo(struct tcb *const tcp,
- void *const elem_buf,
- const size_t elem_size,
- void *const opaque_data)
-{
- unsigned int *const count = opaque_data;
-
- if ((*count)++ >= SK_MEMINFO_VARS) {
- tprints("...");
- return false;
- }
-
- tprintf("%" PRIu32, *(uint32_t *) elem_buf);
-
- return true;
-}
-
bool
decode_nla_meminfo(struct tcb *const tcp,
const kernel_ulong_t addr,
@@ -205,8 +213,12 @@
return false;
unsigned int count = 0;
- print_array(tcp, addr, nmemb, &mem, sizeof(mem),
- umoven_or_printaddr, print_meminfo, &count);
+ 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),
+ "SK_MEMINFO_???");
return true;
}
@@ -228,6 +240,31 @@
}
bool
+decode_nla_uid(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ uint32_t uid;
+
+ if (len < sizeof(uid))
+ return false;
+ else if (!umove_or_printaddr(tcp, addr, &uid))
+ printuid("", uid);
+
+ return true;
+}
+
+bool
+decode_nla_gid(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ return decode_nla_uid(tcp, addr, len, opaque_data);
+}
+
+bool
decode_nla_ifindex(struct tcb *const tcp,
const kernel_ulong_t addr,
const unsigned int len,
@@ -244,6 +281,121 @@
}
bool
+decode_nla_xval(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ unsigned int len,
+ const void *const opaque_data)
+{
+ const struct decode_nla_xlat_opts * const opts = opaque_data;
+ union {
+ uint64_t val;
+ uint8_t bytes[sizeof(uint64_t)];
+ } data = { .val = 0 };
+
+ if (len > sizeof(data) || len < opts->size)
+ return false;
+
+ if (opts->size)
+ len = MIN(len, opts->size);
+
+ const size_t bytes_offs = is_bigendian ? sizeof(data) - len : 0;
+
+ if (!umoven_or_printaddr(tcp, addr, len, data.bytes + bytes_offs)) {
+ if (opts->process_fn)
+ 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);
+ if (opts->suffix)
+ tprints(opts->suffix);
+ }
+
+ return true;
+}
+
+static uint64_t
+process_host_order(uint64_t val)
+{
+ return ntohs(val);
+}
+
+bool
+decode_nla_ether_proto(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ 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,
+ .process_fn = process_host_order,
+ };
+
+ return decode_nla_xval(tcp, addr, len, &opts);
+}
+
+bool
+decode_nla_ip_proto(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ const struct decode_nla_xlat_opts opts = {
+ .xlat = inet_protocols,
+ .xlat_size = inet_protocols_size,
+ .xt = XT_SORTED,
+ .dflt = "IPPROTO_???",
+ .size = 1,
+ };
+
+ return decode_nla_xval(tcp, addr, len, &opts);
+}
+
+bool
+decode_nla_flags(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ unsigned int len,
+ const void *const opaque_data)
+{
+ const struct decode_nla_xlat_opts * const opts = opaque_data;
+ union {
+ uint64_t flags;
+ uint8_t bytes[sizeof(uint64_t)];
+ } data = { .flags = 0 };
+
+ if (len > sizeof(data) || len < opts->size)
+ return false;
+
+ if (opts->size)
+ len = MIN(len, opts->size);
+
+ 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);
+ if (opts->prefix)
+ tprints(opts->prefix);
+ printflags_ex(data.flags, opts->dflt, opts->style, opts->xlat,
+ NULL);
+ if (opts->suffix)
+ tprints(opts->suffix);
+ }
+
+ return true;
+}
+
+bool
decode_nla_be16(struct tcb *const tcp,
const kernel_ulong_t addr,
const unsigned int len,
@@ -295,6 +447,10 @@
return true; \
}
+DECODE_NLA_INTEGER(x8, uint8_t, "%#" PRIx8)
+DECODE_NLA_INTEGER(x16, uint16_t, "%#" PRIx16)
+DECODE_NLA_INTEGER(x32, uint32_t, "%#" PRIx32)
+DECODE_NLA_INTEGER(x64, uint64_t, "%#" PRIx64)
DECODE_NLA_INTEGER(u8, uint8_t, "%" PRIu8)
DECODE_NLA_INTEGER(u16, uint16_t, "%" PRIu16)
DECODE_NLA_INTEGER(u32, uint32_t, "%" PRIu32)
diff --git a/nlattr.h b/nlattr.h
index 00cbfd5..27ffdeb 100644
--- a/nlattr.h
+++ b/nlattr.h
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2016 Fabien Siron <[email protected]>
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -30,15 +30,45 @@
#ifndef STRACE_NLATTR_H
#define STRACE_NLATTR_H
+#include "xlat.h"
+
+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;
+ uint64_t (*process_fn)(uint64_t val);
+ size_t size;
+};
+
+/*
+ * Used for IFLA_LINKINFO decoding. Since there are no other indicators
+ * regarding the nature of data except for previously provided string
+ * in an IFLA_LINKINFO_KIND attribute, we have to store it in order to pass
+ * between calls as an opaque data.
+ */
+struct ifla_linkinfo_ctx {
+ char kind[16];
+};
+
typedef bool (*nla_decoder_t)(struct tcb *, kernel_ulong_t addr,
unsigned int len, const void *opaque_data);
+
+/**
+ * The case of non-NULL decoders and zero size is handled in a special way:
+ * the zeroth decoder is always called with nla_type being passed as opaque
+ * data.
+ */
extern void
decode_nlattr(struct tcb *,
kernel_ulong_t addr,
unsigned int len,
const struct xlat *,
const char *dflt,
- const nla_decoder_t *,
+ const nla_decoder_t *decoders,
unsigned int size,
const void *opaque_data);
@@ -48,6 +78,10 @@
unsigned int len, const void *) \
/* End of DECL_NLA definition. */
+DECL_NLA(x8);
+DECL_NLA(x16);
+DECL_NLA(x32);
+DECL_NLA(x64);
DECL_NLA(u8);
DECL_NLA(u16);
DECL_NLA(u32);
@@ -58,12 +92,19 @@
DECL_NLA(s64);
DECL_NLA(be16);
DECL_NLA(be64);
+DECL_NLA(xval);
+DECL_NLA(flags);
DECL_NLA(str);
DECL_NLA(strn);
DECL_NLA(fd);
+DECL_NLA(uid);
+DECL_NLA(gid);
DECL_NLA(ifindex);
+DECL_NLA(ether_proto);
+DECL_NLA(ip_proto);
DECL_NLA(meminfo);
DECL_NLA(rt_class);
+DECL_NLA(rt_proto);
DECL_NLA(tc_stats);
#endif /* !STRACE_NLATTR_H */
diff --git a/numa.c b/numa.c
index 7564d87..c4500e8 100644
--- a/numa.c
+++ b/numa.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2003-2007 Ulrich Drepper <[email protected]>
* Copyright (c) 2005-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,7 +59,7 @@
kernel_ulong_t buf;
print_array(tcp, addr, nmemb, &buf, current_wordsize,
- umoven_or_printaddr, print_node, 0);
+ tfetch_mem, print_node, 0);
}
SYS_FUNC(migrate_pages)
@@ -166,14 +166,14 @@
if (entering(tcp)) {
tprintf("%d, %" PRI_klu ", ", (int) tcp->u_arg[0], npages);
print_array(tcp, tcp->u_arg[2], npages, &buf, current_wordsize,
- umoven_or_printaddr, print_addr, 0);
+ tfetch_mem, print_addr, 0);
tprints(", ");
print_array(tcp, tcp->u_arg[3], npages, &buf, sizeof(int),
- umoven_or_printaddr, print_int, 0);
+ tfetch_mem, print_int, 0);
tprints(", ");
} else {
print_array(tcp, tcp->u_arg[4], npages, &buf, sizeof(int),
- umoven_or_printaddr, print_status, 0);
+ tfetch_mem, print_status, 0);
tprints(", ");
printflags(move_pages_flags, tcp->u_arg[5], "MPOL_???");
}
diff --git a/open.c b/open.c
index afa5020..fde21cc 100644
--- a/open.c
+++ b/open.c
@@ -62,11 +62,11 @@
print_dirfd(struct tcb *tcp, int fd)
{
if (fd == AT_FDCWD)
- tprints("AT_FDCWD, ");
- else {
+ print_xlat_d(AT_FDCWD);
+ else
printfd(tcp, fd);
- tprints(", ");
- }
+
+ tprints(", ");
}
/*
@@ -113,7 +113,8 @@
void
tprint_open_modes(unsigned int flags)
{
- tprints(sprint_open_modes(flags) + sizeof("flags"));
+ print_xlat_ex(flags, sprint_open_modes(flags) + sizeof("flags"),
+ XLAT_STYLE_DEFAULT);
}
#ifdef O_TMPFILE
diff --git a/perf.c b/perf.c
index b37f54a..e66ca4d 100644
--- a/perf.c
+++ b/perf.c
@@ -60,7 +60,7 @@
free(desc);
}
-static int
+int
fetch_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr)
{
struct pea_desc *desc;
@@ -117,7 +117,7 @@
printxval_search(xlat, x, dflt); \
} while (0)
-static void
+void
print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr)
{
static const char *precise_ip_desc[] = {
diff --git a/perf_event_struct.h b/perf_event_struct.h
index a75b88a..57d245b 100644
--- a/perf_event_struct.h
+++ b/perf_event_struct.h
@@ -71,4 +71,10 @@
/* End of ver 5 - 112 bytes */
};
+struct perf_event_query_bpf {
+ uint32_t ids_len;
+ uint32_t prog_cnt;
+ uint32_t ids[0];
+};
+
#endif /* !STRACE_LINUX_PERF_EVENT_STRUCT_H */
diff --git a/perf_ioctl.c b/perf_ioctl.c
new file mode 100644
index 0000000..398fe69
--- /dev/null
+++ b/perf_ioctl.c
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+
+#include <linux/ioctl.h>
+
+#include "perf_event_struct.h"
+
+#define XLAT_MACROS_ONLY
+# include "xlat/perf_ioctl_cmds.h"
+#undef XLAT_MACROS_ONLY
+
+#include "xlat/perf_ioctl_flags.h"
+
+#include MPERS_DEFS
+
+static int
+perf_ioctl_query_bpf(struct tcb *const tcp, const kernel_ulong_t arg)
+{
+ uint32_t info;
+
+ if (entering(tcp)) {
+ tprints(", ");
+
+ if (umove_or_printaddr(tcp, arg, &info))
+ return RVAL_IOCTL_DECODED;
+
+ tprintf("{ids_len=%u, ", info);
+
+ return 0;
+ }
+
+ if (syserror(tcp) ||
+ umove(tcp, arg + offsetof(struct perf_event_query_bpf, prog_cnt),
+ &info)) {
+ tprints("...}");
+
+ return RVAL_IOCTL_DECODED;
+ }
+
+ tprintf("prog_cnt=%u, ids=", info);
+
+ print_array(tcp, arg + offsetof(struct perf_event_query_bpf, ids), info,
+ &info, sizeof(info),
+ tfetch_mem, print_uint32_array_member, NULL);
+
+ tprints("}");
+
+ return RVAL_IOCTL_DECODED;
+}
+
+static int
+perf_ioctl_modify_attributes(struct tcb *const tcp, const kernel_ulong_t arg)
+{
+ tprints(", ");
+ if (!fetch_perf_event_attr(tcp, arg))
+ print_perf_event_attr(tcp, arg);
+
+ return RVAL_IOCTL_DECODED;
+}
+
+MPERS_PRINTER_DECL(int, perf_ioctl,
+ struct tcb *const tcp, const unsigned int code,
+ const kernel_ulong_t arg)
+{
+ switch (code) {
+ case PERF_EVENT_IOC_ENABLE:
+ case PERF_EVENT_IOC_DISABLE:
+ case PERF_EVENT_IOC_RESET:
+ tprints(", ");
+ printflags(perf_ioctl_flags, arg, "PERF_IOC_FLAG_???");
+
+ return RVAL_IOCTL_DECODED;
+
+ case PERF_EVENT_IOC_REFRESH:
+ tprintf(", %d", (int) arg);
+
+ return RVAL_IOCTL_DECODED;
+
+ case PERF_EVENT_IOC_PERIOD:
+ tprints(", ");
+ printnum_int64(tcp, arg, "%" PRIu64);
+
+ return RVAL_IOCTL_DECODED;
+
+ case PERF_EVENT_IOC_SET_OUTPUT:
+ case PERF_EVENT_IOC_SET_BPF:
+ tprintf(", ");
+ printfd(tcp, (int) arg);
+
+ return RVAL_IOCTL_DECODED;
+
+ case PERF_EVENT_IOC_PAUSE_OUTPUT:
+ tprintf(", %" PRI_klu, arg);
+
+ return RVAL_IOCTL_DECODED;
+
+ /*
+ * The following ioctl requests are personality-specific
+ * due to the pointer size.
+ */
+ case PERF_EVENT_IOC_SET_FILTER:
+ tprints(", ");
+ printstr_ex(tcp, arg, get_pagesize(), QUOTE_0_TERMINATED);
+
+ return RVAL_IOCTL_DECODED;
+
+ case PERF_EVENT_IOC_ID:
+ if (entering(tcp)) {
+ tprints(", ");
+
+ return 0;
+ }
+
+ printnum_int64(tcp, arg, "%" PRIu64);
+
+ return RVAL_IOCTL_DECODED;
+
+ case PERF_EVENT_IOC_QUERY_BPF:
+ return perf_ioctl_query_bpf(tcp, arg);
+
+ case PERF_EVENT_IOC_MODIFY_ATTRIBUTES:
+ return perf_ioctl_modify_attributes(tcp, arg);
+
+ default:
+ return RVAL_DECODED;
+ }
+}
diff --git a/poll.c b/poll.c
index da42388..db1931d 100644
--- a/poll.c
+++ b/poll.c
@@ -57,7 +57,7 @@
struct pollfd fds;
print_array(tcp, addr, nfds, &fds, sizeof(fds),
- umoven_or_printaddr, print_pollfd, 0);
+ tfetch_mem, print_pollfd, 0);
tprintf(", %u, ", nfds);
}
diff --git a/prctl.c b/prctl.c
index a0f4f6a..568b5f7 100644
--- a/prctl.c
+++ b/prctl.c
@@ -42,6 +42,9 @@
#include "xlat/pr_mce_kill.h"
#include "xlat/pr_mce_kill_policy.h"
#include "xlat/pr_set_mm.h"
+#include "xlat/pr_spec_cmds.h"
+#include "xlat/pr_spec_get_store_bypass_flags.h"
+#include "xlat/pr_spec_set_store_bypass_flags.h"
#include "xlat/pr_sve_vl_flags.h"
#include "xlat/pr_tsc.h"
#include "xlat/pr_unalign_flags.h"
@@ -225,6 +228,27 @@
return RVAL_STR;
+ case PR_GET_SPECULATION_CTRL:
+ if (entering(tcp)) {
+ tprints(", ");
+ printxval64(pr_spec_cmds, arg2, "PR_SPEC_???");
+
+ break;
+ }
+
+ if (syserror(tcp))
+ return 0;
+
+ switch (arg2) {
+ case PR_SPEC_STORE_BYPASS:
+ tcp->auxstr = sprintflags("",
+ pr_spec_get_store_bypass_flags,
+ (kernel_ulong_t) tcp->u_rval);
+ break;
+ }
+
+ return RVAL_STR;
+
/* PR_TASK_PERF_EVENTS_* take no arguments. */
case PR_TASK_PERF_EVENTS_DISABLE:
case PR_TASK_PERF_EVENTS_ENABLE:
@@ -319,10 +343,12 @@
case PR_SET_PTRACER:
tprints(", ");
- if ((int) arg2 == -1)
- tprints("PR_SET_PTRACER_ANY");
- else
+ if ((int) arg2 == -1) {
+ print_xlat_ex(arg2, "PR_SET_PTRACER_ANY",
+ XLAT_STYLE_DEFAULT);
+ } else {
tprintf("%" PRI_klu, arg2);
+ }
return RVAL_DECODED;
case PR_SET_SECCOMP:
@@ -380,6 +406,23 @@
printflags(pr_fp_mode, arg2, "PR_FP_MODE_???");
return RVAL_DECODED;
+ case PR_SET_SPECULATION_CTRL:
+ tprints(", ");
+ printxval64(pr_spec_cmds, arg2, "PR_SPEC_???");
+ tprints(", ");
+
+ switch (arg2) {
+ case PR_SPEC_STORE_BYPASS:
+ printxval64(pr_spec_set_store_bypass_flags, arg3,
+ "PR_SPEC_???");
+ break;
+
+ default:
+ tprintf("%#" PRI_klx, arg3);
+ }
+
+ return RVAL_DECODED;
+
case PR_GET_NO_NEW_PRIVS:
case PR_GET_THP_DISABLE:
case PR_MPX_DISABLE_MANAGEMENT:
diff --git a/print_aio_sigset.c b/print_aio_sigset.c
new file mode 100644
index 0000000..9903951
--- /dev/null
+++ b/print_aio_sigset.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+
+#include DEF_MPERS_TYPE(strace_aio_sigset)
+
+typedef struct {
+ sigset_t *sigmask;
+ size_t sigsetsize;
+} strace_aio_sigset;
+
+#include MPERS_DEFS
+
+#include "print_fields.h"
+
+MPERS_PRINTER_DECL(void, print_aio_sigset, struct tcb *tcp,
+ const kernel_ulong_t addr)
+{
+ strace_aio_sigset sigset;
+
+ if (!umove_or_printaddr(tcp, addr, &sigset)) {
+ tprints("{sigmask=");
+ print_sigset_addr_len(tcp, (uintptr_t) sigset.sigmask,
+ sigset.sigsetsize);
+ PRINT_FIELD_U(", ", sigset, sigsetsize);
+ tprints("}");
+ }
+}
diff --git a/print_fields.h b/print_fields.h
index 0b810d5..ffcabf4 100644
--- a/print_fields.h
+++ b/print_fields.h
@@ -91,6 +91,31 @@
(dflt_)); \
} while (0)
+#define PRINT_FIELD_XVAL_U(prefix_, where_, field_, xlat_, dflt_) \
+ do { \
+ STRACE_PRINTF("%s%s=", (prefix_), #field_); \
+ printxvals_ex(zero_extend_signed_to_ull((where_).field_), \
+ (dflt_), XLAT_STYLE_FMT_U, \
+ (xlat_), NULL); \
+ } while (0)
+
+#define PRINT_FIELD_XVAL_SORTED_SIZED(prefix_, where_, field_, xlat_, \
+ xlat_size_, dflt_) \
+ do { \
+ STRACE_PRINTF("%s%s=", (prefix_), #field_); \
+ printxval_searchn((xlat_), (xlat_size_), \
+ zero_extend_signed_to_ull((where_).field_), \
+ (dflt_)); \
+ } while (0)
+
+#define PRINT_FIELD_XVAL_INDEX(prefix_, where_, field_, xlat_, dflt_) \
+ do { \
+ STRACE_PRINTF("%s%s=", (prefix_), #field_); \
+ printxval_index((xlat_), \
+ zero_extend_signed_to_ull((where_).field_), \
+ (dflt_)); \
+ } while (0)
+
/*
* Generic "ID" printing. ID is considered unsigned except for the special value
* of -1.
@@ -106,6 +131,16 @@
#define PRINT_FIELD_UID PRINT_FIELD_ID
+#define PRINT_FIELD_U64(prefix_, where_, field_) \
+ do { \
+ STRACE_PRINTF("%s%s=", (prefix_), #field_); \
+ if (zero_extend_signed_to_ull((where_).field_) == UINT64_MAX) \
+ print_xlat_ex(UINT64_MAX, "UINT64_MAX", XLAT_STYLE_FMT_U); \
+ else \
+ STRACE_PRINTF("%llu", \
+ zero_extend_signed_to_ull((where_).field_)); \
+ } while (0)
+
#define PRINT_FIELD_STRING(prefix_, where_, field_, len_, style_) \
do { \
STRACE_PRINTF("%s%s=", (prefix_), #field_); \
@@ -202,4 +237,17 @@
printpath((tcp_), (where_).field_); \
} while (0)
+#define PRINT_FIELD_MAC(prefix_, where_, field_) \
+ PRINT_FIELD_MAC_SZ((prefix_), (where_), field_, \
+ ARRAY_SIZE((where_).field_))
+
+#define PRINT_FIELD_MAC_SZ(prefix_, where_, field_, size_) \
+ do { \
+ static_assert(sizeof(((where_).field_)[0]) == 1, \
+ "MAC address is not a byte array"); \
+ STRACE_PRINTF("%s%s=", (prefix_), #field_); \
+ print_mac_addr("", (const uint8_t *) ((where_).field_), \
+ (size_)); \
+ } while (0)
+
#endif /* !STRACE_PRINT_FIELDS_H */
diff --git a/print_ifindex.c b/print_ifindex.c
index f978a5a..2df1e3b 100644
--- a/print_ifindex.c
+++ b/print_ifindex.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001-2017 The strace developers.
+ * Copyright (c) 2001-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,19 +28,41 @@
#include "defs.h"
#include <net/if.h>
+#ifdef HAVE_IF_INDEXTONAME
+# include "xstring.h"
+
+# define INI_PFX "if_nametoindex("
+# define INI_SFX ")"
+# define IFNAME_QUOTED_SZ (sizeof(IFNAMSIZ) * 4 + 3)
+
+static const char *
+get_ifname(const unsigned int ifindex)
+{
+ static char res[IFNAME_QUOTED_SZ + sizeof(INI_PFX INI_SFX)];
+
+ char name_buf[IFNAMSIZ];
+ char name_quoted_buf[IFNAME_QUOTED_SZ];
+
+ if (if_indextoname(ifindex, name_buf)) {
+ if (string_quote(name_buf, name_quoted_buf, sizeof(name_buf),
+ QUOTE_0_TERMINATED, NULL))
+ return NULL;
+
+ xsprintf(res, INI_PFX "%s" INI_SFX, name_quoted_buf);
+
+ return res;
+ }
+
+ return NULL;
+}
+#endif /* HAVE_IF_INDEXTONAME */
+
void
print_ifindex(const unsigned int ifindex)
{
#ifdef HAVE_IF_INDEXTONAME
- char buf[IFNAMSIZ + 1];
-
- if (if_indextoname(ifindex, buf)) {
- tprints("if_nametoindex(");
- print_quoted_cstring(buf, sizeof(buf));
- tprints(")");
- return;
- }
-#endif
-
+ print_xlat_ex(ifindex, get_ifname(ifindex), XLAT_STYLE_FMT_U);
+#else
tprintf("%u", ifindex);
+#endif
}
diff --git a/print_mac.c b/print_mac.c
new file mode 100644
index 0000000..e384f75
--- /dev/null
+++ b/print_mac.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+
+#include "error_prints.h"
+#include "xstring.h"
+
+#ifndef MAX_ADDR_LEN
+# define MAX_ADDR_LEN 32
+#endif
+
+const char *
+sprint_mac_addr(const uint8_t addr[], size_t size)
+{
+ static char res[MAX_ADDR_LEN * 3];
+
+ if (size > MAX_ADDR_LEN) {
+ error_func_msg("Address size (%zu) is more than maximum "
+ "supported (%u)", size, MAX_ADDR_LEN);
+
+ return NULL;
+ }
+
+ char *ptr = res;
+
+ for (size_t i = 0; i < size; i++)
+ ptr = xappendstr(res, ptr, "%s%02x", i ? ":" : "", addr[i]);
+
+ return res;
+}
diff --git a/printers.h b/printers.h
index 333d53a..84f95c2 100644
--- a/printers.h
+++ b/printers.h
@@ -1,4 +1,4 @@
-/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
+/* Generated by Makefile from block.c.mpers.i btrfs.c.mpers.i dirent.c.mpers.i evdev_mpers.c.mpers.i fetch_bpf_fprog.c.mpers.i fetch_struct_flock.c.mpers.i fetch_struct_keyctl_kdf_params.c.mpers.i fetch_struct_mmsghdr.c.mpers.i fetch_struct_msghdr.c.mpers.i fetch_struct_stat.c.mpers.i fetch_struct_stat64.c.mpers.i fetch_struct_statfs.c.mpers.i hdio.c.mpers.i ipc_msgctl.c.mpers.i ipc_shmctl.c.mpers.i loop.c.mpers.i mtd.c.mpers.i perf_ioctl.c.mpers.i print_aio_sigset.c.mpers.i print_group_req.c.mpers.i print_mq_attr.c.mpers.i print_msgbuf.c.mpers.i print_sg_req_info.c.mpers.i print_sigevent.c.mpers.i print_time.c.mpers.i print_timespec.c.mpers.i print_timeval.c.mpers.i print_timex.c.mpers.i printrusage.c.mpers.i printsiginfo.c.mpers.i rt_sigreturn.c.mpers.i rtc.c.mpers.i sg_io_v3.c.mpers.i sigaltstack.c.mpers.i sock.c.mpers.i sysinfo.c.mpers.i times.c.mpers.i ustat.c.mpers.i utime.c.mpers.i v4l2.c.mpers.i; do not edit. */
typedef struct {
int (*block_ioctl)(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
#define block_ioctl MPERS_PRINTER_NAME(block_ioctl)
@@ -54,6 +54,12 @@
int (*mtd_ioctl)(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
#define mtd_ioctl MPERS_PRINTER_NAME(mtd_ioctl)
+ int (*perf_ioctl)(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg);
+#define perf_ioctl MPERS_PRINTER_NAME(perf_ioctl)
+
+ void (*print_aio_sigset)(struct tcb *tcp, const kernel_ulong_t addr);
+#define print_aio_sigset MPERS_PRINTER_NAME(print_aio_sigset)
+
void (*print_group_req)(struct tcb *const tcp, const kernel_ulong_t addr, const int len);
#define print_group_req MPERS_PRINTER_NAME(print_group_req)
diff --git a/printmode.c b/printmode.c
index d9dcfa3..7a5479f 100644
--- a/printmode.c
+++ b/printmode.c
@@ -4,7 +4,7 @@
* Copyright (c) 1993-1996 Rick Sladkey <[email protected]>
* Copyright (c) 1996-1999 Wichert Akkerman <[email protected]>
* Copyright (c) 2012 Denys Vlasenko <[email protected]>
- * Copyright (c) 2012-2017 The strace developers.
+ * Copyright (c) 2012-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,25 +40,24 @@
void
print_symbolic_mode_t(const unsigned int mode)
{
- const char *ifmt;
+ const char *ifmt = "";
- if (mode & S_IFMT) {
+ if (mode & S_IFMT)
ifmt = xlookup(modetypes, mode & S_IFMT);
- if (!ifmt) {
- tprintf("%#03o", mode);
- return;
- }
- } else {
- ifmt = NULL;
- }
- tprintf("%s%s%s%s%s%#03o",
- ifmt ? ifmt : "",
- ifmt ? "|" : "",
- (mode & S_ISUID) ? "S_ISUID|" : "",
- (mode & S_ISGID) ? "S_ISGID|" : "",
- (mode & S_ISVTX) ? "S_ISVTX|" : "",
- mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX));
+ if (!ifmt || xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV)
+ tprintf("%#03o", mode);
+
+ if (!ifmt || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
+ return;
+
+ (xlat_verbose(xlat_verbosity) == XLAT_STYLE_ABBREV
+ ? tprintf : tprintf_comment)("%s%s%s%s%s%#03o",
+ ifmt, ifmt[0] ? "|" : "",
+ (mode & S_ISUID) ? "S_ISUID|" : "",
+ (mode & S_ISGID) ? "S_ISGID|" : "",
+ (mode & S_ISVTX) ? "S_ISVTX|" : "",
+ mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX));
}
void
diff --git a/printsiginfo.c b/printsiginfo.c
index bab9e22..d46003c 100644
--- a/printsiginfo.c
+++ b/printsiginfo.c
@@ -126,10 +126,7 @@
}
}
- if (code)
- tprints(code);
- else
- tprintf("%#x", si_code);
+ print_xlat_ex(si_code, code, XLAT_STYLE_DEFAULT);
}
static void
@@ -280,5 +277,5 @@
siginfo_t si;
print_array(tcp, addr, len, &si, sizeof(si),
- umoven_or_printaddr, print_siginfo_t, 0);
+ tfetch_mem, print_siginfo_t, 0);
}
diff --git a/rtnl_link.c b/rtnl_link.c
index a01452f..f16c737 100644
--- a/rtnl_link.c
+++ b/rtnl_link.c
@@ -33,18 +33,32 @@
#include "print_fields.h"
#include "netlink.h"
+
+#include <netinet/in.h>
+
#ifdef HAVE_LINUX_IF_LINK_H
# include <linux/if_link.h>
#endif
#include <linux/rtnetlink.h>
+#include "xlat/in6_addr_gen_mode.h"
+#include "xlat/inet_devconf_indices.h"
+#include "xlat/inet6_devconf_indices.h"
+#include "xlat/inet6_if_flags.h"
+#include "xlat/rtnl_ifla_af_spec_inet_attrs.h"
+#include "xlat/rtnl_ifla_af_spec_inet6_attrs.h"
#include "xlat/rtnl_ifla_brport_attrs.h"
#include "xlat/rtnl_ifla_events.h"
#include "xlat/rtnl_ifla_info_attrs.h"
+#include "xlat/rtnl_ifla_info_data_bridge_attrs.h"
+#include "xlat/rtnl_ifla_info_data_tun_attrs.h"
#include "xlat/rtnl_ifla_port_attrs.h"
#include "xlat/rtnl_ifla_vf_port_attrs.h"
#include "xlat/rtnl_ifla_xdp_attrs.h"
#include "xlat/rtnl_link_attrs.h"
+#include "xlat/snmp_icmp6_stats.h"
+#include "xlat/snmp_ip_stats.h"
+#include "xlat/tun_device_types.h"
#include "xlat/xdp_flags.h"
static bool
@@ -107,22 +121,20 @@
const unsigned int len,
const void *const opaque_data)
{
-#ifdef HAVE_STRUCT_IFLA_BRIDGE_ID
- struct ifla_bridge_id id;
+ struct {
+ uint8_t prio[2];
+ uint8_t addr[6];
+ } id;
if (len < sizeof(id))
return false;
else if (!umove_or_printaddr(tcp, addr, &id)) {
- tprintf("{prio=[%u, %u], addr=%02x:%02x:%02x:%02x:%02x:%02x}",
- id.prio[0], id.prio[1],
- id.addr[0], id.addr[1], id.addr[2],
- id.addr[3], id.addr[4], id.addr[5]);
+ tprintf("{prio=[%u, %u]", id.prio[0], id.prio[1]);
+ PRINT_FIELD_MAC(", ", id, addr);
+ tprints("}");
}
return true;
-#else
- return false;
-#endif
}
static const nla_decoder_t ifla_brport_nla_decoders[] = {
@@ -165,8 +177,8 @@
const void *const opaque_data)
{
decode_nlattr(tcp, addr, len, rtnl_ifla_brport_attrs,
- "IFLA_BRPORT_???", ifla_brport_nla_decoders,
- ARRAY_SIZE(ifla_brport_nla_decoders), opaque_data);
+ "IFLA_BRPORT_???",
+ ARRSZ_PAIR(ifla_brport_nla_decoders), opaque_data);
return true;
}
@@ -196,10 +208,211 @@
return true;
}
+bool
+decode_nla_linkinfo_kind(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ struct ifla_linkinfo_ctx *ctx = (void *) opaque_data;
+
+ memset(ctx->kind, '\0', sizeof(ctx->kind));
+
+ if (umovestr(tcp, addr, sizeof(ctx->kind), ctx->kind) <= 0) {
+ /*
+ * If we haven't seen NUL or an error occurred, set kind to
+ * an empty string.
+ */
+ ctx->kind[0] = '\0';
+ }
+
+ printstr_ex(tcp, addr, len, QUOTE_0_TERMINATED);
+
+ return true;
+}
+
+bool
+decode_nla_linkinfo_xstats_can(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ struct strace_can_device_stats {
+ uint32_t bus_error;
+ uint32_t error_warning;
+ uint32_t error_passive;
+ uint32_t bus_off;
+ uint32_t arbitration_lost;
+ uint32_t restarts;
+ } st;
+ const unsigned int def_size = sizeof(st);
+ const unsigned int size = (len >= def_size) ? def_size : 0;
+
+ if (!size)
+ return false;
+
+ if (umoven_or_printaddr(tcp, addr, size, &st))
+ return true;
+
+ PRINT_FIELD_U("{", st, bus_error);
+ PRINT_FIELD_U(", ", st, error_warning);
+ PRINT_FIELD_U(", ", st, error_passive);
+ PRINT_FIELD_U(", ", st, bus_off);
+ PRINT_FIELD_U(", ", st, arbitration_lost);
+ PRINT_FIELD_U(", ", st, restarts);
+ tprints("}");
+
+ return true;
+}
+
+bool
+decode_nla_linkinfo_xstats(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ struct ifla_linkinfo_ctx *ctx = (void *) opaque_data;
+ nla_decoder_t func = NULL;
+
+ if (!strcmp(ctx->kind, "can"))
+ func = decode_nla_linkinfo_xstats_can;
+
+ if (func)
+ return func(tcp, addr, len, opaque_data);
+
+ return false;
+}
+
+static const nla_decoder_t ifla_info_data_bridge_nla_decoders[] = {
+ [IFLA_BR_UNSPEC] = NULL,
+ [IFLA_BR_FORWARD_DELAY] = decode_nla_u32,
+ [IFLA_BR_HELLO_TIME] = decode_nla_u32,
+ [IFLA_BR_MAX_AGE] = decode_nla_u32,
+ [IFLA_BR_AGEING_TIME] = decode_nla_u32,
+ [IFLA_BR_STP_STATE] = decode_nla_u32,
+ [IFLA_BR_PRIORITY] = decode_nla_u16,
+ [IFLA_BR_VLAN_FILTERING] = decode_nla_u8,
+ [IFLA_BR_VLAN_PROTOCOL] = decode_nla_ether_proto,
+ [IFLA_BR_GROUP_FWD_MASK] = decode_nla_x16,
+ [IFLA_BR_ROOT_ID] = decode_ifla_bridge_id,
+ [IFLA_BR_BRIDGE_ID] = decode_ifla_bridge_id,
+ [IFLA_BR_ROOT_PORT] = decode_nla_u16,
+ [IFLA_BR_ROOT_PATH_COST] = decode_nla_u32,
+ [IFLA_BR_TOPOLOGY_CHANGE] = decode_nla_u8,
+ [IFLA_BR_TOPOLOGY_CHANGE_DETECTED] = decode_nla_u8,
+ [IFLA_BR_HELLO_TIMER] = decode_nla_u64,
+ [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_FDB_FLUSH] = NULL, /* unspecified */
+ [IFLA_BR_MCAST_ROUTER] = decode_nla_u8,
+ [IFLA_BR_MCAST_SNOOPING] = decode_nla_u8,
+ [IFLA_BR_MCAST_QUERY_USE_IFADDR] = decode_nla_u8,
+ [IFLA_BR_MCAST_QUERIER] = decode_nla_u8,
+ [IFLA_BR_MCAST_HASH_ELASTICITY] = decode_nla_u32,
+ [IFLA_BR_MCAST_HASH_MAX] = decode_nla_u32,
+ [IFLA_BR_MCAST_LAST_MEMBER_CNT] = decode_nla_u32,
+ [IFLA_BR_MCAST_STARTUP_QUERY_CNT] = decode_nla_u32,
+ [IFLA_BR_MCAST_LAST_MEMBER_INTVL] = decode_nla_u64,
+ [IFLA_BR_MCAST_MEMBERSHIP_INTVL] = decode_nla_u64,
+ [IFLA_BR_MCAST_QUERIER_INTVL] = decode_nla_u64,
+ [IFLA_BR_MCAST_QUERY_INTVL] = decode_nla_u64,
+ [IFLA_BR_MCAST_QUERY_RESPONSE_INTVL] = decode_nla_u64,
+ [IFLA_BR_MCAST_STARTUP_QUERY_INTVL] = decode_nla_u64,
+ [IFLA_BR_NF_CALL_IPTABLES] = decode_nla_u8,
+ [IFLA_BR_NF_CALL_IP6TABLES] = decode_nla_u8,
+ [IFLA_BR_NF_CALL_ARPTABLES] = decode_nla_u8,
+ [IFLA_BR_VLAN_DEFAULT_PVID] = decode_nla_u16,
+ [IFLA_BR_PAD] = NULL,
+ [IFLA_BR_VLAN_STATS_ENABLED] = decode_nla_u8,
+ [IFLA_BR_MCAST_STATS_ENABLED] = decode_nla_u8,
+ [IFLA_BR_MCAST_IGMP_VERSION] = decode_nla_u8,
+ [IFLA_BR_MCAST_MLD_VERSION] = decode_nla_u8,
+};
+
+bool
+decode_nla_linkinfo_data_bridge(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ decode_nlattr(tcp, addr, len, rtnl_ifla_info_data_bridge_attrs,
+ "IFLA_BR_???",
+ ARRSZ_PAIR(ifla_info_data_bridge_nla_decoders),
+ opaque_data);
+
+ return true;
+}
+
+static bool
+decode_nla_tun_type(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ const struct decode_nla_xlat_opts opts = {
+ .xlat = tun_device_types,
+ .xlat_size = ARRAY_SIZE(tun_device_types),
+ .xt = XT_INDEXED,
+ .dflt = "IFF_???",
+ .size = 1,
+ };
+
+ return decode_nla_xval(tcp, addr, len, &opts);
+}
+
+static const nla_decoder_t ifla_info_data_tun_nla_decoders[] = {
+ [IFLA_TUN_UNSPEC] = NULL,
+ [IFLA_TUN_OWNER] = decode_nla_uid,
+ [IFLA_TUN_GROUP] = decode_nla_gid,
+ [IFLA_TUN_TYPE] = decode_nla_tun_type,
+ [IFLA_TUN_PI] = decode_nla_u8,
+ [IFLA_TUN_VNET_HDR] = decode_nla_u8,
+ [IFLA_TUN_PERSIST] = decode_nla_u8,
+ [IFLA_TUN_MULTI_QUEUE] = decode_nla_u8,
+ [IFLA_TUN_NUM_QUEUES] = decode_nla_u32,
+ [IFLA_TUN_NUM_DISABLED_QUEUES] = decode_nla_u32,
+};
+
+bool
+decode_nla_linkinfo_data_tun(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ decode_nlattr(tcp, addr, len, rtnl_ifla_info_data_tun_attrs,
+ "IFLA_TUN_???",
+ ARRSZ_PAIR(ifla_info_data_tun_nla_decoders),
+ opaque_data);
+
+ return true;
+}
+
+bool
+decode_nla_linkinfo_data(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ struct ifla_linkinfo_ctx *ctx = (void *) opaque_data;
+ nla_decoder_t func = NULL;
+
+ if (!strcmp(ctx->kind, "bridge"))
+ func = decode_nla_linkinfo_data_bridge;
+ else if (!strcmp(ctx->kind, "tun"))
+ func = decode_nla_linkinfo_data_tun;
+
+ if (func)
+ return func(tcp, addr, len, opaque_data);
+
+ return false;
+}
+
static const nla_decoder_t ifla_linkinfo_nla_decoders[] = {
- [IFLA_INFO_KIND] = decode_nla_str,
- [IFLA_INFO_DATA] = NULL, /* unimplemented */
- [IFLA_INFO_XSTATS] = NULL, /* unimplemented */
+ [IFLA_INFO_KIND] = decode_nla_linkinfo_kind,
+ [IFLA_INFO_DATA] = decode_nla_linkinfo_data,
+ [IFLA_INFO_XSTATS] = decode_nla_linkinfo_xstats,
[IFLA_INFO_SLAVE_KIND] = decode_nla_str,
[IFLA_INFO_SLAVE_DATA] = NULL, /* unimplemented */
};
@@ -210,9 +423,11 @@
const unsigned int len,
const void *const opaque_data)
{
+ struct ifla_linkinfo_ctx ctx = { .kind = "", };
+
decode_nlattr(tcp, addr, len, rtnl_ifla_info_attrs,
- "IFLA_INFO_???", ifla_linkinfo_nla_decoders,
- ARRAY_SIZE(ifla_linkinfo_nla_decoders), opaque_data);
+ "IFLA_INFO_???", ARRSZ_PAIR(ifla_linkinfo_nla_decoders),
+ &ctx);
return true;
}
@@ -317,8 +532,8 @@
const void *const opaque_data)
{
decode_nlattr(tcp, addr, len, rtnl_ifla_port_attrs,
- "IFLA_VF_PORT_???", ifla_port_nla_decoders,
- ARRAY_SIZE(ifla_port_nla_decoders), opaque_data);
+ "IFLA_VF_PORT_???", ARRSZ_PAIR(ifla_port_nla_decoders),
+ opaque_data);
return true;
}
@@ -334,8 +549,8 @@
const void *const opaque_data)
{
decode_nlattr(tcp, addr, len, rtnl_ifla_vf_port_attrs,
- "IFLA_VF_PORT_???", ifla_vf_port_nla_decoders,
- ARRAY_SIZE(ifla_vf_port_nla_decoders), opaque_data);
+ "IFLA_VF_PORT_???", ARRSZ_PAIR(ifla_vf_port_nla_decoders),
+ opaque_data);
return true;
}
@@ -370,8 +585,8 @@
const void *const opaque_data)
{
decode_nlattr(tcp, addr, len, rtnl_ifla_xdp_attrs,
- "IFLA_XDP_???", ifla_xdp_nla_decoders,
- ARRAY_SIZE(ifla_xdp_nla_decoders), opaque_data);
+ "IFLA_XDP_???", ARRSZ_PAIR(ifla_xdp_nla_decoders),
+ opaque_data);
return true;
}
@@ -392,6 +607,227 @@
return true;
}
+
+static bool
+decode_ifla_inet_conf(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ int elem;
+ size_t cnt = len / sizeof(elem);
+
+ if (!cnt)
+ return false;
+
+ 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),
+ "IPV4_DEVCONF_???");
+
+ return true;
+}
+
+static const nla_decoder_t ifla_inet_nla_decoders[] = {
+ [IFLA_INET_CONF] = decode_ifla_inet_conf,
+};
+
+static bool
+decode_ifla_inet6_flags(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ const struct decode_nla_xlat_opts opts = {
+ ARRSZ_PAIR(inet6_if_flags), "IF_???",
+ .size = 4,
+ };
+
+ return decode_nla_flags(tcp, addr, len, &opts);
+}
+
+static bool
+decode_ifla_inet6_conf(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ int elem;
+ size_t cnt = len / sizeof(elem);
+
+ if (!cnt)
+ return false;
+
+ 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),
+ "DEVCONF_???");
+
+ return true;
+}
+
+static bool
+decode_ifla_inet6_stats(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ uint64_t elem;
+ size_t cnt = len / sizeof(elem);
+
+ if (!cnt)
+ return false;
+
+ 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),
+ "IPSTATS_MIB_???");
+
+ return true;
+}
+
+static bool
+decode_ifla_inet6_cacheinfo(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ struct {
+ uint32_t max_reasm_len;
+ uint32_t tstamp;
+ uint32_t reachable_time;
+ uint32_t retrans_time;
+ } ci;
+
+ if (len < sizeof(ci))
+ return false;
+ else if (!umove_or_printaddr(tcp, addr, &ci)) {
+ PRINT_FIELD_U("{", ci, max_reasm_len);
+ PRINT_FIELD_U(", ", ci, tstamp);
+ PRINT_FIELD_U(", ", ci, reachable_time);
+ PRINT_FIELD_U(", ", ci, retrans_time);
+ tprints("}");
+ }
+
+ return true;
+}
+
+static bool
+decode_ifla_inet6_icmp6_stats(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ uint64_t elem;
+ size_t cnt = len / sizeof(elem);
+
+ if (!cnt)
+ return false;
+
+ 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),
+ "ICMP6_MIB_???");
+
+ return true;
+}
+
+static bool
+decode_ifla_inet6_token(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ struct in6_addr in6;
+
+ if (len < sizeof(in6))
+ return false;
+ else if (!umove_or_printaddr(tcp, addr, &in6))
+ print_inet_addr(AF_INET6, &in6, sizeof(in6), NULL);
+
+ return true;
+}
+
+static bool
+decode_ifla_inet6_agm(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ const struct decode_nla_xlat_opts opts = {
+ ARRSZ_PAIR(in6_addr_gen_mode), "IN6_ADDR_GEN_MODE_???",
+ .xt = XT_INDEXED,
+ .size = 1,
+ };
+
+ return decode_nla_xval(tcp, addr, len, &opts);
+}
+
+static const nla_decoder_t ifla_inet6_nla_decoders[] = {
+ [IFLA_INET6_FLAGS] = decode_ifla_inet6_flags,
+ [IFLA_INET6_CONF] = decode_ifla_inet6_conf,
+ [IFLA_INET6_STATS] = decode_ifla_inet6_stats,
+ [IFLA_INET6_MCAST] = NULL, /* unused */
+ [IFLA_INET6_CACHEINFO] = decode_ifla_inet6_cacheinfo,
+ [IFLA_INET6_ICMP6STATS] = decode_ifla_inet6_icmp6_stats,
+ [IFLA_INET6_TOKEN] = decode_ifla_inet6_token,
+ [IFLA_INET6_ADDR_GEN_MODE] = decode_ifla_inet6_agm,
+};
+
+static const struct nla_decoder_table_desc {
+ const struct xlat *xlat;
+ const char *dflt;
+ const nla_decoder_t *table;
+ size_t size;
+} ifla_af_spec_protos[] = {
+ [AF_INET] = {
+ rtnl_ifla_af_spec_inet_attrs, "IFLA_INET_???",
+ ARRSZ_PAIR(ifla_inet_nla_decoders),
+ },
+ [AF_INET6] = {
+ rtnl_ifla_af_spec_inet6_attrs, "IFLA_INET6_???",
+ ARRSZ_PAIR(ifla_inet6_nla_decoders),
+ },
+};
+
+static bool
+decode_ifla_af(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ uintptr_t proto = (uintptr_t) opaque_data;
+ const struct nla_decoder_table_desc *desc
+ = proto < ARRAY_SIZE(ifla_af_spec_protos)
+ ? ifla_af_spec_protos + proto : NULL;
+
+ if (!desc || !desc->table)
+ return false;
+
+ decode_nlattr(tcp, addr, len,
+ desc->xlat, desc->dflt, desc->table, desc->size, NULL);
+
+ return true;
+}
+
+static bool
+decode_ifla_af_spec(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ nla_decoder_t af_spec_decoder = &decode_ifla_af;
+
+ decode_nlattr(tcp, addr, len, addrfams, "AF_???",
+ &af_spec_decoder, 0, opaque_data);
+
+ return true;
+}
+
static const nla_decoder_t ifinfomsg_nla_decoders[] = {
[IFLA_ADDRESS] = NULL, /* unimplemented */
[IFLA_BROADCAST] = NULL, /* unimplemented */
@@ -418,7 +854,7 @@
[IFLA_STATS64] = decode_rtnl_link_stats64,
[IFLA_VF_PORTS] = decode_ifla_vf_ports,
[IFLA_PORT_SELF] = decode_ifla_port,
- [IFLA_AF_SPEC] = NULL, /* unimplemented */
+ [IFLA_AF_SPEC] = decode_ifla_af_spec,
[IFLA_GROUP] = decode_nla_u32,
[IFLA_NET_NS_FD] = decode_nla_fd,
[IFLA_EXT_MASK] = decode_nla_u32,
@@ -441,7 +877,7 @@
[IFLA_IF_NETNSID] = decode_nla_s32,
[IFLA_CARRIER_UP_COUNT] = decode_nla_u32,
[IFLA_CARRIER_DOWN_COUNT] = decode_nla_u32,
- [IFLA_NEW_IFINDEX] = decode_nla_s32,
+ [IFLA_NEW_IFINDEX] = decode_nla_ifindex,
};
DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg)
@@ -457,8 +893,10 @@
if (!umoven_or_printaddr(tcp, addr + offset,
sizeof(ifinfo) - offset,
(char *) &ifinfo + offset)) {
- PRINT_FIELD_XVAL("", ifinfo, ifi_type,
- arp_hardware_types, "ARPHRD_???");
+ PRINT_FIELD_XVAL_SORTED_SIZED("", ifinfo, ifi_type,
+ arp_hardware_types,
+ arp_hardware_types_size,
+ "ARPHRD_???");
PRINT_FIELD_IFINDEX(", ", ifinfo, ifi_index);
PRINT_FIELD_FLAGS(", ", ifinfo, ifi_flags,
iffflags, "IFF_???");
@@ -474,7 +912,6 @@
tprints(", ");
decode_nlattr(tcp, addr + offset, len - offset,
rtnl_link_attrs, "IFLA_???",
- ifinfomsg_nla_decoders,
- ARRAY_SIZE(ifinfomsg_nla_decoders), NULL);
+ ARRSZ_PAIR(ifinfomsg_nla_decoders), NULL);
}
}
diff --git a/rtnl_route.c b/rtnl_route.c
index 93205c9..ec5d69f 100644
--- a/rtnl_route.c
+++ b/rtnl_route.c
@@ -61,6 +61,21 @@
return true;
}
+bool
+decode_nla_rt_proto(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ uint8_t num;
+
+ if (len < sizeof(num))
+ return false;
+ if (!umove_or_printaddr(tcp, addr, &num))
+ printxval_search(routing_protocols, num, "RTPROT_???");
+ return true;
+}
+
static bool
decode_route_addr(struct tcb *const tcp,
const kernel_ulong_t addr,
@@ -255,8 +270,7 @@
PRINT_FIELD_IFINDEX(", ", nh, rtnh_ifindex);
tprints("}");
- const unsigned short rtnh_len =
- len < nh.rtnh_len ? len : nh.rtnh_len;
+ const unsigned short rtnh_len = MIN(len, nh.rtnh_len);
const size_t offset = RTNH_ALIGN(sizeof(nh));
if (rtnh_len > offset) {
tprints(", ");
diff --git a/rtnl_rule.c b/rtnl_rule.c
index 1ab4fd2..740b090 100644
--- a/rtnl_rule.c
+++ b/rtnl_rule.c
@@ -79,6 +79,28 @@
#endif
}
+static bool
+decode_rule_port_range(struct tcb *const tcp,
+ const kernel_ulong_t addr,
+ const unsigned int len,
+ const void *const opaque_data)
+{
+ struct /* fib_rule_port_range */ {
+ uint16_t start;
+ uint16_t end;
+ } range;
+
+ if (len < sizeof(range))
+ return false;
+ else if (!umove_or_printaddr(tcp, addr, &range)) {
+ PRINT_FIELD_U("{", range, start);
+ PRINT_FIELD_U(", ", range, end);
+ tprints("}");
+ }
+
+ return true;
+}
+
static const nla_decoder_t fib_rule_hdr_nla_decoders[] = {
[FRA_DST] = decode_rule_addr,
[FRA_SRC] = decode_rule_addr,
@@ -95,7 +117,11 @@
[FRA_OIFNAME] = decode_nla_str,
[FRA_PAD] = NULL,
[FRA_L3MDEV] = decode_nla_u8,
- [FRA_UID_RANGE] = decode_fib_rule_uid_range
+ [FRA_UID_RANGE] = decode_fib_rule_uid_range,
+ [FRA_PROTOCOL] = decode_nla_rt_proto,
+ [FRA_IP_PROTO] = decode_nla_ip_proto,
+ [FRA_SPORT_RANGE] = decode_rule_port_range,
+ [FRA_DPORT_RANGE] = decode_rule_port_range,
};
DECL_NETLINK_ROUTE_DECODER(decode_fib_rule_hdr)
diff --git a/rtnl_tc.c b/rtnl_tc.c
index 237afce..657cc38 100644
--- a/rtnl_tc.c
+++ b/rtnl_tc.c
@@ -259,7 +259,7 @@
return false;
print_array(tcp, addr, nmemb, &data, sizeof(data),
- umoven_or_printaddr, print_stab_data, NULL);
+ tfetch_mem, print_stab_data, NULL);
return true;
}
diff --git a/s390.c b/s390.c
index 222fd01..422c08d 100644
--- a/s390.c
+++ b/s390.c
@@ -1204,12 +1204,9 @@
int command = (int) tcp->u_arg[0];
int signum = (int) tcp->u_arg[1];
- const char *command_descr =
- xlookup(s390_runtime_instr_commands, command);
- tprintf("%d", command);
- tprints_comment(command_descr ? command_descr :
- "S390_RUNTIME_INSTR_???");
+ printxval_d(s390_runtime_instr_commands, command,
+ "S390_RUNTIME_INSTR_???");
/*
* signum is ignored since Linux 4.4, but let's print it for start
diff --git a/scno.h b/scno.h
index 722ec96..2bdf75e 100644
--- a/scno.h
+++ b/scno.h
@@ -833,6 +833,9 @@
#ifndef __NR_statx
# define __NR_statx (SYSCALL_BIT | 291)
#endif
+#ifndef __NR_io_pgetevents
+# define __NR_io_pgetevents (SYSCALL_BIT | 292)
+#endif
#ifndef __NR_open
# define __NR_open (SYSCALL_BIT | 1024)
#endif
diff --git a/sen.h b/sen.h
index dc48cbc..fb29d69 100644
--- a/sen.h
+++ b/sen.h
@@ -137,6 +137,7 @@
SEN_io_cancel,
SEN_io_destroy,
SEN_io_getevents,
+SEN_io_pgetevents,
SEN_io_setup,
SEN_io_submit,
SEN_ioctl,
@@ -273,6 +274,7 @@
SEN_restart_syscall,
SEN_riscv_flush_icache,
SEN_rmdir,
+SEN_rseq,
SEN_rt_sigaction,
SEN_rt_sigpending,
SEN_rt_sigprocmask,
diff --git a/signal.c b/signal.c
index 170fee7..d717e66 100644
--- a/signal.c
+++ b/signal.c
@@ -117,7 +117,7 @@
const char *sa_handler_str = get_sa_handler_str(handler);
if (sa_handler_str)
- tprints(sa_handler_str);
+ print_xlat_ex(handler, sa_handler_str, XLAT_STYLE_DEFAULT);
else
printaddr(handler);
}
diff --git a/sock.c b/sock.c
index cd13de4..a477bce 100644
--- a/sock.c
+++ b/sock.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <[email protected]>
- * Copyright (c) 1996-2017 The strace developers.
+ * Copyright (c) 1996-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -47,6 +47,10 @@
#include "xlat/iffflags.h"
+#define XLAT_MACROS_ONLY
+# include "xlat/arp_hardware_types.h"
+#undef XLAT_MACROS_ONLY
+
static void
print_ifname(const char *ifname)
{
@@ -76,13 +80,89 @@
break;
case SIOCSIFHWADDR:
case SIOCGIFHWADDR: {
- /* XXX Are there other hardware addresses
- than 6-byte MACs? */
- const unsigned char *bytes =
- (unsigned char *) &ifr->ifr_hwaddr.sa_data;
- tprintf("ifr_hwaddr=%02x:%02x:%02x:%02x:%02x:%02x",
- bytes[0], bytes[1], bytes[2],
- bytes[3], bytes[4], bytes[5]);
+ 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));
+ tprints("}");
break;
}
case SIOCSIFFLAGS:
@@ -173,7 +253,7 @@
entering_ifc = get_tcb_priv_data(tcp);
if (!entering_ifc) {
- error_msg("decode_ifconf: where is my ifconf?");
+ error_func_msg("where is my ifconf?");
return 0;
}
}
@@ -232,7 +312,7 @@
print_array(tcp, ptr_to_kulong(ifc->ifc_buf),
ifc->ifc_len / sizeof(struct_ifreq),
&ifr, sizeof(ifr),
- umoven_or_printaddr, print_ifconf_ifreq, NULL);
+ tfetch_mem, print_ifconf_ifreq, NULL);
}
tprints("}");
diff --git a/sockaddr.c b/sockaddr.c
index 71d18c6..cfc26cb 100644
--- a/sockaddr.c
+++ b/sockaddr.c
@@ -54,18 +54,14 @@
#include "xlat/ethernet_protocols.h"
#include "xlat/af_packet_types.h"
-#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
-# include <bluetooth/bluetooth.h>
-# include <bluetooth/hci.h>
-# include <bluetooth/l2cap.h>
-# include <bluetooth/rfcomm.h>
-# include <bluetooth/sco.h>
-
-# include "xlat/hci_channels.h"
-#endif
+#include "xlat/bdaddr_types.h"
+#include "xlat/bluetooth_l2_cid.h"
+#include "xlat/bluetooth_l2_psm.h"
+#include "xlat/hci_channels.h"
#define SIZEOF_SA_FAMILY sizeof(((struct sockaddr *) 0)->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
@@ -229,9 +225,9 @@
"ETH_P_???");
PRINT_FIELD_IFINDEX("), ", *sa_ll, sll_ifindex);
tprints(", sll_hatype=");
- printxval(arp_hardware_types, sa_ll->sll_hatype, "ARPHRD_???");
+ printxval_search(arp_hardware_types, sa_ll->sll_hatype, "ARPHRD_???");
tprints(", sll_pkttype=");
- printxval(af_packet_types, sa_ll->sll_pkttype, "PACKET_???");
+ printxval_index(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 =
@@ -262,47 +258,159 @@
print_quoted_string(data, datalen, 0);
}
-#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
+static uint16_t
+btohs(uint16_t val)
+{
+#ifdef WORDS_BIGENDIAN
+ return (val << 8) | (val >> 8);
+#else
+ return val;
+#endif
+}
+
+static void
+print_bluetooth_l2_psm(const char *prefix, uint16_t psm)
+{
+ const uint16_t psm_he = btohs(psm);
+ const char *psm_name = xlookup(bluetooth_l2_psm, psm_he);
+ const bool psm_str = psm_name || (psm_he >= L2CAP_PSM_LE_DYN_START
+ && psm_he <= L2CAP_PSM_LE_DYN_END)
+ || (psm_he >= L2CAP_PSM_DYN_START);
+
+ tprintf("%shtobs(", prefix);
+
+ if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV || !psm_str)
+ tprintf("%#x", psm_he);
+
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
+ goto print_bluetooth_l2_psm_end;
+
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE || !psm_str)
+ tprints(" /* ");
+
+ if (psm_name) {
+ tprints(psm_name);
+ } else if (psm_he >= L2CAP_PSM_LE_DYN_START
+ && psm_he <= L2CAP_PSM_LE_DYN_END) {
+ print_xlat(L2CAP_PSM_LE_DYN_START);
+ tprintf(" + %u", psm_he - L2CAP_PSM_LE_DYN_START);
+ } else if (psm_he >= L2CAP_PSM_DYN_START) {
+ print_xlat(L2CAP_PSM_DYN_START);
+ tprintf(" + %u", psm_he - L2CAP_PSM_DYN_START);
+ } else {
+ tprints("L2CAP_PSM_???");
+ }
+
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE || !psm_str)
+ tprints(" */");
+
+print_bluetooth_l2_psm_end:
+ tprints(")");
+}
+
+static void
+print_bluetooth_l2_cid(const char *prefix, uint16_t cid)
+{
+ const uint16_t cid_he = btohs(cid);
+ const char *cid_name = xlookup(bluetooth_l2_cid, cid_he);
+ const bool cid_str = cid_name || (cid_he >= L2CAP_CID_DYN_START);
+
+ tprintf("%shtobs(", prefix);
+
+ if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV || !cid_str)
+ tprintf("%#x", cid_he);
+
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
+ goto print_bluetooth_l2_cid_end;
+
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE || !cid_str)
+ tprints(" /* ");
+
+ if (cid_name) {
+ tprints(cid_name);
+ } else if (cid_he >= L2CAP_CID_DYN_START) {
+ print_xlat(L2CAP_CID_DYN_START);
+ tprintf(" + %u", cid_he - L2CAP_CID_DYN_START);
+ } else {
+ tprints("L2CAP_CID_???");
+ }
+
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE || !cid_str)
+ tprints(" */");
+
+print_bluetooth_l2_cid_end:
+ tprints(")");
+}
+
static void
print_sockaddr_data_bt(const void *const buf, const int addrlen)
{
+ struct sockaddr_hci {
+ /* sa_family_t */ uint16_t hci_family;
+ uint16_t hci_dev;
+ uint16_t hci_channel;
+ };
+
+ struct bdaddr {
+ uint8_t b[6];
+ } ATTRIBUTE_PACKED;
+
+ struct sockaddr_sco {
+ /* sa_family_t */ uint16_t sco_family;
+ struct bdaddr sco_bdaddr;
+ };
+
+ struct sockaddr_rc {
+ /* sa_family_t */ uint16_t rc_family;
+ struct bdaddr rc_bdaddr;
+ uint8_t rc_channel;
+ };
+
+ struct sockaddr_l2 {
+ /* sa_family_t */ uint16_t l2_family;
+ /* little endiang */ uint16_t l2_psm;
+ struct bdaddr l2_bdaddr;
+ /* little endian */ uint16_t l2_cid;
+ uint8_t l2_bdaddr_type;
+ };
+
switch (addrlen) {
case sizeof(struct sockaddr_hci): {
const struct sockaddr_hci *const hci = buf;
tprintf("hci_dev=htobs(%hu), hci_channel=",
btohs(hci->hci_dev));
- printxval(hci_channels, hci->hci_channel,
- "HCI_CHANNEL_???");
+ printxval_index(hci_channels, hci->hci_channel,
+ "HCI_CHANNEL_???");
break;
}
case sizeof(struct sockaddr_sco): {
const struct sockaddr_sco *const sco = buf;
- tprintf("sco_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x",
- sco->sco_bdaddr.b[0], sco->sco_bdaddr.b[1],
- sco->sco_bdaddr.b[2], sco->sco_bdaddr.b[3],
- sco->sco_bdaddr.b[4], sco->sco_bdaddr.b[5]);
+ print_mac_addr("sco_bdaddr=", sco->sco_bdaddr.b,
+ sizeof(sco->sco_bdaddr.b));
break;
}
case sizeof(struct sockaddr_rc): {
const struct sockaddr_rc *const rc = buf;
- tprintf("rc_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
- ", rc_channel=%u",
- rc->rc_bdaddr.b[0], rc->rc_bdaddr.b[1],
- rc->rc_bdaddr.b[2], rc->rc_bdaddr.b[3],
- rc->rc_bdaddr.b[4], rc->rc_bdaddr.b[5],
- rc->rc_channel);
+ print_mac_addr("rc_bdaddr=", rc->rc_bdaddr.b,
+ sizeof(rc->rc_bdaddr.b));
+ tprintf(", rc_channel=%u", rc->rc_channel);
break;
}
+ case offsetof(struct sockaddr_l2, l2_bdaddr_type):
case sizeof(struct sockaddr_l2): {
const struct sockaddr_l2 *const l2 = buf;
- tprintf("l2_psm=htobs(%hu)"
- ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
- ", l2_cid=htobs(%hu), l2_bdaddr_type=%u",
- btohs(l2->l2_psm),
- l2->l2_bdaddr.b[0], l2->l2_bdaddr.b[1],
- l2->l2_bdaddr.b[2], l2->l2_bdaddr.b[3],
- l2->l2_bdaddr.b[4], l2->l2_bdaddr.b[5],
- btohs(l2->l2_cid), l2->l2_bdaddr_type);
+ print_bluetooth_l2_psm("l2_psm=", l2->l2_psm);
+ print_mac_addr(", l2_bdaddr=", l2->l2_bdaddr.b,
+ sizeof(l2->l2_bdaddr.b));
+ print_bluetooth_l2_cid(", l2_cid=", l2->l2_cid);
+
+ if (addrlen == sizeof(struct sockaddr_l2)) {
+ tprints(", l2_bdaddr_type=");
+ printxval_index(bdaddr_types,
+ l2->l2_bdaddr_type,
+ "BDADDR_???");
+ }
+
break;
}
default:
@@ -310,7 +418,6 @@
break;
}
}
-#endif /* HAVE_BLUETOOTH_BLUETOOTH_H */
typedef void (* const sockaddr_printer)(const void *const, const int);
@@ -324,9 +431,7 @@
[AF_INET6] = { print_sockaddr_data_in6, SIN6_MIN_LEN },
[AF_NETLINK] = { print_sockaddr_data_nl, SIZEOF_SA_FAMILY + 1 },
[AF_PACKET] = { print_sockaddr_data_ll, sizeof(struct sockaddr_ll) },
-#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
[AF_BLUETOOTH] = { print_sockaddr_data_bt, SIZEOF_SA_FAMILY + 1 },
-#endif
};
void
@@ -335,7 +440,7 @@
const struct sockaddr *const sa = buf;
tprints("{sa_family=");
- printxval(addrfams, sa->sa_family, "AF_???");
+ printxval_index(addrfams, sa->sa_family, "AF_???");
if (addrlen > (int) SIZEOF_SA_FAMILY) {
tprints(", ");
diff --git a/socketcall.c b/socketcall.c
index 9f48a10..0c72d0c 100644
--- a/socketcall.c
+++ b/socketcall.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -30,14 +31,7 @@
SYS_FUNC(socketcall)
{
- const unsigned int call = tcp->u_arg[0];
- const char *str = xlookup(socketcalls, call);
-
- if (str)
- tprints(str);
- else
- tprintf("%d", call);
-
+ printxval_d(socketcalls, tcp->u_arg[0], NULL);
tprints(", ");
printaddr(tcp->u_arg[1]);
diff --git a/socketutils.c b/socketutils.c
index 38b864c..a646b5b 100644
--- a/socketutils.c
+++ b/socketutils.c
@@ -252,6 +252,13 @@
static bool
unix_send_query(struct tcb *tcp, const int fd, const unsigned long inode)
{
+ /*
+ * The kernel bug was fixed in mainline by commit v4.5-rc6~35^2~11
+ * and backported to stable/linux-4.4.y by commit v4.4.4~297.
+ */
+ const uint16_t dump_flag =
+ os_release < KERNEL_VERSION(4, 4, 4) ? NLM_F_DUMP : 0;
+
struct {
const struct nlmsghdr nlh;
const struct unix_diag_req udr;
@@ -259,13 +266,14 @@
.nlh = {
.nlmsg_len = sizeof(req),
.nlmsg_type = SOCK_DIAG_BY_FAMILY,
- .nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST
+ .nlmsg_flags = NLM_F_REQUEST | dump_flag
},
.udr = {
.sdiag_family = AF_UNIX,
.udiag_ino = inode,
.udiag_states = -1,
- .udiag_show = UDIAG_SHOW_NAME | UDIAG_SHOW_PEER
+ .udiag_show = UDIAG_SHOW_NAME | UDIAG_SHOW_PEER,
+ .udiag_cookie = { ~0U, ~0U }
}
};
return send_query(tcp, fd, &req, sizeof(req));
@@ -363,8 +371,7 @@
},
.ndr = {
.sdiag_family = AF_NETLINK,
- .sdiag_protocol = NDIAG_PROTO_ALL,
- .ndiag_show = NDIAG_SHOW_MEMINFO
+ .sdiag_protocol = NDIAG_PROTO_ALL
}
};
return send_query(tcp, fd, &req, sizeof(req));
diff --git a/static_assert.h b/static_assert.h
index 1c58e7d..e942f79 100755
--- a/static_assert.h
+++ b/static_assert.h
@@ -30,7 +30,16 @@
#include "assert.h"
-#ifndef HAVE_STATIC_ASSERT
+#if defined HAVE_STATIC_ASSERT
+
+/* static_assert is already available */
+
+#elif defined HAVE__STATIC_ASSERT
+
+# undef static_assert
+# define static_assert _Static_assert
+
+#else /* !HAVE_STATIC_ASSERT && !HAVE__STATIC_ASSERT */
# define static_assert(expr, message) \
extern int (*strace_static_assert(int))[sizeof(int[2 * !!(expr) - 1])]
diff --git a/strace-log-merge.1 b/strace-log-merge.1
index 7316083..a7451d6 100644
--- a/strace-log-merge.1
+++ b/strace-log-merge.1
@@ -31,7 +31,7 @@
. BR "\\$1"
..
.\"
-.TH STRACE-LOG-MERGE 1 "2018-04-04" "strace 4.22"
+.TH STRACE-LOG-MERGE 1 "2018-06-13" "strace 4.23"
.\"
.SH NAME
strace-log-merge \- merge strace \-ff \-tt output
diff --git a/strace.1 b/strace.1
index 5b9691e..517a5e1 100644
--- a/strace.1
+++ b/strace.1
@@ -53,18 +53,24 @@
. el \
. BR "\\$1"
..
-.TH STRACE 1 "2018-04-04" "strace 4.22"
+.TH STRACE 1 "2018-06-13" "strace 4.23"
.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
.OP \-I n
.OP \-b execve
.OM \-e expr
.OP \-a column
.OP \-o file
.OP \-s strsize
+.OP \-X format
.OM \-P path
.OM \-p pid
.BR "" {
@@ -170,7 +176,9 @@
.CW
open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3
.CE
-Here, the third argument of open is decoded by breaking down the
+Here, the third argument of
+.B open
+is 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.
@@ -205,8 +213,7 @@
are printed raw, with the unknown system call number printed in hexadecimal form
and prefixed with "syscall_":
.CW
-syscall_0xbad(0xfedcba9876543210, 0xfedcba9876543211, 0xfedcba9876543212,
-0xfedcba9876543213, 0xfedcba9876543214, 0xfedcba9876543215) = -1 (errno 38)
+syscall_0xbad(0x1, 0x2, 0x3, 0x4, 0x5, 0x6) = -1 ENOSYS (Function not implemented)
.CE
.LP
Character pointers are dereferenced and printed as C strings.
@@ -252,12 +259,11 @@
.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 (experimental).
-This option is available only if
-.B strace
-is built with libunwind.
+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
@@ -274,7 +280,8 @@
The latter is not compatible with
.B \-ff
option currently.
-.TP \-A
+.TP
+.B \-A
Open the file provided in the
.B \-o
option in append mode.
@@ -325,6 +332,27 @@
.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
@@ -418,6 +446,9 @@
.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
@@ -555,6 +586,9 @@
in hexadecimal. This is mostly useful if you don't trust the
decoding or you need to know the actual numeric value of an
argument.
+See also
+.B \-X raw
+option.
.TP
\fB\-e\ signal\fR=\,\fIset\fR
Trace only the specified subset of signals. The default is
@@ -595,7 +629,7 @@
system call which is controlled by the option
.BR -e "\ " trace = write .
.TP
-\fB\-e\ inject\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBdelay_enter\fR=\,\fIusecs\/\fR][:\fBdelay_exit\fR=\,\fIusecs\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR]
+\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]
Perform syscall tampering for the specified set of syscalls.
At least one of
@@ -613,7 +647,8 @@
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,
+the syscall number is replaced by -1 which corresponds to an invalid syscall
+(unless a syscall is specified with :\fBsyscall=\fR option),
and the error code is specified using a symbolic
.I errno
value like
@@ -654,6 +689,12 @@
and :\fBsignal\fR=\,\fIsig\/\fR options are specified, then both
a fault or success is injected and a signal is delivered.
+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.
+
Unless a :\fBwhen\fR=\,\fIexpr\fR subexpression is specified,
an injection is being made into every invocation of each syscall from the
.IR set .
@@ -1008,6 +1049,14 @@
Xtensa syscall are filtered and printed as
.BR fadvise64_64 (2).
.LP
+On x32, syscalls that are intended to be used by 64-bit processes and not x32
+ones (for example,
+.BR readv ,
+that has syscall number 19 on x86_64, with its x32 counterpart has syscall
+number 515), but called with
+.B __X32_SYSCALL_BIT
+flag being set, are designated with "#64" suffix.
+.LP
On some platforms a process that is attached to with the
.B \-p
option may observe a spurious EINTR return from the current
@@ -1085,7 +1134,7 @@
(including ARM, IA-64, MIPS, PA-RISC, PowerPC, s390, SPARC) were introduced.
In 2002, the burden of
.B strace
-maintainership was transferred to Ronald McGrath.
+maintainership was transferred to Roland McGrath.
Since then,
.B strace
gained support for several new Linux architectures (AMD64, s390x, SuperH),
diff --git a/strace.1.in b/strace.1.in
index 46a55e5..d5b83c5 100644
--- a/strace.1.in
+++ b/strace.1.in
@@ -58,13 +58,19 @@
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
.OP \-I n
.OP \-b execve
.OM \-e expr
.OP \-a column
.OP \-o file
.OP \-s strsize
+.OP \-X format
.OM \-P path
.OM \-p pid
.BR "" {
@@ -170,7 +176,9 @@
.CW
open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3
.CE
-Here, the third argument of open is decoded by breaking down the
+Here, the third argument of
+.B open
+is 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.
@@ -205,8 +213,7 @@
are printed raw, with the unknown system call number printed in hexadecimal form
and prefixed with "syscall_":
.CW
-syscall_0xbad(0xfedcba9876543210, 0xfedcba9876543211, 0xfedcba9876543212,
-0xfedcba9876543213, 0xfedcba9876543214, 0xfedcba9876543215) = -1 (errno 38)
+syscall_0xbad(0x1, 0x2, 0x3, 0x4, 0x5, 0x6) = -1 ENOSYS (Function not implemented)
.CE
.LP
Character pointers are dereferenced and printed as C strings.
@@ -252,12 +259,11 @@
.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 (experimental).
-This option is available only if
-.B strace
-is built with libunwind.
+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
@@ -274,7 +280,8 @@
The latter is not compatible with
.B \-ff
option currently.
-.TP \-A
+.TP
+.B \-A
Open the file provided in the
.B \-o
option in append mode.
@@ -325,6 +332,27 @@
.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
@@ -418,6 +446,9 @@
.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
@@ -555,6 +586,9 @@
in hexadecimal. This is mostly useful if you don't trust the
decoding or you need to know the actual numeric value of an
argument.
+See also
+.B \-X raw
+option.
.TP
\fB\-e\ signal\fR=\,\fIset\fR
Trace only the specified subset of signals. The default is
@@ -595,7 +629,7 @@
system call which is controlled by the option
.BR -e "\ " trace = write .
.TP
-\fB\-e\ inject\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBdelay_enter\fR=\,\fIusecs\/\fR][:\fBdelay_exit\fR=\,\fIusecs\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR]
+\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]
Perform syscall tampering for the specified set of syscalls.
At least one of
@@ -613,7 +647,8 @@
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,
+the syscall number is replaced by -1 which corresponds to an invalid syscall
+(unless a syscall is specified with :\fBsyscall=\fR option),
and the error code is specified using a symbolic
.I errno
value like
@@ -654,6 +689,12 @@
and :\fBsignal\fR=\,\fIsig\/\fR options are specified, then both
a fault or success is injected and a signal is delivered.
+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.
+
Unless a :\fBwhen\fR=\,\fIexpr\fR subexpression is specified,
an injection is being made into every invocation of each syscall from the
.IR set .
@@ -1008,6 +1049,14 @@
Xtensa syscall are filtered and printed as
.BR fadvise64_64 (2).
.LP
+On x32, syscalls that are intended to be used by 64-bit processes and not x32
+ones (for example,
+.BR readv ,
+that has syscall number 19 on x86_64, with its x32 counterpart has syscall
+number 515), but called with
+.B __X32_SYSCALL_BIT
+flag being set, are designated with "#64" suffix.
+.LP
On some platforms a process that is attached to with the
.B \-p
option may observe a spurious EINTR return from the current
@@ -1085,7 +1134,7 @@
(including ARM, IA-64, MIPS, PA-RISC, PowerPC, s390, SPARC) were introduced.
In 2002, the burden of
.B strace
-maintainership was transferred to Ronald McGrath.
+maintainership was transferred to Roland McGrath.
Since then,
.B strace
gained support for several new Linux architectures (AMD64, s390x, SuperH),
diff --git a/strace.c b/strace.c
index a76502a..4b37485 100644
--- a/strace.c
+++ b/strace.c
@@ -65,7 +65,7 @@
extern int optind;
extern char *optarg;
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
/* if this is true do the stack trace for every system call */
bool stack_trace_enabled;
#endif
@@ -147,6 +147,9 @@
static int acolumn = DEFAULT_ACOLUMN;
static char *acolumn_spaces;
+/* Default output style for xlat entities */
+enum xlat_style xlat_verbosity = XLAT_STYLE_ABBREV;
+
static const char *outfname;
/* If -ff, points to stderr. Else, it's our common output log */
static FILE *shared_log;
@@ -203,12 +206,12 @@
print_version(void)
{
static const char features[] =
-#ifdef USE_LIBUNWIND
- " stack-unwind"
-#endif /* USE_LIBUNWIND */
+#ifdef ENABLE_STACKTRACE
+ " stack-trace=" USE_UNWINDER
+#endif
#ifdef USE_DEMANGLE
" stack-demangle"
-#endif /* USE_DEMANGLE */
+#endif
#if SUPPORTED_PERSONALITIES > 1
# if defined HAVE_M32_MPERS
" m32-mpers"
@@ -248,9 +251,9 @@
-a column alignment COLUMN for printing syscall results (default %d)\n\
-i print instruction pointer at time of syscall\n\
"
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
"\
- -k obtain stack trace between each syscall (experimental)\n\
+ -k obtain stack trace between each syscall\n\
"
#endif
"\
@@ -418,7 +421,8 @@
if (flags == newflags)
return;
- fcntl(fd, F_SETFD, newflags); /* never fails */
+ if (fcntl(fd, F_SETFD, newflags)) /* never fails */
+ perror_msg_and_die("fcntl(%d, F_SETFD, %#x)", fd, newflags);
}
static void
@@ -703,14 +707,20 @@
* may create bogus empty FILE.<nonexistant_pid>, and then die.
*/
static void
-newoutf(struct tcb *tcp)
+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) {
char name[PATH_MAX];
xsprintf(name, "%s.%u", outfname, tcp->pid);
tcp->outf = strace_fopen(name);
}
+
+#ifdef ENABLE_STACKTRACE
+ if (stack_trace_enabled)
+ unwind_tcb_init(tcp);
+#endif
}
static void
@@ -752,12 +762,6 @@
#if SUPPORTED_PERSONALITIES > 1
tcp->currpers = current_personality;
#endif
-
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled)
- unwind_tcb_init(tcp);
-#endif
-
nprocs++;
debug_msg("new tcb for pid %d, active tcbs:%d",
tcp->pid, nprocs);
@@ -810,13 +814,13 @@
free_tcb_priv_data(tcp);
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled) {
+#ifdef ENABLE_STACKTRACE
+ if (stack_trace_enabled)
unwind_tcb_fin(tcp);
- }
#endif
- mmap_cache_delete(tcp, __func__);
+ if (tcp->mmap_cache)
+ tcp->mmap_cache->free_fn(tcp, __func__);
nprocs--;
debug_msg("dropped tcb for pid %d, %d remain", tcp->pid, nprocs);
@@ -1039,9 +1043,7 @@
return;
}
- tcp->flags |= TCB_ATTACHED | TCB_GRABBED | TCB_STARTUP |
- post_attach_sigstop;
- newoutf(tcp);
+ after_successful_attach(tcp, TCB_GRABBED | post_attach_sigstop);
debug_msg("attach to pid %d (main) succeeded", tcp->pid);
static const char task_path[] = "/proc/%d/task";
@@ -1069,12 +1071,10 @@
ptrace_attach_cmd, tid);
continue;
}
- debug_msg("attach to pid %d succeeded", tid);
- struct tcb *tid_tcp = alloctcb(tid);
- tid_tcp->flags |= TCB_ATTACHED | TCB_GRABBED |
- TCB_STARTUP | post_attach_sigstop;
- newoutf(tid_tcp);
+ after_successful_attach(alloctcb(tid),
+ TCB_GRABBED | post_attach_sigstop);
+ debug_msg("attach to pid %d succeeded", tid);
}
closedir(dir);
@@ -1419,18 +1419,20 @@
kill(pid, SIGCONT);
}
tcp = alloctcb(pid);
- tcp->flags |= TCB_ATTACHED | TCB_STARTUP
- | TCB_SKIP_DETACH_ON_FIRST_EXEC
- | (NOMMU_SYSTEM ? 0 : (TCB_HIDE_LOG | post_attach_sigstop));
- newoutf(tcp);
+ after_successful_attach(tcp, TCB_SKIP_DETACH_ON_FIRST_EXEC
+ | (NOMMU_SYSTEM ? 0
+ : (TCB_HIDE_LOG
+ | post_attach_sigstop)));
} else {
/* With -D, we are *child* here, the tracee is our parent. */
strace_child = strace_tracer_pid;
strace_tracer_pid = getpid();
tcp = alloctcb(strace_child);
tcp->flags |= TCB_SKIP_DETACH_ON_FIRST_EXEC | TCB_HIDE_LOG;
- /* attaching will be done later, by startup_attach */
- /* note: we don't do newoutf(tcp) here either! */
+ /*
+ * Attaching will be done later, by startup_attach.
+ * Note: we don't do after_successful_attach() here either!
+ */
/* NOMMU BUG! -D mode is active, we (child) return,
* and we will scribble over parent's stack!
@@ -1592,10 +1594,10 @@
#endif
qualify("signal=all");
while ((c = getopt(argc, argv, "+"
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
"k"
#endif
- "a:Ab:cCdDe:E:fFhiI:o:O:p:P:qrs:S:tTu:vVwxyz")) != EOF) {
+ "a:Ab:cCdDe:E:fFhiI:o:O:p:P:qrs:S:tTu:vVwxX:yz")) != EOF) {
switch (c) {
case 'a':
acolumn = string_to_uint(optarg);
@@ -1653,7 +1655,7 @@
if (opt_intr <= 0)
error_opt_arg(c, optarg);
break;
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
case 'k':
stack_trace_enabled = true;
break;
@@ -1710,6 +1712,16 @@
case 'x':
xflag++;
break;
+ case 'X':
+ if (!strcmp(optarg, "raw"))
+ xlat_verbosity = XLAT_STYLE_RAW;
+ else if (!strcmp(optarg, "abbrev"))
+ xlat_verbosity = XLAT_STYLE_ABBREV;
+ else if (!strcmp(optarg, "verbose"))
+ xlat_verbosity = XLAT_STYLE_VERBOSE;
+ else
+ error_opt_arg(c, optarg);
+ break;
case 'y':
show_fd_path++;
break;
@@ -1754,7 +1766,7 @@
if (cflag == CFLAG_ONLY_STATS) {
if (iflag)
error_msg("-%c has no effect with -c", 'i');
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
if (stack_trace_enabled)
error_msg("-%c has no effect with -c", 'k');
#endif
@@ -1774,15 +1786,9 @@
set_sighandler(SIGCHLD, SIG_DFL, ¶ms_for_tracee.child_sa);
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled) {
- unsigned int tcbi;
-
+#ifdef ENABLE_STACKTRACE
+ if (stack_trace_enabled)
unwind_init();
- for (tcbi = 0; tcbi < tcbtabsize; ++tcbi) {
- unwind_tcb_init(tcbtab[tcbi]);
- }
- }
#endif
/* See if they want to run as another user. */
@@ -2031,8 +2037,7 @@
if (followfork) {
/* We assume it's a fork/vfork/clone child */
struct tcb *tcp = alloctcb(pid);
- tcp->flags |= TCB_ATTACHED | TCB_STARTUP | post_attach_sigstop;
- newoutf(tcp);
+ after_successful_attach(tcp, post_attach_sigstop);
if (!qflag)
error_msg("Process %d attached", pid);
return tcp;
diff --git a/strace.spec b/strace.spec
index b47ed6a..03d2628 100644
--- a/strace.spec
+++ b/strace.spec
@@ -1,22 +1,23 @@
Summary: Tracks and displays system calls associated with a running process
Name: strace
-Version: 4.22
+Version: 4.23
Release: 1%{?dist}
License: BSD
Group: Development/Debuggers
URL: https://strace.io
-Source: https://github.com/strace/strace/releases/download/v%{version}/strace-%{version}.tar.xz
+Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz
BuildRequires: gcc
%if 0%{?fedora} >= 18 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200
BuildRequires: pkgconfig(bluez)
%endif
-%if 0%{?fedora} >= 20 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1300
-%define buildrequires_libunwind_devel BuildRequires: libunwind-devel binutils-devel
+%if 0%{?fedora} >= 20 || 0%{?centos} >= 6 || 0%{?rhel} >= 6
+%define buildrequires_stacktrace BuildRequires: elfutils-devel binutils-devel
%endif
-%ifarch x86_64
-# for experimental -k option
-%{?buildrequires_libunwind_devel}
+%if 0%{?suse_version} >= 1100
+%define buildrequires_stacktrace BuildRequires: libdw-devel binutils-devel
%endif
+# for -k option
+%{?buildrequires_stacktrace}
%define strace64_arches ppc64 sparc64
%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release}
@@ -53,7 +54,7 @@
%setup -q
echo -n %version-%release > .tarball-version
echo -n 2018 > .year
-echo -n 2018-04-04 > .strace.1.in.date
+echo -n 2018-06-13 > .strace.1.in.date
%build
echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION'
@@ -91,6 +92,8 @@
make %{?_smp_mflags} -k check VERBOSE=1
echo 'BEGIN OF TEST SUITE INFORMATION'
tail -n 99999 -- tests*/test-suite.log tests*/ksysent.log
+find tests* -type f -name '*.log' -print0 |
+ xargs -r0 grep -H '^KERNEL BUG:' -- ||:
echo 'END OF TEST SUITE INFORMATION'
%files
@@ -107,8 +110,11 @@
%endif
%changelog
-* Thu Jun 14 2018 [email protected] - 4.22-1
-- strace 4.22 snapshot.
+* Fri Jun 15 2018 [email protected] - 4.23-1
+- strace 4.23 snapshot.
+
+* Thu Apr 05 2018 Dmitry V. Levin <[email protected]> - 4.22-1
+- v4.21 -> v4.22.
* Tue Feb 13 2018 Dmitry V. Levin <[email protected]> - 4.21-1
- v4.20 -> v4.21.
diff --git a/strace.spec.in b/strace.spec.in
index 1bad59d..1a6f284 100644
--- a/strace.spec.in
+++ b/strace.spec.in
@@ -5,18 +5,19 @@
License: BSD
Group: Development/Debuggers
URL: https://strace.io
-Source: https://github.com/strace/strace/releases/download/v%{version}/strace-%{version}.tar.xz
+Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz
BuildRequires: gcc
%if 0%{?fedora} >= 18 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200
BuildRequires: pkgconfig(bluez)
%endif
-%if 0%{?fedora} >= 20 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1300
-%define buildrequires_libunwind_devel BuildRequires: libunwind-devel binutils-devel
+%if 0%{?fedora} >= 20 || 0%{?centos} >= 6 || 0%{?rhel} >= 6
+%define buildrequires_stacktrace BuildRequires: elfutils-devel binutils-devel
%endif
-%ifarch x86_64
-# for experimental -k option
-%{?buildrequires_libunwind_devel}
+%if 0%{?suse_version} >= 1100
+%define buildrequires_stacktrace BuildRequires: libdw-devel binutils-devel
%endif
+# for -k option
+%{?buildrequires_stacktrace}
%define strace64_arches ppc64 sparc64
%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release}
@@ -91,6 +92,8 @@
make %{?_smp_mflags} -k check VERBOSE=1
echo 'BEGIN OF TEST SUITE INFORMATION'
tail -n 99999 -- tests*/test-suite.log tests*/ksysent.log
+find tests* -type f -name '*.log' -print0 |
+ xargs -r0 grep -H '^KERNEL BUG:' -- ||:
echo 'END OF TEST SUITE INFORMATION'
%files
@@ -110,6 +113,9 @@
* @RPM_CHANGELOGTIME@ @PACKAGE_BUGREPORT@ - @PACKAGE_VERSION@-1
- @PACKAGE_STRING@ snapshot.
+* Thu Apr 05 2018 Dmitry V. Levin <[email protected]> - 4.22-1
+- v4.21 -> v4.22.
+
* Tue Feb 13 2018 Dmitry V. Levin <[email protected]> - 4.21-1
- v4.20 -> v4.21.
diff --git a/sys_func.h b/sys_func.h
index 1ffa4fb..22cb378 100644
--- a/sys_func.h
+++ b/sys_func.h
@@ -96,6 +96,7 @@
extern SYS_FUNC(io_destroy);
extern SYS_FUNC(io_getevents);
extern SYS_FUNC(ioperm);
+extern SYS_FUNC(io_pgetevents);
extern SYS_FUNC(iopl);
extern SYS_FUNC(ioprio_get);
extern SYS_FUNC(ioprio_set);
diff --git a/syscall.c b/syscall.c
index 13d8153..fe85b8b 100644
--- a/syscall.c
+++ b/syscall.c
@@ -33,7 +33,7 @@
*/
#include "defs.h"
-#include "mmap_cache.h"
+#include "mmap_notify.h"
#include "native_defs.h"
#include "ptrace.h"
#include "nsig.h"
@@ -57,10 +57,6 @@
# define PTRACE_SETREGS PTRACE_SETREGS64
#endif
-#ifndef NT_PRSTATUS
-# define NT_PRSTATUS 1
-#endif
-
#include "syscall.h"
#include "xstring.h"
@@ -90,6 +86,13 @@
/* Now undef them since short defines cause wicked namespace pollution. */
#include "sysent_shorthand_undefs.h"
+const char *const errnoent[] = {
+#include "errnoent.h"
+};
+const char *const signalent[] = {
+#include "signalent.h"
+
+};
/*
* `ioctlent[012].h' files are automatically generated by the auxiliary
* program `ioctlsort', such that the list is sorted by the `code' field.
@@ -98,23 +101,11 @@
* in "/usr/include".
*/
-const char *const errnoent0[] = {
-#include "errnoent.h"
-};
-const char *const signalent0[] = {
-#include "signalent.h"
-};
const struct_ioctlent ioctlent0[] = {
#include "ioctlent0.h"
};
#if SUPPORTED_PERSONALITIES > 1
-static const char *const errnoent1[] = {
-# include "errnoent1.h"
-};
-static const char *const signalent1[] = {
-# include "signalent1.h"
-};
static const struct_ioctlent ioctlent1[] = {
# include "ioctlent1.h"
};
@@ -129,12 +120,6 @@
#endif
#if SUPPORTED_PERSONALITIES > 2
-static const char *const errnoent2[] = {
-# include "errnoent2.h"
-};
-static const char *const signalent2[] = {
-# include "signalent2.h"
-};
static const struct_ioctlent ioctlent2[] = {
# include "ioctlent2.h"
};
@@ -155,26 +140,6 @@
};
enum {
- nerrnos0 = ARRAY_SIZE(errnoent0)
-#if SUPPORTED_PERSONALITIES > 1
- , nerrnos1 = ARRAY_SIZE(errnoent1)
-# if SUPPORTED_PERSONALITIES > 2
- , nerrnos2 = ARRAY_SIZE(errnoent2)
-# endif
-#endif
-};
-
-enum {
- nsignals0 = ARRAY_SIZE(signalent0)
-#if SUPPORTED_PERSONALITIES > 1
- , nsignals1 = ARRAY_SIZE(signalent1)
-# if SUPPORTED_PERSONALITIES > 2
- , nsignals2 = ARRAY_SIZE(signalent2)
-# endif
-#endif
-};
-
-enum {
nioctlents0 = ARRAY_SIZE(ioctlent0)
#if SUPPORTED_PERSONALITIES > 1
, nioctlents1 = ARRAY_SIZE(ioctlent1)
@@ -186,15 +151,13 @@
#if SUPPORTED_PERSONALITIES > 1
const struct_sysent *sysent = sysent0;
-const char *const *errnoent = errnoent0;
-const char *const *signalent = signalent0;
const struct_ioctlent *ioctlent = ioctlent0;
const struct_printers *printers = &printers0;
#endif
+const unsigned int nerrnos = ARRAY_SIZE(errnoent);
+const unsigned int nsignals = ARRAY_SIZE(signalent);
unsigned nsyscalls = nsyscalls0;
-unsigned nerrnos = nerrnos0;
-unsigned nsignals = nsignals0;
unsigned nioctlents = nioctlents0;
const unsigned int nsyscall_vec[SUPPORTED_PERSONALITIES] = {
@@ -228,6 +191,18 @@
# endif
;
+const char *const personality_designators[] =
+# if defined X86_64
+ { "64", "32", "x32" }
+# elif defined X32
+ { "x32", "32" }
+# elif SUPPORTED_PERSONALITIES == 2
+ { "64", "32" }
+# else
+ { STRINGIFY_VAL(__WORDSIZE) }
+# endif
+ ;
+
#if SUPPORTED_PERSONALITIES > 1
unsigned current_personality;
@@ -269,33 +244,21 @@
switch (personality) {
case 0:
- errnoent = errnoent0;
- nerrnos = nerrnos0;
ioctlent = ioctlent0;
nioctlents = nioctlents0;
- signalent = signalent0;
- nsignals = nsignals0;
printers = &printers0;
break;
case 1:
- errnoent = errnoent1;
- nerrnos = nerrnos1;
ioctlent = ioctlent1;
nioctlents = nioctlents1;
- signalent = signalent1;
- nsignals = nsignals1;
printers = &printers1;
break;
# if SUPPORTED_PERSONALITIES > 2
case 2:
- errnoent = errnoent2;
- nerrnos = nerrnos2;
ioctlent = ioctlent2;
nioctlents = nioctlents2;
- signalent = signalent2;
- nsignals = nsignals2;
printers = &printers2;
break;
# endif
@@ -499,6 +462,18 @@
return NULL;
}
+static void
+print_err_ret(kernel_ulong_t ret, unsigned long u_error)
+{
+ const char *u_error_str = err_name(u_error);
+
+ if (u_error_str)
+ tprintf("= %" PRI_kld " %s (%s)",
+ ret, u_error_str, strerror(u_error));
+ else
+ tprintf("= %" PRI_kld " (errno %lu)", ret, u_error);
+}
+
static long get_regs(struct tcb *);
static int get_syscall_args(struct tcb *);
static int get_syscall_result(struct tcb *);
@@ -544,9 +519,18 @@
if (!recovering(tcp)) {
if (opts->data.flags & INJECT_F_SIGNAL)
*signo = opts->data.signo;
- if (opts->data.flags & (INJECT_F_ERROR | INJECT_F_RETVAL) &&
- !arch_set_scno(tcp, -1))
- tcp->flags |= TCB_TAMPERED;
+ if (opts->data.flags & (INJECT_F_ERROR | INJECT_F_RETVAL)) {
+ kernel_long_t scno =
+ (opts->data.flags & INJECT_F_SYSCALL)
+ ? (kernel_long_t) shuffle_scno(opts->data.scno)
+ : -1;
+
+ if (!arch_set_scno(tcp, scno)) {
+ tcp->flags |= TCB_TAMPERED;
+ if (scno != -1)
+ tcp->flags |= TCB_TAMPERED_NO_FAIL;
+ }
+ }
if (opts->data.flags & INJECT_F_DELAY_ENTER)
delay_tcb(tcp, opts->data.delay_idx, true);
if (opts->data.flags & INJECT_F_DELAY_EXIT)
@@ -569,10 +553,11 @@
if (!syscall_tampered(tcp))
return 0;
- if (!syserror(tcp)) {
- error_msg("Failed to tamper with process %d: got no error "
- "(return value %#" PRI_klx ")",
- tcp->pid, tcp->u_rval);
+ if (!syserror(tcp) ^ !!syscall_tampered_nofail(tcp)) {
+ error_msg("Failed to tamper with process %d: unexpectedly got"
+ " %serror (return value %#" PRI_klx ", error %lu)",
+ tcp->pid, syscall_tampered_nofail(tcp) ? "" : "no ",
+ tcp->u_rval, tcp->u_error);
return 1;
}
@@ -705,7 +690,7 @@
return 0;
}
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
if (stack_trace_enabled) {
if (tcp->s_ent->sys_flags & STACKTRACE_CAPTURE_ON_ENTER)
unwind_tcb_capture(tcp);
@@ -744,10 +729,8 @@
if ((Tflag || cflag) && !(filtered(tcp) || hide_log(tcp)))
clock_gettime(CLOCK_MONOTONIC, pts);
- if (mmap_cache_is_enabled()) {
- if (tcp->s_ent->sys_flags & STACKTRACE_INVALIDATE_CACHE)
- mmap_cache_invalidate(tcp);
- }
+ if (tcp->s_ent->sys_flags & MEMORY_MAPPING_CHANGE)
+ mmap_notify_report(tcp);
if (filtered(tcp) || hide_log(tcp))
return 0;
@@ -821,20 +804,17 @@
tprints(") ");
tabto();
- unsigned long u_error = tcp->u_error;
if (raw(tcp)) {
- if (u_error) {
- tprintf("= -1 (errno %lu)", u_error);
- } else {
+ if (tcp->u_error)
+ print_err_ret(tcp->u_rval, tcp->u_error);
+ else
tprintf("= %#" PRI_klx, tcp->u_rval);
- }
+
if (syscall_tampered(tcp))
tprints(" (INJECTED)");
- } else if (!(sys_res & RVAL_NONE) && u_error) {
- const char *u_error_str;
-
- switch (u_error) {
+ } else if (!(sys_res & RVAL_NONE) && tcp->u_error) {
+ switch (tcp->u_error) {
/* Blocked signals do not interrupt any syscalls.
* In this case syscalls don't return ERESTARTfoo codes.
*
@@ -889,13 +869,7 @@
tprints("= ? ERESTART_RESTARTBLOCK (Interrupted by signal)");
break;
default:
- u_error_str = err_name(u_error);
- if (u_error_str)
- tprintf("= %" PRI_kld " %s (%s)", tcp->u_rval,
- u_error_str, strerror(u_error));
- else
- tprintf("= %" PRI_kld " %lu (%s)", tcp->u_rval,
- u_error, strerror(u_error));
+ print_err_ret(tcp->u_rval, tcp->u_error);
break;
}
if (syscall_tampered(tcp))
@@ -959,7 +933,7 @@
dumpio(tcp);
line_ended();
-#ifdef USE_LIBUNWIND
+#ifdef ENABLE_STACKTRACE
if (stack_trace_enabled)
unwind_tcb_print(tcp);
#endif
@@ -1003,6 +977,10 @@
tcp->u_error = saved_u_error;
}
+#define XLAT_MACROS_ONLY
+# include "xlat/nt_descriptor_types.h"
+#undef XLAT_MACROS_ONLY
+
#include "arch_regs.c"
#if HAVE_ARCH_GETRVAL2
@@ -1281,8 +1259,9 @@
return -1;
tcp->u_error = 0;
get_error(tcp,
- !(tcp->s_ent->sys_flags & SYSCALL_NEVER_FAILS)
- || syscall_tampered(tcp));
+ (!(tcp->s_ent->sys_flags & SYSCALL_NEVER_FAILS)
+ || syscall_tampered(tcp))
+ && !syscall_tampered_nofail(tcp));
return 1;
}
diff --git a/sysent.h b/sysent.h
index b01eb5f..cf2daed 100644
--- a/sysent.h
+++ b/sysent.h
@@ -17,7 +17,7 @@
#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 STACKTRACE_INVALIDATE_CACHE 00000400 /* Trigger proc/maps cache updating */
+#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. */
diff --git a/sysent_shorthand_defs.h b/sysent_shorthand_defs.h
index ce43550..2728b20 100644
--- a/sysent_shorthand_defs.h
+++ b/sysent_shorthand_defs.h
@@ -41,7 +41,7 @@
# define PU TRACE_PURE
# define NF SYSCALL_NEVER_FAILS
# define MA MAX_ARGS
-# define SI STACKTRACE_INVALIDATE_CACHE
+# define SI MEMORY_MAPPING_CHANGE
# define SE STACKTRACE_CAPTURE_ON_ENTER
# define CST COMPAT_SYSCALL_TYPES
/* SEN(a) is defined elsewhere */
diff --git a/tests-m32/Makefile b/tests-m32/Makefile
index 874010c..68dfc9e 100644
--- a/tests-m32/Makefile
+++ b/tests-m32/Makefile
@@ -139,7 +139,11 @@
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) caps-abbrev$(EXEEXT) \
+ block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
@@ -147,7 +151,8 @@
getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \
inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
- ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \
+ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
is_linux_mips_n64$(EXEEXT) ksysent$(EXEEXT) \
list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
@@ -159,18 +164,19 @@
perf_event_open_nonverbose$(EXEEXT) \
perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
- print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
- qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
- qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
- quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
- redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
- run_expect_termsig$(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) \
+ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
+ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
+ qual_signal$(EXEEXT) quotactl-v$(EXEEXT) \
+ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
+ restart_syscall$(EXEEXT) run_expect_termsig$(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) \
unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
##am__append_1 = strace-k-demangle.test
@@ -181,7 +187,10 @@
$(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -223,18 +232,25 @@
libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
- adjtimex$(EXEEXT) aio$(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) copy_file_range$(EXEEXT) creat$(EXEEXT) \
- delete_module$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \
- dup2$(EXEEXT) dup3$(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) fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
- fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
+ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \
+ alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
+ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \
+ dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(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) \
+ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
+ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \
+ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \
+ fanotify_mark-Xverbose$(EXEEXT) fchdir$(EXEEXT) \
fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \
@@ -255,49 +271,62 @@
getxxid$(EXEEXT) group_req$(EXEEXT) inet-cmsg$(EXEEXT) \
init_module$(EXEEXT) inotify$(EXEEXT) inotify_init1$(EXEEXT) \
ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \
- ioctl_evdev$(EXEEXT) ioctl_kvm_run$(EXEEXT) \
- ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) \
+ ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \
+ ioctl_kvm_run$(EXEEXT) ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) \
+ ioctl_rtc$(EXEEXT) ioctl_perf$(EXEEXT) ioctl_ptp$(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) ip_mreq$(EXEEXT) ipc$(EXEEXT) \
- ipc_msg$(EXEEXT) ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) \
- ipc_shm$(EXEEXT) kcmp$(EXEEXT) kcmp-y$(EXEEXT) \
- kern_features$(EXEEXT) kexec_file_load$(EXEEXT) \
- kexec_load$(EXEEXT) keyctl$(EXEEXT) kill$(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) \
- memfd_create$(EXEEXT) migrate_pages$(EXEEXT) mincore$(EXEEXT) \
- mkdir$(EXEEXT) mkdirat$(EXEEXT) mknod$(EXEEXT) \
- mknodat$(EXEEXT) mlock$(EXEEXT) mlock2$(EXEEXT) \
- mlockall$(EXEEXT) mmap$(EXEEXT) mmap64$(EXEEXT) mmsg$(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) \
+ ipc_sem$(EXEEXT) ipc_sem-Xabbrev$(EXEEXT) \
+ ipc_sem-Xraw$(EXEEXT) ipc_sem-Xverbose$(EXEEXT) \
+ ipc_shm$(EXEEXT) ipc_shm-Xabbrev$(EXEEXT) \
+ ipc_shm-Xraw$(EXEEXT) ipc_shm-Xverbose$(EXEEXT) kcmp$(EXEEXT) \
+ kcmp-y$(EXEEXT) kern_features$(EXEEXT) \
+ kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) keyctl$(EXEEXT) \
+ keyctl-Xabbrev$(EXEEXT) keyctl-Xraw$(EXEEXT) \
+ keyctl-Xverbose$(EXEEXT) kill$(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) memfd_create$(EXEEXT) \
+ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
+ mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
+ mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
+ mmap-Xabbrev$(EXEEXT) mmap-Xraw$(EXEEXT) \
+ mmap-Xverbose$(EXEEXT) mmap64$(EXEEXT) mmap64-Xabbrev$(EXEEXT) \
+ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \
mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \
- move_pages$(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-sockaddr$(EXEEXT) net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
- net-yy-inet6$(EXEEXT) net-yy-netlink$(EXEEXT) \
- net-yy-unix$(EXEEXT) netlink_audit$(EXEEXT) \
- netlink_crypto$(EXEEXT) netlink_generic$(EXEEXT) \
- netlink_kobject_uevent$(EXEEXT) netlink_netfilter$(EXEEXT) \
- netlink_protocol$(EXEEXT) netlink_route$(EXEEXT) \
- netlink_selinux$(EXEEXT) netlink_sock_diag$(EXEEXT) \
- netlink_xfrm$(EXEEXT) newfstatat$(EXEEXT) \
- nfnetlink_acct$(EXEEXT) nfnetlink_cthelper$(EXEEXT) \
- nfnetlink_ctnetlink$(EXEEXT) nfnetlink_ctnetlink_exp$(EXEEXT) \
- nfnetlink_cttimeout$(EXEEXT) nfnetlink_nft_compat$(EXEEXT) \
- nfnetlink_nftables$(EXEEXT) nfnetlink_ipset$(EXEEXT) \
- nfnetlink_osf$(EXEEXT) nfnetlink_queue$(EXEEXT) \
- nfnetlink_ulog$(EXEEXT) nlattr$(EXEEXT) \
- nlattr_crypto_user_alg$(EXEEXT) nlattr_br_port_msg$(EXEEXT) \
- nlattr_dcbmsg$(EXEEXT) nlattr_fib_rule_hdr$(EXEEXT) \
- nlattr_ifaddrlblmsg$(EXEEXT) nlattr_ifaddrmsg$(EXEEXT) \
- nlattr_ifinfomsg$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
- nlattr_ifla_port$(EXEEXT) nlattr_ifla_xdp$(EXEEXT) \
- nlattr_inet_diag_msg$(EXEEXT) \
+ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \
+ mount-Xverbose$(EXEEXT) move_pages$(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-sockaddr$(EXEEXT) \
+ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \
+ net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
+ netlink_audit$(EXEEXT) netlink_crypto$(EXEEXT) \
+ netlink_generic$(EXEEXT) netlink_kobject_uevent$(EXEEXT) \
+ netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+ netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+ netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+ newfstatat$(EXEEXT) nfnetlink_acct$(EXEEXT) \
+ nfnetlink_cthelper$(EXEEXT) nfnetlink_ctnetlink$(EXEEXT) \
+ nfnetlink_ctnetlink_exp$(EXEEXT) nfnetlink_cttimeout$(EXEEXT) \
+ nfnetlink_nft_compat$(EXEEXT) nfnetlink_nftables$(EXEEXT) \
+ nfnetlink_ipset$(EXEEXT) nfnetlink_osf$(EXEEXT) \
+ nfnetlink_queue$(EXEEXT) nfnetlink_ulog$(EXEEXT) \
+ nlattr$(EXEEXT) nlattr_crypto_user_alg$(EXEEXT) \
+ nlattr_br_port_msg$(EXEEXT) nlattr_dcbmsg$(EXEEXT) \
+ nlattr_fib_rule_hdr$(EXEEXT) nlattr_ifaddrlblmsg$(EXEEXT) \
+ nlattr_ifaddrmsg$(EXEEXT) nlattr_ifinfomsg$(EXEEXT) \
+ nlattr_ifla_af_spec$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
+ nlattr_ifla_linkinfo$(EXEEXT) nlattr_ifla_port$(EXEEXT) \
+ nlattr_ifla_xdp$(EXEEXT) nlattr_inet_diag_msg$(EXEEXT) \
nlattr_inet_diag_req_compat$(EXEEXT) \
nlattr_inet_diag_req_v2$(EXEEXT) \
nlattr_mdba_mdb_entry$(EXEEXT) \
@@ -309,11 +338,14 @@
nlattr_tc_stats$(EXEEXT) nlattr_tca_stab$(EXEEXT) \
nlattr_tcamsg$(EXEEXT) nlattr_tcmsg$(EXEEXT) \
nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
- old_mmap-P$(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) pipe$(EXEEXT) pipe2$(EXEEXT) \
+ old_mmap-P$(EXEEXT) old_mmap-v-none$(EXEEXT) \
+ old_mmap-Xabbrev$(EXEEXT) old_mmap-Xraw$(EXEEXT) \
+ old_mmap-Xverbose$(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) 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) \
@@ -361,7 +393,10 @@
sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
sigreturn$(EXEEXT) sigsuspend$(EXEEXT) so_linger$(EXEEXT) \
- so_peercred$(EXEEXT) sock_filter-v$(EXEEXT) \
+ so_peercred$(EXEEXT) so_peercred-Xabbrev$(EXEEXT) \
+ so_peercred-Xraw$(EXEEXT) so_peercred-Xverbose$(EXEEXT) \
+ sock_filter-v$(EXEEXT) sock_filter-v-Xabbrev$(EXEEXT) \
+ sock_filter-v-Xraw$(EXEEXT) sock_filter-v-Xverbose$(EXEEXT) \
socketcall$(EXEEXT) sockopt-sol_netlink$(EXEEXT) \
splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
@@ -418,6 +453,10 @@
aio_OBJECTS = aio.$(OBJEXT)
aio_LDADD = $(LDADD)
aio_DEPENDENCIES = libtests.a
+aio_pgetevents_SOURCES = aio_pgetevents.c
+aio_pgetevents_OBJECTS = aio_pgetevents.$(OBJEXT)
+aio_pgetevents_LDADD = $(LDADD)
+aio_pgetevents_DEPENDENCIES = libtests.a
alarm_SOURCES = alarm.c
alarm_OBJECTS = alarm.$(OBJEXT)
alarm_LDADD = $(LDADD)
@@ -449,6 +488,33 @@
bpf_OBJECTS = bpf.$(OBJEXT)
bpf_LDADD = $(LDADD)
bpf_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_SOURCES = bpf-obj_get_info_by_fd.c
+bpf_obj_get_info_by_fd_OBJECTS = bpf-obj_get_info_by_fd.$(OBJEXT)
+bpf_obj_get_info_by_fd_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_SOURCES = bpf-obj_get_info_by_fd-prog.c
+bpf_obj_get_info_by_fd_prog_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_v_SOURCES = \
+ bpf-obj_get_info_by_fd-prog-v.c
+bpf_obj_get_info_by_fd_prog_v_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_v_SOURCES = bpf-obj_get_info_by_fd-v.c
+bpf_obj_get_info_by_fd_v_OBJECTS = bpf-obj_get_info_by_fd-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_v_DEPENDENCIES = libtests.a
+bpf_success_SOURCES = bpf-success.c
+bpf_success_OBJECTS = bpf-success.$(OBJEXT)
+bpf_success_LDADD = $(LDADD)
+bpf_success_DEPENDENCIES = libtests.a
+bpf_success_v_SOURCES = bpf-success-v.c
+bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT)
+bpf_success_v_LDADD = $(LDADD)
+bpf_success_v_DEPENDENCIES = libtests.a
bpf_v_SOURCES = bpf-v.c
bpf_v_OBJECTS = bpf-v.$(OBJEXT)
bpf_v_LDADD = $(LDADD)
@@ -616,6 +682,18 @@
fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
fanotify_mark_LDADD = $(LDADD)
fanotify_mark_DEPENDENCIES = libtests.a
+fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+fanotify_mark_Xabbrev_LDADD = $(LDADD)
+fanotify_mark_Xabbrev_DEPENDENCIES = libtests.a
+fanotify_mark_Xraw_SOURCES = fanotify_mark-Xraw.c
+fanotify_mark_Xraw_OBJECTS = fanotify_mark-Xraw.$(OBJEXT)
+fanotify_mark_Xraw_LDADD = $(LDADD)
+fanotify_mark_Xraw_DEPENDENCIES = libtests.a
+fanotify_mark_Xverbose_SOURCES = fanotify_mark-Xverbose.c
+fanotify_mark_Xverbose_OBJECTS = fanotify_mark-Xverbose.$(OBJEXT)
+fanotify_mark_Xverbose_LDADD = $(LDADD)
+fanotify_mark_Xverbose_DEPENDENCIES = libtests.a
fchdir_SOURCES = fchdir.c
fchdir_OBJECTS = fchdir.$(OBJEXT)
fchdir_LDADD = $(LDADD)
@@ -895,6 +973,10 @@
ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
ioctl_evdev_v_LDADD = $(LDADD)
ioctl_evdev_v_DEPENDENCIES = libtests.a
+ioctl_inotify_SOURCES = ioctl_inotify.c
+ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT)
+ioctl_inotify_LDADD = $(LDADD)
+ioctl_inotify_DEPENDENCIES = libtests.a
ioctl_kvm_run_SOURCES = ioctl_kvm_run.c
ioctl_kvm_run_OBJECTS = ioctl_kvm_run.$(OBJEXT)
ioctl_kvm_run_LDADD = $(LDADD)
@@ -919,6 +1001,18 @@
ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
ioctl_nsfs_LDADD = $(LDADD)
ioctl_nsfs_DEPENDENCIES = libtests.a
+ioctl_perf_SOURCES = ioctl_perf.c
+ioctl_perf_OBJECTS = ioctl_perf.$(OBJEXT)
+ioctl_perf_LDADD = $(LDADD)
+ioctl_perf_DEPENDENCIES = libtests.a
+ioctl_perf_success_SOURCES = ioctl_perf-success.c
+ioctl_perf_success_OBJECTS = ioctl_perf-success.$(OBJEXT)
+ioctl_perf_success_LDADD = $(LDADD)
+ioctl_perf_success_DEPENDENCIES = libtests.a
+ioctl_ptp_SOURCES = ioctl_ptp.c
+ioctl_ptp_OBJECTS = ioctl_ptp.$(OBJEXT)
+ioctl_ptp_LDADD = $(LDADD)
+ioctl_ptp_DEPENDENCIES = libtests.a
ioctl_rtc_SOURCES = ioctl_rtc.c
ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
ioctl_rtc_LDADD = $(LDADD)
@@ -975,18 +1069,66 @@
ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
ipc_msg_LDADD = $(LDADD)
ipc_msg_DEPENDENCIES = libtests.a
+ipc_msg_Xabbrev_SOURCES = ipc_msg-Xabbrev.c
+ipc_msg_Xabbrev_OBJECTS = ipc_msg-Xabbrev.$(OBJEXT)
+ipc_msg_Xabbrev_LDADD = $(LDADD)
+ipc_msg_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msg_Xraw_SOURCES = ipc_msg-Xraw.c
+ipc_msg_Xraw_OBJECTS = ipc_msg-Xraw.$(OBJEXT)
+ipc_msg_Xraw_LDADD = $(LDADD)
+ipc_msg_Xraw_DEPENDENCIES = libtests.a
+ipc_msg_Xverbose_SOURCES = ipc_msg-Xverbose.c
+ipc_msg_Xverbose_OBJECTS = ipc_msg-Xverbose.$(OBJEXT)
+ipc_msg_Xverbose_LDADD = $(LDADD)
+ipc_msg_Xverbose_DEPENDENCIES = libtests.a
ipc_msgbuf_SOURCES = ipc_msgbuf.c
ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
ipc_msgbuf_LDADD = $(LDADD)
ipc_msgbuf_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xabbrev_SOURCES = ipc_msgbuf-Xabbrev.c
+ipc_msgbuf_Xabbrev_OBJECTS = ipc_msgbuf-Xabbrev.$(OBJEXT)
+ipc_msgbuf_Xabbrev_LDADD = $(LDADD)
+ipc_msgbuf_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xraw_SOURCES = ipc_msgbuf-Xraw.c
+ipc_msgbuf_Xraw_OBJECTS = ipc_msgbuf-Xraw.$(OBJEXT)
+ipc_msgbuf_Xraw_LDADD = $(LDADD)
+ipc_msgbuf_Xraw_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xverbose_SOURCES = ipc_msgbuf-Xverbose.c
+ipc_msgbuf_Xverbose_OBJECTS = ipc_msgbuf-Xverbose.$(OBJEXT)
+ipc_msgbuf_Xverbose_LDADD = $(LDADD)
+ipc_msgbuf_Xverbose_DEPENDENCIES = libtests.a
ipc_sem_SOURCES = ipc_sem.c
ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
ipc_sem_LDADD = $(LDADD)
ipc_sem_DEPENDENCIES = libtests.a
+ipc_sem_Xabbrev_SOURCES = ipc_sem-Xabbrev.c
+ipc_sem_Xabbrev_OBJECTS = ipc_sem-Xabbrev.$(OBJEXT)
+ipc_sem_Xabbrev_LDADD = $(LDADD)
+ipc_sem_Xabbrev_DEPENDENCIES = libtests.a
+ipc_sem_Xraw_SOURCES = ipc_sem-Xraw.c
+ipc_sem_Xraw_OBJECTS = ipc_sem-Xraw.$(OBJEXT)
+ipc_sem_Xraw_LDADD = $(LDADD)
+ipc_sem_Xraw_DEPENDENCIES = libtests.a
+ipc_sem_Xverbose_SOURCES = ipc_sem-Xverbose.c
+ipc_sem_Xverbose_OBJECTS = ipc_sem-Xverbose.$(OBJEXT)
+ipc_sem_Xverbose_LDADD = $(LDADD)
+ipc_sem_Xverbose_DEPENDENCIES = libtests.a
ipc_shm_SOURCES = ipc_shm.c
ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
ipc_shm_LDADD = $(LDADD)
ipc_shm_DEPENDENCIES = libtests.a
+ipc_shm_Xabbrev_SOURCES = ipc_shm-Xabbrev.c
+ipc_shm_Xabbrev_OBJECTS = ipc_shm-Xabbrev.$(OBJEXT)
+ipc_shm_Xabbrev_LDADD = $(LDADD)
+ipc_shm_Xabbrev_DEPENDENCIES = libtests.a
+ipc_shm_Xraw_SOURCES = ipc_shm-Xraw.c
+ipc_shm_Xraw_OBJECTS = ipc_shm-Xraw.$(OBJEXT)
+ipc_shm_Xraw_LDADD = $(LDADD)
+ipc_shm_Xraw_DEPENDENCIES = libtests.a
+ipc_shm_Xverbose_SOURCES = ipc_shm-Xverbose.c
+ipc_shm_Xverbose_OBJECTS = ipc_shm-Xverbose.$(OBJEXT)
+ipc_shm_Xverbose_LDADD = $(LDADD)
+ipc_shm_Xverbose_DEPENDENCIES = libtests.a
is_linux_mips_n64_SOURCES = is_linux_mips_n64.c
is_linux_mips_n64_OBJECTS = is_linux_mips_n64.$(OBJEXT)
is_linux_mips_n64_LDADD = $(LDADD)
@@ -1015,6 +1157,18 @@
keyctl_OBJECTS = keyctl.$(OBJEXT)
keyctl_LDADD = $(LDADD)
keyctl_DEPENDENCIES = libtests.a
+keyctl_Xabbrev_SOURCES = keyctl-Xabbrev.c
+keyctl_Xabbrev_OBJECTS = keyctl-Xabbrev.$(OBJEXT)
+keyctl_Xabbrev_LDADD = $(LDADD)
+keyctl_Xabbrev_DEPENDENCIES = libtests.a
+keyctl_Xraw_SOURCES = keyctl-Xraw.c
+keyctl_Xraw_OBJECTS = keyctl-Xraw.$(OBJEXT)
+keyctl_Xraw_LDADD = $(LDADD)
+keyctl_Xraw_DEPENDENCIES = libtests.a
+keyctl_Xverbose_SOURCES = keyctl-Xverbose.c
+keyctl_Xverbose_OBJECTS = keyctl-Xverbose.$(OBJEXT)
+keyctl_Xverbose_LDADD = $(LDADD)
+keyctl_Xverbose_DEPENDENCIES = libtests.a
kill_SOURCES = kill.c
kill_OBJECTS = kill.$(OBJEXT)
kill_LDADD = $(LDADD)
@@ -1122,10 +1276,34 @@
mmap_OBJECTS = mmap.$(OBJEXT)
mmap_LDADD = $(LDADD)
mmap_DEPENDENCIES = libtests.a
+mmap_Xabbrev_SOURCES = mmap-Xabbrev.c
+mmap_Xabbrev_OBJECTS = mmap-Xabbrev.$(OBJEXT)
+mmap_Xabbrev_LDADD = $(LDADD)
+mmap_Xabbrev_DEPENDENCIES = libtests.a
+mmap_Xraw_SOURCES = mmap-Xraw.c
+mmap_Xraw_OBJECTS = mmap-Xraw.$(OBJEXT)
+mmap_Xraw_LDADD = $(LDADD)
+mmap_Xraw_DEPENDENCIES = libtests.a
+mmap_Xverbose_SOURCES = mmap-Xverbose.c
+mmap_Xverbose_OBJECTS = mmap-Xverbose.$(OBJEXT)
+mmap_Xverbose_LDADD = $(LDADD)
+mmap_Xverbose_DEPENDENCIES = libtests.a
mmap64_SOURCES = mmap64.c
mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
mmap64_LDADD = $(LDADD)
mmap64_DEPENDENCIES = libtests.a
+mmap64_Xabbrev_SOURCES = mmap64-Xabbrev.c
+mmap64_Xabbrev_OBJECTS = mmap64_Xabbrev-mmap64-Xabbrev.$(OBJEXT)
+mmap64_Xabbrev_LDADD = $(LDADD)
+mmap64_Xabbrev_DEPENDENCIES = libtests.a
+mmap64_Xraw_SOURCES = mmap64-Xraw.c
+mmap64_Xraw_OBJECTS = mmap64_Xraw-mmap64-Xraw.$(OBJEXT)
+mmap64_Xraw_LDADD = $(LDADD)
+mmap64_Xraw_DEPENDENCIES = libtests.a
+mmap64_Xverbose_SOURCES = mmap64-Xverbose.c
+mmap64_Xverbose_OBJECTS = mmap64_Xverbose-mmap64-Xverbose.$(OBJEXT)
+mmap64_Xverbose_LDADD = $(LDADD)
+mmap64_Xverbose_DEPENDENCIES = libtests.a
mmsg_SOURCES = mmsg.c
mmsg_OBJECTS = mmsg.$(OBJEXT)
mmsg_LDADD = $(LDADD)
@@ -1150,6 +1328,18 @@
mount_OBJECTS = mount.$(OBJEXT)
mount_LDADD = $(LDADD)
mount_DEPENDENCIES = libtests.a
+mount_Xabbrev_SOURCES = mount-Xabbrev.c
+mount_Xabbrev_OBJECTS = mount-Xabbrev.$(OBJEXT)
+mount_Xabbrev_LDADD = $(LDADD)
+mount_Xabbrev_DEPENDENCIES = libtests.a
+mount_Xraw_SOURCES = mount-Xraw.c
+mount_Xraw_OBJECTS = mount-Xraw.$(OBJEXT)
+mount_Xraw_LDADD = $(LDADD)
+mount_Xraw_DEPENDENCIES = libtests.a
+mount_Xverbose_SOURCES = mount-Xverbose.c
+mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT)
+mount_Xverbose_LDADD = $(LDADD)
+mount_Xverbose_DEPENDENCIES = libtests.a
move_pages_SOURCES = move_pages.c
move_pages_OBJECTS = move_pages.$(OBJEXT)
move_pages_LDADD = $(LDADD)
@@ -1353,10 +1543,18 @@
nlattr_ifinfomsg_OBJECTS = nlattr_ifinfomsg.$(OBJEXT)
nlattr_ifinfomsg_LDADD = $(LDADD)
nlattr_ifinfomsg_DEPENDENCIES = libtests.a
+nlattr_ifla_af_spec_SOURCES = nlattr_ifla_af_spec.c
+nlattr_ifla_af_spec_OBJECTS = nlattr_ifla_af_spec.$(OBJEXT)
+nlattr_ifla_af_spec_LDADD = $(LDADD)
+nlattr_ifla_af_spec_DEPENDENCIES = libtests.a
nlattr_ifla_brport_SOURCES = nlattr_ifla_brport.c
nlattr_ifla_brport_OBJECTS = nlattr_ifla_brport.$(OBJEXT)
nlattr_ifla_brport_LDADD = $(LDADD)
nlattr_ifla_brport_DEPENDENCIES = libtests.a
+nlattr_ifla_linkinfo_SOURCES = nlattr_ifla_linkinfo.c
+nlattr_ifla_linkinfo_OBJECTS = nlattr_ifla_linkinfo.$(OBJEXT)
+nlattr_ifla_linkinfo_LDADD = $(LDADD)
+nlattr_ifla_linkinfo_DEPENDENCIES = libtests.a
nlattr_ifla_port_SOURCES = nlattr_ifla_port.c
nlattr_ifla_port_OBJECTS = nlattr_ifla_port.$(OBJEXT)
nlattr_ifla_port_LDADD = $(LDADD)
@@ -1458,6 +1656,18 @@
old_mmap_P_OBJECTS = old_mmap-P.$(OBJEXT)
old_mmap_P_LDADD = $(LDADD)
old_mmap_P_DEPENDENCIES = libtests.a
+old_mmap_Xabbrev_SOURCES = old_mmap-Xabbrev.c
+old_mmap_Xabbrev_OBJECTS = old_mmap-Xabbrev.$(OBJEXT)
+old_mmap_Xabbrev_LDADD = $(LDADD)
+old_mmap_Xabbrev_DEPENDENCIES = libtests.a
+old_mmap_Xraw_SOURCES = old_mmap-Xraw.c
+old_mmap_Xraw_OBJECTS = old_mmap-Xraw.$(OBJEXT)
+old_mmap_Xraw_LDADD = $(LDADD)
+old_mmap_Xraw_DEPENDENCIES = libtests.a
+old_mmap_Xverbose_SOURCES = old_mmap-Xverbose.c
+old_mmap_Xverbose_OBJECTS = old_mmap-Xverbose.$(OBJEXT)
+old_mmap_Xverbose_LDADD = $(LDADD)
+old_mmap_Xverbose_DEPENDENCIES = libtests.a
old_mmap_v_none_SOURCES = old_mmap-v-none.c
old_mmap_v_none_OBJECTS = old_mmap-v-none.$(OBJEXT)
old_mmap_v_none_LDADD = $(LDADD)
@@ -1526,6 +1736,18 @@
personality_OBJECTS = personality.$(OBJEXT)
personality_LDADD = $(LDADD)
personality_DEPENDENCIES = libtests.a
+personality_Xabbrev_SOURCES = personality-Xabbrev.c
+personality_Xabbrev_OBJECTS = personality-Xabbrev.$(OBJEXT)
+personality_Xabbrev_LDADD = $(LDADD)
+personality_Xabbrev_DEPENDENCIES = libtests.a
+personality_Xraw_SOURCES = personality-Xraw.c
+personality_Xraw_OBJECTS = personality-Xraw.$(OBJEXT)
+personality_Xraw_LDADD = $(LDADD)
+personality_Xraw_DEPENDENCIES = libtests.a
+personality_Xverbose_SOURCES = personality-Xverbose.c
+personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT)
+personality_Xverbose_LDADD = $(LDADD)
+personality_Xverbose_DEPENDENCIES = libtests.a
pipe_SOURCES = pipe.c
pipe_OBJECTS = pipe.$(OBJEXT)
pipe_LDADD = $(LDADD)
@@ -1598,6 +1820,10 @@
prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
prctl_securebits_LDADD = $(LDADD)
prctl_securebits_DEPENDENCIES = libtests.a
+prctl_spec_inject_SOURCES = prctl-spec-inject.c
+prctl_spec_inject_OBJECTS = prctl-spec-inject.$(OBJEXT)
+prctl_spec_inject_LDADD = $(LDADD)
+prctl_spec_inject_DEPENDENCIES = libtests.a
prctl_tid_address_SOURCES = prctl-tid_address.c
prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
prctl_tid_address_LDADD = $(LDADD)
@@ -2088,10 +2314,34 @@
so_peercred_OBJECTS = so_peercred.$(OBJEXT)
so_peercred_LDADD = $(LDADD)
so_peercred_DEPENDENCIES = libtests.a
+so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+so_peercred_Xabbrev_LDADD = $(LDADD)
+so_peercred_Xabbrev_DEPENDENCIES = libtests.a
+so_peercred_Xraw_SOURCES = so_peercred-Xraw.c
+so_peercred_Xraw_OBJECTS = so_peercred-Xraw.$(OBJEXT)
+so_peercred_Xraw_LDADD = $(LDADD)
+so_peercred_Xraw_DEPENDENCIES = libtests.a
+so_peercred_Xverbose_SOURCES = so_peercred-Xverbose.c
+so_peercred_Xverbose_OBJECTS = so_peercred-Xverbose.$(OBJEXT)
+so_peercred_Xverbose_LDADD = $(LDADD)
+so_peercred_Xverbose_DEPENDENCIES = libtests.a
sock_filter_v_SOURCES = sock_filter-v.c
sock_filter_v_OBJECTS = sock_filter-v.$(OBJEXT)
sock_filter_v_LDADD = $(LDADD)
sock_filter_v_DEPENDENCIES = libtests.a
+sock_filter_v_Xabbrev_SOURCES = sock_filter-v-Xabbrev.c
+sock_filter_v_Xabbrev_OBJECTS = sock_filter-v-Xabbrev.$(OBJEXT)
+sock_filter_v_Xabbrev_LDADD = $(LDADD)
+sock_filter_v_Xabbrev_DEPENDENCIES = libtests.a
+sock_filter_v_Xraw_SOURCES = sock_filter-v-Xraw.c
+sock_filter_v_Xraw_OBJECTS = sock_filter-v-Xraw.$(OBJEXT)
+sock_filter_v_Xraw_LDADD = $(LDADD)
+sock_filter_v_Xraw_DEPENDENCIES = libtests.a
+sock_filter_v_Xverbose_SOURCES = sock_filter-v-Xverbose.c
+sock_filter_v_Xverbose_OBJECTS = sock_filter-v-Xverbose.$(OBJEXT)
+sock_filter_v_Xverbose_LDADD = $(LDADD)
+sock_filter_v_Xverbose_DEPENDENCIES = libtests.a
socketcall_SOURCES = socketcall.c
socketcall_OBJECTS = socketcall.$(OBJEXT)
socketcall_LDADD = $(LDADD)
@@ -2402,45 +2652,58 @@
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
- accept4.c access.c acct.c add_key.c adjtimex.c aio.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-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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 \
+ 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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2456,59 +2719,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2526,44 +2794,57 @@
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 \
- 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-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 \
+ 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 \
+ 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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2579,59 +2860,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2879,12 +3165,12 @@
b='$*';; \
esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing aclocal-1.14
+ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing aclocal-1.14
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
-AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoconf
-AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoheader
-AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing automake-1.14
+AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoconf
+AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoheader
+AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing automake-1.14
AWK = gawk
BUILD_EXEEXT =
BUILD_OBJEXT =
@@ -2905,7 +3191,7 @@
CPPFLAGS_FOR_BUILD =
CPP_FOR_BUILD = gcc -E
CYGPATH_W = echo
-DEB_CHANGELOGTIME = Thu, 14 Jun 2018 16:29:09 -0700
+DEB_CHANGELOGTIME = Fri, 15 Jun 2018 17:54:18 +0000
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
@@ -2932,23 +3218,23 @@
LIBS =
LTLIBOBJS =
MAINT = #
-MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing makeinfo
-MANPAGE_DATE = 2018-04-04
+MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing makeinfo
+MANPAGE_DATE = 2018-06-13
MIPS_ABI =
MKDIR_P = /bin/mkdir -p
OBJEXT = o
PACKAGE = strace
PACKAGE_BUGREPORT = [email protected]
PACKAGE_NAME = strace
-PACKAGE_STRING = strace 4.22
+PACKAGE_STRING = strace 4.23
PACKAGE_TARNAME = strace
PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.22
+PACKAGE_VERSION = 4.23
PATH_SEPARATOR = :
PERL = /usr/bin/perl
RANLIB = aarch64-linux-android-ranlib
READELF = aarch64-linux-android-readelf
-RPM_CHANGELOGTIME = Thu Jun 14 2018
+RPM_CHANGELOGTIME = Fri Jun 15 2018
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
@@ -2957,13 +3243,13 @@
STRIP = aarch64-linux-android-strip
VALGRIND = valgrind
VALGRIND_ENABLED = yes
-VERSION = 4.22
+VERSION = 4.23
WARN_CFLAGS = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Winit-self -Wnested-externs -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
WARN_CFLAGS_FOR_BUILD = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
-abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22/tests-m32
-abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22/tests-m32
-abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
-abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
+abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23/tests-m32
+abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23/tests-m32
+abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
+abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
ac_ct_CC =
ac_ct_CC_FOR_BUILD = gcc
am__include = include
@@ -2999,8 +3285,12 @@
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/install-sh
+install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/install-sh
libdir = ${exec_prefix}/lib
+libdw_CFLAGS =
+libdw_CPPFLAGS =
+libdw_LDFLAGS =
+libdw_LIBS =
libexecdir = ${exec_prefix}/libexec
libiberty_CPPFLAGS =
libiberty_LDFLAGS =
@@ -3095,9 +3385,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -3130,6 +3425,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -3192,10 +3490,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -3208,15 +3509,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -3241,11 +3557,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -3292,7 +3617,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -3317,6 +3644,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -3328,6 +3658,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -3444,7 +3777,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
@@ -3515,6 +3854,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -3539,10 +3881,14 @@
# 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 alarm.gen.test \
- bpf.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 \
+ add_key.gen.test adjtimex.gen.test aio.gen.test \
+ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
+ bpf-v.gen.test bpf-obj_get_info_by_fd.gen.test \
+ bpf-obj_get_info_by_fd-v.gen.test \
+ bpf-obj_get_info_by_fd-prog.gen.test \
+ bpf-obj_get_info_by_fd-prog-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 \
@@ -3550,70 +3896,85 @@
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 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 fstat64.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 int_0x80.gen.test \
- ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \
- ioctl_evdev.gen.test ioctl_evdev-v.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 fstat64.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 \
+ int_0x80.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_loop.gen.test \
ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \
- ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test \
- ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test \
- kcmp-y.gen.test kern_features.gen.test \
- kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
- kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test \
+ ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test \
+ ioctl_ptp.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 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 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 \
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 \
- mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test \
- nlattr_br_port_msg.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_brport.gen.test nlattr_ifla_port.gen.test \
- nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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 \
@@ -3625,16 +3986,19 @@
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-v-none.gen.test oldfstat.gen.test \
- oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test \
+ old_mmap-P.gen.test old_mmap-v-none.gen.test \
+ old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test \
+ old_mmap-Xverbose.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 \
osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
perf_event_open_nonverbose.gen.test \
- perf_event_open_unabbrev.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 \
+ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ personality-Xraw.gen.test personality-Xverbose.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 \
printstr.gen.test printpath-umovestr.gen.test \
printpath-umovestr-peekdata.gen.test \
@@ -3675,22 +4039,29 @@
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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test \
- socketcall.gen.test sockopt-sol_netlink.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_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 \
+ 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 socketcall.gen.test \
+ sockopt-sol_netlink.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_x32.gen.test \
+ trace_personality_regex_32.gen.test \
+ trace_personality_regex_64.gen.test \
+ trace_personality_regex_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 utimes.gen.test \
@@ -3700,13 +4071,20 @@
xattr-strings.gen.test xet_robust_list.gen.test \
xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
xettimeofday.gen.test
-LIBUNWIND_TESTS =
-#LIBUNWIND_TESTS = strace-k.test $(am__append_1)
+STACKTRACE_TESTS =
+#STACKTRACE_TESTS = strace-k.test \
+# $(am__append_1)
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -3716,6 +4094,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -3742,6 +4121,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -3790,9 +4170,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -3816,8 +4200,8 @@
# end of MISC_TESTS
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -3838,6 +4222,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -3848,12 +4233,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -3861,6 +4246,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -3878,16 +4265,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
@@ -4001,6 +4395,10 @@
@rm -f aio$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
+aio_pgetevents$(EXEEXT): $(aio_pgetevents_OBJECTS) $(aio_pgetevents_DEPENDENCIES) $(EXTRA_aio_pgetevents_DEPENDENCIES)
+ @rm -f aio_pgetevents$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(aio_pgetevents_OBJECTS) $(aio_pgetevents_LDADD) $(LIBS)
+
alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES)
@rm -f alarm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
@@ -4033,6 +4431,30 @@
@rm -f bpf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
+bpf-obj_get_info_by_fd$(EXEEXT): $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog-v$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-v$(EXEEXT): $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_LDADD) $(LIBS)
+
+bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA_bpf_success_DEPENDENCIES)
+ @rm -f bpf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_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)
+
bpf-v$(EXEEXT): $(bpf_v_OBJECTS) $(bpf_v_DEPENDENCIES) $(EXTRA_bpf_v_DEPENDENCIES)
@rm -f bpf-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_v_OBJECTS) $(bpf_v_LDADD) $(LIBS)
@@ -4201,6 +4623,18 @@
@rm -f fanotify_mark$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
+fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES)
+ @rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+
+fanotify_mark-Xraw$(EXEEXT): $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_DEPENDENCIES) $(EXTRA_fanotify_mark_Xraw_DEPENDENCIES)
+ @rm -f fanotify_mark-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_LDADD) $(LIBS)
+
+fanotify_mark-Xverbose$(EXEEXT): $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_DEPENDENCIES) $(EXTRA_fanotify_mark_Xverbose_DEPENDENCIES)
+ @rm -f fanotify_mark-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_LDADD) $(LIBS)
+
fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES)
@rm -f fchdir$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
@@ -4481,6 +4915,10 @@
@rm -f ioctl_evdev-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_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)
+
ioctl_kvm_run$(EXEEXT): $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_DEPENDENCIES) $(EXTRA_ioctl_kvm_run_DEPENDENCIES)
@rm -f ioctl_kvm_run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_LDADD) $(LIBS)
@@ -4505,6 +4943,18 @@
@rm -f ioctl_nsfs$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
+ioctl_perf$(EXEEXT): $(ioctl_perf_OBJECTS) $(ioctl_perf_DEPENDENCIES) $(EXTRA_ioctl_perf_DEPENDENCIES)
+ @rm -f ioctl_perf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_OBJECTS) $(ioctl_perf_LDADD) $(LIBS)
+
+ioctl_perf-success$(EXEEXT): $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_DEPENDENCIES) $(EXTRA_ioctl_perf_success_DEPENDENCIES)
+ @rm -f ioctl_perf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_LDADD) $(LIBS)
+
+ioctl_ptp$(EXEEXT): $(ioctl_ptp_OBJECTS) $(ioctl_ptp_DEPENDENCIES) $(EXTRA_ioctl_ptp_DEPENDENCIES)
+ @rm -f ioctl_ptp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_ptp_OBJECTS) $(ioctl_ptp_LDADD) $(LIBS)
+
ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES)
@rm -f ioctl_rtc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
@@ -4561,18 +5011,66 @@
@rm -f ipc_msg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
+ipc_msg-Xabbrev$(EXEEXT): $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msg_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msg-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_LDADD) $(LIBS)
+
+ipc_msg-Xraw$(EXEEXT): $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_DEPENDENCIES) $(EXTRA_ipc_msg_Xraw_DEPENDENCIES)
+ @rm -f ipc_msg-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_LDADD) $(LIBS)
+
+ipc_msg-Xverbose$(EXEEXT): $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msg_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msg-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_LDADD) $(LIBS)
+
ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES)
@rm -f ipc_msgbuf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
+ipc_msgbuf-Xabbrev$(EXEEXT): $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_LDADD) $(LIBS)
+
+ipc_msgbuf-Xraw$(EXEEXT): $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xraw_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_LDADD) $(LIBS)
+
+ipc_msgbuf-Xverbose$(EXEEXT): $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_LDADD) $(LIBS)
+
ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES)
@rm -f ipc_sem$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
+ipc_sem-Xabbrev$(EXEEXT): $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_sem_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_sem-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_LDADD) $(LIBS)
+
+ipc_sem-Xraw$(EXEEXT): $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_DEPENDENCIES) $(EXTRA_ipc_sem_Xraw_DEPENDENCIES)
+ @rm -f ipc_sem-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_LDADD) $(LIBS)
+
+ipc_sem-Xverbose$(EXEEXT): $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_DEPENDENCIES) $(EXTRA_ipc_sem_Xverbose_DEPENDENCIES)
+ @rm -f ipc_sem-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_LDADD) $(LIBS)
+
ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES)
@rm -f ipc_shm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
+ipc_shm-Xabbrev$(EXEEXT): $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_shm_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_shm-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_LDADD) $(LIBS)
+
+ipc_shm-Xraw$(EXEEXT): $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_DEPENDENCIES) $(EXTRA_ipc_shm_Xraw_DEPENDENCIES)
+ @rm -f ipc_shm-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_LDADD) $(LIBS)
+
+ipc_shm-Xverbose$(EXEEXT): $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_DEPENDENCIES) $(EXTRA_ipc_shm_Xverbose_DEPENDENCIES)
+ @rm -f ipc_shm-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_LDADD) $(LIBS)
+
is_linux_mips_n64$(EXEEXT): $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_DEPENDENCIES) $(EXTRA_is_linux_mips_n64_DEPENDENCIES)
@rm -f is_linux_mips_n64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_LDADD) $(LIBS)
@@ -4601,6 +5099,18 @@
@rm -f keyctl$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
+keyctl-Xabbrev$(EXEEXT): $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_DEPENDENCIES) $(EXTRA_keyctl_Xabbrev_DEPENDENCIES)
+ @rm -f keyctl-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_LDADD) $(LIBS)
+
+keyctl-Xraw$(EXEEXT): $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_DEPENDENCIES) $(EXTRA_keyctl_Xraw_DEPENDENCIES)
+ @rm -f keyctl-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_LDADD) $(LIBS)
+
+keyctl-Xverbose$(EXEEXT): $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_DEPENDENCIES) $(EXTRA_keyctl_Xverbose_DEPENDENCIES)
+ @rm -f keyctl-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_LDADD) $(LIBS)
+
kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES)
@rm -f kill$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
@@ -4709,10 +5219,34 @@
@rm -f mmap$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
+mmap-Xabbrev$(EXEEXT): $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_DEPENDENCIES) $(EXTRA_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_LDADD) $(LIBS)
+
+mmap-Xraw$(EXEEXT): $(mmap_Xraw_OBJECTS) $(mmap_Xraw_DEPENDENCIES) $(EXTRA_mmap_Xraw_DEPENDENCIES)
+ @rm -f mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xraw_OBJECTS) $(mmap_Xraw_LDADD) $(LIBS)
+
+mmap-Xverbose$(EXEEXT): $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_DEPENDENCIES) $(EXTRA_mmap_Xverbose_DEPENDENCIES)
+ @rm -f mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_LDADD) $(LIBS)
+
mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES)
@rm -f mmap64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
+mmap64-Xabbrev$(EXEEXT): $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_DEPENDENCIES) $(EXTRA_mmap64_Xabbrev_DEPENDENCIES)
+ @rm -f mmap64-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_LDADD) $(LIBS)
+
+mmap64-Xraw$(EXEEXT): $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_DEPENDENCIES) $(EXTRA_mmap64_Xraw_DEPENDENCIES)
+ @rm -f mmap64-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_LDADD) $(LIBS)
+
+mmap64-Xverbose$(EXEEXT): $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_DEPENDENCIES) $(EXTRA_mmap64_Xverbose_DEPENDENCIES)
+ @rm -f mmap64-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_LDADD) $(LIBS)
+
mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES)
@rm -f mmsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
@@ -4737,6 +5271,18 @@
@rm -f mount$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
+mount-Xabbrev$(EXEEXT): $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_DEPENDENCIES) $(EXTRA_mount_Xabbrev_DEPENDENCIES)
+ @rm -f mount-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_LDADD) $(LIBS)
+
+mount-Xraw$(EXEEXT): $(mount_Xraw_OBJECTS) $(mount_Xraw_DEPENDENCIES) $(EXTRA_mount_Xraw_DEPENDENCIES)
+ @rm -f mount-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xraw_OBJECTS) $(mount_Xraw_LDADD) $(LIBS)
+
+mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES) $(EXTRA_mount_Xverbose_DEPENDENCIES)
+ @rm -f mount-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_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)
@@ -4941,10 +5487,18 @@
@rm -f nlattr_ifinfomsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifinfomsg_OBJECTS) $(nlattr_ifinfomsg_LDADD) $(LIBS)
+nlattr_ifla_af_spec$(EXEEXT): $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_DEPENDENCIES) $(EXTRA_nlattr_ifla_af_spec_DEPENDENCIES)
+ @rm -f nlattr_ifla_af_spec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_LDADD) $(LIBS)
+
nlattr_ifla_brport$(EXEEXT): $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_DEPENDENCIES) $(EXTRA_nlattr_ifla_brport_DEPENDENCIES)
@rm -f nlattr_ifla_brport$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_LDADD) $(LIBS)
+nlattr_ifla_linkinfo$(EXEEXT): $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_DEPENDENCIES) $(EXTRA_nlattr_ifla_linkinfo_DEPENDENCIES)
+ @rm -f nlattr_ifla_linkinfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_LDADD) $(LIBS)
+
nlattr_ifla_port$(EXEEXT): $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_DEPENDENCIES) $(EXTRA_nlattr_ifla_port_DEPENDENCIES)
@rm -f nlattr_ifla_port$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_LDADD) $(LIBS)
@@ -5045,6 +5599,18 @@
@rm -f old_mmap-P$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_P_OBJECTS) $(old_mmap_P_LDADD) $(LIBS)
+old_mmap-Xabbrev$(EXEEXT): $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_DEPENDENCIES) $(EXTRA_old_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f old_mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_LDADD) $(LIBS)
+
+old_mmap-Xraw$(EXEEXT): $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_DEPENDENCIES) $(EXTRA_old_mmap_Xraw_DEPENDENCIES)
+ @rm -f old_mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_LDADD) $(LIBS)
+
+old_mmap-Xverbose$(EXEEXT): $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_DEPENDENCIES) $(EXTRA_old_mmap_Xverbose_DEPENDENCIES)
+ @rm -f old_mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_LDADD) $(LIBS)
+
old_mmap-v-none$(EXEEXT): $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_DEPENDENCIES) $(EXTRA_old_mmap_v_none_DEPENDENCIES)
@rm -f old_mmap-v-none$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_LDADD) $(LIBS)
@@ -5113,6 +5679,18 @@
@rm -f personality$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
+personality-Xabbrev$(EXEEXT): $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_DEPENDENCIES) $(EXTRA_personality_Xabbrev_DEPENDENCIES)
+ @rm -f personality-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_LDADD) $(LIBS)
+
+personality-Xraw$(EXEEXT): $(personality_Xraw_OBJECTS) $(personality_Xraw_DEPENDENCIES) $(EXTRA_personality_Xraw_DEPENDENCIES)
+ @rm -f personality-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xraw_OBJECTS) $(personality_Xraw_LDADD) $(LIBS)
+
+personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xverbose_DEPENDENCIES) $(EXTRA_personality_Xverbose_DEPENDENCIES)
+ @rm -f personality-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS)
+
pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES)
@rm -f pipe$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
@@ -5185,6 +5763,10 @@
@rm -f prctl-securebits$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
+prctl-spec-inject$(EXEEXT): $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_DEPENDENCIES) $(EXTRA_prctl_spec_inject_DEPENDENCIES)
+ @rm -f prctl-spec-inject$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_LDADD) $(LIBS)
+
prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES)
@rm -f prctl-tid_address$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
@@ -5669,10 +6251,34 @@
@rm -f so_peercred$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_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)
+
+so_peercred-Xraw$(EXEEXT): $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_DEPENDENCIES) $(EXTRA_so_peercred_Xraw_DEPENDENCIES)
+ @rm -f so_peercred-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_LDADD) $(LIBS)
+
+so_peercred-Xverbose$(EXEEXT): $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_DEPENDENCIES) $(EXTRA_so_peercred_Xverbose_DEPENDENCIES)
+ @rm -f so_peercred-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_LDADD) $(LIBS)
+
sock_filter-v$(EXEEXT): $(sock_filter_v_OBJECTS) $(sock_filter_v_DEPENDENCIES) $(EXTRA_sock_filter_v_DEPENDENCIES)
@rm -f sock_filter-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(sock_filter_v_OBJECTS) $(sock_filter_v_LDADD) $(LIBS)
+sock_filter-v-Xabbrev$(EXEEXT): $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_DEPENDENCIES) $(EXTRA_sock_filter_v_Xabbrev_DEPENDENCIES)
+ @rm -f sock_filter-v-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_LDADD) $(LIBS)
+
+sock_filter-v-Xraw$(EXEEXT): $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_DEPENDENCIES) $(EXTRA_sock_filter_v_Xraw_DEPENDENCIES)
+ @rm -f sock_filter-v-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_LDADD) $(LIBS)
+
+sock_filter-v-Xverbose$(EXEEXT): $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_DEPENDENCIES) $(EXTRA_sock_filter_v_Xverbose_DEPENDENCIES)
+ @rm -f sock_filter-v-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_LDADD) $(LIBS)
+
socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES)
@rm -f socketcall$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
@@ -5960,6 +6566,7 @@
include ./$(DEPDIR)/add_key.Po
include ./$(DEPDIR)/adjtimex.Po
include ./$(DEPDIR)/aio.Po
+include ./$(DEPDIR)/aio_pgetevents.Po
include ./$(DEPDIR)/alarm.Po
include ./$(DEPDIR)/answer.Po
include ./$(DEPDIR)/attach-f-p-cmd.Po
@@ -5967,6 +6574,12 @@
include ./$(DEPDIR)/attach-p-cmd-cmd.Po
include ./$(DEPDIR)/attach-p-cmd-p.Po
include ./$(DEPDIR)/block_reset_raise_run.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po
+include ./$(DEPDIR)/bpf-success-v.Po
+include ./$(DEPDIR)/bpf-success.Po
include ./$(DEPDIR)/bpf-v.Po
include ./$(DEPDIR)/bpf.Po
include ./$(DEPDIR)/brk.Po
@@ -6009,6 +6622,9 @@
include ./$(DEPDIR)/fadvise64_64.Po
include ./$(DEPDIR)/fallocate.Po
include ./$(DEPDIR)/fanotify_init.Po
+include ./$(DEPDIR)/fanotify_mark-Xabbrev.Po
+include ./$(DEPDIR)/fanotify_mark-Xraw.Po
+include ./$(DEPDIR)/fanotify_mark-Xverbose.Po
include ./$(DEPDIR)/fanotify_mark.Po
include ./$(DEPDIR)/fchdir.Po
include ./$(DEPDIR)/fchmod.Po
@@ -6080,12 +6696,16 @@
include ./$(DEPDIR)/ioctl_dm.Po
include ./$(DEPDIR)/ioctl_evdev-v.Po
include ./$(DEPDIR)/ioctl_evdev.Po
+include ./$(DEPDIR)/ioctl_inotify.Po
include ./$(DEPDIR)/ioctl_kvm_run.Po
include ./$(DEPDIR)/ioctl_loop-nv.Po
include ./$(DEPDIR)/ioctl_loop-v.Po
include ./$(DEPDIR)/ioctl_loop.Po
include ./$(DEPDIR)/ioctl_mtd.Po
include ./$(DEPDIR)/ioctl_nsfs.Po
+include ./$(DEPDIR)/ioctl_perf-success.Po
+include ./$(DEPDIR)/ioctl_perf.Po
+include ./$(DEPDIR)/ioctl_ptp.Po
include ./$(DEPDIR)/ioctl_rtc-v.Po
include ./$(DEPDIR)/ioctl_rtc.Po
include ./$(DEPDIR)/ioctl_scsi.Po
@@ -6099,9 +6719,21 @@
include ./$(DEPDIR)/ioprio.Po
include ./$(DEPDIR)/ip_mreq.Po
include ./$(DEPDIR)/ipc.Po
+include ./$(DEPDIR)/ipc_msg-Xabbrev.Po
+include ./$(DEPDIR)/ipc_msg-Xraw.Po
+include ./$(DEPDIR)/ipc_msg-Xverbose.Po
include ./$(DEPDIR)/ipc_msg.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xraw.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xverbose.Po
include ./$(DEPDIR)/ipc_msgbuf.Po
+include ./$(DEPDIR)/ipc_sem-Xabbrev.Po
+include ./$(DEPDIR)/ipc_sem-Xraw.Po
+include ./$(DEPDIR)/ipc_sem-Xverbose.Po
include ./$(DEPDIR)/ipc_sem.Po
+include ./$(DEPDIR)/ipc_shm-Xabbrev.Po
+include ./$(DEPDIR)/ipc_shm-Xraw.Po
+include ./$(DEPDIR)/ipc_shm-Xverbose.Po
include ./$(DEPDIR)/ipc_shm.Po
include ./$(DEPDIR)/is_linux_mips_n64.Po
include ./$(DEPDIR)/kcmp-y.Po
@@ -6109,6 +6741,9 @@
include ./$(DEPDIR)/kern_features.Po
include ./$(DEPDIR)/kexec_file_load.Po
include ./$(DEPDIR)/kexec_load.Po
+include ./$(DEPDIR)/keyctl-Xabbrev.Po
+include ./$(DEPDIR)/keyctl-Xraw.Po
+include ./$(DEPDIR)/keyctl-Xverbose.Po
include ./$(DEPDIR)/keyctl.Po
include ./$(DEPDIR)/kill.Po
include ./$(DEPDIR)/ksysent.Po
@@ -6162,13 +6797,22 @@
include ./$(DEPDIR)/mlock.Po
include ./$(DEPDIR)/mlock2.Po
include ./$(DEPDIR)/mlockall.Po
+include ./$(DEPDIR)/mmap-Xabbrev.Po
+include ./$(DEPDIR)/mmap-Xraw.Po
+include ./$(DEPDIR)/mmap-Xverbose.Po
include ./$(DEPDIR)/mmap.Po
include ./$(DEPDIR)/mmap64-mmap64.Po
+include ./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+include ./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+include ./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
include ./$(DEPDIR)/mmsg-silent.Po
include ./$(DEPDIR)/mmsg.Po
include ./$(DEPDIR)/mmsg_name-v.Po
include ./$(DEPDIR)/mmsg_name.Po
include ./$(DEPDIR)/modify_ldt.Po
+include ./$(DEPDIR)/mount-Xabbrev.Po
+include ./$(DEPDIR)/mount-Xraw.Po
+include ./$(DEPDIR)/mount-Xverbose.Po
include ./$(DEPDIR)/mount.Po
include ./$(DEPDIR)/move_pages.Po
include ./$(DEPDIR)/mq.Po
@@ -6221,7 +6865,9 @@
include ./$(DEPDIR)/nlattr_ifaddrlblmsg.Po
include ./$(DEPDIR)/nlattr_ifaddrmsg.Po
include ./$(DEPDIR)/nlattr_ifinfomsg.Po
+include ./$(DEPDIR)/nlattr_ifla_af_spec.Po
include ./$(DEPDIR)/nlattr_ifla_brport.Po
+include ./$(DEPDIR)/nlattr_ifla_linkinfo.Po
include ./$(DEPDIR)/nlattr_ifla_port.Po
include ./$(DEPDIR)/nlattr_ifla_xdp.Po
include ./$(DEPDIR)/nlattr_inet_diag_msg.Po
@@ -6246,6 +6892,9 @@
include ./$(DEPDIR)/nsyscalls-d.Po
include ./$(DEPDIR)/nsyscalls.Po
include ./$(DEPDIR)/old_mmap-P.Po
+include ./$(DEPDIR)/old_mmap-Xabbrev.Po
+include ./$(DEPDIR)/old_mmap-Xraw.Po
+include ./$(DEPDIR)/old_mmap-Xverbose.Po
include ./$(DEPDIR)/old_mmap-v-none.Po
include ./$(DEPDIR)/old_mmap.Po
include ./$(DEPDIR)/oldfstat.Po
@@ -6263,6 +6912,9 @@
include ./$(DEPDIR)/perf_event_open.Po
include ./$(DEPDIR)/perf_event_open_nonverbose.Po
include ./$(DEPDIR)/perf_event_open_unabbrev.Po
+include ./$(DEPDIR)/personality-Xabbrev.Po
+include ./$(DEPDIR)/personality-Xraw.Po
+include ./$(DEPDIR)/personality-Xverbose.Po
include ./$(DEPDIR)/personality.Po
include ./$(DEPDIR)/pipe.Po
include ./$(DEPDIR)/pipe2.Po
@@ -6282,6 +6934,7 @@
include ./$(DEPDIR)/prctl-seccomp-filter-v.Po
include ./$(DEPDIR)/prctl-seccomp-strict.Po
include ./$(DEPDIR)/prctl-securebits.Po
+include ./$(DEPDIR)/prctl-spec-inject.Po
include ./$(DEPDIR)/prctl-tid_address.Po
include ./$(DEPDIR)/prctl-tsc.Po
include ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
@@ -6402,7 +7055,13 @@
include ./$(DEPDIR)/sigsuspend.Po
include ./$(DEPDIR)/sleep.Po
include ./$(DEPDIR)/so_linger.Po
+include ./$(DEPDIR)/so_peercred-Xabbrev.Po
+include ./$(DEPDIR)/so_peercred-Xraw.Po
+include ./$(DEPDIR)/so_peercred-Xverbose.Po
include ./$(DEPDIR)/so_peercred.Po
+include ./$(DEPDIR)/sock_filter-v-Xabbrev.Po
+include ./$(DEPDIR)/sock_filter-v-Xraw.Po
+include ./$(DEPDIR)/sock_filter-v-Xverbose.Po
include ./$(DEPDIR)/sock_filter-v.Po
include ./$(DEPDIR)/socketcall.Po
include ./$(DEPDIR)/sockopt-sol_netlink.Po
@@ -6929,6 +7588,48 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
+mmap64_Xabbrev-mmap64-Xabbrev.o: mmap64-Xabbrev.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.o -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+# $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-Xabbrev.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+
+mmap64_Xabbrev-mmap64-Xabbrev.obj: mmap64-Xabbrev.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.obj -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+# $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-Xabbrev.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+
+mmap64_Xraw-mmap64-Xraw.o: mmap64-Xraw.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.o -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+# $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-Xraw.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+
+mmap64_Xraw-mmap64-Xraw.obj: mmap64-Xraw.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.obj -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+# $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-Xraw.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+
+mmap64_Xverbose-mmap64-Xverbose.o: mmap64-Xverbose.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.o -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+# $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-Xverbose.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+
+mmap64_Xverbose-mmap64-Xverbose.obj: mmap64-Xverbose.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.obj -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+# $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-Xverbose.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+
newfstatat-newfstatat.o: newfstatat.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
@@ -7480,6 +8181,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7489,6 +8193,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7576,6 +8292,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7768,6 +8493,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7786,6 +8514,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7828,12 +8562,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7852,6 +8622,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7915,9 +8694,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7936,6 +8733,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -8062,9 +8868,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8137,6 +8949,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8179,6 +9000,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -8509,9 +9339,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8593,6 +9441,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
diff --git a/tests-m32/Makefile.am b/tests-m32/Makefile.am
index 0b24c36..534659b 100644
--- a/tests-m32/Makefile.am
+++ b/tests-m32/Makefile.am
@@ -93,6 +93,12 @@
attach-p-cmd-cmd \
attach-p-cmd-p \
block_reset_raise_run \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
+ bpf-success \
+ bpf-success-v \
caps-abbrev \
check_sigblock \
check_sigign \
@@ -115,6 +121,7 @@
ioctl_loop-nv \
ioctl_loop-v \
ioctl_nsfs \
+ ioctl_perf-success \
ioctl_rtc-v \
is_linux_mips_n64 \
ksysent \
@@ -137,6 +144,7 @@
ppoll-v \
prctl-seccomp-filter-v \
prctl-seccomp-strict \
+ prctl-spec-inject \
print_maxfd \
qual_fault \
qual_inject-error-signal \
@@ -179,6 +187,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -202,20 +213,26 @@
include gen_tests.am
-if USE_LIBUNWIND
-LIBUNWIND_TESTS = strace-k.test
+if ENABLE_STACKTRACE
+STACKTRACE_TESTS = strace-k.test
if USE_DEMANGLE
-LIBUNWIND_TESTS += strace-k-demangle.test
+STACKTRACE_TESTS += strace-k-demangle.test
endif
else
-LIBUNWIND_TESTS =
+STACKTRACE_TESTS =
endif
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -225,6 +242,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -251,6 +269,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -299,9 +318,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -324,11 +347,11 @@
threads-execve.test \
# end of MISC_TESTS
-TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
+TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(STACKTRACE_TESTS)
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -352,6 +375,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -362,12 +386,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -375,6 +399,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -392,16 +418,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
diff --git a/tests-m32/Makefile.in b/tests-m32/Makefile.in
index efe84dd..55e41d6 100644
--- a/tests-m32/Makefile.in
+++ b/tests-m32/Makefile.in
@@ -139,7 +139,11 @@
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) caps-abbrev$(EXEEXT) \
+ block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
@@ -147,7 +151,8 @@
getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \
inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
- ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \
+ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
is_linux_mips_n64$(EXEEXT) ksysent$(EXEEXT) \
list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
@@ -159,21 +164,22 @@
perf_event_open_nonverbose$(EXEEXT) \
perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
- print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
- qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
- qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
- quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
- redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
- run_expect_termsig$(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) \
+ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
+ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
+ qual_signal$(EXEEXT) quotactl-v$(EXEEXT) \
+ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
+ restart_syscall$(EXEEXT) run_expect_termsig$(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) \
unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@am__append_1 = strace-k-demangle.test
+@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
@@ -181,7 +187,10 @@
$(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -223,18 +232,25 @@
libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
- adjtimex$(EXEEXT) aio$(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) copy_file_range$(EXEEXT) creat$(EXEEXT) \
- delete_module$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \
- dup2$(EXEEXT) dup3$(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) fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
- fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
+ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \
+ alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
+ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \
+ dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(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) \
+ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
+ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \
+ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \
+ fanotify_mark-Xverbose$(EXEEXT) fchdir$(EXEEXT) \
fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \
@@ -255,49 +271,62 @@
getxxid$(EXEEXT) group_req$(EXEEXT) inet-cmsg$(EXEEXT) \
init_module$(EXEEXT) inotify$(EXEEXT) inotify_init1$(EXEEXT) \
ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \
- ioctl_evdev$(EXEEXT) ioctl_kvm_run$(EXEEXT) \
- ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) \
+ ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \
+ ioctl_kvm_run$(EXEEXT) ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) \
+ ioctl_rtc$(EXEEXT) ioctl_perf$(EXEEXT) ioctl_ptp$(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) ip_mreq$(EXEEXT) ipc$(EXEEXT) \
- ipc_msg$(EXEEXT) ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) \
- ipc_shm$(EXEEXT) kcmp$(EXEEXT) kcmp-y$(EXEEXT) \
- kern_features$(EXEEXT) kexec_file_load$(EXEEXT) \
- kexec_load$(EXEEXT) keyctl$(EXEEXT) kill$(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) \
- memfd_create$(EXEEXT) migrate_pages$(EXEEXT) mincore$(EXEEXT) \
- mkdir$(EXEEXT) mkdirat$(EXEEXT) mknod$(EXEEXT) \
- mknodat$(EXEEXT) mlock$(EXEEXT) mlock2$(EXEEXT) \
- mlockall$(EXEEXT) mmap$(EXEEXT) mmap64$(EXEEXT) mmsg$(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) \
+ ipc_sem$(EXEEXT) ipc_sem-Xabbrev$(EXEEXT) \
+ ipc_sem-Xraw$(EXEEXT) ipc_sem-Xverbose$(EXEEXT) \
+ ipc_shm$(EXEEXT) ipc_shm-Xabbrev$(EXEEXT) \
+ ipc_shm-Xraw$(EXEEXT) ipc_shm-Xverbose$(EXEEXT) kcmp$(EXEEXT) \
+ kcmp-y$(EXEEXT) kern_features$(EXEEXT) \
+ kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) keyctl$(EXEEXT) \
+ keyctl-Xabbrev$(EXEEXT) keyctl-Xraw$(EXEEXT) \
+ keyctl-Xverbose$(EXEEXT) kill$(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) memfd_create$(EXEEXT) \
+ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
+ mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
+ mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
+ mmap-Xabbrev$(EXEEXT) mmap-Xraw$(EXEEXT) \
+ mmap-Xverbose$(EXEEXT) mmap64$(EXEEXT) mmap64-Xabbrev$(EXEEXT) \
+ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \
mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \
- move_pages$(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-sockaddr$(EXEEXT) net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
- net-yy-inet6$(EXEEXT) net-yy-netlink$(EXEEXT) \
- net-yy-unix$(EXEEXT) netlink_audit$(EXEEXT) \
- netlink_crypto$(EXEEXT) netlink_generic$(EXEEXT) \
- netlink_kobject_uevent$(EXEEXT) netlink_netfilter$(EXEEXT) \
- netlink_protocol$(EXEEXT) netlink_route$(EXEEXT) \
- netlink_selinux$(EXEEXT) netlink_sock_diag$(EXEEXT) \
- netlink_xfrm$(EXEEXT) newfstatat$(EXEEXT) \
- nfnetlink_acct$(EXEEXT) nfnetlink_cthelper$(EXEEXT) \
- nfnetlink_ctnetlink$(EXEEXT) nfnetlink_ctnetlink_exp$(EXEEXT) \
- nfnetlink_cttimeout$(EXEEXT) nfnetlink_nft_compat$(EXEEXT) \
- nfnetlink_nftables$(EXEEXT) nfnetlink_ipset$(EXEEXT) \
- nfnetlink_osf$(EXEEXT) nfnetlink_queue$(EXEEXT) \
- nfnetlink_ulog$(EXEEXT) nlattr$(EXEEXT) \
- nlattr_crypto_user_alg$(EXEEXT) nlattr_br_port_msg$(EXEEXT) \
- nlattr_dcbmsg$(EXEEXT) nlattr_fib_rule_hdr$(EXEEXT) \
- nlattr_ifaddrlblmsg$(EXEEXT) nlattr_ifaddrmsg$(EXEEXT) \
- nlattr_ifinfomsg$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
- nlattr_ifla_port$(EXEEXT) nlattr_ifla_xdp$(EXEEXT) \
- nlattr_inet_diag_msg$(EXEEXT) \
+ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \
+ mount-Xverbose$(EXEEXT) move_pages$(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-sockaddr$(EXEEXT) \
+ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \
+ net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
+ netlink_audit$(EXEEXT) netlink_crypto$(EXEEXT) \
+ netlink_generic$(EXEEXT) netlink_kobject_uevent$(EXEEXT) \
+ netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+ netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+ netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+ newfstatat$(EXEEXT) nfnetlink_acct$(EXEEXT) \
+ nfnetlink_cthelper$(EXEEXT) nfnetlink_ctnetlink$(EXEEXT) \
+ nfnetlink_ctnetlink_exp$(EXEEXT) nfnetlink_cttimeout$(EXEEXT) \
+ nfnetlink_nft_compat$(EXEEXT) nfnetlink_nftables$(EXEEXT) \
+ nfnetlink_ipset$(EXEEXT) nfnetlink_osf$(EXEEXT) \
+ nfnetlink_queue$(EXEEXT) nfnetlink_ulog$(EXEEXT) \
+ nlattr$(EXEEXT) nlattr_crypto_user_alg$(EXEEXT) \
+ nlattr_br_port_msg$(EXEEXT) nlattr_dcbmsg$(EXEEXT) \
+ nlattr_fib_rule_hdr$(EXEEXT) nlattr_ifaddrlblmsg$(EXEEXT) \
+ nlattr_ifaddrmsg$(EXEEXT) nlattr_ifinfomsg$(EXEEXT) \
+ nlattr_ifla_af_spec$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
+ nlattr_ifla_linkinfo$(EXEEXT) nlattr_ifla_port$(EXEEXT) \
+ nlattr_ifla_xdp$(EXEEXT) nlattr_inet_diag_msg$(EXEEXT) \
nlattr_inet_diag_req_compat$(EXEEXT) \
nlattr_inet_diag_req_v2$(EXEEXT) \
nlattr_mdba_mdb_entry$(EXEEXT) \
@@ -309,11 +338,14 @@
nlattr_tc_stats$(EXEEXT) nlattr_tca_stab$(EXEEXT) \
nlattr_tcamsg$(EXEEXT) nlattr_tcmsg$(EXEEXT) \
nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
- old_mmap-P$(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) pipe$(EXEEXT) pipe2$(EXEEXT) \
+ old_mmap-P$(EXEEXT) old_mmap-v-none$(EXEEXT) \
+ old_mmap-Xabbrev$(EXEEXT) old_mmap-Xraw$(EXEEXT) \
+ old_mmap-Xverbose$(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) 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) \
@@ -361,7 +393,10 @@
sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
sigreturn$(EXEEXT) sigsuspend$(EXEEXT) so_linger$(EXEEXT) \
- so_peercred$(EXEEXT) sock_filter-v$(EXEEXT) \
+ so_peercred$(EXEEXT) so_peercred-Xabbrev$(EXEEXT) \
+ so_peercred-Xraw$(EXEEXT) so_peercred-Xverbose$(EXEEXT) \
+ sock_filter-v$(EXEEXT) sock_filter-v-Xabbrev$(EXEEXT) \
+ sock_filter-v-Xraw$(EXEEXT) sock_filter-v-Xverbose$(EXEEXT) \
socketcall$(EXEEXT) sockopt-sol_netlink$(EXEEXT) \
splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
@@ -418,6 +453,10 @@
aio_OBJECTS = aio.$(OBJEXT)
aio_LDADD = $(LDADD)
aio_DEPENDENCIES = libtests.a
+aio_pgetevents_SOURCES = aio_pgetevents.c
+aio_pgetevents_OBJECTS = aio_pgetevents.$(OBJEXT)
+aio_pgetevents_LDADD = $(LDADD)
+aio_pgetevents_DEPENDENCIES = libtests.a
alarm_SOURCES = alarm.c
alarm_OBJECTS = alarm.$(OBJEXT)
alarm_LDADD = $(LDADD)
@@ -449,6 +488,33 @@
bpf_OBJECTS = bpf.$(OBJEXT)
bpf_LDADD = $(LDADD)
bpf_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_SOURCES = bpf-obj_get_info_by_fd.c
+bpf_obj_get_info_by_fd_OBJECTS = bpf-obj_get_info_by_fd.$(OBJEXT)
+bpf_obj_get_info_by_fd_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_SOURCES = bpf-obj_get_info_by_fd-prog.c
+bpf_obj_get_info_by_fd_prog_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_v_SOURCES = \
+ bpf-obj_get_info_by_fd-prog-v.c
+bpf_obj_get_info_by_fd_prog_v_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_v_SOURCES = bpf-obj_get_info_by_fd-v.c
+bpf_obj_get_info_by_fd_v_OBJECTS = bpf-obj_get_info_by_fd-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_v_DEPENDENCIES = libtests.a
+bpf_success_SOURCES = bpf-success.c
+bpf_success_OBJECTS = bpf-success.$(OBJEXT)
+bpf_success_LDADD = $(LDADD)
+bpf_success_DEPENDENCIES = libtests.a
+bpf_success_v_SOURCES = bpf-success-v.c
+bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT)
+bpf_success_v_LDADD = $(LDADD)
+bpf_success_v_DEPENDENCIES = libtests.a
bpf_v_SOURCES = bpf-v.c
bpf_v_OBJECTS = bpf-v.$(OBJEXT)
bpf_v_LDADD = $(LDADD)
@@ -616,6 +682,18 @@
fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
fanotify_mark_LDADD = $(LDADD)
fanotify_mark_DEPENDENCIES = libtests.a
+fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+fanotify_mark_Xabbrev_LDADD = $(LDADD)
+fanotify_mark_Xabbrev_DEPENDENCIES = libtests.a
+fanotify_mark_Xraw_SOURCES = fanotify_mark-Xraw.c
+fanotify_mark_Xraw_OBJECTS = fanotify_mark-Xraw.$(OBJEXT)
+fanotify_mark_Xraw_LDADD = $(LDADD)
+fanotify_mark_Xraw_DEPENDENCIES = libtests.a
+fanotify_mark_Xverbose_SOURCES = fanotify_mark-Xverbose.c
+fanotify_mark_Xverbose_OBJECTS = fanotify_mark-Xverbose.$(OBJEXT)
+fanotify_mark_Xverbose_LDADD = $(LDADD)
+fanotify_mark_Xverbose_DEPENDENCIES = libtests.a
fchdir_SOURCES = fchdir.c
fchdir_OBJECTS = fchdir.$(OBJEXT)
fchdir_LDADD = $(LDADD)
@@ -895,6 +973,10 @@
ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
ioctl_evdev_v_LDADD = $(LDADD)
ioctl_evdev_v_DEPENDENCIES = libtests.a
+ioctl_inotify_SOURCES = ioctl_inotify.c
+ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT)
+ioctl_inotify_LDADD = $(LDADD)
+ioctl_inotify_DEPENDENCIES = libtests.a
ioctl_kvm_run_SOURCES = ioctl_kvm_run.c
ioctl_kvm_run_OBJECTS = ioctl_kvm_run.$(OBJEXT)
ioctl_kvm_run_LDADD = $(LDADD)
@@ -919,6 +1001,18 @@
ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
ioctl_nsfs_LDADD = $(LDADD)
ioctl_nsfs_DEPENDENCIES = libtests.a
+ioctl_perf_SOURCES = ioctl_perf.c
+ioctl_perf_OBJECTS = ioctl_perf.$(OBJEXT)
+ioctl_perf_LDADD = $(LDADD)
+ioctl_perf_DEPENDENCIES = libtests.a
+ioctl_perf_success_SOURCES = ioctl_perf-success.c
+ioctl_perf_success_OBJECTS = ioctl_perf-success.$(OBJEXT)
+ioctl_perf_success_LDADD = $(LDADD)
+ioctl_perf_success_DEPENDENCIES = libtests.a
+ioctl_ptp_SOURCES = ioctl_ptp.c
+ioctl_ptp_OBJECTS = ioctl_ptp.$(OBJEXT)
+ioctl_ptp_LDADD = $(LDADD)
+ioctl_ptp_DEPENDENCIES = libtests.a
ioctl_rtc_SOURCES = ioctl_rtc.c
ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
ioctl_rtc_LDADD = $(LDADD)
@@ -975,18 +1069,66 @@
ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
ipc_msg_LDADD = $(LDADD)
ipc_msg_DEPENDENCIES = libtests.a
+ipc_msg_Xabbrev_SOURCES = ipc_msg-Xabbrev.c
+ipc_msg_Xabbrev_OBJECTS = ipc_msg-Xabbrev.$(OBJEXT)
+ipc_msg_Xabbrev_LDADD = $(LDADD)
+ipc_msg_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msg_Xraw_SOURCES = ipc_msg-Xraw.c
+ipc_msg_Xraw_OBJECTS = ipc_msg-Xraw.$(OBJEXT)
+ipc_msg_Xraw_LDADD = $(LDADD)
+ipc_msg_Xraw_DEPENDENCIES = libtests.a
+ipc_msg_Xverbose_SOURCES = ipc_msg-Xverbose.c
+ipc_msg_Xverbose_OBJECTS = ipc_msg-Xverbose.$(OBJEXT)
+ipc_msg_Xverbose_LDADD = $(LDADD)
+ipc_msg_Xverbose_DEPENDENCIES = libtests.a
ipc_msgbuf_SOURCES = ipc_msgbuf.c
ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
ipc_msgbuf_LDADD = $(LDADD)
ipc_msgbuf_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xabbrev_SOURCES = ipc_msgbuf-Xabbrev.c
+ipc_msgbuf_Xabbrev_OBJECTS = ipc_msgbuf-Xabbrev.$(OBJEXT)
+ipc_msgbuf_Xabbrev_LDADD = $(LDADD)
+ipc_msgbuf_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xraw_SOURCES = ipc_msgbuf-Xraw.c
+ipc_msgbuf_Xraw_OBJECTS = ipc_msgbuf-Xraw.$(OBJEXT)
+ipc_msgbuf_Xraw_LDADD = $(LDADD)
+ipc_msgbuf_Xraw_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xverbose_SOURCES = ipc_msgbuf-Xverbose.c
+ipc_msgbuf_Xverbose_OBJECTS = ipc_msgbuf-Xverbose.$(OBJEXT)
+ipc_msgbuf_Xverbose_LDADD = $(LDADD)
+ipc_msgbuf_Xverbose_DEPENDENCIES = libtests.a
ipc_sem_SOURCES = ipc_sem.c
ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
ipc_sem_LDADD = $(LDADD)
ipc_sem_DEPENDENCIES = libtests.a
+ipc_sem_Xabbrev_SOURCES = ipc_sem-Xabbrev.c
+ipc_sem_Xabbrev_OBJECTS = ipc_sem-Xabbrev.$(OBJEXT)
+ipc_sem_Xabbrev_LDADD = $(LDADD)
+ipc_sem_Xabbrev_DEPENDENCIES = libtests.a
+ipc_sem_Xraw_SOURCES = ipc_sem-Xraw.c
+ipc_sem_Xraw_OBJECTS = ipc_sem-Xraw.$(OBJEXT)
+ipc_sem_Xraw_LDADD = $(LDADD)
+ipc_sem_Xraw_DEPENDENCIES = libtests.a
+ipc_sem_Xverbose_SOURCES = ipc_sem-Xverbose.c
+ipc_sem_Xverbose_OBJECTS = ipc_sem-Xverbose.$(OBJEXT)
+ipc_sem_Xverbose_LDADD = $(LDADD)
+ipc_sem_Xverbose_DEPENDENCIES = libtests.a
ipc_shm_SOURCES = ipc_shm.c
ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
ipc_shm_LDADD = $(LDADD)
ipc_shm_DEPENDENCIES = libtests.a
+ipc_shm_Xabbrev_SOURCES = ipc_shm-Xabbrev.c
+ipc_shm_Xabbrev_OBJECTS = ipc_shm-Xabbrev.$(OBJEXT)
+ipc_shm_Xabbrev_LDADD = $(LDADD)
+ipc_shm_Xabbrev_DEPENDENCIES = libtests.a
+ipc_shm_Xraw_SOURCES = ipc_shm-Xraw.c
+ipc_shm_Xraw_OBJECTS = ipc_shm-Xraw.$(OBJEXT)
+ipc_shm_Xraw_LDADD = $(LDADD)
+ipc_shm_Xraw_DEPENDENCIES = libtests.a
+ipc_shm_Xverbose_SOURCES = ipc_shm-Xverbose.c
+ipc_shm_Xverbose_OBJECTS = ipc_shm-Xverbose.$(OBJEXT)
+ipc_shm_Xverbose_LDADD = $(LDADD)
+ipc_shm_Xverbose_DEPENDENCIES = libtests.a
is_linux_mips_n64_SOURCES = is_linux_mips_n64.c
is_linux_mips_n64_OBJECTS = is_linux_mips_n64.$(OBJEXT)
is_linux_mips_n64_LDADD = $(LDADD)
@@ -1015,6 +1157,18 @@
keyctl_OBJECTS = keyctl.$(OBJEXT)
keyctl_LDADD = $(LDADD)
keyctl_DEPENDENCIES = libtests.a
+keyctl_Xabbrev_SOURCES = keyctl-Xabbrev.c
+keyctl_Xabbrev_OBJECTS = keyctl-Xabbrev.$(OBJEXT)
+keyctl_Xabbrev_LDADD = $(LDADD)
+keyctl_Xabbrev_DEPENDENCIES = libtests.a
+keyctl_Xraw_SOURCES = keyctl-Xraw.c
+keyctl_Xraw_OBJECTS = keyctl-Xraw.$(OBJEXT)
+keyctl_Xraw_LDADD = $(LDADD)
+keyctl_Xraw_DEPENDENCIES = libtests.a
+keyctl_Xverbose_SOURCES = keyctl-Xverbose.c
+keyctl_Xverbose_OBJECTS = keyctl-Xverbose.$(OBJEXT)
+keyctl_Xverbose_LDADD = $(LDADD)
+keyctl_Xverbose_DEPENDENCIES = libtests.a
kill_SOURCES = kill.c
kill_OBJECTS = kill.$(OBJEXT)
kill_LDADD = $(LDADD)
@@ -1122,10 +1276,34 @@
mmap_OBJECTS = mmap.$(OBJEXT)
mmap_LDADD = $(LDADD)
mmap_DEPENDENCIES = libtests.a
+mmap_Xabbrev_SOURCES = mmap-Xabbrev.c
+mmap_Xabbrev_OBJECTS = mmap-Xabbrev.$(OBJEXT)
+mmap_Xabbrev_LDADD = $(LDADD)
+mmap_Xabbrev_DEPENDENCIES = libtests.a
+mmap_Xraw_SOURCES = mmap-Xraw.c
+mmap_Xraw_OBJECTS = mmap-Xraw.$(OBJEXT)
+mmap_Xraw_LDADD = $(LDADD)
+mmap_Xraw_DEPENDENCIES = libtests.a
+mmap_Xverbose_SOURCES = mmap-Xverbose.c
+mmap_Xverbose_OBJECTS = mmap-Xverbose.$(OBJEXT)
+mmap_Xverbose_LDADD = $(LDADD)
+mmap_Xverbose_DEPENDENCIES = libtests.a
mmap64_SOURCES = mmap64.c
mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
mmap64_LDADD = $(LDADD)
mmap64_DEPENDENCIES = libtests.a
+mmap64_Xabbrev_SOURCES = mmap64-Xabbrev.c
+mmap64_Xabbrev_OBJECTS = mmap64_Xabbrev-mmap64-Xabbrev.$(OBJEXT)
+mmap64_Xabbrev_LDADD = $(LDADD)
+mmap64_Xabbrev_DEPENDENCIES = libtests.a
+mmap64_Xraw_SOURCES = mmap64-Xraw.c
+mmap64_Xraw_OBJECTS = mmap64_Xraw-mmap64-Xraw.$(OBJEXT)
+mmap64_Xraw_LDADD = $(LDADD)
+mmap64_Xraw_DEPENDENCIES = libtests.a
+mmap64_Xverbose_SOURCES = mmap64-Xverbose.c
+mmap64_Xverbose_OBJECTS = mmap64_Xverbose-mmap64-Xverbose.$(OBJEXT)
+mmap64_Xverbose_LDADD = $(LDADD)
+mmap64_Xverbose_DEPENDENCIES = libtests.a
mmsg_SOURCES = mmsg.c
mmsg_OBJECTS = mmsg.$(OBJEXT)
mmsg_LDADD = $(LDADD)
@@ -1150,6 +1328,18 @@
mount_OBJECTS = mount.$(OBJEXT)
mount_LDADD = $(LDADD)
mount_DEPENDENCIES = libtests.a
+mount_Xabbrev_SOURCES = mount-Xabbrev.c
+mount_Xabbrev_OBJECTS = mount-Xabbrev.$(OBJEXT)
+mount_Xabbrev_LDADD = $(LDADD)
+mount_Xabbrev_DEPENDENCIES = libtests.a
+mount_Xraw_SOURCES = mount-Xraw.c
+mount_Xraw_OBJECTS = mount-Xraw.$(OBJEXT)
+mount_Xraw_LDADD = $(LDADD)
+mount_Xraw_DEPENDENCIES = libtests.a
+mount_Xverbose_SOURCES = mount-Xverbose.c
+mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT)
+mount_Xverbose_LDADD = $(LDADD)
+mount_Xverbose_DEPENDENCIES = libtests.a
move_pages_SOURCES = move_pages.c
move_pages_OBJECTS = move_pages.$(OBJEXT)
move_pages_LDADD = $(LDADD)
@@ -1353,10 +1543,18 @@
nlattr_ifinfomsg_OBJECTS = nlattr_ifinfomsg.$(OBJEXT)
nlattr_ifinfomsg_LDADD = $(LDADD)
nlattr_ifinfomsg_DEPENDENCIES = libtests.a
+nlattr_ifla_af_spec_SOURCES = nlattr_ifla_af_spec.c
+nlattr_ifla_af_spec_OBJECTS = nlattr_ifla_af_spec.$(OBJEXT)
+nlattr_ifla_af_spec_LDADD = $(LDADD)
+nlattr_ifla_af_spec_DEPENDENCIES = libtests.a
nlattr_ifla_brport_SOURCES = nlattr_ifla_brport.c
nlattr_ifla_brport_OBJECTS = nlattr_ifla_brport.$(OBJEXT)
nlattr_ifla_brport_LDADD = $(LDADD)
nlattr_ifla_brport_DEPENDENCIES = libtests.a
+nlattr_ifla_linkinfo_SOURCES = nlattr_ifla_linkinfo.c
+nlattr_ifla_linkinfo_OBJECTS = nlattr_ifla_linkinfo.$(OBJEXT)
+nlattr_ifla_linkinfo_LDADD = $(LDADD)
+nlattr_ifla_linkinfo_DEPENDENCIES = libtests.a
nlattr_ifla_port_SOURCES = nlattr_ifla_port.c
nlattr_ifla_port_OBJECTS = nlattr_ifla_port.$(OBJEXT)
nlattr_ifla_port_LDADD = $(LDADD)
@@ -1458,6 +1656,18 @@
old_mmap_P_OBJECTS = old_mmap-P.$(OBJEXT)
old_mmap_P_LDADD = $(LDADD)
old_mmap_P_DEPENDENCIES = libtests.a
+old_mmap_Xabbrev_SOURCES = old_mmap-Xabbrev.c
+old_mmap_Xabbrev_OBJECTS = old_mmap-Xabbrev.$(OBJEXT)
+old_mmap_Xabbrev_LDADD = $(LDADD)
+old_mmap_Xabbrev_DEPENDENCIES = libtests.a
+old_mmap_Xraw_SOURCES = old_mmap-Xraw.c
+old_mmap_Xraw_OBJECTS = old_mmap-Xraw.$(OBJEXT)
+old_mmap_Xraw_LDADD = $(LDADD)
+old_mmap_Xraw_DEPENDENCIES = libtests.a
+old_mmap_Xverbose_SOURCES = old_mmap-Xverbose.c
+old_mmap_Xverbose_OBJECTS = old_mmap-Xverbose.$(OBJEXT)
+old_mmap_Xverbose_LDADD = $(LDADD)
+old_mmap_Xverbose_DEPENDENCIES = libtests.a
old_mmap_v_none_SOURCES = old_mmap-v-none.c
old_mmap_v_none_OBJECTS = old_mmap-v-none.$(OBJEXT)
old_mmap_v_none_LDADD = $(LDADD)
@@ -1526,6 +1736,18 @@
personality_OBJECTS = personality.$(OBJEXT)
personality_LDADD = $(LDADD)
personality_DEPENDENCIES = libtests.a
+personality_Xabbrev_SOURCES = personality-Xabbrev.c
+personality_Xabbrev_OBJECTS = personality-Xabbrev.$(OBJEXT)
+personality_Xabbrev_LDADD = $(LDADD)
+personality_Xabbrev_DEPENDENCIES = libtests.a
+personality_Xraw_SOURCES = personality-Xraw.c
+personality_Xraw_OBJECTS = personality-Xraw.$(OBJEXT)
+personality_Xraw_LDADD = $(LDADD)
+personality_Xraw_DEPENDENCIES = libtests.a
+personality_Xverbose_SOURCES = personality-Xverbose.c
+personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT)
+personality_Xverbose_LDADD = $(LDADD)
+personality_Xverbose_DEPENDENCIES = libtests.a
pipe_SOURCES = pipe.c
pipe_OBJECTS = pipe.$(OBJEXT)
pipe_LDADD = $(LDADD)
@@ -1598,6 +1820,10 @@
prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
prctl_securebits_LDADD = $(LDADD)
prctl_securebits_DEPENDENCIES = libtests.a
+prctl_spec_inject_SOURCES = prctl-spec-inject.c
+prctl_spec_inject_OBJECTS = prctl-spec-inject.$(OBJEXT)
+prctl_spec_inject_LDADD = $(LDADD)
+prctl_spec_inject_DEPENDENCIES = libtests.a
prctl_tid_address_SOURCES = prctl-tid_address.c
prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
prctl_tid_address_LDADD = $(LDADD)
@@ -2088,10 +2314,34 @@
so_peercred_OBJECTS = so_peercred.$(OBJEXT)
so_peercred_LDADD = $(LDADD)
so_peercred_DEPENDENCIES = libtests.a
+so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+so_peercred_Xabbrev_LDADD = $(LDADD)
+so_peercred_Xabbrev_DEPENDENCIES = libtests.a
+so_peercred_Xraw_SOURCES = so_peercred-Xraw.c
+so_peercred_Xraw_OBJECTS = so_peercred-Xraw.$(OBJEXT)
+so_peercred_Xraw_LDADD = $(LDADD)
+so_peercred_Xraw_DEPENDENCIES = libtests.a
+so_peercred_Xverbose_SOURCES = so_peercred-Xverbose.c
+so_peercred_Xverbose_OBJECTS = so_peercred-Xverbose.$(OBJEXT)
+so_peercred_Xverbose_LDADD = $(LDADD)
+so_peercred_Xverbose_DEPENDENCIES = libtests.a
sock_filter_v_SOURCES = sock_filter-v.c
sock_filter_v_OBJECTS = sock_filter-v.$(OBJEXT)
sock_filter_v_LDADD = $(LDADD)
sock_filter_v_DEPENDENCIES = libtests.a
+sock_filter_v_Xabbrev_SOURCES = sock_filter-v-Xabbrev.c
+sock_filter_v_Xabbrev_OBJECTS = sock_filter-v-Xabbrev.$(OBJEXT)
+sock_filter_v_Xabbrev_LDADD = $(LDADD)
+sock_filter_v_Xabbrev_DEPENDENCIES = libtests.a
+sock_filter_v_Xraw_SOURCES = sock_filter-v-Xraw.c
+sock_filter_v_Xraw_OBJECTS = sock_filter-v-Xraw.$(OBJEXT)
+sock_filter_v_Xraw_LDADD = $(LDADD)
+sock_filter_v_Xraw_DEPENDENCIES = libtests.a
+sock_filter_v_Xverbose_SOURCES = sock_filter-v-Xverbose.c
+sock_filter_v_Xverbose_OBJECTS = sock_filter-v-Xverbose.$(OBJEXT)
+sock_filter_v_Xverbose_LDADD = $(LDADD)
+sock_filter_v_Xverbose_DEPENDENCIES = libtests.a
socketcall_SOURCES = socketcall.c
socketcall_OBJECTS = socketcall.$(OBJEXT)
socketcall_LDADD = $(LDADD)
@@ -2402,45 +2652,58 @@
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
- accept4.c access.c acct.c add_key.c adjtimex.c aio.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-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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 \
+ 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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2456,59 +2719,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2526,44 +2794,57 @@
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 \
- 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-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 \
+ 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 \
+ 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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2579,59 +2860,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2859,7 +3145,7 @@
bases=`echo $$bases`
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
-@USE_LIBUNWIND_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
TEST_SUITE_LOG = test-suite.log
TEST_EXTENSIONS = @EXEEXT@ .test
am__test_logs1 = $(TESTS:=.log)
@@ -3001,6 +3287,10 @@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
+libdw_CFLAGS = @libdw_CFLAGS@
+libdw_CPPFLAGS = @libdw_CPPFLAGS@
+libdw_LDFLAGS = @libdw_LDFLAGS@
+libdw_LIBS = @libdw_LIBS@
libexecdir = @libexecdir@
libiberty_CPPFLAGS = @libiberty_CPPFLAGS@
libiberty_LDFLAGS = @libiberty_LDFLAGS@
@@ -3095,9 +3385,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -3130,6 +3425,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -3192,10 +3490,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -3208,15 +3509,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -3241,11 +3557,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -3292,7 +3617,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -3317,6 +3644,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -3328,6 +3658,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -3444,7 +3777,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
@@ -3515,6 +3854,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -3539,10 +3881,14 @@
# 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 alarm.gen.test \
- bpf.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 \
+ add_key.gen.test adjtimex.gen.test aio.gen.test \
+ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
+ bpf-v.gen.test bpf-obj_get_info_by_fd.gen.test \
+ bpf-obj_get_info_by_fd-v.gen.test \
+ bpf-obj_get_info_by_fd-prog.gen.test \
+ bpf-obj_get_info_by_fd-prog-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 \
@@ -3550,70 +3896,85 @@
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 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 fstat64.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 int_0x80.gen.test \
- ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \
- ioctl_evdev.gen.test ioctl_evdev-v.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 fstat64.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 \
+ int_0x80.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_loop.gen.test \
ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \
- ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test \
- ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test \
- kcmp-y.gen.test kern_features.gen.test \
- kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
- kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test \
+ ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test \
+ ioctl_ptp.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 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 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 \
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 \
- mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test \
- nlattr_br_port_msg.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_brport.gen.test nlattr_ifla_port.gen.test \
- nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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 \
@@ -3625,16 +3986,19 @@
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-v-none.gen.test oldfstat.gen.test \
- oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test \
+ old_mmap-P.gen.test old_mmap-v-none.gen.test \
+ old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test \
+ old_mmap-Xverbose.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 \
osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
perf_event_open_nonverbose.gen.test \
- perf_event_open_unabbrev.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 \
+ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ personality-Xraw.gen.test personality-Xverbose.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 \
printstr.gen.test printpath-umovestr.gen.test \
printpath-umovestr-peekdata.gen.test \
@@ -3675,22 +4039,29 @@
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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test \
- socketcall.gen.test sockopt-sol_netlink.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_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 \
+ 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 socketcall.gen.test \
+ sockopt-sol_netlink.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_x32.gen.test \
+ trace_personality_regex_32.gen.test \
+ trace_personality_regex_64.gen.test \
+ trace_personality_regex_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 utimes.gen.test \
@@ -3700,13 +4071,20 @@
xattr-strings.gen.test xet_robust_list.gen.test \
xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
xettimeofday.gen.test
-@USE_LIBUNWIND_FALSE@LIBUNWIND_TESTS =
-@USE_LIBUNWIND_TRUE@LIBUNWIND_TESTS = strace-k.test $(am__append_1)
+@ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS =
+@ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
+@ENABLE_STACKTRACE_TRUE@ $(am__append_1)
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -3716,6 +4094,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -3742,6 +4121,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -3790,9 +4170,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -3816,8 +4200,8 @@
# end of MISC_TESTS
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -3838,6 +4222,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -3848,12 +4233,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -3861,6 +4246,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -3878,16 +4265,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
@@ -4001,6 +4395,10 @@
@rm -f aio$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
+aio_pgetevents$(EXEEXT): $(aio_pgetevents_OBJECTS) $(aio_pgetevents_DEPENDENCIES) $(EXTRA_aio_pgetevents_DEPENDENCIES)
+ @rm -f aio_pgetevents$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(aio_pgetevents_OBJECTS) $(aio_pgetevents_LDADD) $(LIBS)
+
alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES)
@rm -f alarm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
@@ -4033,6 +4431,30 @@
@rm -f bpf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
+bpf-obj_get_info_by_fd$(EXEEXT): $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog-v$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-v$(EXEEXT): $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_LDADD) $(LIBS)
+
+bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA_bpf_success_DEPENDENCIES)
+ @rm -f bpf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_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)
+
bpf-v$(EXEEXT): $(bpf_v_OBJECTS) $(bpf_v_DEPENDENCIES) $(EXTRA_bpf_v_DEPENDENCIES)
@rm -f bpf-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_v_OBJECTS) $(bpf_v_LDADD) $(LIBS)
@@ -4201,6 +4623,18 @@
@rm -f fanotify_mark$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
+fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES)
+ @rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+
+fanotify_mark-Xraw$(EXEEXT): $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_DEPENDENCIES) $(EXTRA_fanotify_mark_Xraw_DEPENDENCIES)
+ @rm -f fanotify_mark-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_LDADD) $(LIBS)
+
+fanotify_mark-Xverbose$(EXEEXT): $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_DEPENDENCIES) $(EXTRA_fanotify_mark_Xverbose_DEPENDENCIES)
+ @rm -f fanotify_mark-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_LDADD) $(LIBS)
+
fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES)
@rm -f fchdir$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
@@ -4481,6 +4915,10 @@
@rm -f ioctl_evdev-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_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)
+
ioctl_kvm_run$(EXEEXT): $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_DEPENDENCIES) $(EXTRA_ioctl_kvm_run_DEPENDENCIES)
@rm -f ioctl_kvm_run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_LDADD) $(LIBS)
@@ -4505,6 +4943,18 @@
@rm -f ioctl_nsfs$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
+ioctl_perf$(EXEEXT): $(ioctl_perf_OBJECTS) $(ioctl_perf_DEPENDENCIES) $(EXTRA_ioctl_perf_DEPENDENCIES)
+ @rm -f ioctl_perf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_OBJECTS) $(ioctl_perf_LDADD) $(LIBS)
+
+ioctl_perf-success$(EXEEXT): $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_DEPENDENCIES) $(EXTRA_ioctl_perf_success_DEPENDENCIES)
+ @rm -f ioctl_perf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_LDADD) $(LIBS)
+
+ioctl_ptp$(EXEEXT): $(ioctl_ptp_OBJECTS) $(ioctl_ptp_DEPENDENCIES) $(EXTRA_ioctl_ptp_DEPENDENCIES)
+ @rm -f ioctl_ptp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_ptp_OBJECTS) $(ioctl_ptp_LDADD) $(LIBS)
+
ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES)
@rm -f ioctl_rtc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
@@ -4561,18 +5011,66 @@
@rm -f ipc_msg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
+ipc_msg-Xabbrev$(EXEEXT): $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msg_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msg-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_LDADD) $(LIBS)
+
+ipc_msg-Xraw$(EXEEXT): $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_DEPENDENCIES) $(EXTRA_ipc_msg_Xraw_DEPENDENCIES)
+ @rm -f ipc_msg-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_LDADD) $(LIBS)
+
+ipc_msg-Xverbose$(EXEEXT): $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msg_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msg-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_LDADD) $(LIBS)
+
ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES)
@rm -f ipc_msgbuf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
+ipc_msgbuf-Xabbrev$(EXEEXT): $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_LDADD) $(LIBS)
+
+ipc_msgbuf-Xraw$(EXEEXT): $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xraw_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_LDADD) $(LIBS)
+
+ipc_msgbuf-Xverbose$(EXEEXT): $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_LDADD) $(LIBS)
+
ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES)
@rm -f ipc_sem$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
+ipc_sem-Xabbrev$(EXEEXT): $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_sem_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_sem-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_LDADD) $(LIBS)
+
+ipc_sem-Xraw$(EXEEXT): $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_DEPENDENCIES) $(EXTRA_ipc_sem_Xraw_DEPENDENCIES)
+ @rm -f ipc_sem-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_LDADD) $(LIBS)
+
+ipc_sem-Xverbose$(EXEEXT): $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_DEPENDENCIES) $(EXTRA_ipc_sem_Xverbose_DEPENDENCIES)
+ @rm -f ipc_sem-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_LDADD) $(LIBS)
+
ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES)
@rm -f ipc_shm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
+ipc_shm-Xabbrev$(EXEEXT): $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_shm_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_shm-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_LDADD) $(LIBS)
+
+ipc_shm-Xraw$(EXEEXT): $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_DEPENDENCIES) $(EXTRA_ipc_shm_Xraw_DEPENDENCIES)
+ @rm -f ipc_shm-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_LDADD) $(LIBS)
+
+ipc_shm-Xverbose$(EXEEXT): $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_DEPENDENCIES) $(EXTRA_ipc_shm_Xverbose_DEPENDENCIES)
+ @rm -f ipc_shm-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_LDADD) $(LIBS)
+
is_linux_mips_n64$(EXEEXT): $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_DEPENDENCIES) $(EXTRA_is_linux_mips_n64_DEPENDENCIES)
@rm -f is_linux_mips_n64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_LDADD) $(LIBS)
@@ -4601,6 +5099,18 @@
@rm -f keyctl$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
+keyctl-Xabbrev$(EXEEXT): $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_DEPENDENCIES) $(EXTRA_keyctl_Xabbrev_DEPENDENCIES)
+ @rm -f keyctl-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_LDADD) $(LIBS)
+
+keyctl-Xraw$(EXEEXT): $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_DEPENDENCIES) $(EXTRA_keyctl_Xraw_DEPENDENCIES)
+ @rm -f keyctl-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_LDADD) $(LIBS)
+
+keyctl-Xverbose$(EXEEXT): $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_DEPENDENCIES) $(EXTRA_keyctl_Xverbose_DEPENDENCIES)
+ @rm -f keyctl-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_LDADD) $(LIBS)
+
kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES)
@rm -f kill$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
@@ -4709,10 +5219,34 @@
@rm -f mmap$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
+mmap-Xabbrev$(EXEEXT): $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_DEPENDENCIES) $(EXTRA_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_LDADD) $(LIBS)
+
+mmap-Xraw$(EXEEXT): $(mmap_Xraw_OBJECTS) $(mmap_Xraw_DEPENDENCIES) $(EXTRA_mmap_Xraw_DEPENDENCIES)
+ @rm -f mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xraw_OBJECTS) $(mmap_Xraw_LDADD) $(LIBS)
+
+mmap-Xverbose$(EXEEXT): $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_DEPENDENCIES) $(EXTRA_mmap_Xverbose_DEPENDENCIES)
+ @rm -f mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_LDADD) $(LIBS)
+
mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES)
@rm -f mmap64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
+mmap64-Xabbrev$(EXEEXT): $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_DEPENDENCIES) $(EXTRA_mmap64_Xabbrev_DEPENDENCIES)
+ @rm -f mmap64-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_LDADD) $(LIBS)
+
+mmap64-Xraw$(EXEEXT): $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_DEPENDENCIES) $(EXTRA_mmap64_Xraw_DEPENDENCIES)
+ @rm -f mmap64-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_LDADD) $(LIBS)
+
+mmap64-Xverbose$(EXEEXT): $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_DEPENDENCIES) $(EXTRA_mmap64_Xverbose_DEPENDENCIES)
+ @rm -f mmap64-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_LDADD) $(LIBS)
+
mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES)
@rm -f mmsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
@@ -4737,6 +5271,18 @@
@rm -f mount$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
+mount-Xabbrev$(EXEEXT): $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_DEPENDENCIES) $(EXTRA_mount_Xabbrev_DEPENDENCIES)
+ @rm -f mount-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_LDADD) $(LIBS)
+
+mount-Xraw$(EXEEXT): $(mount_Xraw_OBJECTS) $(mount_Xraw_DEPENDENCIES) $(EXTRA_mount_Xraw_DEPENDENCIES)
+ @rm -f mount-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xraw_OBJECTS) $(mount_Xraw_LDADD) $(LIBS)
+
+mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES) $(EXTRA_mount_Xverbose_DEPENDENCIES)
+ @rm -f mount-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_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)
@@ -4941,10 +5487,18 @@
@rm -f nlattr_ifinfomsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifinfomsg_OBJECTS) $(nlattr_ifinfomsg_LDADD) $(LIBS)
+nlattr_ifla_af_spec$(EXEEXT): $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_DEPENDENCIES) $(EXTRA_nlattr_ifla_af_spec_DEPENDENCIES)
+ @rm -f nlattr_ifla_af_spec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_LDADD) $(LIBS)
+
nlattr_ifla_brport$(EXEEXT): $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_DEPENDENCIES) $(EXTRA_nlattr_ifla_brport_DEPENDENCIES)
@rm -f nlattr_ifla_brport$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_LDADD) $(LIBS)
+nlattr_ifla_linkinfo$(EXEEXT): $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_DEPENDENCIES) $(EXTRA_nlattr_ifla_linkinfo_DEPENDENCIES)
+ @rm -f nlattr_ifla_linkinfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_LDADD) $(LIBS)
+
nlattr_ifla_port$(EXEEXT): $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_DEPENDENCIES) $(EXTRA_nlattr_ifla_port_DEPENDENCIES)
@rm -f nlattr_ifla_port$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_LDADD) $(LIBS)
@@ -5045,6 +5599,18 @@
@rm -f old_mmap-P$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_P_OBJECTS) $(old_mmap_P_LDADD) $(LIBS)
+old_mmap-Xabbrev$(EXEEXT): $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_DEPENDENCIES) $(EXTRA_old_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f old_mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_LDADD) $(LIBS)
+
+old_mmap-Xraw$(EXEEXT): $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_DEPENDENCIES) $(EXTRA_old_mmap_Xraw_DEPENDENCIES)
+ @rm -f old_mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_LDADD) $(LIBS)
+
+old_mmap-Xverbose$(EXEEXT): $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_DEPENDENCIES) $(EXTRA_old_mmap_Xverbose_DEPENDENCIES)
+ @rm -f old_mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_LDADD) $(LIBS)
+
old_mmap-v-none$(EXEEXT): $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_DEPENDENCIES) $(EXTRA_old_mmap_v_none_DEPENDENCIES)
@rm -f old_mmap-v-none$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_LDADD) $(LIBS)
@@ -5113,6 +5679,18 @@
@rm -f personality$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
+personality-Xabbrev$(EXEEXT): $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_DEPENDENCIES) $(EXTRA_personality_Xabbrev_DEPENDENCIES)
+ @rm -f personality-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_LDADD) $(LIBS)
+
+personality-Xraw$(EXEEXT): $(personality_Xraw_OBJECTS) $(personality_Xraw_DEPENDENCIES) $(EXTRA_personality_Xraw_DEPENDENCIES)
+ @rm -f personality-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xraw_OBJECTS) $(personality_Xraw_LDADD) $(LIBS)
+
+personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xverbose_DEPENDENCIES) $(EXTRA_personality_Xverbose_DEPENDENCIES)
+ @rm -f personality-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS)
+
pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES)
@rm -f pipe$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
@@ -5185,6 +5763,10 @@
@rm -f prctl-securebits$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
+prctl-spec-inject$(EXEEXT): $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_DEPENDENCIES) $(EXTRA_prctl_spec_inject_DEPENDENCIES)
+ @rm -f prctl-spec-inject$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_LDADD) $(LIBS)
+
prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES)
@rm -f prctl-tid_address$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
@@ -5669,10 +6251,34 @@
@rm -f so_peercred$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_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)
+
+so_peercred-Xraw$(EXEEXT): $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_DEPENDENCIES) $(EXTRA_so_peercred_Xraw_DEPENDENCIES)
+ @rm -f so_peercred-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_LDADD) $(LIBS)
+
+so_peercred-Xverbose$(EXEEXT): $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_DEPENDENCIES) $(EXTRA_so_peercred_Xverbose_DEPENDENCIES)
+ @rm -f so_peercred-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_LDADD) $(LIBS)
+
sock_filter-v$(EXEEXT): $(sock_filter_v_OBJECTS) $(sock_filter_v_DEPENDENCIES) $(EXTRA_sock_filter_v_DEPENDENCIES)
@rm -f sock_filter-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(sock_filter_v_OBJECTS) $(sock_filter_v_LDADD) $(LIBS)
+sock_filter-v-Xabbrev$(EXEEXT): $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_DEPENDENCIES) $(EXTRA_sock_filter_v_Xabbrev_DEPENDENCIES)
+ @rm -f sock_filter-v-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_LDADD) $(LIBS)
+
+sock_filter-v-Xraw$(EXEEXT): $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_DEPENDENCIES) $(EXTRA_sock_filter_v_Xraw_DEPENDENCIES)
+ @rm -f sock_filter-v-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_LDADD) $(LIBS)
+
+sock_filter-v-Xverbose$(EXEEXT): $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_DEPENDENCIES) $(EXTRA_sock_filter_v_Xverbose_DEPENDENCIES)
+ @rm -f sock_filter-v-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_LDADD) $(LIBS)
+
socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES)
@rm -f socketcall$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
@@ -5960,6 +6566,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adjtimex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aio_pgetevents.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alarm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/answer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-f-p-cmd.Po@am__quote@
@@ -5967,6 +6574,12 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/brk.Po@am__quote@
@@ -6009,6 +6622,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64_64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallocate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@
@@ -6080,12 +6696,16 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_inotify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop-nv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_mtd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_nsfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_perf-success.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_perf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_ptp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_rtc-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_rtc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_scsi.Po@am__quote@
@@ -6099,9 +6719,21 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ip_mreq.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@
@@ -6109,6 +6741,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kexec_file_load.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kexec_load.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@
@@ -6162,13 +6797,22 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlock2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlockall.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64-mmap64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg-silent.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg_name-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg_name.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modify_ldt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mq.Po@am__quote@
@@ -6221,7 +6865,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifaddrlblmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifaddrmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifinfomsg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_af_spec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_brport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_linkinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_port.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@
@@ -6246,6 +6892,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls-d.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-P.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-v-none.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldfstat.Po@am__quote@
@@ -6263,6 +6912,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open_nonverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open_unabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@
@@ -6282,6 +6934,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-seccomp-filter-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-seccomp-strict.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-securebits.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-spec-inject.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-tid_address.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-tsc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po@am__quote@
@@ -6402,7 +7055,13 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigsuspend.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketcall.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockopt-sol_netlink.Po@am__quote@
@@ -6929,6 +7588,48 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
+mmap64_Xabbrev-mmap64-Xabbrev.o: mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.o -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-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) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+
+mmap64_Xabbrev-mmap64-Xabbrev.obj: mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.obj -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-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) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+
+mmap64_Xraw-mmap64-Xraw.o: mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.o -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-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) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+
+mmap64_Xraw-mmap64-Xraw.obj: mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.obj -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-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) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+
+mmap64_Xverbose-mmap64-Xverbose.o: mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.o -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-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) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+
+mmap64_Xverbose-mmap64-Xverbose.obj: mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.obj -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-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) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+
newfstatat-newfstatat.o: newfstatat.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
@@ -7480,6 +8181,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7489,6 +8193,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7576,6 +8292,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7768,6 +8493,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7786,6 +8514,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7828,12 +8562,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7852,6 +8622,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7915,9 +8694,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7936,6 +8733,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -8062,9 +8868,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8137,6 +8949,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8179,6 +9000,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -8509,9 +9339,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8593,6 +9441,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
diff --git a/tests-m32/add_key.c b/tests-m32/add_key.c
index 999da03..9ad5e28 100644
--- a/tests-m32/add_key.c
+++ b/tests-m32/add_key.c
@@ -2,7 +2,7 @@
* Check decoding of add_key syscall.
*
* Copyright (c) 2016 Eugene Syromyatnikov <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -102,7 +102,7 @@
{ bogus_desc, NULL },
{ ARG_STR("\25\26\27\30\31") },
{ ARG_STR("desc") },
- { "overly long description", _STR("overly long ") "..." },
+ { "overly long description", STRINGIFY("overly long ") "..." },
};
struct {
@@ -113,10 +113,10 @@
{ ARG_STR(NULL), 0 },
{ bogus_payload + sizeof(unterminated3), NULL,
(size_t) 0xdeadbeefbadc0dedULL },
- { bogus_payload, _STR(""), 0 },
- { bogus_payload, _STR("\16\17\20\21\22"), 5 },
+ { bogus_payload, STRINGIFY(""), 0 },
+ { bogus_payload, STRINGIFY("\16\17\20\21\22"), 5 },
{ bogus_payload, NULL, 10 },
- { "overly long payload", _STR("overly long ") "...", 15 },
+ { "overly long payload", STRINGIFY("overly long ") "...", 15 },
};
struct {
diff --git a/tests-m32/aio.c b/tests-m32/aio.c
index 335bb31..ea18700 100644
--- a/tests-m32/aio.c
+++ b/tests-m32/aio.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -335,7 +335,7 @@
"}, {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]) = %s\n",
+ "}, {NULL}, {%#lx}, ... /* %p */]) = %s\n",
*ctx, 1057L,
cbv2[0].aio_data, cbv2[0].aio_key,
cbv2[0].aio_lio_opcode, cbv2[0].aio_fildes,
diff --git a/tests-m32/aio_pgetevents.c b/tests-m32/aio_pgetevents.c
new file mode 100644
index 0000000..ba5ac71
--- /dev/null
+++ b/tests-m32/aio_pgetevents.c
@@ -0,0 +1,190 @@
+/*
+ * Check decoding of io_pgetevents syscall.
+ *
+ * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+#include <unistd.h>
+#include <asm/unistd.h>
+#include "scno.h"
+
+#if defined __NR_io_setup && defined __NR_io_pgetevents
+
+# include <fcntl.h>
+# include <inttypes.h>
+# include <stdio.h>
+# include <time.h>
+
+# include "nsig.h"
+
+# include <linux/aio_abi.h>
+
+# if !HAVE_STRUCT___AIO_SIGSET
+struct __aio_sigset {
+ sigset_t *sigmask;
+ size_t sigsetsize;
+};
+# endif
+
+static const char *errstr;
+
+static long
+sys_io_pgetevents(const kernel_ulong_t ctx_id,
+ const kernel_long_t min_nr,
+ const kernel_long_t nr,
+ const kernel_ulong_t events,
+ const kernel_ulong_t timeout,
+ const kernel_ulong_t usig)
+{
+ long rc = syscall(__NR_io_pgetevents, ctx_id, min_nr, nr,
+ events, timeout, usig);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t bogus_ctx =
+ (kernel_ulong_t) 0xface1e55deadbeefLL;
+ static const kernel_long_t bogus_min_nr =
+ (kernel_long_t) 0xca7faceddeadf00dLL;
+ static const kernel_long_t bogus_nr =
+ (kernel_long_t) 0xba5e1e505ca571e0LL;
+ static const size_t bogus_sigsetsize =
+ (size_t) 0xdeadbeefbadcaffeULL;
+
+ const unsigned int sizeof_data0 = 4096;
+ const unsigned int sizeof_data1 = 8192;
+ void *data0 = tail_alloc(sizeof_data0);
+ void *data1 = tail_alloc(sizeof_data1);
+
+ const struct iocb proto_cb[] = {
+ {
+ .aio_data = (unsigned long) 0xfeedface11111111ULL,
+ .aio_reqprio = 11,
+ .aio_buf = (unsigned long) data0,
+ .aio_offset = (unsigned long) 0xdeface1facefeedULL,
+ .aio_nbytes = sizeof_data0
+ },
+ {
+ .aio_data = (unsigned long) 0xfeedface22222222ULL,
+ .aio_reqprio = 22,
+ .aio_buf = (unsigned long) data1,
+ .aio_offset = (unsigned long) 0xdeface2cafef00dULL,
+ .aio_nbytes = sizeof_data1
+ }
+ };
+ const struct iocb *cb = tail_memdup(proto_cb, sizeof(proto_cb));
+
+ const long proto_cbs[] = {
+ (long) &cb[0], (long) &cb[1]
+ };
+ const long *cbs = tail_memdup(proto_cbs, sizeof(proto_cbs));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned long, ctx);
+ *ctx = 0;
+
+ const unsigned int nr = ARRAY_SIZE(proto_cb);
+
+ const struct io_event *ev = tail_alloc(nr * sizeof(struct io_event));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct __aio_sigset, ss);
+ TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, sigs);
+
+ (void) close(0);
+ if (open("/dev/zero", O_RDONLY))
+ perror_msg_and_skip("open: %s", "/dev/zero");
+
+ if (syscall(__NR_io_setup, nr, ctx))
+ perror_msg_and_skip("io_setup");
+
+ if (syscall(__NR_io_submit, *ctx, nr, cbs) != (long) nr)
+ perror_msg_and_skip("io_submit");
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ (uintptr_t) (ev + 1), 0, 0);
+ printf("io_pgetevents(%#jx, %ld, %ld, %p, NULL, NULL) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ev + 1, errstr);
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, (uintptr_t) (ts + 1), 0);
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, %p, NULL) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ts + 1, errstr);
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, 0, (uintptr_t) (ss + 1));
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, NULL, %p) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ss + 1, errstr);
+
+ ss->sigmask = sigs + 1;
+ ss->sigsetsize = bogus_sigsetsize;
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, 0, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, NULL"
+ ", {sigmask=%p, sigsetsize=%zu}) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, sigs + 1, bogus_sigsetsize, errstr);
+
+ ts->tv_sec = 0xdeadbeefU;
+ ts->tv_nsec = 0xfacefeedU;
+ ss->sigmask = sigs;
+ ss->sigsetsize = NSIG_BYTES;
+ sys_io_pgetevents(bogus_ctx, 0, 0, 0, (uintptr_t) ts, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, 0, 0, NULL"
+ ", {tv_sec=%lld, tv_nsec=%llu}"
+ ", {sigmask=~[], sigsetsize=%u}) = %s\n",
+ (uintmax_t) bogus_ctx, (long long) ts->tv_sec,
+ zero_extend_signed_to_ull(ts->tv_nsec), NSIG_BYTES,
+ errstr);
+
+ sigemptyset(sigs);
+ sigaddset(sigs, SIGSYS);
+
+ ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL;
+ ts->tv_nsec = (long) 0xbadc0dedfacefeedLL;
+ sys_io_pgetevents(bogus_ctx, 0, 0, 0, (uintptr_t) ts, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, 0, 0, NULL"
+ ", {tv_sec=%lld, tv_nsec=%llu}"
+ ", {sigmask=[SYS], sigsetsize=%u}) = %s\n",
+ (uintmax_t) bogus_ctx, (long long) ts->tv_sec,
+ zero_extend_signed_to_ull(ts->tv_nsec), NSIG_BYTES,
+ errstr);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_io_setup && __NR_io_pgetevents")
+
+#endif
diff --git a/tests-m32/aio_pgetevents.gen.test b/tests-m32/aio_pgetevents.gen.test
new file mode 100755
index 0000000..7ea3874
--- /dev/null
+++ b/tests-m32/aio_pgetevents.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (aio_pgetevents -e trace=io_pgetevents); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=io_pgetevents
diff --git a/tests-m32/bpf-obj_get_info_by_fd-prog-v.c b/tests-m32/bpf-obj_get_info_by_fd-prog-v.c
new file mode 100644
index 0000000..d7e10b4
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd-prog-v.c
@@ -0,0 +1,3 @@
+#define CHECK_OBJ_PROG 1
+#define VERBOSE 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests-m32/bpf-obj_get_info_by_fd-prog-v.gen.test b/tests-m32/bpf-obj_get_info_by_fd-prog-v.gen.test
new file mode 100755
index 0000000..fcaa1d8
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd-prog-v.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-prog-v -a20 -y -v -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -v -e trace=bpf
diff --git a/tests-m32/bpf-obj_get_info_by_fd-prog.c b/tests-m32/bpf-obj_get_info_by_fd-prog.c
new file mode 100644
index 0000000..19a5f75
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd-prog.c
@@ -0,0 +1,2 @@
+#define CHECK_OBJ_PROG 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests-m32/bpf-obj_get_info_by_fd-prog.gen.test b/tests-m32/bpf-obj_get_info_by_fd-prog.gen.test
new file mode 100755
index 0000000..8cbd7c0
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd-prog.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-prog -a20 -y -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -e trace=bpf
diff --git a/tests-m32/bpf-obj_get_info_by_fd-v.c b/tests-m32/bpf-obj_get_info_by_fd-v.c
new file mode 100644
index 0000000..2debc5f
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd-v.c
@@ -0,0 +1,2 @@
+#define VERBOSE 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests-m32/bpf-obj_get_info_by_fd-v.gen.test b/tests-m32/bpf-obj_get_info_by_fd-v.gen.test
new file mode 100755
index 0000000..255d91e
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd-v.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-v -a20 -y -v -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -v -e trace=bpf
diff --git a/tests-m32/bpf-obj_get_info_by_fd.c b/tests-m32/bpf-obj_get_info_by_fd.c
new file mode 100644
index 0000000..67b5122
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd.c
@@ -0,0 +1,499 @@
+/*
+ * Check bpf(BPF_OBJ_GET_INFO_BY_FD) decoding.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifndef CHECK_OBJ_PROG
+# define CHECK_OBJ_PROG 0
+#endif
+
+#include <inttypes.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/sysmacros.h>
+#include <asm/unistd.h>
+
+#include "print_fields.h"
+#include "scno.h"
+
+#ifdef HAVE_LINUX_BPF_H
+# include <linux/bpf.h>
+#endif
+
+#include "bpf_attr.h"
+
+#include "xlat.h"
+#include "xlat/bpf_map_flags.h"
+#include "xlat/bpf_map_types.h"
+#include "xlat/bpf_prog_types.h"
+
+#define XLAT_MACROS_ONLY
+#include "xlat/bpf_commands.h"
+#include "xlat/bpf_op_alu.h"
+#include "xlat/bpf_op_jmp.h"
+#include "xlat/bpf_size.h"
+#include "xlat/bpf_src.h"
+#include "xlat/ebpf_class.h"
+#include "xlat/ebpf_mode.h"
+#include "xlat/ebpf_op_alu.h"
+#include "xlat/ebpf_regs.h"
+#include "xlat/ebpf_size.h"
+
+#ifndef HAVE_STRUCT_BPF_INSN
+struct bpf_insn {
+ uint8_t code;
+ uint8_t dst_reg:4;
+ uint8_t src_reg:4;
+ int16_t off;
+ int32_t imm;
+};
+#endif
+
+static const char *errstr;
+
+static long
+sys_bpf(kernel_ulong_t cmd, void *attr, kernel_ulong_t size)
+{
+ long rc = syscall(__NR_bpf, cmd, attr, size);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+static void
+print_map_create(void *attr_void, size_t size, long rc)
+{
+ /* struct BPF_MAP_CREATE_struct *attr = attr_void; */
+
+ printf("bpf(BPF_MAP_CREATE, {map_type=BPF_MAP_TYPE_ARRAY, key_size=4"
+ ", value_size=8, max_entries=1");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_flags))
+ printf(", map_flags=0");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, inner_map_fd))
+ printf(", inner_map_fd=0</dev/null>");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_name))
+ printf(", map_name=\"test_map\"");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_ifindex))
+ printf(", map_ifindex=0");
+ printf("}, %zu) = ", size);
+ if (rc >= 0)
+ printf("%ld<anon_inode:bpf-map>\n", rc);
+ else
+ puts(errstr);
+}
+
+#if CHECK_OBJ_PROG
+static struct bpf_insn socket_prog[] = {
+ { /* 0 */
+ .code = BPF_ALU64 | BPF_K | BPF_MOV,
+ .dst_reg = BPF_REG_1,
+ .imm = 0,
+ },
+ { /* 1 */
+ .code = BPF_STX | BPF_W | BPF_MEM,
+ .dst_reg = BPF_REG_10,
+ .src_reg = BPF_REG_1,
+ .off = -4,
+ },
+ { /* 2 */
+ .code = BPF_ALU64 | BPF_X | BPF_MOV,
+ .dst_reg = BPF_REG_2,
+ .src_reg = BPF_REG_10,
+ },
+ { /* 3 */
+ .code = BPF_ALU64 | BPF_K | BPF_ADD,
+ .dst_reg = BPF_REG_2,
+ .imm = -4,
+ },
+ { /* 4 */
+ .code = BPF_LD | BPF_DW | BPF_IMM,
+ .dst_reg = BPF_REG_1,
+ .src_reg = 1 /* BPF_PSEUDO_MAP_FD */,
+ .imm = 0, /* to be set to map fd */
+ },
+ { /* 5 */
+ .imm = 0,
+ },
+ { /* 6 */
+ .code = BPF_JMP | BPF_K | BPF_CALL,
+ .imm = 0x1, /* BPF_FUNC_map_lookup_elem */
+ },
+ { /* 7 */
+ .code = BPF_ALU64 | BPF_K | BPF_MOV,
+ .dst_reg = BPF_REG_0,
+ .imm = 0,
+ },
+ { /* 8 */
+ .code = BPF_JMP | BPF_K | BPF_EXIT,
+ },
+};
+
+# if VERBOSE
+static const char *socket_prog_fmt =
+ "[{code=BPF_ALU64|BPF_K|BPF_MOV"
+ ", dst_reg=BPF_REG_1, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_STX|BPF_W|BPF_MEM"
+ ", dst_reg=BPF_REG_10, src_reg=BPF_REG_1, off=-4, imm=0}"
+ ", {code=BPF_ALU64|BPF_X|BPF_MOV"
+ ", dst_reg=BPF_REG_2, src_reg=BPF_REG_10, off=0, imm=0}"
+ ", {code=BPF_ALU64|BPF_K|BPF_ADD"
+ ", dst_reg=BPF_REG_2, src_reg=BPF_REG_0, off=0, imm=0xfffffffc}"
+ ", {code=BPF_LD|BPF_DW|BPF_IMM"
+ ", dst_reg=BPF_REG_1, src_reg=BPF_REG_1, off=0, imm=%#x}"
+ ", {code=BPF_LD|BPF_W|BPF_IMM"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_JMP|BPF_K|BPF_CALL"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0x1}"
+ ", {code=BPF_ALU64|BPF_K|BPF_MOV"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_JMP|BPF_K|BPF_EXIT"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ "]";
+# endif /* VERBOSE */
+
+static const char *license = "BSD";
+static char log_buf[4096];
+
+static void
+print_prog_load(void *attr_void, size_t size, long rc)
+{
+ printf("bpf(BPF_PROG_LOAD, {prog_type=BPF_PROG_TYPE_SOCKET_FILTER"
+ ", insn_cnt=%zu, insns=", ARRAY_SIZE(socket_prog));
+# if VERBOSE
+ printf(socket_prog_fmt, socket_prog[4].imm);
+# else
+ printf("%p", socket_prog);
+# endif
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, license))
+ printf(", license=\"BSD\"");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, log_buf))
+ printf(", log_level=42, log_size=%zu, log_buf=\"\"",
+ sizeof(log_buf));
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, kern_version))
+ printf(", kern_version=KERNEL_VERSION(57005, 192, 222)");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_flags))
+ printf(", prog_flags=0");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_name))
+ printf(", prog_name=\"test_prog\"");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_ifindex))
+ printf(", prog_ifindex=0");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, expected_attach_type))
+ printf(", expected_attach_type=BPF_CGROUP_INET_INGRESS");
+ printf("}, %zu) = ", size);
+ if (rc >= 0)
+ printf("%ld<anon_inode:bpf-prog>\n", rc);
+ else
+ puts(errstr);
+}
+#endif /* CHECK_OBJ_PROG */
+
+static long
+try_bpf(kernel_ulong_t cmd, void (*printer)(void *attr, size_t size, long rc),
+ void *attr, size_t **sizes)
+{
+ long rc;
+
+ for (rc = -1; **sizes; (*sizes)++) {
+ rc = sys_bpf(cmd, attr, **sizes);
+ printer(attr, **sizes, rc);
+
+ if (rc >= 0)
+ break;
+ }
+
+ return rc;
+}
+
+int
+main(void)
+{
+ struct BPF_MAP_CREATE_struct bpf_map_create_attr = {
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .key_size = 4,
+ .value_size = 8,
+ .max_entries = 1,
+ .map_name = "test_map",
+ };
+ size_t bpf_map_create_attr_sizes[] = {
+ sizeof(bpf_map_create_attr),
+ offsetofend(struct BPF_MAP_CREATE_struct, max_entries),
+ 0,
+ };
+
+#if CHECK_OBJ_PROG
+ struct BPF_PROG_LOAD_struct bpf_prog_load_attr = {
+ .prog_type = BPF_PROG_TYPE_SOCKET_FILTER,
+ .insn_cnt = ARRAY_SIZE(socket_prog),
+ .insns = (uintptr_t) socket_prog,
+ .license = (uintptr_t) license,
+ .log_level = 42,
+ .log_size = sizeof(log_buf),
+ .log_buf = (uintptr_t) log_buf,
+ .kern_version = 0xdeadc0de,
+ .prog_name = "test_prog",
+ };
+ size_t bpf_prog_load_attr_sizes[] = {
+ sizeof(bpf_prog_load_attr),
+ offsetofend(struct BPF_PROG_LOAD_struct, prog_name),
+ offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
+ offsetofend(struct BPF_PROG_LOAD_struct, kern_version),
+ offsetofend(struct BPF_PROG_LOAD_struct, log_buf),
+ offsetofend(struct BPF_PROG_LOAD_struct, license),
+ offsetofend(struct BPF_PROG_LOAD_struct, insns),
+ 0,
+ };
+#endif /* CHECK_OBJ_PROG */
+
+ size_t *bpf_map_create_attr_size = bpf_map_create_attr_sizes;
+ int map_fd = try_bpf(BPF_MAP_CREATE, print_map_create,
+ &bpf_map_create_attr, &bpf_map_create_attr_size);
+ if (map_fd < 0)
+ perror_msg_and_skip("BPF_MAP_CREATE failed");
+
+#if CHECK_OBJ_PROG
+ socket_prog[4].imm = map_fd;
+
+ size_t *bpf_prog_load_attr_size = bpf_prog_load_attr_sizes;
+ int prog_fd = try_bpf(BPF_PROG_LOAD, print_prog_load,
+ &bpf_prog_load_attr, &bpf_prog_load_attr_size);
+ if (prog_fd < 0)
+ perror_msg_and_skip("BPF_PROG_LOAD failed (log: \"%s\")",
+ log_buf);
+#endif /* CHECK_OBJ_PROG */
+
+ /*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+ #define MAP_INFO_SZ (sizeof(*map_info) + 64)
+ struct bpf_map_info_struct *map_info = calloc(1, MAP_INFO_SZ);
+ struct BPF_OBJ_GET_INFO_BY_FD_struct bpf_map_get_info_attr = {
+ .bpf_fd = map_fd,
+ .info_len = MAP_INFO_SZ,
+ .info = (uintptr_t) map_info,
+ };
+
+ int ret = sys_bpf(BPF_OBJ_GET_INFO_BY_FD, &bpf_map_get_info_attr,
+ sizeof(bpf_map_get_info_attr));
+ if (ret < 0)
+ perror_msg_and_skip("BPF_OBJ_GET_INFO_BY_FD map failed");
+
+ printf("bpf(BPF_OBJ_GET_INFO_BY_FD"
+ ", {info={bpf_fd=%d<anon_inode:bpf-map>, info_len=%zu",
+ map_fd, MAP_INFO_SZ);
+ if (bpf_map_get_info_attr.info_len != MAP_INFO_SZ)
+ printf(" => %u", bpf_map_get_info_attr.info_len);
+
+ printf(", info=");
+#if VERBOSE
+ printf("{type=");
+ printxval(bpf_map_types, map_info->type, "BPF_MAP_TYPE_???");
+ PRINT_FIELD_U(", ", *map_info, id);
+ PRINT_FIELD_U(", ", *map_info, key_size);
+ PRINT_FIELD_U(", ", *map_info, value_size);
+ PRINT_FIELD_U(", ", *map_info, max_entries);
+ printf(", map_flags=");
+ printflags(bpf_map_flags, map_info->map_flags, "BPF_F_???");
+
+ if (bpf_map_get_info_attr.info_len >
+ offsetof(struct bpf_map_info_struct, name)) {
+ printf(", name=");
+ print_quoted_cstring(map_info->name, sizeof(map_info->name));
+ }
+ 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, netns_dev))
+ printf(", netns_dev=makedev(%u, %u)",
+ major(map_info->netns_dev), minor(map_info->netns_dev));
+ if (bpf_map_get_info_attr.info_len >
+ offsetof(struct bpf_map_info_struct, netns_ino))
+ printf(", netns_ino=%" PRIu64, map_info->netns_ino);
+ printf("}");
+#else /* !VERBOSE */
+ printf("%p", map_info);
+#endif /* VERBOSE */
+ printf("}}, %zu) = %s\n", sizeof(bpf_map_get_info_attr), errstr);
+
+#if CHECK_OBJ_PROG
+ /*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+ #define PROG_INFO_SZ (sizeof(*prog_info) + 64)
+ struct bpf_prog_info_struct *prog_info = calloc(1, PROG_INFO_SZ);
+ struct bpf_insn *xlated_prog = tail_alloc(sizeof(*xlated_prog) * 42);
+ uint32_t *map_ids = tail_alloc(sizeof(*map_ids) * 2);
+ struct BPF_OBJ_GET_INFO_BY_FD_struct bpf_prog_get_info_attr = {
+ .bpf_fd = prog_fd,
+ .info_len = PROG_INFO_SZ,
+ .info = (uintptr_t) prog_info,
+ };
+ size_t old_prog_info_len = PROG_INFO_SZ;
+
+ for (unsigned int i = 0; i < 4; i++) {
+ prog_info->jited_prog_len = 0;
+ switch (i) {
+ case 1:
+ prog_info->xlated_prog_insns =
+ (uintptr_t) (xlated_prog + 42);
+ prog_info->xlated_prog_len = 336;
+ prog_info->map_ids = (uintptr_t) (map_ids + 2);
+ prog_info->nr_map_ids = 2;
+ break;
+ case 2:
+ prog_info->xlated_prog_insns = (uintptr_t) xlated_prog;
+ /* TODO: check xlated_prog output */
+ prog_info->xlated_prog_len = 0;
+ prog_info->map_ids = (uintptr_t) map_ids;
+ prog_info->nr_map_ids = 0;
+ break;
+ case 3:
+ prog_info->xlated_prog_insns = (uintptr_t) xlated_prog;
+ prog_info->xlated_prog_len = 0;
+ prog_info->map_ids = (uintptr_t) map_ids;
+ prog_info->nr_map_ids = 2;
+ break;
+ }
+
+ ret = sys_bpf(BPF_OBJ_GET_INFO_BY_FD, &bpf_prog_get_info_attr,
+ sizeof(bpf_prog_get_info_attr));
+ if (i != 1 && ret < 0)
+ perror_msg_and_skip("BPF_OBJ_GET_INFO_BY_FD"
+ " prog %u failed", i);
+
+ printf("bpf(BPF_OBJ_GET_INFO_BY_FD"
+ ", {info={bpf_fd=%d<anon_inode:bpf-prog>, info_len=%zu",
+ prog_fd, old_prog_info_len);
+ if (!i && bpf_prog_get_info_attr.info_len != PROG_INFO_SZ)
+ printf(" => %u", bpf_prog_get_info_attr.info_len);
+ old_prog_info_len = bpf_prog_get_info_attr.info_len;
+
+ printf(", info=");
+# if VERBOSE
+ printf("{type=");
+ printxval(bpf_prog_types, prog_info->type, "BPF_PROG_TYPE_???");
+ PRINT_FIELD_U(", ", *prog_info, id);
+ printf(", tag=");
+ print_quoted_hex(prog_info->tag, sizeof(prog_info->tag));
+ printf(", jited_prog_len=0");
+ if (prog_info->jited_prog_len)
+ printf(" => %u", prog_info->jited_prog_len);
+ printf(", jited_prog_insns=NULL");
+ switch (i) {
+ case 0:
+ printf(", xlated_prog_len=0");
+ if (prog_info->xlated_prog_len)
+ printf(" => %u", prog_info->xlated_prog_len);
+ printf(", xlated_prog_insns=NULL");
+ break;
+ case 1:
+ printf(", xlated_prog_len=336");
+ if (prog_info->xlated_prog_len != 336)
+ printf(" => %u", prog_info->xlated_prog_len);
+ if (prog_info->xlated_prog_len)
+ printf(", xlated_prog_insns=%p", xlated_prog + 42);
+ else
+ printf(", xlated_prog_insns=[]");
+ break;
+ case 2:
+ case 3:
+ printf(", xlated_prog_len=0");
+ if (prog_info->xlated_prog_len)
+ printf(" => %u", prog_info->xlated_prog_len);
+ printf(", xlated_prog_insns=[]");
+ break;
+ }
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, load_time))
+ printf(", load_time=%" PRIu64, prog_info->load_time);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, created_by_uid))
+ printf(", created_by_uid=%u",
+ prog_info->created_by_uid);
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, map_ids)) {
+ switch (i) {
+ case 0:
+ printf(", nr_map_ids=0");
+ if (prog_info->nr_map_ids)
+ printf(" => 1");
+ printf(", map_ids=NULL");
+ break;
+ case 1:
+ printf(", nr_map_ids=2, map_ids=%p",
+ map_ids + 2);
+ break;
+ case 2:
+ printf(", nr_map_ids=0");
+ if (prog_info->nr_map_ids)
+ printf(" => 1");
+ printf(", map_ids=[]");
+ break;
+ case 3:
+ printf(", nr_map_ids=2");
+ if (prog_info->nr_map_ids != 2)
+ printf(" => 1");
+ printf(", map_ids=[%u]", map_info->id);
+ break;
+ }
+ }
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, name))
+ printf(", name=\"test_prog\"");
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, ifindex))
+ printf(", ifindex=%u", prog_info->ifindex);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, netns_dev))
+ printf(", netns_dev=makedev(%u, %u)",
+ major(prog_info->netns_dev),
+ minor(prog_info->netns_dev));
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, netns_ino))
+ printf(", netns_ino=%" PRIu64, prog_info->netns_ino);
+
+ printf("}");
+# else /* !VERBOSE */
+ printf("%p", prog_info);
+# endif /* VERBOSE */
+ printf("}}, %zu) = %s\n",
+ sizeof(bpf_prog_get_info_attr), errstr);
+ }
+#endif /* CHECK_OBJ_PROG */
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-m32/bpf-obj_get_info_by_fd.gen.test b/tests-m32/bpf-obj_get_info_by_fd.gen.test
new file mode 100755
index 0000000..0efa59a
--- /dev/null
+++ b/tests-m32/bpf-obj_get_info_by_fd.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd -a20 -y -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -e trace=bpf
diff --git a/tests-m32/bpf-success-v.c b/tests-m32/bpf-success-v.c
new file mode 100644
index 0000000..48c2a16
--- /dev/null
+++ b/tests-m32/bpf-success-v.c
@@ -0,0 +1,2 @@
+#define INJECT_RETVAL 42
+#include "bpf-v.c"
diff --git a/tests-m32/bpf-success-v.test b/tests-m32/bpf-success-v.test
new file mode 100755
index 0000000..819afbb
--- /dev/null
+++ b/tests-m32/bpf-success-v.test
@@ -0,0 +1,6 @@
+#!/bin/sh -efu
+
+. "${srcdir=.}/scno_tampering.sh"
+
+run_strace -a20 -v -e trace=bpf -e inject=bpf:retval=42 ../bpf-success-v > "$EXP"
+match_diff "$LOG" "$EXP"
diff --git a/tests-m32/bpf-success.c b/tests-m32/bpf-success.c
new file mode 100644
index 0000000..06f4695
--- /dev/null
+++ b/tests-m32/bpf-success.c
@@ -0,0 +1,2 @@
+#define INJECT_RETVAL 42
+#include "bpf.c"
diff --git a/tests-m32/bpf-success.test b/tests-m32/bpf-success.test
new file mode 100755
index 0000000..3cdfd35
--- /dev/null
+++ b/tests-m32/bpf-success.test
@@ -0,0 +1,6 @@
+#!/bin/sh -efu
+
+. "${srcdir=.}/scno_tampering.sh"
+
+run_strace -a20 -e trace=bpf -e inject=bpf:retval=42 ../bpf-success > "$EXP"
+match_diff "$LOG" "$EXP"
diff --git a/tests-m32/bpf.c b/tests-m32/bpf.c
index 72d7e8e..15ce713 100644
--- a/tests-m32/bpf.c
+++ b/tests-m32/bpf.c
@@ -49,6 +49,19 @@
#include "xlat.h"
#include "xlat/bpf_commands.h"
+#if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4
+# define BIG_ADDR(addr64_, addr32_) addr64_
+# 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(addr64_, addr32_) addr64_ " or " addr32_
+# define BIG_ADDR_MAYBE(addr_) addr_ " or "
+#else
+# define BIG_ADDR(addr64_, addr32_) addr32_
+# define BIG_ADDR_MAYBE(addr_)
+#endif
+
#ifndef HAVE_STRUCT_BPF_INSN
struct bpf_insn {
uint8_t code;
@@ -76,6 +89,8 @@
BPF_ATTR_DATA_FIELD(BPF_PROG_GET_FD_BY_ID);
BPF_ATTR_DATA_FIELD(BPF_MAP_GET_FD_BY_ID);
BPF_ATTR_DATA_FIELD(BPF_OBJ_GET_INFO_BY_FD);
+ BPF_ATTR_DATA_FIELD(BPF_PROG_QUERY);
+ BPF_ATTR_DATA_FIELD(BPF_RAW_TRACEPOINT_OPEN);
char char_data[256];
};
@@ -105,7 +120,20 @@
sys_bpf(kernel_ulong_t cmd, kernel_ulong_t attr, kernel_ulong_t size)
{
long rc = syscall(__NR_bpf, cmd, attr, size);
+
errstr = sprintrc(rc);
+
+#ifdef INJECT_RETVAL
+ if (rc != INJECT_RETVAL)
+ error_msg_and_fail("Got a return value of %ld != %d",
+ rc, INJECT_RETVAL);
+
+ static char inj_errstr[4096];
+
+ snprintf(inj_errstr, sizeof(inj_errstr), "%s (INJECTED)", errstr);
+ errstr = inj_errstr;
+#endif
+
return rc;
}
@@ -232,36 +260,173 @@
cmd_check->cmd_str, addr, page_size + 1, errstr);
}
-static const struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
+static void
+init_BPF_MAP_CREATE_attr7(struct bpf_attr_check *check)
+{
+ struct BPF_MAP_CREATE_struct *attr = &check->data.BPF_MAP_CREATE_data;
+ attr->map_ifindex = ifindex_lo();
+}
+
+static struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
{
.data = { .BPF_MAP_CREATE_data = { .map_type = 2 } },
.size = offsetofend(struct BPF_MAP_CREATE_struct, map_type),
.str = "map_type=BPF_MAP_TYPE_ARRAY, key_size=0, value_size=0"
- ", max_entries=0, map_flags=0, inner_map_fd=0"
+ ", max_entries=0"
},
- {
+ { /* 1 */
.data = { .BPF_MAP_CREATE_data = {
- .map_type = 1,
+ .map_type = 16,
.key_size = 4,
.value_size = 8,
.max_entries = 256,
- .map_flags = 7,
+ .map_flags = 63,
.inner_map_fd = -1,
- .numa_node = 42
+ .numa_node = 3141592653,
+ .map_name = "0123456789abcde",
} },
- .size = offsetofend(struct BPF_MAP_CREATE_struct, numa_node),
- .str = "map_type=BPF_MAP_TYPE_HASH, key_size=4"
+ .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8,
+ .str = "map_type=BPF_MAP_TYPE_CPUMAP, key_size=4"
", value_size=8, max_entries=256"
", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU"
- "|BPF_F_NUMA_NODE, inner_map_fd=-1, numa_node=42"
- }
+ "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY"
+ "|BPF_F_STACK_BUILD_ID"
+ ", inner_map_fd=-1"
+ ", numa_node=3141592653"
+ ", map_name=\"0123456\"...",
+
+ },
+ { /* 2 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 17,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xffffffc0,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "",
+ .map_ifindex = 3141592653,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex),
+ .str = "map_type=0x11 /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=0xffffffc0 /* BPF_F_??? */"
+ ", inner_map_fd=-1576685468"
+ ", map_name=\"\", map_ifindex=3141592653",
+
+ },
+ { /* 3 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_flags),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80",
+ },
+ { /* 4 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, inner_map_fd),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468",
+ },
+ { /* 5 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, numa_node),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */",
+ },
+ { /* 6 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "fedcba9876543210",
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_name),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */"
+ ", map_name=\"fedcba987654321\"...",
+ },
+ { /* 7 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "0123456789abcde",
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */"
+ ", map_name=\"0123456789abcde\""
+ ", map_ifindex=" IFINDEX_LO_STR,
+ .init_fn = init_BPF_MAP_CREATE_attr7,
+ },
};
static const struct bpf_attr_check BPF_MAP_LOOKUP_ELEM_checks[] = {
{
.data = { .BPF_MAP_LOOKUP_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0, value=0"
+ .str = "map_fd=-1, key=NULL, value=NULL"
},
{
.data = { .BPF_MAP_LOOKUP_ELEM_data = {
@@ -278,7 +443,7 @@
{
.data = { .BPF_MAP_UPDATE_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_UPDATE_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0, value=0, flags=BPF_ANY"
+ .str = "map_fd=-1, key=NULL, value=NULL, flags=BPF_ANY"
},
{
.data = { .BPF_MAP_UPDATE_ELEM_data = {
@@ -297,7 +462,7 @@
{
.data = { .BPF_MAP_DELETE_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_DELETE_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0"
+ .str = "map_fd=-1, key=NULL"
},
{
.data = { .BPF_MAP_DELETE_ELEM_data = {
@@ -313,7 +478,7 @@
{
.data = { .BPF_MAP_GET_NEXT_KEY_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_GET_NEXT_KEY_struct, map_fd),
- .str = "map_fd=-1, key=0, next_key=0"
+ .str = "map_fd=-1, key=NULL, next_key=NULL"
},
{
.data = { .BPF_MAP_GET_NEXT_KEY_data = {
@@ -327,30 +492,96 @@
};
static const struct bpf_insn insns[] = {
- { .code = 0x95 }
+ {
+ .code = 0x95,
+ .dst_reg = 10,
+ .src_reg = 11,
+ .off = 0xdead,
+ .imm = 0xbadc0ded,
+ },
};
static const char license[] = "GPL";
-static char log_buf[4096];
static const char pathname[] = "/sys/fs/bpf/foo/bar";
+static char *log_buf;
+/*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+#define log_buf_size 4096U
+
+static inline char *
+get_log_buf(void)
+{
+ if (!log_buf)
+ log_buf = tail_alloc(log_buf_size);
+ return log_buf;
+}
+
+static inline char *
+get_log_buf_tail(void)
+{
+ return get_log_buf() + log_buf_size;
+}
+
+#if VERBOSE
+# define INSNS_FMT \
+ "[{code=BPF_JMP|BPF_K|BPF_EXIT, dst_reg=BPF_REG_10" \
+ ", src_reg=0xb /* BPF_REG_??? */, off=%d, imm=%#x}]"
+# define INSNS_ARG insns[0].off, insns[0].imm
+#else
+# define INSNS_FMT "%p"
+# define INSNS_ARG insns
+#endif
+
static void
-init_BPF_PROG_LOAD_attr(struct bpf_attr_check *check)
+init_BPF_PROG_LOAD_attr3(struct bpf_attr_check *check)
{
struct BPF_PROG_LOAD_struct *attr = &check->data.BPF_PROG_LOAD_data;
+
attr->insns = (uintptr_t) insns;
attr->license = (uintptr_t) license;
- attr->log_buf = (uintptr_t) log_buf;
+ attr->log_buf = (uintptr_t) get_log_buf_tail();
}
static void
-print_BPF_PROG_LOAD_attr(const struct bpf_attr_check *check, unsigned long addr)
+print_BPF_PROG_LOAD_attr3(const struct bpf_attr_check *check, unsigned long addr)
{
- printf("prog_type=BPF_PROG_TYPE_SOCKET_FILTER, insn_cnt=%u, insns=%p"
- ", license=\"%s\", log_level=42, log_size=4096, log_buf=%p"
+ printf("prog_type=BPF_PROG_TYPE_SOCKET_FILTER, insn_cnt=%u"
+ ", insns=" INSNS_FMT ", license=\"%s\", log_level=2718281828"
+ ", log_size=%u, log_buf=%p"
", kern_version=KERNEL_VERSION(51966, 240, 13)"
- ", prog_flags=BPF_F_STRICT_ALIGNMENT",
- (unsigned int) ARRAY_SIZE(insns), insns,
- license, log_buf);
+ ", prog_flags=0x2 /* BPF_F_??? */"
+ ", prog_name=\"0123456789abcde\"..., prog_ifindex=3203399405",
+ (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license,
+ log_buf_size, get_log_buf_tail());
+}
+
+static void
+init_BPF_PROG_LOAD_attr4(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_LOAD_struct *attr = &check->data.BPF_PROG_LOAD_data;
+
+ attr->insns = (uintptr_t) insns;
+ attr->license = (uintptr_t) license;
+ attr->log_buf = (uintptr_t) get_log_buf();
+ attr->prog_ifindex = ifindex_lo();
+
+ strncpy(log_buf, "log test", 9);
+}
+
+static void
+print_BPF_PROG_LOAD_attr4(const struct bpf_attr_check *check, unsigned long addr)
+{
+ printf("prog_type=BPF_PROG_TYPE_UNSPEC, insn_cnt=%u, insns=" INSNS_FMT
+ ", license=\"%s\", log_level=2718281828, log_size=4"
+ ", log_buf=\"log \"..."
+ ", kern_version=KERNEL_VERSION(51966, 240, 13)"
+ ", prog_flags=BPF_F_STRICT_ALIGNMENT|0x2"
+ ", 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 struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
@@ -358,21 +589,82 @@
.data = { .BPF_PROG_LOAD_data = { .prog_type = 1 } },
.size = offsetofend(struct BPF_PROG_LOAD_struct, prog_type),
.str = "prog_type=BPF_PROG_TYPE_SOCKET_FILTER"
- ", insn_cnt=0, insns=0, license=NULL"
+ ", insn_cnt=0, insns=NULL, license=NULL"
},
- {
+ { /* 1 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 18,
+ .insn_cnt = 0xbadc0ded,
+ .insns = 0,
+ .license = 0,
+ .log_level = 42,
+ .log_size = 3141592653U,
+ .log_buf = 0,
+ .kern_version = 0xcafef00d,
+ .prog_flags = 0,
+ } },
+ .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
+ .str = "prog_type=0x12 /* 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)"
+ ", prog_flags=0",
+ },
+ { /* 2 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 17,
+ .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_RAW_TRACEPOINT"
+ ", 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\"",
+ },
+ { /* 3 */
.data = { .BPF_PROG_LOAD_data = {
.prog_type = 1,
.insn_cnt = ARRAY_SIZE(insns),
- .log_level = 42,
- .log_size = sizeof(log_buf),
+ .log_level = 2718281828U,
+ .log_size = log_buf_size,
.kern_version = 0xcafef00d,
- .prog_flags = 1
+ .prog_flags = 2,
+ .prog_name = "0123456789abcdef",
+ .prog_ifindex = 0xbeeffeed,
} },
- .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
- .init_fn = init_BPF_PROG_LOAD_attr,
- .print_fn = print_BPF_PROG_LOAD_attr
- }
+ .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_ifindex),
+ .init_fn = init_BPF_PROG_LOAD_attr3,
+ .print_fn = print_BPF_PROG_LOAD_attr3
+ },
+ { /* 4 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 0,
+ .insn_cnt = ARRAY_SIZE(insns),
+ .log_level = 2718281828U,
+ .log_size = 4,
+ .kern_version = 0xcafef00d,
+ .prog_flags = 3,
+ .prog_name = "0123456789abcdef",
+ .expected_attach_type = 9,
+ } },
+ .size = offsetofend(struct BPF_PROG_LOAD_struct,
+ expected_attach_type),
+ .init_fn = init_BPF_PROG_LOAD_attr4,
+ .print_fn = print_BPF_PROG_LOAD_attr4
+ },
};
static void
@@ -393,16 +685,7 @@
.pathname = 0xFFFFFFFFFFFFFFFFULL
} },
.size = offsetofend(struct BPF_OBJ_PIN_struct, pathname),
- .str = "pathname="
-#if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4
- "0xffffffffffffffff"
-#elif defined __arm__ || defined __i386__ || defined __mips__ || \
- defined __powerpc__ || defined __riscv__ || defined __s390__ \
- || defined __sparc__ || defined __tile__
- "0xffffffffffffffff or 0xffffffff"
-#else
- "0xffffffff"
-#endif
+ .str = "pathname=" BIG_ADDR("0xffffffffffffffff", "0xffffffff")
", bpf_fd=0",
},
{
@@ -468,7 +751,7 @@
.data = { .BPF_PROG_TEST_RUN_data = { .prog_fd = -1 } },
.size = offsetofend(struct BPF_PROG_TEST_RUN_struct, prog_fd),
.str = "test={prog_fd=-1, retval=0, data_size_in=0"
- ", data_size_out=0, data_in=0, data_out=0"
+ ", data_size_out=0, data_in=NULL, data_out=NULL"
", repeat=0, duration=0}"
},
{
@@ -594,7 +877,7 @@
{
.data = { .BPF_OBJ_GET_INFO_BY_FD_data = { .bpf_fd = -1 } },
.size = offsetofend(struct BPF_OBJ_GET_INFO_BY_FD_struct, bpf_fd),
- .str = "info={bpf_fd=-1, info_len=0, info=0}"
+ .str = "info={bpf_fd=-1, info_len=0, info=NULL}"
},
{
.data = { .BPF_OBJ_GET_INFO_BY_FD_data = {
@@ -608,6 +891,194 @@
}
};
+
+static uint32_t prog_load_ids[] = { 0, 1, 0xffffffff, 2718281828, };
+uint32_t *prog_load_ids_ptr;
+
+static void
+init_BPF_PROG_QUERY_attr4(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_QUERY_struct *attr = &check->data.BPF_PROG_QUERY_data;
+
+ if (!prog_load_ids_ptr)
+ prog_load_ids_ptr = tail_memdup(prog_load_ids,
+ sizeof(prog_load_ids));
+
+ attr->prog_ids = (uintptr_t) prog_load_ids_ptr;
+ attr->prog_cnt = ARRAY_SIZE(prog_load_ids);
+}
+
+static void
+print_BPF_PROG_QUERY_attr4(const struct bpf_attr_check *check, unsigned long addr)
+{
+ 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
+ ", prog_ids=[0, 1, 4294967295, 2718281828], prog_cnt=4}"
+#else
+ ", prog_ids=%p, prog_cnt=4}", prog_load_ids_ptr
+#endif
+ );
+}
+
+static void
+init_BPF_PROG_QUERY_attr5(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_QUERY_struct *attr = &check->data.BPF_PROG_QUERY_data;
+
+ if (!prog_load_ids_ptr)
+ prog_load_ids_ptr = tail_memdup(prog_load_ids,
+ sizeof(prog_load_ids));
+
+ attr->prog_ids = (uintptr_t) prog_load_ids_ptr;
+ attr->prog_cnt = ARRAY_SIZE(prog_load_ids) + 1;
+}
+
+static void
+print_BPF_PROG_QUERY_attr5(const struct bpf_attr_check *check, unsigned long addr)
+{
+ 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
+ ", prog_ids=[0, 1, 4294967295, 2718281828, ... /* %p */]"
+ ", prog_cnt=5}",
+ prog_load_ids_ptr + ARRAY_SIZE(prog_load_ids)
+#else
+ ", prog_ids=%p, prog_cnt=5}", prog_load_ids_ptr
+#endif
+ );
+}
+
+static struct bpf_attr_check BPF_PROG_QUERY_checks[] = {
+ {
+ .data = { .BPF_PROG_QUERY_data = { .target_fd = -1 } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, target_fd),
+ .str = "query={target_fd=-1"
+ ", attach_type=BPF_CGROUP_INET_INGRESS, query_flags=0"
+ ", attach_flags=0, prog_ids=NULL, prog_cnt=0}",
+ },
+ { /* 1 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 13,
+ .query_flags = 1,
+ .attach_flags = 3,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, attach_flags),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=BPF_CGROUP_INET6_POST_BIND"
+ ", query_flags=BPF_F_QUERY_EFFECTIVE"
+ ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI"
+ ", prog_ids=NULL, prog_cnt=0}",
+ },
+ { /* 2 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 14,
+ .query_flags = 0xfffffffe,
+ .attach_flags = 0xfffffffc,
+ .prog_ids = 0xffffffffffffffffULL,
+ .prog_cnt = 2718281828,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=0xe /* BPF_??? */"
+ ", query_flags=0xfffffffe /* BPF_F_QUERY_??? */"
+ ", attach_flags=0xfffffffc /* BPF_F_??? */"
+ ", prog_ids="
+ BIG_ADDR("0xffffffffffffffff", "0xffffffff")
+ ", prog_cnt=2718281828}",
+ },
+ { /* 3 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ .prog_ids = 0xffffffffffffffffULL,
+ .prog_cnt = 0,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=0xfeedface /* BPF_??? */"
+ ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c"
+ ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc"
+ ", prog_ids=" BIG_ADDR_MAYBE("0xffffffffffffffff") "[]"
+ ", prog_cnt=0}",
+ },
+ { /* 4 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .init_fn = init_BPF_PROG_QUERY_attr4,
+ .print_fn = print_BPF_PROG_QUERY_attr4,
+ },
+ { /* 5 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .init_fn = init_BPF_PROG_QUERY_attr5,
+ .print_fn = print_BPF_PROG_QUERY_attr5,
+ },
+};
+
+
+static void
+init_BPF_RAW_TRACEPOINT_attr2(struct bpf_attr_check *check)
+{
+ /* TODO: test the 128 byte limit */
+ static const char tp_name[] = "0123456789qwertyuiop0123456789qwe";
+
+ struct BPF_RAW_TRACEPOINT_OPEN_struct *attr =
+ &check->data.BPF_RAW_TRACEPOINT_OPEN_data;
+
+ attr->name = (uintptr_t) tp_name;
+}
+
+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}",
+ },
+ { /* 1 */
+ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = {
+ .name = 0xffffffff00000000ULL,
+ .prog_fd = 0xdeadbeef,
+ } },
+ .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct,
+ prog_fd),
+ .str = "raw_tracepoint="
+ "{name=" BIG_ADDR("0xffffffff00000000", "NULL")
+ ", prog_fd=-559038737}",
+ },
+ {
+ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = {
+ .prog_fd = 0xdeadbeef,
+ } },
+ .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct,
+ prog_fd),
+ .init_fn = init_BPF_RAW_TRACEPOINT_attr2,
+ .str = "raw_tracepoint="
+ "{name=\"0123456789qwertyuiop0123456789qw\"..."
+ ", prog_fd=-559038737}",
+ }
+};
+
+
#define CHK(cmd_) \
{ \
cmd_, #cmd_, \
@@ -635,6 +1106,8 @@
CHK(BPF_PROG_GET_FD_BY_ID),
CHK(BPF_MAP_GET_FD_BY_ID),
CHK(BPF_OBJ_GET_INFO_BY_FD),
+ CHK(BPF_PROG_QUERY),
+ CHK(BPF_RAW_TRACEPOINT_OPEN),
};
page_size = get_page_size();
diff --git a/tests-m32/btrfs-X.test b/tests-m32/btrfs-X.test
new file mode 100755
index 0000000..c129be9
--- /dev/null
+++ b/tests-m32/btrfs-X.test
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Check verbose xlat decoding of btrfs ioctl
+
+. "${srcdir=.}/init.sh"
+
+check_prog grep
+run_prog ../btrfs -X > /dev/null
+run_strace -a16 -Xverbose -eioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-m32/btrfs-vX.test b/tests-m32/btrfs-vX.test
new file mode 100755
index 0000000..163b29f
--- /dev/null
+++ b/tests-m32/btrfs-vX.test
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Check verbose, verbose xlat decoding of btrfs ioctl
+
+. "${srcdir=.}/init.sh"
+
+check_prog grep
+run_prog ../btrfs -v -X > /dev/null
+run_strace -a16 -Xverbose -veioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-m32/btrfs-vwX.test b/tests-m32/btrfs-vwX.test
new file mode 100755
index 0000000..57c6891
--- /dev/null
+++ b/tests-m32/btrfs-vwX.test
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Check verbose, verbose xlat decoding of btrfs ioctl w/ live ioctls.
+
+# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM
+
+# Typical usage:
+# mkfs.btrfs <dev>
+# mount <dev> /mnt
+# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-vwX"
+# umount /mnt
+
+. "${srcdir=.}/init.sh"
+
+if [ -z "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT not set"
+elif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
+fi
+
+check_prog grep
+run_prog ../btrfs -v -w -X "${BTRFS_MOUNTPOINT}" > /dev/null
+run_strace -a16 -Xverbose -veioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-m32/btrfs-wX.test b/tests-m32/btrfs-wX.test
new file mode 100755
index 0000000..5fb6949
--- /dev/null
+++ b/tests-m32/btrfs-wX.test
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Check verbose xlat decoding of btrfs ioctl w/ live ioctls.
+
+# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM
+
+# Typical usage:
+# mkfs.btrfs <dev>
+# mount <dev> /mnt
+# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-wX"
+# umount /mnt
+
+. "${srcdir=.}/init.sh"
+
+if [ -z "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT not set"
+elif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
+fi
+
+check_prog grep
+run_prog ../btrfs -w -X "${BTRFS_MOUNTPOINT}" > /dev/null
+run_strace -a16 -Xverbose -eioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-m32/btrfs.c b/tests-m32/btrfs.c
index 415f692..b44bc87 100644
--- a/tests-m32/btrfs.c
+++ b/tests-m32/btrfs.c
@@ -13,6 +13,7 @@
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <sys/sysmacros.h>
#include <sys/vfs.h>
#include <linux/fs.h>
#include <linux/btrfs.h>
@@ -23,6 +24,7 @@
#include "xlat/btrfs_balance_flags.h"
#include "xlat/btrfs_balance_state.h"
#include "xlat/btrfs_compress_types.h"
+#include "xlat/btrfs_cont_reading_from_srcdev_mode.h"
#include "xlat/btrfs_defrag_flags.h"
#include "xlat/btrfs_dev_stats_values.h"
#include "xlat/btrfs_dev_stats_flags.h"
@@ -62,6 +64,11 @@
static int btrfs_test_dir_fd;
static bool verbose;
static bool write_ok;
+static bool verbose_xlat;
+
+static const char *path;
+static const char dir_name_fmt[] = "strace-test-%d";
+static char dir_name[sizeof(dir_name_fmt) + sizeof(int) * 3];
const unsigned char uuid_reference[BTRFS_UUID_SIZE] = {
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
@@ -152,11 +159,61 @@
static const char *
-maybe_print_uint64max(uint64_t val)
+sprint_xlat_(uint32_t val, const char *xlat)
{
- if (val == UINT64_MAX)
- return " /* UINT64_MAX */";
- return "";
+ static char str[256];
+ int ret;
+
+ if (verbose_xlat) {
+ ret = snprintf(str, sizeof(str), "%#x /* %s */", val, xlat);
+
+ if (ret < 0)
+ perror_msg_and_fail("sprint_ioc(%#x, %s)", val, xlat);
+ if ((unsigned) ret >= sizeof(str))
+ error_msg_and_fail("sprint_ioc(%#x, %s): buffer "
+ "overflow", val, xlat);
+
+ return str;
+ }
+
+ return xlat;
+}
+
+#define ioc(x_) sprint_xlat_(x_, #x_)
+
+void
+prfl_btrfs(const struct xlat *xlat, const unsigned long long val,
+ const char *str)
+{
+ if (verbose_xlat && val)
+ printf("%#llx /* ", val);
+ printflags(xlat, val, str);
+ if (verbose_xlat && val)
+ printf(" */");
+}
+
+void
+prxval_btrfs(const struct xlat *xlat, const unsigned long long val,
+ const char *str, bool known)
+{
+ if (verbose_xlat && known)
+ printf("%#llx /* ", val);
+ printxval(xlat, val, str);
+ if (verbose_xlat && known)
+ printf(" */");
+}
+
+static void
+print_uint64(const char *prefix, uint64_t val)
+{
+ if (val == UINT64_MAX) {
+ if (verbose_xlat)
+ printf("%s%" PRIu64 " /* UINT64_MAX */", prefix, val);
+ else
+ printf("%sUINT64_MAX", prefix);
+ } else {
+ printf("%s%" PRIu64, prefix, val);
+ }
}
/* takes highest valid flag bit */
@@ -182,10 +239,10 @@
btrfs_test_trans_ioctls(void)
{
ioctl(-1, BTRFS_IOC_TRANS_START, NULL);
- printf("ioctl(-1, BTRFS_IOC_TRANS_START) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_TRANS_START));
ioctl(-1, BTRFS_IOC_TRANS_END, NULL);
- printf("ioctl(-1, BTRFS_IOC_TRANS_END) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_TRANS_END));
}
/*
@@ -201,14 +258,15 @@
uint64_t u64val = 0xdeadbeefbadc0dedULL;
ioctl(-1, BTRFS_IOC_SYNC, NULL);
- printf("ioctl(-1, BTRFS_IOC_SYNC) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SYNC));
ioctl(-1, BTRFS_IOC_WAIT_SYNC, NULL);
- printf("ioctl(-1, BTRFS_IOC_WAIT_SYNC, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_WAIT_SYNC));
ioctl(-1, BTRFS_IOC_WAIT_SYNC, &u64val);
- printf("ioctl(-1, BTRFS_IOC_WAIT_SYNC, [%" PRIu64
- "]) = -1 EBADF (%m)\n", u64val);
+ printf("ioctl(-1, %s, [%" PRIu64 "]) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_WAIT_SYNC), u64val);
/*
* The live test of BTRFS_IOC_SYNC happens as a part of the test
@@ -220,24 +278,24 @@
btrfs_print_qgroup_inherit(struct btrfs_qgroup_inherit *inherit)
{
printf("{flags=");
- printflags(btrfs_qgroup_inherit_flags, inherit->flags,
+ prfl_btrfs(btrfs_qgroup_inherit_flags, inherit->flags,
"BTRFS_QGROUP_INHERIT_???");
printf(", num_qgroups=%" PRI__u64
", num_ref_copies=%" PRI__u64
", num_excl_copies=%" PRI__u64 ", lim={flags=",
inherit->num_qgroups, inherit->num_ref_copies,
inherit->num_excl_copies);
- printflags(btrfs_qgroup_limit_flags,
+ prfl_btrfs(btrfs_qgroup_limit_flags,
inherit->lim.flags,
"BTRFS_QGROUP_LIMIT_???");
printf(", max_rfer=%" PRI__u64 ", max_excl=%" PRI__u64
", rsv_rfer=%" PRI__u64 ", rsv_excl=%" PRI__u64
- "}, qgroups=",
+ "}, ",
inherit->lim.max_rfer, inherit->lim.max_excl,
inherit->lim.rsv_rfer, inherit->lim.rsv_excl);
if (verbose) {
unsigned int i;
- printf("[");
+ printf("qgroups=[");
for (i = 0; i < inherit->num_qgroups; i++) {
if (i > 0)
printf(", ");
@@ -254,7 +312,7 @@
btrfs_print_vol_args_v2(struct btrfs_ioctl_vol_args_v2 *args, int print_qgroups)
{
printf("{fd=%d, flags=", (int) args->fd);
- printflags(btrfs_snap_flags_v2, args->flags, "BTRFS_SUBVOL_???");
+ prfl_btrfs(btrfs_snap_flags_v2, args->flags, "BTRFS_SUBVOL_???");
if (args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
printf(", size=%" PRI__u64 ", qgroup_inherit=", args->size);
@@ -302,61 +360,64 @@
strcpy(vol_args.name, subvol_name);
ioctl(-1, BTRFS_IOC_SNAP_CREATE, NULL);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE));
ioctl(-1, BTRFS_IOC_SNAP_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE, "
- "{fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, "
- "{fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_DESTROY,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_DESTROY), vol_args.name);
strncpy(vol_args.name, long_subvol_name, BTRFS_PATH_NAME_MAX);
ioctl(-1, BTRFS_IOC_SNAP_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_DESTROY,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_DESTROY), vol_args.name);
long_subvol_name = realloc(long_subvol_name, BTRFS_SUBVOL_NAME_MAX);
if (!long_subvol_name)
perror_msg_and_fail("realloc failed");
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE_V2));
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
strcpy(vol_args_v2.name, subvol_name);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
strncpy(vol_args_v2.name, long_subvol_name, BTRFS_SUBVOL_NAME_MAX);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
@@ -364,12 +425,12 @@
strcpy(vol_args_v2.name, subvol_name);
vol_args_v2.qgroup_inherit = bad_pointer;
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 0);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 0);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
@@ -394,31 +455,33 @@
inherit->lim.rsv_excl = u64val;
vol_args_v2.qgroup_inherit = inherit;
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFAULT_SUBVOL));
ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, &u64val);
- printf("ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, [%"
- PRIu64 "]) = -1 EBADF (%m)\n", u64val);
+ printf("ioctl(-1, %s, [%" PRIu64 "]) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFAULT_SUBVOL), u64val);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_SETFLAGS, ");
- printflags(btrfs_snap_flags_v2, vol_args_v2.flags,
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_SETFLAGS));
+ prfl_btrfs(btrfs_snap_flags_v2, vol_args_v2.flags,
"BTRFS_SUBVOL_???");
ioctl(-1, BTRFS_IOC_SUBVOL_SETFLAGS, &vol_args_v2.flags);
printf(") = -1 EBADF (%m)\n");
if (write_ok) {
struct btrfs_ioctl_vol_args_v2 args_passed;
+ long ret;
/*
* Returns transid if flags & BTRFS_SUBVOL_CREATE_ASYNC
* - BTRFS_IOC_SNAP_CREATE_V2
@@ -432,11 +495,14 @@
vol_args_v2.size = 0;
vol_args_v2.qgroup_inherit = NULL;
args_passed = vol_args_v2;
- printf("ioctl(%d, BTRFS_IOC_SUBVOL_CREATE_V2, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
- ioctl(btrfs_test_dir_fd, BTRFS_IOC_SUBVOL_CREATE_V2,
+ ret = ioctl(btrfs_test_dir_fd, BTRFS_IOC_SUBVOL_CREATE_V2,
&args_passed);
+ if (ret < 0)
+ perror_msg_and_fail("ioctl(BTRFS_IOC_SUBVOL_CREATE_V2) "
+ "failed");
printf(" => {transid=%" PRI__u64 "}) = 0\n",
args_passed.transid);
@@ -448,8 +514,8 @@
strncpy(vol_args_v2.name, long_subvol_name, BTRFS_NAME_LEN);
vol_args_v2.fd = subvolfd;
args_passed = vol_args_v2;
- printf("ioctl(%d, BTRFS_IOC_SNAP_CREATE_V2, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&args_passed, 1);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_CREATE_V2,
&args_passed);
@@ -460,15 +526,15 @@
strncpy(vol_args.name, long_subvol_name, 255);
vol_args.name[255] = 0;
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(%d, BTRFS_IOC_SNAP_DESTROY, "
- "{fd=%d, name=\"%.*s\"}) = 0\n",
- btrfs_test_dir_fd, (int) vol_args.fd, 255, long_subvol_name);
+ printf("ioctl(%d, %s, {fd=%d, name=\"%.*s\"}) = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_DESTROY),
+ (int) vol_args.fd, 255, long_subvol_name);
strcpy(vol_args.name, subvol_name);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(%d, BTRFS_IOC_SNAP_DESTROY, "
- "{fd=%d, name=\"%s\"}) = 0\n",
- btrfs_test_dir_fd, (int) vol_args.fd, subvol_name);
+ printf("ioctl(%d, %s, {fd=%d, name=\"%s\"}) = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_DESTROY),
+ (int) vol_args.fd, subvol_name);
close(subvolfd);
}
@@ -479,19 +545,18 @@
btrfs_print_balance_args(struct btrfs_balance_args *args)
{
printf("{profiles=");
- printflags(btrfs_space_info_flags, args->profiles,
+ prfl_btrfs(btrfs_space_info_flags, args->profiles,
"BTRFS_BLOCK_GROUP_???");
- printf(", usage=%"PRI__u64 "%s, devid=%"PRI__u64 "%s, pstart=%"PRI__u64
- "%s, pend=%"PRI__u64 "%s, vstart=%"PRI__u64 "%s, vend=%"PRI__u64
- "%s, target=%"PRI__u64 "%s, flags=",
- args->usage, maybe_print_uint64max(args->usage),
- args->devid, maybe_print_uint64max(args->devid),
- args->pstart, maybe_print_uint64max(args->pstart),
- args->pend, maybe_print_uint64max(args->pend),
- args->vstart, maybe_print_uint64max(args->vstart),
- args->vend, maybe_print_uint64max(args->vend),
- args->target, maybe_print_uint64max(args->target));
- printflags(btrfs_balance_args, args->flags, "BTRFS_BALANCE_ARGS_???");
+ print_uint64(", usage=", args->usage);
+ printf(", devid=makedev(%u, %u)",
+ major(args->devid), minor(args->devid));
+ print_uint64(", pstart=", args->pstart);
+ print_uint64(", pend=", args->pend);
+ print_uint64(", vstart=", args->vstart);
+ print_uint64(", vend=", args->vend);
+ print_uint64(", target=", args->target);
+ printf(", flags=");
+ prfl_btrfs(btrfs_balance_args, args->flags, "BTRFS_BALANCE_ARGS_???");
printf("}");
}
@@ -531,25 +596,31 @@
struct btrfs_ioctl_vol_args vol_args = {};
ioctl(-1, BTRFS_IOC_BALANCE_CTL, 1);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_CTL, "
- "BTRFS_BALANCE_CTL_PAUSE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, %sBTRFS_BALANCE_CTL_PAUSE%s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_CTL),
+ verbose_xlat ? "0x1 /* " : "",
+ verbose_xlat ? " */" : "");
ioctl(-1, BTRFS_IOC_BALANCE_CTL, 2);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_CTL, "
- "BTRFS_BALANCE_CTL_CANCEL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "%sBTRFS_BALANCE_CTL_CANCEL%s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_CTL),
+ verbose_xlat ? "0x2 /* " : "",
+ verbose_xlat ? " */" : "");
ioctl(-1, BTRFS_IOC_BALANCE, NULL);
- printf("ioctl(-1, BTRFS_IOC_BALANCE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_BALANCE));
ioctl(-1, BTRFS_IOC_BALANCE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_BALANCE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_BALANCE));
/* struct btrfs_ioctl_balance_args */
ioctl(-1, BTRFS_IOC_BALANCE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_V2));
- printf("ioctl(-1, BTRFS_IOC_BALANCE_V2, {flags=");
- printflags(btrfs_balance_flags, args.flags, "BTRFS_BALANCE_???");
+ printf("ioctl(-1, %s, {flags=", ioc(BTRFS_IOC_BALANCE_V2));
+ prfl_btrfs(btrfs_balance_flags, args.flags, "BTRFS_BALANCE_???");
printf(", data=");
btrfs_print_balance_args(&args.data);
printf(", meta=");
@@ -560,6 +631,8 @@
printf("}) = -1 EBADF (%m)\n");
if (write_ok) {
+ long ret;
+
args.flags = BTRFS_BALANCE_DATA | BTRFS_BALANCE_METADATA |
BTRFS_BALANCE_SYSTEM;
args.data.flags = 0;
@@ -568,10 +641,18 @@
args.meta.profiles = 0;
args.sys.flags = 0;
args.sys.profiles = 0;
- printf("ioctl(%d, BTRFS_IOC_BALANCE_V2, {flags=",
- btrfs_test_dir_fd);
- printflags(btrfs_balance_flags, args.flags,
+ /*
+ * We should keep args the same for data in meta in case
+ * volume-under-tests uses mixed groups data and metadata.
+ */
+ args.meta.pend = -1ULL;
+ args.meta.vend = -1ULL;
+
+ printf("ioctl(%d, %s, {flags=",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_BALANCE_V2));
+
+ prfl_btrfs(btrfs_balance_flags, args.flags,
"BTRFS_BALANCE_???");
printf(", data=");
btrfs_print_balance_args(&args.data);
@@ -579,20 +660,24 @@
btrfs_print_balance_args(&args.meta);
printf(", sys=");
btrfs_print_balance_args(&args.sys);
- ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args);
- printf("} => {flags=");
- printflags(btrfs_balance_flags, args.flags,
- "BTRFS_BALANCE_???");
- printf(", state=");
- printflags(btrfs_balance_state, args.state,
- "BTRFS_BALANCE_STATE_???");
- printf(", data=");
- btrfs_print_balance_args(&args.data);
- printf(", meta=");
- btrfs_print_balance_args(&args.meta);
- printf(", sys=");
- btrfs_print_balance_args(&args.sys);
- printf("}) = 0\n");
+ ret = ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args);
+ if (ret < 0) {
+ printf("}) = %s\n", sprintrc(ret));
+ } else {
+ printf("} => {flags=");
+ prfl_btrfs(btrfs_balance_flags, args.flags,
+ "BTRFS_BALANCE_???");
+ printf(", state=");
+ prfl_btrfs(btrfs_balance_state, args.state,
+ "BTRFS_BALANCE_STATE_???");
+ printf(", data=");
+ btrfs_print_balance_args(&args.data);
+ printf(", meta=");
+ btrfs_print_balance_args(&args.meta);
+ printf(", sys=");
+ btrfs_print_balance_args(&args.sys);
+ printf("}) = %ld\n", ret);
+ }
}
}
@@ -615,38 +700,35 @@
};
ioctl(-1, BTRFS_IOC_RESIZE, NULL);
- printf("ioctl(-1, BTRFS_IOC_RESIZE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_RESIZE));
strcpy(args.name, devid);
ioctl(-1, BTRFS_IOC_RESIZE, &args);
- printf("ioctl(-1, BTRFS_IOC_RESIZE, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_RESIZE), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_SCAN_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCAN_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCAN_DEV));
strcpy(args.name, devname);
ioctl(-1, BTRFS_IOC_SCAN_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_SCAN_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCAN_DEV), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_ADD_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_ADD_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_ADD_DEV));
ioctl(-1, BTRFS_IOC_ADD_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_ADD_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_ADD_DEV), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_RM_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_RM_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_RM_DEV));
ioctl(-1, BTRFS_IOC_RM_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_RM_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_RM_DEV), (int) args.fd, args.name);
}
@@ -667,17 +749,21 @@
};
ioctl(-1, BTRFS_IOC_CLONE, clone_fd);
- printf("ioctl(-1, BTRFS_IOC_CLONE or FICLONE, %x) = -1 EBADF (%m)\n",
- clone_fd);
+ printf("ioctl(-1, %s, %x) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE, "BTRFS_IOC_CLONE or FICLONE"),
+ clone_fd);
ioctl(-1, BTRFS_IOC_CLONE_RANGE, NULL);
- printf("ioctl(-1, BTRFS_IOC_CLONE_RANGE or FICLONERANGE, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE_RANGE,
+ "BTRFS_IOC_CLONE_RANGE or FICLONERANGE"));
ioctl(-1, BTRFS_IOC_CLONE_RANGE, &args);
- printf("ioctl(-1, BTRFS_IOC_CLONE_RANGE or FICLONERANGE, "
+ printf("ioctl(-1, %s, "
"{src_fd=%d, src_offset=%" PRI__u64 ", src_length=%" PRI__u64
", dest_offset=%" PRI__u64 "}) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE_RANGE,
+ "BTRFS_IOC_CLONE_RANGE or FICLONERANGE"),
(int) args.src_fd, args.src_offset, args.src_length,
args.dest_offset);
}
@@ -686,16 +772,17 @@
#define BTRFS_INVALID_COMPRESS (BTRFS_COMPRESS_TYPES + 1)
static void
-btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args)
+btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args,
+ bool compress_type_known)
{
- printf("{start=%" PRIu64 ", len=%" PRIu64 "%s, flags=",
- (uint64_t) args->start, (uint64_t) args->len,
- maybe_print_uint64max(args->len));
+ printf("{start=%" PRIu64, (uint64_t) args->start);
+ print_uint64(", len=", args->len);
- printflags(btrfs_defrag_flags, args->flags, "BTRFS_DEFRAG_RANGE_???");
+ printf(", flags=");
+ prfl_btrfs(btrfs_defrag_flags, args->flags, "BTRFS_DEFRAG_RANGE_???");
printf(", extent_thresh=%u, compress_type=", args->extent_thresh);
- printxval(btrfs_compress_types, args->compress_type,
- "BTRFS_COMPRESS_???");
+ prxval_btrfs(btrfs_compress_types, args->compress_type,
+ "BTRFS_COMPRESS_???", compress_type_known);
printf("}");
}
@@ -721,29 +808,30 @@
* actually consume it.
*/
ioctl(-1, BTRFS_IOC_DEFRAG, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEFRAG));
ioctl(-1, BTRFS_IOC_DEFRAG, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEFRAG));
/* struct btrfs_ioctl_defrag_range_args */
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFRAG_RANGE));
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, true);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
args.compress_type = BTRFS_INVALID_COMPRESS;
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, false);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
args.len--;
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, false);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
}
@@ -761,18 +849,28 @@
btrfs_print_objectid(uint64_t objectid)
{
const char *str = xlookup(btrfs_tree_objectids, objectid);
- printf("%" PRIu64, objectid);
- if (str)
- printf(" /* %s */", str);
+ if (str) {
+ if (verbose_xlat)
+ printf("%" PRIu64 " /* %s */", objectid, str);
+ else
+ printf("%s", str);
+ } else {
+ printf("%" PRIu64, objectid);
+ }
}
static void
btrfs_print_key_type(uint32_t type)
{
const char *str = xlookup(btrfs_key_types, type);
- printf("%u", type);
- if (str)
- printf(" /* %s */", str);
+ if (str) {
+ if (verbose_xlat)
+ printf("%u /* %s */", type, str);
+ else
+ printf("%s", str);
+ } else {
+ printf("%u", type);
+ }
}
static void
@@ -788,18 +886,10 @@
printf(", max_objectid=");
btrfs_print_objectid(key->max_objectid);
}
- if (key->min_offset)
- printf(", min_offset=%" PRI__u64 "%s",
- key->min_offset, maybe_print_uint64max(key->min_offset));
- if (key->max_offset)
- printf(", max_offset=%" PRI__u64 "%s",
- key->max_offset, maybe_print_uint64max(key->max_offset));
- if (key->min_transid)
- printf(", min_transid=%" PRI__u64 "%s", key->min_transid,
- maybe_print_uint64max(key->min_transid));
- if (key->max_transid)
- printf(", max_transid=%" PRI__u64 "%s", key->max_transid,
- maybe_print_uint64max(key->max_transid));
+ print_uint64(", min_offset=", key->min_offset);
+ print_uint64(", max_offset=", key->max_offset);
+ print_uint64(", min_transid=", key->min_transid);
+ print_uint64(", max_transid=", key->max_transid);
printf(", min_type=");
btrfs_print_key_type(key->min_type);
printf(", max_type=");
@@ -814,7 +904,7 @@
if (verbose) {
uint64_t i;
uint64_t off = 0;
- printf("[");
+ printf("buf=[");
for (i = 0; i < key->nr_items; i++) {
struct btrfs_ioctl_search_header *sh;
sh = (typeof(sh))(buf + off);
@@ -859,19 +949,21 @@
};
ioctl(-1, BTRFS_IOC_TREE_SEARCH, NULL);
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_TREE_SEARCH));
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_TREE_SEARCH_V2));
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -880,13 +972,13 @@
key_reference.min_objectid = 6;
key_reference.max_objectid = 7;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -895,13 +987,13 @@
key_reference.min_offset++;
key_reference.max_offset--;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -910,13 +1002,13 @@
key_reference.min_transid++;
key_reference.max_transid--;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -925,13 +1017,13 @@
key_reference.min_type = 1;
key_reference.max_type = 12;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -950,11 +1042,11 @@
key_reference.max_offset = -1ULL;
search_args.key = key_reference;
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH, &search_args);
- printf("} => {key={nr_items=%u}, buf=",
+ printf("} => {key={nr_items=%u}, ",
search_args.key.nr_items);
btrfs_print_tree_search_buf(&search_args.key, search_args.buf,
sizeof(search_args.buf));
@@ -966,12 +1058,12 @@
args->key = key_reference;
args->buf_size = bufsize;
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH_V2, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&key_reference);
printf(", buf_size=%" PRIu64 "}", (uint64_t) args->buf_size);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH_V2, args);
- printf(" => {key={nr_items=%u}, buf_size=%" PRIu64 ", buf=",
+ printf(" => {key={nr_items=%u}, buf_size=%" PRIu64 ", ",
args->key.nr_items, (uint64_t)args->buf_size);
btrfs_print_tree_search_buf(&args->key, args->buf,
args->buf_size);
@@ -979,8 +1071,8 @@
args->key = key_reference;
args->buf_size = sizeof(struct btrfs_ioctl_search_header);
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH_V2, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&args->key);
printf(", buf_size=%" PRIu64 "}", (uint64_t)args->buf_size);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH_V2, args);
@@ -1003,9 +1095,10 @@
};
ioctl(-1, BTRFS_IOC_INO_LOOKUP, NULL);
- printf("ioctl(-1, BTRFS_IOC_INO_LOOKUP, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_INO_LOOKUP));
- printf("ioctl(-1, BTRFS_IOC_INO_LOOKUP, {treeid=");
+ printf("ioctl(-1, %s, {treeid=", ioc(BTRFS_IOC_INO_LOOKUP));
btrfs_print_objectid(args.treeid);
printf(", objectid=");
btrfs_print_objectid(args.objectid);
@@ -1013,8 +1106,8 @@
printf("}) = -1 EBADF (%m)\n");
if (btrfs_test_root) {
- printf("ioctl(%d, BTRFS_IOC_INO_LOOKUP, {treeid=",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {treeid=",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_INO_LOOKUP));
btrfs_print_objectid(args.treeid);
printf(", objectid=");
btrfs_print_objectid(args.objectid);
@@ -1033,20 +1126,20 @@
struct btrfs_ioctl_space_args args = {};
ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL);
- printf("ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SPACE_INFO));
ioctl(-1, BTRFS_IOC_SPACE_INFO, &args);
- printf("ioctl(-1, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}) = -1 EBADF (%m)\n",
- args.space_slots);
+ printf("ioctl(-1, %s, {space_slots=%" PRI__u64 "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SPACE_INFO), args.space_slots);
if (btrfs_test_root) {
struct btrfs_ioctl_space_args args_passed;
struct btrfs_ioctl_space_args *argsp;
args_passed = args;
- printf("ioctl(%d, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}",
- btrfs_test_dir_fd, args_passed.space_slots);
+ printf("ioctl(%d, %s, {space_slots=%" PRI__u64 "}",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SPACE_INFO),
+ args_passed.space_slots);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SPACE_INFO, &args_passed);
printf(" => {total_spaces=%" PRI__u64 "}) = 0\n",
args_passed.total_spaces);
@@ -1058,22 +1151,22 @@
*argsp = args;
argsp->space_slots = args_passed.total_spaces;
- printf("ioctl(%d, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}",
- btrfs_test_dir_fd, argsp->space_slots);
+ printf("ioctl(%d, %s, {space_slots=%" PRI__u64 "}",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SPACE_INFO),
+ argsp->space_slots);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SPACE_INFO, argsp);
- printf(" => {total_spaces=%" PRI__u64 ", spaces=",
+ printf(" => {total_spaces=%" PRI__u64 ", ",
argsp->total_spaces);
if (verbose) {
unsigned int i;
- printf("[");
+ printf("spaces=[");
for (i = 0; i < argsp->total_spaces; i++) {
struct btrfs_ioctl_space_info *info;
info = &argsp->spaces[i];
if (i)
printf(", ");
printf("{flags=");
- printflags(btrfs_space_info_flags, info->flags,
+ prfl_btrfs(btrfs_space_info_flags, info->flags,
"BTRFS_SPACE_INFO_???");
printf(", total_bytes=%" PRI__u64
", used_bytes=%" PRI__u64 "}",
@@ -1106,25 +1199,28 @@
};
ioctl(-1, BTRFS_IOC_SCRUB, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SCRUB));
ioctl(-1, BTRFS_IOC_SCRUB_CANCEL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_CANCEL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SCRUB_CANCEL));
- printf("ioctl(-1, BTRFS_IOC_SCRUB, {devid=%" PRI__u64 ", start=%"
- PRI__u64 "%s, end=%" PRI__u64 "%s, flags=",
- args.devid, args.start, maybe_print_uint64max(args.start),
- args.end, maybe_print_uint64max(args.end));
- printflags(btrfs_scrub_flags, args.flags, "BTRFS_SCRUB_???");
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)",
+ ioc(BTRFS_IOC_SCRUB), major(args.devid), minor(args.devid));
+ print_uint64(", start=", args.start);
+ print_uint64(", end=", args.end);
+ printf(", flags=");
+ prfl_btrfs(btrfs_scrub_flags, args.flags, "BTRFS_SCRUB_???");
ioctl(-1, BTRFS_IOC_SCRUB, &args);
printf("}) = -1 EBADF (%m)\n");
ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCRUB_PROGRESS));
ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, &args);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, "
- "{devid=%" PRI__u64 "}) = -1 EBADF (%m)\n", args.devid);
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCRUB_PROGRESS),
+ major(args.devid), minor(args.devid));
}
/*
@@ -1140,12 +1236,14 @@
memcpy(&args.uuid, uuid_reference, BTRFS_UUID_SIZE);
ioctl(-1, BTRFS_IOC_DEV_INFO, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEV_INFO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_INFO));
ioctl(-1, BTRFS_IOC_DEV_INFO, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_INFO, "
- "{devid=%" PRI__u64 ", uuid=%s}) = -1 EBADF (%m)\n",
- args.devid, uuid_reference_string);
+ printf("ioctl(-1, %s, "
+ "{devid=makedev(%u, %u), uuid=%s}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_INFO), major(args.devid), minor(args.devid),
+ uuid_reference_string);
}
/*
@@ -1177,32 +1275,32 @@
ioctl(-1, BTRFS_IOC_INO_PATHS, NULL);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_INO_PATHS));
ioctl(-1, BTRFS_IOC_LOGICAL_INO, NULL);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_LOGICAL_INO));
ioctl(-1, BTRFS_IOC_INO_PATHS, &args);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(-1, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=NULL}) = -1 EBADF (%m)\n",
- args.inum, args.size);
+ ioc(BTRFS_IOC_INO_PATHS), args.inum, args.size);
args.fspath = (uintptr_t) buf;
ioctl(-1, BTRFS_IOC_INO_PATHS, &args);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(-1, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=0x%" PRI__x64 "}) = -1 EBADF (%m)\n",
- args.inum, args.size, args.fspath);
+ ioc(BTRFS_IOC_INO_PATHS), args.inum, args.size, args.fspath);
args.fspath = 0;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", reserved=[0xdeadc0defacefeeb"
", 0xdeadc0defacefeec, 0xdeadc0defacefeed]"
", flags=0xdeadc0defacefeee /* BTRFS_LOGICAL_INO_ARGS_??? */"
", inodes=NULL}) = -1 EBADF (%m)\n",
- args.inum, args.size);
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size);
args.fspath = (uintptr_t) buf;
args.reserved[0] = 0;
@@ -1215,11 +1313,13 @@
1;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", reserved=[0, 0xdeadc0defacefeec, 0]"
- ", flags=BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET"
+ ", flags=%sBTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET%s"
", inodes=0x%" PRI__x64 "}) = -1 EBADF (%m)\n",
- args.inum, args.size, args.fspath);
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size,
+ verbose_xlat ? "0x1 /* " : "", verbose_xlat ? " */" : "",
+ args.fspath);
args.reserved[1] = 0;
#ifdef HAVE_BTRFS_IOCTL_LOGICAL_INO_ARGS
@@ -1230,9 +1330,10 @@
0;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", flags=0, inodes=0x%" PRI__x64
- "}) = -1 EBADF (%m)\n", args.inum, args.size, args.fspath);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size, args.fspath);
#ifdef HAVE_LINUX_FIEMAP_H
if (btrfs_test_root) {
@@ -1248,17 +1349,16 @@
perror_msg_and_fail("fstat failed");
args.inum = si.st_ino;
- printf("ioctl(%d, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(%d, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=0x%" PRI__x64 "}",
- btrfs_test_dir_fd, args.inum, args.size,
- args.fspath);
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_INO_PATHS),
+ args.inum, args.size, args.fspath);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_INO_PATHS, &args);
- printf(" => {fspath={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, val=",
+ printf(" => {fspath={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, ",
data->bytes_left, data->bytes_missing, data->elem_cnt,
data->elem_missed);
if (verbose) {
- printf("[\"strace-test\"]");
+ printf("val=[\"%s\"]", dir_name);
} else
printf("...");
printf("}}) = 0\n");
@@ -1280,7 +1380,7 @@
*/
fsync(fd);
ioctl(fd, BTRFS_IOC_SYNC, NULL);
- printf("ioctl(%d, BTRFS_IOC_SYNC) = 0\n", fd);
+ printf("ioctl(%d, %s) = 0\n", fd, ioc(BTRFS_IOC_SYNC));
size = sizeof(*fiemap) + 2 * sizeof(fiemap->fm_extents[0]);
fiemap = malloc(size);
@@ -1292,18 +1392,19 @@
fiemap->fm_extent_count = 2;
/* This is also a live test for FIEMAP */
- printf("ioctl(%d, FS_IOC_FIEMAP, {fm_start=%" PRI__u64
+ printf("ioctl(%d, %s, {fm_start=%" PRI__u64
", fm_length=%" PRI__u64 ", fm_flags=",
- fd, fiemap->fm_start, fiemap->fm_length);
- printflags(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
+ fd, ioc(FS_IOC_FIEMAP),
+ fiemap->fm_start, fiemap->fm_length);
+ prfl_btrfs(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
printf(", fm_extent_count=%u}", fiemap->fm_extent_count);
ioctl(fd, FS_IOC_FIEMAP, fiemap);
printf(" => {fm_flags=");
- printflags(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
- printf(", fm_mapped_extents=%u, fm_extents=",
+ prfl_btrfs(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
+ printf(", fm_mapped_extents=%u, ",
fiemap->fm_mapped_extents);
if (verbose) {
- printf("[");
+ printf("fm_extents=[");
unsigned int i;
for (i = 0; i < fiemap->fm_mapped_extents; i++) {
struct fiemap_extent *fe;
@@ -1316,7 +1417,7 @@
", ",
fe->fe_logical, fe->fe_physical,
fe->fe_length);
- printflags(fiemap_extent_flags, fe->fe_flags,
+ prfl_btrfs(fiemap_extent_flags, fe->fe_flags,
"FIEMAP_EXTENT_???");
printf("}");
}
@@ -1326,15 +1427,16 @@
printf("}) = 0\n");
args.inum = fiemap->fm_extents[0].fe_physical;
- printf("ioctl(%d, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(%d, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", flags=0, inodes=0x%" PRI__x64 "}",
- fd, args.inum, args.size, args.fspath);
+ fd, ioc(BTRFS_IOC_LOGICAL_INO),
+ args.inum, args.size, args.fspath);
ioctl(fd, BTRFS_IOC_LOGICAL_INO, &args);
- printf(" => {inodes={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, val=",
+ printf(" => {inodes={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, ",
data->bytes_left, data->bytes_missing, data->elem_cnt,
data->elem_missed);
if (verbose) {
- printf("[{inum=%llu, offset=0, root=5}]",
+ printf("val=[{inum=%llu, offset=0, root=5}]",
(unsigned long long) si.st_ino);
} else
printf("...");
@@ -1359,18 +1461,23 @@
.nsec = 12345,
},
};
+ int saved_errno;
+
memcpy(&args.uuid, uuid_reference, BTRFS_UUID_SIZE);
ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_RECEIVED_SUBVOL));
ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, &args);
- printf("ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, "
- "{uuid=%s, stransid=%" PRI__u64 ", stime=%" PRI__u64
- ".%u, flags=0}) = -1 EBADF (%m)\n",
- uuid_reference_string, args.stransid, args.stime.sec,
- args.stime.nsec);
+ saved_errno = errno;
+ printf("ioctl(-1, %s, {uuid=%s, stransid=%" PRI__u64
+ ", stime={sec=%" PRI__u64 ", nsec=%u}",
+ ioc(BTRFS_IOC_SET_RECEIVED_SUBVOL), uuid_reference_string,
+ args.stransid, args.stime.sec, args.stime.nsec);
+ print_time_t_nsec(args.stime.sec, args.stime.nsec, true);
+ errno = saved_errno;
+ printf(", flags=0}) = -1 EBADF (%m)\n");
}
/*
@@ -1388,29 +1495,25 @@
};
ioctl(-1, BTRFS_IOC_SEND, NULL);
- printf("ioctl(-1, BTRFS_IOC_SEND, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SEND));
- printf("ioctl(-1, BTRFS_IOC_SEND, "
- "{send_fd=%d, clone_sources_count=%" PRI__u64
- ", clone_sources=",
+ printf("ioctl(-1, %s, {send_fd=%d, clone_sources_count=%" PRI__u64
+ ", clone_sources=NULL",
+ ioc(BTRFS_IOC_SEND),
(int) args.send_fd, args.clone_sources_count);
- if (verbose)
- printf("NULL");
- else
- printf("...");
printf(", parent_root=");
btrfs_print_objectid(args.parent_root);
printf(", flags=");
- printflags(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
+ prfl_btrfs(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
ioctl(-1, BTRFS_IOC_SEND, &args);
printf("}) = -1 EBADF (%m)\n");
args.clone_sources_count = 2;
args.clone_sources = (__u64 *) (void *) u64_array;
- printf("ioctl(-1, BTRFS_IOC_SEND, "
- "{send_fd=%d, clone_sources_count=%" PRI__u64
+ printf("ioctl(-1, %s, {send_fd=%d, clone_sources_count=%" PRI__u64
", clone_sources=",
+ ioc(BTRFS_IOC_SEND),
(int) args.send_fd, args.clone_sources_count);
if (verbose) {
printf("[");
@@ -1419,11 +1522,11 @@
btrfs_print_objectid(u64_array[1]);
printf("]");
} else
- printf("...");
+ printf("%p", args.clone_sources);
printf(", parent_root=");
btrfs_print_objectid(args.parent_root);
printf(", flags=");
- printflags(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
+ prfl_btrfs(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
ioctl(-1, BTRFS_IOC_SEND, &args);
printf("}) = -1 EBADF (%m)\n");
}
@@ -1440,26 +1543,37 @@
};
ioctl(-1, BTRFS_IOC_QUOTA_CTL, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL));
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_ENABLE}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_QUOTA_CTL_ENABLE%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x1 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 2;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_DISABLE}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_QUOTA_CTL_DISABLE%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x2 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 3;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_RESCAN__NOTUSED}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "{cmd=%sBTRFS_QUOTA_CTL_RESCAN__NOTUSED%s}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x3 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 4;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "0x4 /* BTRFS_QUOTA_CTL_??? */}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "{cmd=0x4 /* BTRFS_QUOTA_CTL_??? */}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL));
}
/*
@@ -1476,12 +1590,14 @@
};
ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, NULL);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_ASSIGN));
ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, &args);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, "
+ printf("ioctl(-1, %s, "
"{assign=%" PRI__u64 ", src=%" PRI__u64 ", dst=%" PRI__u64
- "}) = -1 EBADF (%m)\n", args.assign, args.src, args.dst);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_ASSIGN), args.assign, args.src, args.dst);
}
/*
@@ -1497,12 +1613,13 @@
};
ioctl(-1, BTRFS_IOC_QGROUP_CREATE, NULL);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_CREATE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_QGROUP_CREATE));
ioctl(-1, BTRFS_IOC_QGROUP_CREATE, &args);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_CREATE, "
+ printf("ioctl(-1, %s, "
"{create=%" PRI__u64 ", qgroupid=%" PRI__u64
- "}) = -1 EBADF (%m)\n", args.create, args.qgroupid);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_CREATE), args.create, args.qgroupid);
}
/*
@@ -1519,13 +1636,15 @@
};
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN));
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, "
- "{flags=0}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {flags=0}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN));
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN_WAIT, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN_WAIT) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN_WAIT));
}
@@ -1542,20 +1661,21 @@
char label[BTRFS_LABEL_SIZE] = "btrfs-label";
ioctl(-1, BTRFS_IOC_SET_FSLABEL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_FSLABEL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FSLABEL));
ioctl(-1, BTRFS_IOC_SET_FSLABEL, label);
- printf("ioctl(-1, BTRFS_IOC_SET_FSLABEL, \"%s\") = -1 EBADF (%m)\n",
- label);
+ printf("ioctl(-1, %s, \"%s\") = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FSLABEL), label);
if (write_ok) {
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SET_FSLABEL, label);
- printf("ioctl(%d, BTRFS_IOC_SET_FSLABEL, \"%s\") = 0\n",
- btrfs_test_dir_fd, label);
+ printf("ioctl(%d, %s, \"%s\") = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SET_FSLABEL), label);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_FSLABEL, label);
- printf("ioctl(%d, BTRFS_IOC_GET_FSLABEL, \"%s\") = 0\n",
- btrfs_test_dir_fd, label);
+ printf("ioctl(%d, %s, \"%s\") = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_FSLABEL), label);
}
}
@@ -1573,12 +1693,13 @@
};
ioctl(-1, BTRFS_IOC_GET_DEV_STATS, NULL);
- printf("ioctl(-1, BTRFS_IOC_GET_DEV_STATS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_GET_DEV_STATS));
- printf("ioctl(-1, BTRFS_IOC_GET_DEV_STATS, {devid=%" PRI__u64
- ", nr_items=%" PRI__u64 ", flags=",
- args.devid, args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)"
+ ", nr_items=%" PRI__u64 ", flags=",
+ ioc(BTRFS_IOC_GET_DEV_STATS),
+ major(args.devid), minor(args.devid), args.nr_items);
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
ioctl(-1, BTRFS_IOC_GET_DEV_STATS, &args);
printf("}) = -1 EBADF (%m)\n");
@@ -1586,24 +1707,33 @@
if (write_ok) {
unsigned int i;
args.flags = BTRFS_DEV_STATS_RESET;
- printf("ioctl(%d, BTRFS_IOC_GET_DEV_STATS, {devid=%" PRI__u64
+ printf("ioctl(%d, %s, {devid=makedev(%u, %u)"
", nr_items=%" PRI__u64 ", flags=",
- btrfs_test_dir_fd, args.devid, args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_DEV_STATS),
+ major(args.devid), minor(args.devid), args.nr_items);
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_DEV_STATS, &args);
printf("} => {nr_items=%" PRI__u64 ", flags=",
args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
printf(", [");
for (i = 0; i < args.nr_items; i++) {
const char *name = xlookup(btrfs_dev_stats_values, i);
if (i)
printf(", ");
+
+ if (name) {
+ if (verbose_xlat)
+ printf("[%u /* %s */] = ", i, name);
+ else
+ printf("[%s] = ", name);
+ } else {
+ printf("[%u] = ", i);
+ }
+
printf("%" PRI__u64, args.values[i]);
- if (name)
- printf(" /* %s */", name);
}
printf("]}) = 0\n");
}
@@ -1627,22 +1757,38 @@
/* struct btrfs_ioctl_dev_replace_args */
ioctl(-1, BTRFS_IOC_DEV_REPLACE, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEV_REPLACE));
- ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, "
- "{cmd=BTRFS_IOCTL_DEV_REPLACE_CMD_START, start={srcdevid=%"
- PRI__u64 ", cont_reading_from_srcdev_mode=%" PRI__u64
- ", srcdev_name=\"%s\", tgtdev_name=\"%s\"}}) = -1 EBADF (%m)\n",
- args.start.srcdevid,
- args.start.cont_reading_from_srcdev_mode,
- (char *)args.start.srcdev_name,
- (char *)args.start.tgtdev_name);
+ for (unsigned long i = 0; i < 3; i++) {
+ int saved_errno;
+
+ args.start.cont_reading_from_srcdev_mode = i;
+ ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
+ saved_errno = errno;
+ printf("ioctl(-1, %s, "
+ "{cmd=%sBTRFS_IOCTL_DEV_REPLACE_CMD_START%s"
+ ", start={srcdevid=makedev(%u, %u)"
+ ", cont_reading_from_srcdev_mode=",
+ ioc(BTRFS_IOC_DEV_REPLACE),
+ verbose_xlat ? "0 /* " : "", verbose_xlat ? " */" : "",
+ major(args.start.srcdevid), minor(args.start.srcdevid));
+ prxval_btrfs(btrfs_cont_reading_from_srcdev_mode,
+ args.start.cont_reading_from_srcdev_mode,
+ "BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV"
+ "_MODE_???", i < 2);
+ errno = saved_errno;
+ printf(", srcdev_name=\"%s\", tgtdev_name=\"%s\"}}) "
+ "= -1 EBADF (%m)\n",
+ (char *)args.start.srcdev_name,
+ (char *)args.start.tgtdev_name);
+ }
args.cmd = 1;
ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, "
- "{cmd=BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_IOCTL_DEV_REPLACE_CMD_STATUS%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_REPLACE),
+ verbose_xlat ? "0x1 /* " : "", verbose_xlat ? " */" : "");
}
static void
@@ -1656,13 +1802,16 @@
struct file_dedupe_range *argsp;
ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME, NULL);
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"));
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(-1, %s, "
"{src_offset=%" PRIu64
", src_length=%" PRIu64
", dest_count=%hu, info=[]",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"),
(uint64_t)args.src_offset,
(uint64_t)args.src_length, args.dest_count);
ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME, &args);
@@ -1682,10 +1831,12 @@
argsp->info[2].dest_fd = 2;
argsp->info[2].dest_offset = 20480;
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(-1, %s, "
"{src_offset=%" PRIu64
", src_length=%" PRIu64
", dest_count=%hu, info=",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"),
(int64_t)argsp->src_offset,
(uint64_t)argsp->src_length, argsp->dest_count);
printf("[{dest_fd=%" PRId64 ", dest_offset=%" PRIu64
@@ -1744,9 +1895,12 @@
argsp->info[2].dest_fd = fd2;
argsp->info[2].dest_offset = 20480;
- printf("ioctl(%d, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(%d, %s, "
"{src_offset=%" PRIu64 ", src_length=%" PRIu64
", dest_count=%hu, info=", fd1,
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME"
+ " or FIDEDUPERANGE"),
(uint64_t)argsp->src_offset,
(uint64_t)argsp->src_length, argsp->dest_count);
printf("[{dest_fd=%" PRId64 ", dest_offset=%" PRIu64
@@ -1797,11 +1951,11 @@
"BTRFS_FEATURE_COMPAT_???");
printf(", compat_ro_flags=");
- printflags(btrfs_features_compat_ro, flags->compat_ro_flags,
+ prfl_btrfs(btrfs_features_compat_ro, flags->compat_ro_flags,
"BTRFS_FEATURE_COMPAT_RO_???");
printf(", incompat_flags=");
- printflags(btrfs_features_incompat, flags->incompat_flags,
+ prfl_btrfs(btrfs_features_incompat, flags->incompat_flags,
"BTRFS_FEATURE_INCOMPAT_???");
printf("}");
}
@@ -1831,9 +1985,10 @@
struct btrfs_ioctl_feature_flags supported_features[3];
ioctl(-1, BTRFS_IOC_SET_FEATURES, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_FEATURES, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FEATURES));
- printf("ioctl(-1, BTRFS_IOC_SET_FEATURES, [");
+ printf("ioctl(-1, %s, [", ioc(BTRFS_IOC_SET_FEATURES));
btrfs_print_features(&args[0]);
printf(", ");
btrfs_print_features(&args[1]);
@@ -1841,8 +1996,8 @@
printf("]) = -1 EBADF (%m)\n");
if (btrfs_test_root) {
- printf("ioctl(%d, BTRFS_IOC_GET_FEATURES, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_FEATURES));
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_FEATURES,
&supported_features);
btrfs_print_features(&supported_features[0]);
@@ -1850,8 +2005,9 @@
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_SUPPORTED_FEATURES,
&supported_features);
- printf("ioctl(%d, BTRFS_IOC_GET_SUPPORTED_FEATURES, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd,
+ ioc(BTRFS_IOC_GET_SUPPORTED_FEATURES));
printf("[");
btrfs_print_features(&supported_features[0]);
printf(" /* supported */, ");
@@ -1880,19 +2036,28 @@
unsigned int i;
for (i = 0; i < ARRAY_SIZE(btrfs_read_cmd); ++i) {
ioctl(-1, (unsigned long) btrfs_read_cmd[i].val, 0);
- printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", btrfs_read_cmd[i].str);
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(btrfs_read_cmd[i].val,
+ btrfs_read_cmd[i].str));
}
}
+static void
+rm_test_dir(void)
+{
+ int rootfd = open(path, O_RDONLY|O_DIRECTORY);
+
+ unlinkat(rootfd, dir_name, AT_REMOVEDIR);
+}
+
int
main(int argc, char *argv[])
{
int opt;
int ret;
- const char *path;
- while ((opt = getopt(argc, argv, "wv")) != -1) {
+ while ((opt = getopt(argc, argv, "wvX")) != -1) {
switch (opt) {
case 'v':
/*
@@ -1904,11 +2069,18 @@
case 'w':
write_ok = true;
break;
+ case 'X':
+ verbose_xlat = true;
+ break;
default:
- error_msg_and_fail("usage: btrfs [-v] [-w] [path]");
+ error_msg_and_fail("usage: btrfs [-vwX] [path]");
}
}
+ ret = snprintf(dir_name, sizeof(dir_name), dir_name_fmt, getpid());
+ if (ret < 0)
+ perror_msg_and_fail("snprintf(dir_name)");
+
/*
* This will enable optional tests that require a valid file descriptor
*/
@@ -1930,14 +2102,18 @@
if (rootfd < 0)
perror_msg_and_fail("open(%s) failed", path);
- ret = mkdirat(rootfd, "strace-test", 0755);
+ ret = mkdirat(rootfd, dir_name, 0755);
if (ret < 0 && errno != EEXIST)
- perror_msg_and_fail("mkdirat(strace-test) failed");
+ perror_msg_and_fail("mkdirat(%s) failed", dir_name);
- btrfs_test_dir_fd = openat(rootfd, "strace-test",
+ /* Register removal of the created directory. */
+ if (ret == 0)
+ atexit(rm_test_dir);
+
+ btrfs_test_dir_fd = openat(rootfd, dir_name,
O_RDONLY|O_DIRECTORY);
if (btrfs_test_dir_fd < 0)
- perror_msg_and_fail("openat(strace-test) failed");
+ perror_msg_and_fail("openat(%s) failed", dir_name);
close(rootfd);
} else
write_ok = false;
diff --git a/tests-m32/execve.c b/tests-m32/execve.c
index da3bc52..c1dedfc 100644
--- a/tests-m32/execve.c
+++ b/tests-m32/execve.c
@@ -2,7 +2,7 @@
* This file is part of execve strace test.
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,17 +59,18 @@
execve(FILENAME, tail_argv, tail_envp);
printf("execve(\"%s\""
- ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#if VERBOSE
- ", [\"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#else
", %p /* 5 vars, unterminated */"
#endif
") = -1 ENOENT (%m)\n",
Q_FILENAME, q_argv[0], q_argv[1], q_argv[2],
- argv[3], argv[4], argv[5]
+ argv[3], argv[4], argv[5], (char *) tail_argv + sizeof(argv)
#if VERBOSE
- , q_envp[0], q_envp[1], envp[2], envp[3], envp[4]
+ , q_envp[0], q_envp[1], envp[2], envp[3], envp[4],
+ (char *) tail_envp + sizeof(envp)
#else
, tail_envp
#endif
diff --git a/tests-m32/execveat.c b/tests-m32/execveat.c
index 566a59f..853e26c 100644
--- a/tests-m32/execveat.c
+++ b/tests-m32/execveat.c
@@ -2,7 +2,7 @@
* This file is part of execveat strace test.
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -64,17 +64,18 @@
syscall(__NR_execveat, -100, FILENAME, tail_argv, tail_envp, 0x1100);
printf("execveat(AT_FDCWD, \"%s\""
- ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#if VERBOSE
- ", [\"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#else
", %p /* 5 vars, unterminated */"
#endif
", AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) = -1 %s (%m)\n",
Q_FILENAME, q_argv[0], q_argv[1], q_argv[2],
- argv[3], argv[4], argv[5],
+ argv[3], argv[4], argv[5], (char *) tail_argv + sizeof(argv),
#if VERBOSE
q_envp[0], q_envp[1], envp[2], envp[3], envp[4],
+ (char *) tail_envp + sizeof(envp),
#else
tail_envp,
#endif
diff --git a/tests-m32/fanotify_mark-Xabbrev.c b/tests-m32/fanotify_mark-Xabbrev.c
new file mode 100644
index 0000000..2dc9fa1
--- /dev/null
+++ b/tests-m32/fanotify_mark-Xabbrev.c
@@ -0,0 +1 @@
+#include "fanotify_mark.c"
diff --git a/tests-m32/fanotify_mark-Xabbrev.gen.test b/tests-m32/fanotify_mark-Xabbrev.gen.test
new file mode 100755
index 0000000..86c4034
--- /dev/null
+++ b/tests-m32/fanotify_mark-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xabbrev -e trace=fanotify_mark
diff --git a/tests-m32/fanotify_mark-Xraw.c b/tests-m32/fanotify_mark-Xraw.c
new file mode 100644
index 0000000..f02c886
--- /dev/null
+++ b/tests-m32/fanotify_mark-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "fanotify_mark.c"
diff --git a/tests-m32/fanotify_mark-Xraw.gen.test b/tests-m32/fanotify_mark-Xraw.gen.test
new file mode 100755
index 0000000..5be964d
--- /dev/null
+++ b/tests-m32/fanotify_mark-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xraw -e trace=fanotify_mark
diff --git a/tests-m32/fanotify_mark-Xverbose.c b/tests-m32/fanotify_mark-Xverbose.c
new file mode 100644
index 0000000..b76f46f
--- /dev/null
+++ b/tests-m32/fanotify_mark-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "fanotify_mark.c"
diff --git a/tests-m32/fanotify_mark-Xverbose.gen.test b/tests-m32/fanotify_mark-Xverbose.gen.test
new file mode 100755
index 0000000..ef1a99d
--- /dev/null
+++ b/tests-m32/fanotify_mark-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xverbose -e trace=fanotify_mark
diff --git a/tests-m32/fanotify_mark.c b/tests-m32/fanotify_mark.c
index 11cf7d0..9509b83 100644
--- a/tests-m32/fanotify_mark.c
+++ b/tests-m32/fanotify_mark.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Eugene Syromyatnikov <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,20 @@
# include <unistd.h>
# include <sys/fanotify.h>
+#if XLAT_RAW
+# define str_fan_mark_add "0x1"
+# define str_fan_modify_ondir "0x40000002"
+# define str_at_fdcwd "-100"
+#elif XLAT_VERBOSE
+# define str_fan_mark_add "0x1 /* FAN_MARK_ADD */"
+# define str_fan_modify_ondir "0x40000002 /* FAN_MODIFY|FAN_ONDIR */"
+# define str_at_fdcwd "-100 /* AT_FDCWD */"
+#else
+# define str_fan_mark_add "FAN_MARK_ADD"
+# define str_fan_modify_ondir "FAN_MODIFY|FAN_ONDIR"
+# define str_at_fdcwd "AT_FDCWD"
+#endif
+
/* Performs fanotify_mark call via the syscall interface. */
static void
do_call(kernel_ulong_t fd, kernel_ulong_t flags, const char *flags_str,
@@ -97,26 +111,73 @@
static const struct strval flags[] = {
{ F8ILL_KULONG_MASK, "0" },
{ (kernel_ulong_t) 0xdec0deddefaced00ULL,
- "0xefaced00 /* FAN_MARK_??? */" },
+ "0xefaced00"
+#if !XLAT_RAW
+ " /* FAN_MARK_??? */"
+#endif
+ },
{ (kernel_ulong_t) 0xda7a105700000040ULL,
- "FAN_MARK_IGNORED_SURV_MODIFY" },
+#if XLAT_RAW
+ "0x40"
+#elif XLAT_VERBOSE
+ "0x40 /* FAN_MARK_IGNORED_SURV_MODIFY */"
+#else
+ "FAN_MARK_IGNORED_SURV_MODIFY"
+#endif
+ },
{ (kernel_ulong_t) 0xbadc0deddeadfeedULL,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xdeadfeed"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"FAN_MARK_ADD|FAN_MARK_DONT_FOLLOW|FAN_MARK_ONLYDIR|"
"FAN_MARK_IGNORED_MASK|FAN_MARK_IGNORED_SURV_MODIFY|"
- "FAN_MARK_FLUSH|0xdeadfe00" },
+ "FAN_MARK_FLUSH|0xdeadfe00"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ },
};
static const struct strval64 masks[] = {
{ ARG_ULL_STR(0) },
{ 0xdeadfeedfacebeefULL,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xdeadfeedfacebeef"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"FAN_ACCESS|FAN_MODIFY|FAN_CLOSE_WRITE|FAN_OPEN|"
"FAN_ACCESS_PERM|FAN_ONDIR|FAN_EVENT_ON_CHILD|"
- "0xdeadfeedb2ccbec4" },
- { ARG_ULL_STR(0xffffffffb7fcbfc4) " /* FAN_??? */" },
+ "0xdeadfeedb2ccbec4"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ },
+ { ARG_ULL_STR(0xffffffffb7fcbfc4)
+#if !XLAT_RAW
+ " /* FAN_??? */"
+#endif
+ },
};
static const struct strval dirfds[] = {
{ (kernel_ulong_t) 0xfacefeed00000001ULL, "1" },
- { (kernel_ulong_t) 0xdec0ded0ffffffffULL, "FAN_NOFD" },
- { (kernel_ulong_t) 0xbadfacedffffff9cULL, "AT_FDCWD" },
+ { (kernel_ulong_t) 0xdec0ded0ffffffffULL,
+#if XLAT_RAW
+ "-1"
+#elif XLAT_VERBOSE
+ "-1 /* FAN_NOFD */"
+#else
+ "FAN_NOFD"
+#endif
+ },
+ { (kernel_ulong_t) 0xbadfacedffffff9cULL, str_at_fdcwd },
{ (kernel_ulong_t) 0xdefaced1beeff00dULL, "-1091571699" },
};
static const char str64[] = STR64;
@@ -149,8 +210,9 @@
rc = fanotify_mark(-1, FAN_MARK_ADD, FAN_MODIFY | FAN_ONDIR,
-100, ".");
- printf("fanotify_mark(-1, FAN_MARK_ADD, FAN_MODIFY|FAN_ONDIR"
- ", AT_FDCWD, \".\") = %s\n", sprintrc(rc));
+ printf("fanotify_mark(-1, %s, %s, %s, \".\") = %s\n",
+ str_fan_mark_add, str_fan_modify_ondir, str_at_fdcwd,
+ sprintrc(rc));
for (i = 0; i < ARRAY_SIZE(fds); i++) {
for (j = 0; j < ARRAY_SIZE(flags); j++) {
diff --git a/tests-m32/fcntl-common.c b/tests-m32/fcntl-common.c
new file mode 100644
index 0000000..a35a837
--- /dev/null
+++ b/tests-m32/fcntl-common.c
@@ -0,0 +1,267 @@
+/*
+ * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include "flock.h"
+
+#define FILE_LEN 4096
+
+#define TEST_FLOCK_EINVAL(cmd) test_flock_einval(cmd, #cmd)
+#define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+
+#ifdef HAVE_TYPEOF
+# define TYPEOF_FLOCK_OFF_T typeof(((struct_kernel_flock *) NULL)->l_len)
+#else
+# define TYPEOF_FLOCK_OFF_T off_t
+#endif
+
+static const char *errstr;
+
+static long
+invoke_test_syscall(const unsigned int fd, const unsigned int cmd, void *const p)
+{
+ const kernel_ulong_t kfd = F8ILL_KULONG_MASK | fd;
+ const kernel_ulong_t op = F8ILL_KULONG_MASK | cmd;
+
+ long rc = syscall(TEST_SYSCALL_NR, kfd, op, (uintptr_t) p);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+static void
+test_flock_einval(const int cmd, const char *name)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL;
+ fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+
+ invoke_test_syscall(0, cmd, fl);
+ 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);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, name, bad_addr, errstr);
+}
+
+/*
+ * This function is not declared static to avoid potential
+ * "defined but not used" warning when included by fcntl.c
+ */
+void
+test_flock64_einval(const int cmd, const char *name)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL;
+ fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+
+ invoke_test_syscall(0, cmd, fl);
+ 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);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, name, bad_addr, errstr);
+}
+
+static void
+test_flock(void)
+{
+ TEST_FLOCK_EINVAL(F_SETLK);
+ TEST_FLOCK_EINVAL(F_SETLKW);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_SETLK, fl);
+ 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);
+ if (rc)
+ return;
+
+ invoke_test_syscall(0, F_GETLK, fl);
+ 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);
+ 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);
+}
+
+static void
+test_flock64_ofd(void)
+{
+#if defined F_OFD_GETLK && defined F_OFD_SETLK && defined F_OFD_SETLKW
+ TEST_FLOCK64_EINVAL(F_OFD_SETLK);
+ TEST_FLOCK64_EINVAL(F_OFD_SETLKW);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_OFD_SETLK, fl);
+ 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);
+ if (rc)
+ return;
+
+ invoke_test_syscall(0, F_OFD_GETLK, fl);
+ 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);
+ 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);
+#endif /* F_OFD_GETLK && F_OFD_SETLK && F_OFD_SETLKW */
+}
+
+static void test_flock64_lk64(void);
+
+static void
+test_flock64(void)
+{
+ test_flock64_ofd();
+ test_flock64_lk64();
+}
+
+/*
+ * F_[GS]ETOWN_EX had conflicting values with F_[SG]ETLK64
+ * in kernel revisions v2.6.32-rc1~96..v2.6.32-rc7~23.
+ */
+#undef TEST_F_OWNER_EX
+#if defined F_GETOWN_EX && defined F_SETOWN_EX \
+ && (F_GETOWN_EX != F_SETLK64) && (F_SETOWN_EX != F_GETLK64)
+# define TEST_F_OWNER_EX
+#endif
+
+#ifdef TEST_F_OWNER_EX
+# include "f_owner_ex.h"
+
+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)
+{
+ 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);
+
+ void *bad_addr = (void *) fo + 1;
+ invoke_test_syscall(0, cmd, bad_addr);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, cmd_name, bad_addr, errstr);
+
+ return rc;
+}
+
+static void
+test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name,
+ pid_t pid)
+{
+ long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX),
+ type, type_name, pid);
+ if (!rc)
+ test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX),
+ type, type_name, pid);
+}
+
+static void
+test_f_owner_ex(void)
+{
+ static const struct {
+ int type;
+ const char *type_name;
+ pid_t pid[2];
+ } a[] = {
+ { ARG_STR(F_OWNER_TID), { 1234567890, 20 } },
+ { ARG_STR(F_OWNER_PID), { 1298126790, 30 } },
+ { ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } }
+ };
+
+ 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]);
+ }
+ }
+}
+#endif /* TEST_F_OWNER_EX */
+
+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))
+ perror_msg_and_fail("ftruncate");
+}
+
+int
+main(void)
+{
+ create_sample();
+ test_flock();
+ test_flock64();
+#ifdef TEST_F_OWNER_EX
+ test_f_owner_ex();
+#endif
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-m32/fcntl.c b/tests-m32/fcntl.c
index 4f62ca2..7539f19 100644
--- a/tests-m32/fcntl.c
+++ b/tests-m32/fcntl.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,51 +33,40 @@
# define TEST_SYSCALL_NR __NR_fcntl
# define TEST_SYSCALL_STR "fcntl"
-# include "struct_flock.c"
-
-# define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+# include "fcntl-common.c"
static void
-test_flock64_einval(const int cmd, const char *name)
+test_flock64_undecoded(const int cmd, const char *name)
{
struct_kernel_flock64 fl = {
.l_type = F_RDLCK,
.l_start = 0xdefaced1facefeedULL,
.l_len = 0xdefaced2cafef00dULL
};
- long rc = invoke_test_syscall(cmd, &fl);
+ invoke_test_syscall(0, cmd, &fl);
printf("%s(0, %s, %p) = %s\n",
- TEST_SYSCALL_STR, name, &fl, sprintrc(rc));
+ TEST_SYSCALL_STR, name, &fl, errstr);
}
+#define TEST_FLOCK64_UNDECODED(cmd) test_flock64_undecoded(cmd, #cmd)
+
static void
-test_flock64(void)
+test_flock64_lk64(void)
{
/*
* F_[GS]ETOWN_EX had conflicting values with F_[GS]ETLK64
* in kernel revisions v2.6.32-rc1~96..v2.6.32-rc7~23.
*/
-#if !defined(F_GETOWN_EX) || F_GETOWN_EX != F_SETLK64
- TEST_FLOCK64_EINVAL(F_SETLK64);
-#endif
+# if !defined(F_GETOWN_EX) || F_GETOWN_EX != F_SETLK64
+ TEST_FLOCK64_UNDECODED(F_SETLK64);
+# endif
/* F_GETLK and F_SETLKW64 have conflicting values on mips64 */
-#if !defined(__mips64) || F_GETLK != F_SETLKW64
- TEST_FLOCK64_EINVAL(F_SETLKW64);
-#endif
-#if !defined(F_SETOWN_EX) || F_SETOWN_EX != F_GETLK64
- TEST_FLOCK64_EINVAL(F_GETLK64);
-#endif
-}
-
-int
-main(void)
-{
- create_sample();
- test_flock();
- test_flock64();
-
- puts("+++ exited with 0 +++");
- return 0;
+# if !defined(__mips64) || F_GETLK != F_SETLKW64
+ TEST_FLOCK64_UNDECODED(F_SETLKW64);
+# endif
+# if !defined(F_SETOWN_EX) || F_SETOWN_EX != F_GETLK64
+ TEST_FLOCK64_UNDECODED(F_GETLK64);
+# endif
}
#else
diff --git a/tests-m32/fcntl64.c b/tests-m32/fcntl64.c
index 068956e..f65f7cb 100644
--- a/tests-m32/fcntl64.c
+++ b/tests-m32/fcntl64.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,68 +33,38 @@
# define TEST_SYSCALL_NR __NR_fcntl64
# define TEST_SYSCALL_STR "fcntl64"
-# include "struct_flock.c"
-
-# define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+# include "fcntl-common.c"
static void
-test_flock64_einval(const int cmd, const char *name)
-{
- struct_kernel_flock64 fl = {
- .l_type = F_RDLCK,
- .l_start = 0xdefaced1facefeedULL,
- .l_len = 0xdefaced2cafef00dULL
- };
- long rc = invoke_test_syscall(cmd, &fl);
- 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, sprintrc(rc));
-}
-
-static void
-test_flock64(void)
+test_flock64_lk64(void)
{
TEST_FLOCK64_EINVAL(F_SETLK64);
TEST_FLOCK64_EINVAL(F_SETLKW64);
-# ifdef F_OFD_SETLK
- TEST_FLOCK64_EINVAL(F_OFD_SETLK);
- TEST_FLOCK64_EINVAL(F_OFD_SETLKW);
-# endif
- struct_kernel_flock64 fl = {
- .l_type = F_RDLCK,
- .l_len = FILE_LEN
- };
- long rc = invoke_test_syscall(F_SETLK64, &fl);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_SETLK64, fl);
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, sprintrc(rc));
+ TEST_SYSCALL_STR, FILE_LEN, errstr);
if (rc)
return;
- invoke_test_syscall(F_GETLK64, &fl);
+ invoke_test_syscall(0, F_GETLK64, fl);
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(F_SETLK64, &fl);
- printf("%s(0, F_SETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ invoke_test_syscall(0, F_SETLKW64, fl);
+ 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);
}
-int
-main(void)
-{
- create_sample();
- test_flock();
- test_flock64();
-
- puts("+++ exited with 0 +++");
- return 0;
-}
-
#else
SKIP_MAIN_UNDEFINED("__NR_fcntl64")
diff --git a/tests-m32/gen_tests.am b/tests-m32/gen_tests.am
index 2cd76bc..5db8375 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 alarm.gen.test bpf.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 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 fstat64.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 int_0x80.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_kvm_run.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test kcmp-y.gen.test kern_features.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.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 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 mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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_brport.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-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 osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.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 printstr.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.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 pwritev.gen.test quotactl.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 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 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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test socketcall.gen.test sockopt-sol_netlink.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_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 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-v.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-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 fstat64.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 int_0x80.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_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.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 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 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 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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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-v-none.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.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 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 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 printstr.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.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 pwritev.gen.test quotactl.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 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 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_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 socketcall.gen.test sockopt-sol_netlink.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_x32.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_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 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
$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -28,6 +28,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -37,6 +40,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -124,6 +139,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -316,6 +340,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -334,6 +361,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -376,12 +409,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -400,6 +469,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -463,9 +541,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -484,6 +580,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -610,9 +715,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -685,6 +796,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -727,6 +847,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -1057,9 +1186,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -1141,6 +1288,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.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 a95ff3e..24e0510 100644
--- a/tests-m32/gen_tests.in
+++ b/tests-m32/gen_tests.in
@@ -34,9 +34,14 @@
add_key -a30 -s12
adjtimex -a15
aio -a14 -e trace=io_setup,io_submit,io_getevents,io_cancel,io_destroy
+aio_pgetevents -e trace=io_pgetevents
alarm -a10
bpf -a20
bpf-v -a20 -v -e trace=bpf
+bpf-obj_get_info_by_fd -a20 -y -e trace=bpf
+bpf-obj_get_info_by_fd-v -a20 -y -v -e trace=bpf
+bpf-obj_get_info_by_fd-prog -a20 -y -e trace=bpf
+bpf-obj_get_info_by_fd-prog-v -a20 -y -v -e trace=bpf
btrfs +ioctl.test
chmod -a28
chown -a28
@@ -66,6 +71,9 @@
fallocate -a18
fanotify_init
fanotify_mark -a32
+fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark
+fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark
+fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark
fchdir -a11
fchmod -a15
fchmodat
@@ -130,12 +138,15 @@
ioctl_dm-v +ioctl.test -v -s9
ioctl_evdev +ioctl.test
ioctl_evdev-v +ioctl.test -v
+ioctl_inotify +ioctl.test
ioctl_kvm_run +ioctl.test -a36 -y
ioctl_loop +ioctl.test
ioctl_loop-nv +ioctl.test -a22 -e verbose=none
ioctl_loop-v +ioctl.test -v
ioctl_mtd +ioctl.test
ioctl_nsfs +ioctl.test -esignal=none
+ioctl_perf +ioctl.test
+ioctl_ptp +ioctl.test
ioctl_rtc +ioctl.test
ioctl_rtc-v +ioctl.test -v
ioctl_scsi +ioctl.test
@@ -149,15 +160,30 @@
ioprio -a18 -e trace=ioprio_get,ioprio_set
ip_mreq -e trace=setsockopt
ipc -a19
-ipc_msg +ipc.sh
-ipc_sem +ipc.sh
-ipc_shm +ipc.sh
+ipc_msg +ipc.sh -a26
+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-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-Xraw +ipc.sh -Xraw -a19
+ipc_shm-Xverbose +ipc.sh -Xverbose -a36
kcmp -a22
kcmp-y -a22 -y -e trace=kcmp
kern_features -a16
kexec_file_load -s9
kexec_load -s9
keyctl -a31 -s10
+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
lchown -a30
lchown32 -a32
@@ -179,13 +205,22 @@
mlock -a20 -e trace=mlock,munlock
mlock2
mlockall -a12
+mmap-Xabbrev +mmap.test abbrev
+mmap-Xraw +mmap.test raw 14
+mmap-Xverbose +mmap.test verbose
mmap64 +mmap.test
+mmap64-Xabbrev +mmap.test abbrev
+mmap64-Xraw +mmap.test raw 14
+mmap64-Xverbose +mmap.test verbose
mmsg -e read=0 -e write=1 -e trace=recvmmsg,sendmmsg
mmsg-silent -a25 -e verbose=none -e trace=sendmmsg,recvmmsg
mmsg_name -a25 -e trace=sendmmsg,recvmmsg
mmsg_name-v -v -a25 -e trace=sendmmsg,recvmmsg
modify_ldt -a23
-mount
+mount -a33
+mount-Xabbrev -a33 -e trace=mount -Xabbrev
+mount-Xraw -a33 -e trace=mount -Xraw
+mount-Xverbose -a33 -e trace=mount -Xverbose
move_pages -s3
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
@@ -228,7 +263,9 @@
nlattr_ifaddrlblmsg +netlink_sock_diag.test
nlattr_ifaddrmsg +netlink_sock_diag.test
nlattr_ifinfomsg +netlink_sock_diag.test
+nlattr_ifla_af_spec +netlink_sock_diag.test
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_inet_diag_msg +netlink_sock_diag.test
@@ -253,6 +290,9 @@
old_mmap -a11 -e trace=mmap
old_mmap-P -e trace=mmap -P "/dev/full" 9>>/dev/full
old_mmap-v-none -a11 -e trace=mmap -e verbose=none
+old_mmap-Xabbrev -a11 -e trace=mmap -Xabbrev
+old_mmap-Xraw -a11 -e trace=mmap -Xraw
+old_mmap-Xverbose -a11 -e trace=mmap -Xverbose
oldfstat -a18 -v -P stat.sample
oldlstat -a32 -v -P stat.sample -P /dev/full
oldselect -a13 -e trace=select
@@ -267,6 +307,9 @@
perf_event_open -a1
perf_event_open_nonverbose -a34 -e verbose=none -e trace=perf_event_open
perf_event_open_unabbrev -a1 -v -e trace=perf_event_open
+personality-Xabbrev +personality.test -Xabbrev
+personality-Xraw +personality.test -a15 -Xraw
+personality-Xverbose +personality.test -Xverbose
pipe2 -a15
pkey_alloc -a17
pkey_free -a13
@@ -322,7 +365,7 @@
s390_guarded_storage -a32
s390_guarded_storage-v -e trace=s390_guarded_storage -a32 -v
s390_pci_mmio_read_write -e trace=s390_pci_mmio_read,s390_pci_mmio_write -a30
-s390_runtime_instr -a50
+s390_runtime_instr -a44
s390_sthyi -a47
s390_sthyi-v -e trace=s390_sthyi -a47 -v
sched test_trace_expr times -e/sched
@@ -377,7 +420,13 @@
sigsuspend -a19 -esignal=none
so_linger -e trace=getsockopt,setsockopt
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
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
+sock_filter-v-Xverbose -v -e trace=getsockopt,setsockopt -X verbose
socketcall -a20
sockopt-sol_netlink -e trace=getsockopt,setsockopt
splice
@@ -405,6 +454,12 @@
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
+trace_personality_32 +qualify_personality.sh 32 'getcwd' 'fsync-y'
+trace_personality_64 +qualify_personality.sh 64 'getcwd' 'fsync-y'
+trace_personality_x32 +qualify_personality.sh x32 'getcwd' 'fsync-y'
+trace_personality_regex_32 +qualify_personality.sh 32 '/clock.*' 'times|fcntl.*'
+trace_personality_regex_64 +qualify_personality.sh 64 '/clock.*' 'times|fcntl.*'
+trace_personality_regex_x32 +qualify_personality.sh x32 '/clock.*' 'times|fcntl.*'
trace_question test_trace_expr '' -e?osf_utimes,?/^pkey_.*
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
diff --git a/tests-m32/init.sh b/tests-m32/init.sh
index dffbfce..8861b70 100644
--- a/tests-m32/init.sh
+++ b/tests-m32/init.sh
@@ -1,7 +1,7 @@
#!/bin/sh
#
# Copyright (c) 2011-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2011-2017 The strace developers.
+# Copyright (c) 2011-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -230,6 +230,17 @@
match_diff "$LOG" "$EXP"
}
+# Usage: run_strace_match_grep [args to run_strace]
+run_strace_match_grep()
+{
+ args="$*"
+ [ -n "$args" -a -z "${args##*-e trace=*}" ] ||
+ set -- -e trace="$NAME" "$@"
+ run_prog > /dev/null
+ run_strace "$@" $args > "$EXP"
+ match_grep "$LOG" "$EXP"
+}
+
# Print kernel version code.
# usage: kernel_version_code $(uname -r)
kernel_version_code()
diff --git a/tests-m32/ioctl_evdev.c b/tests-m32/ioctl_evdev.c
index 9d16cec..5eacac0 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,6 +39,13 @@
# include <sys/ioctl.h>
# include <linux/input.h>
+# ifndef EV_SW
+# define EV_SW 5
+# endif
+# ifndef ABS_MT_TOOL_Y
+# define ABS_MT_TOOL_Y 0x3d
+# endif
+
static const unsigned int magic = 0xdeadbeef;
static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL;
@@ -67,12 +74,14 @@
# endif /* VERBOSE */
}
-# define TEST_NULL_ARG(cmd) \
+# define TEST_NULL_ARG_EX(cmd, str) \
do { \
ioctl(-1, cmd, 0); \
- printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", str); \
} while (0)
+# define TEST_NULL_ARG(cmd) TEST_NULL_ARG_EX(cmd, #cmd)
+
int
main(void)
{
@@ -117,14 +126,24 @@
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(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(0x3f), "EVIOCGABS(0x3f /* ABS_??? */)");
+ TEST_NULL_ARG_EX(EVIOCSABS(0x3f), "EVIOCSABS(0x3f /* ABS_??? */)");
+
TEST_NULL_ARG(EVIOCGBIT(EV_SYN, 0));
TEST_NULL_ARG(EVIOCGBIT(EV_KEY, 1));
TEST_NULL_ARG(EVIOCGBIT(EV_REL, 2));
TEST_NULL_ARG(EVIOCGBIT(EV_ABS, 3));
TEST_NULL_ARG(EVIOCGBIT(EV_MSC, 4));
-# ifdef EV_SW
TEST_NULL_ARG(EVIOCGBIT(EV_SW, 5));
-# endif
TEST_NULL_ARG(EVIOCGBIT(EV_LED, 6));
TEST_NULL_ARG(EVIOCGBIT(EV_SND, 7));
TEST_NULL_ARG(EVIOCGBIT(EV_REP, 8));
@@ -132,6 +151,12 @@
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(0x18, 13),
+ "EVIOCGBIT(0x18 /* EV_??? */, 13)");
+ TEST_NULL_ARG_EX(EVIOCGBIT(0x1f, 14),
+ "EVIOCGBIT(0x1f /* EV_??? */, 14)");
+
ioctl(-1, EVIOCGBIT(EV_MAX, 42), 0);
printf("ioctl(-1, EVIOCGBIT(%#x /* EV_??? */, 42), NULL)"
" = -1 EBADF (%m)\n", EV_MAX);
diff --git a/tests-m32/ioctl_inotify.c b/tests-m32/ioctl_inotify.c
new file mode 100644
index 0000000..0650c62
--- /dev/null
+++ b/tests-m32/ioctl_inotify.c
@@ -0,0 +1,81 @@
+/*
+ * This file is part of ioctl_inotify strace test.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <asm/unistd.h>
+#include <linux/ioctl.h>
+
+#ifndef INOTIFY_IOC_SETNEXTWD
+# define INOTIFY_IOC_SETNEXTWD _IOW('I', 0, int32_t)
+#endif
+
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t unknown_inotify_cmd =
+ (kernel_ulong_t) 0xbadc0dedfeed49edULL;
+ static const kernel_ulong_t magic =
+ (kernel_ulong_t) 0xdeadbeefbadc0dedULL;
+
+ /* Unknown inotify commands */
+ sys_ioctl(-1, unknown_inotify_cmd, magic);
+ printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x49, %#x, %#x), "
+ "%#lx) = -1 EBADF (%m)\n",
+ _IOC_DIR((unsigned int) unknown_inotify_cmd) & _IOC_NONE ?
+ "|_IOC_NONE" : "",
+ _IOC_NR((unsigned int) unknown_inotify_cmd),
+ _IOC_SIZE((unsigned int) unknown_inotify_cmd),
+ (unsigned long) magic);
+
+ sys_ioctl(-1, INOTIFY_IOC_SETNEXTWD + 1, magic);
+ printf("ioctl(-1, _IOC(_IOC_WRITE, 0x49, %#x, %#x), %#lx)"
+ " = -1 EBADF (%m)\n",
+ (unsigned int) _IOC_NR(INOTIFY_IOC_SETNEXTWD + 1),
+ (unsigned int) _IOC_SIZE(INOTIFY_IOC_SETNEXTWD + 1),
+ (unsigned long) magic);
+
+ /* INOTIFY_IOC_SETNEXTWD */
+ sys_ioctl(-1, INOTIFY_IOC_SETNEXTWD, magic);
+ printf("ioctl(-1, INOTIFY_IOC_SETNEXTWD, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-m32/ioctl_inotify.gen.test b/tests-m32/ioctl_inotify.gen.test
new file mode 100755
index 0000000..237a98b
--- /dev/null
+++ b/tests-m32/ioctl_inotify.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_inotify +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests-m32/ioctl_kvm_run.c b/tests-m32/ioctl_kvm_run.c
index 1794614..e1bef57 100644
--- a/tests-m32/ioctl_kvm_run.c
+++ b/tests-m32/ioctl_kvm_run.c
@@ -40,6 +40,7 @@
# include <string.h>
# include <sys/ioctl.h>
# include <sys/mman.h>
+# include <unistd.h>
# include <linux/kvm.h>
static int
@@ -56,7 +57,7 @@
static const char dev[] = "/dev/kvm";
static const char vm_dev[] = "anon_inode:kvm-vm";
-static const char vcpu_dev[] = "anon_inode:kvm-vcpu";
+static char vcpu_dev[] = "anon_inode:kvm-vcpu:0";
static size_t page_size;
extern const char code[];
@@ -165,6 +166,23 @@
}
}
+static int
+vcpu_dev_should_have_cpuid(int fd)
+{
+ int r = 0;
+ char *filename = NULL;
+ char buf[sizeof(vcpu_dev)];
+
+ if (asprintf(&filename, "/proc/%d/fd/%d", getpid(), fd) < 0)
+ error_msg_and_fail("asprintf");
+
+ if (readlink(filename, buf, sizeof(buf)) == sizeof(buf) - 1
+ && (memcmp(buf, vcpu_dev, sizeof(buf) - 1) == 0))
+ r = 1;
+ free(filename);
+ return r;
+}
+
int
main(void)
{
@@ -208,6 +226,15 @@
(unsigned long) page_size, (unsigned long) page_size, mem);
int vcpu_fd = KVM_IOCTL(vm_fd, KVM_CREATE_VCPU, NULL);
+ if (!vcpu_dev_should_have_cpuid(vcpu_fd))
+ /*
+ * This is an older kernel that doesn't place a cpuid
+ * at the end of the dentry associated with vcpu_fd.
+ * Trim the cpuid part of vcpu_dev like:
+ * "anon_inode:kvm-vcpu:0" -> "anon_inode:kvm-vcpu"
+ */
+ vcpu_dev[strlen (vcpu_dev) - 2] = '\0';
+
printf("ioctl(%d<%s>, KVM_CREATE_VCPU, 0) = %d<%s>\n",
vm_fd, vm_dev, vcpu_fd, vcpu_dev);
diff --git a/tests-m32/ioctl_loop.c b/tests-m32/ioctl_loop.c
index bafbd37..10b7dc3 100644
--- a/tests-m32/ioctl_loop.c
+++ b/tests-m32/ioctl_loop.c
@@ -34,8 +34,10 @@
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
+#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/sysmacros.h>
+#include <asm/unistd.h>
#include <linux/ioctl.h>
#include <linux/loop.h>
#include "print_fields.h"
@@ -45,6 +47,12 @@
# define ABBREV 0
#endif
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
static void
print_loop_info(struct loop_info * const info, bool print_encrypt,
const char *encrypt_type, const char *encrypt_key,
@@ -178,7 +186,7 @@
TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info64, info64);
/* Unknown loop commands */
- ioctl(-1, unknown_loop_cmd, magic);
+ sys_ioctl(-1, unknown_loop_cmd, magic);
printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x4c, %#x, %#x), "
"%#lx) = -1 EBADF (%m)\n",
_IOC_DIR((unsigned int) unknown_loop_cmd) & _IOC_NONE ?
@@ -187,14 +195,14 @@
_IOC_SIZE((unsigned int) unknown_loop_cmd),
(unsigned long) magic);
- ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic);
+ sys_ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic);
printf("ioctl(-1, _IOC(0, 0x4c, %#x, %#x), %#lx) = "
"-1 EBADF (%m)\n",
_IOC_NR(LOOP_SET_BLOCK_SIZE + 1),
_IOC_SIZE(LOOP_SET_BLOCK_SIZE + 1),
(unsigned long) magic);
- ioctl(-1, LOOP_CTL_GET_FREE + 1, magic);
+ sys_ioctl(-1, LOOP_CTL_GET_FREE + 1, magic);
printf("ioctl(-1, _IOC(0, 0x4c, %#x, %#x), %#lx) = "
"-1 EBADF (%m)\n",
_IOC_NR(LOOP_CTL_GET_FREE + 1),
@@ -202,7 +210,7 @@
(unsigned long) magic);
/* LOOP_SET_FD */
- ioctl(-1, LOOP_SET_FD, magic);
+ sys_ioctl(-1, LOOP_SET_FD, magic);
printf("ioctl(-1, LOOP_SET_FD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
@@ -289,7 +297,7 @@
printf("ioctl(-1, LOOP_GET_STATUS64, %p) = -1 EBADF (%m)\n", info64);
/* LOOP_CHANGE_FD */
- ioctl(-1, LOOP_CHANGE_FD, magic);
+ sys_ioctl(-1, LOOP_CHANGE_FD, magic);
printf("ioctl(-1, LOOP_CHANGE_FD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
@@ -298,22 +306,22 @@
printf("ioctl(-1, LOOP_SET_CAPACITY) = -1 EBADF (%m)\n");
/* LOOP_SET_DIRECT_IO */
- ioctl(-1, LOOP_SET_DIRECT_IO, magic);
+ sys_ioctl(-1, LOOP_SET_DIRECT_IO, magic);
printf("ioctl(-1, LOOP_SET_DIRECT_IO, %lu) = -1 EBADF (%m)\n",
(unsigned long) magic);
/* LOOP_SET_BLOCK_SIZE */
- ioctl(-1, LOOP_SET_BLOCK_SIZE, magic);
+ sys_ioctl(-1, LOOP_SET_BLOCK_SIZE, magic);
printf("ioctl(-1, LOOP_SET_BLOCK_SIZE, %lu) = -1 EBADF (%m)\n",
(unsigned long) magic);
/* LOOP_CTL_ADD */
- ioctl(-1, LOOP_CTL_ADD, magic);
+ sys_ioctl(-1, LOOP_CTL_ADD, magic);
printf("ioctl(-1, LOOP_CTL_ADD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
/* LOOP_CTL_REMOVE */
- ioctl(-1, LOOP_CTL_REMOVE, magic);
+ sys_ioctl(-1, LOOP_CTL_REMOVE, magic);
printf("ioctl(-1, LOOP_CTL_REMOVE, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
diff --git a/tests-m32/ioctl_perf-success.c b/tests-m32/ioctl_perf-success.c
new file mode 100644
index 0000000..9eade6a
--- /dev/null
+++ b/tests-m32/ioctl_perf-success.c
@@ -0,0 +1,165 @@
+/*
+ * Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_PERF_EVENT_H
+
+# include <assert.h>
+# include <inttypes.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+# include <sys/ioctl.h>
+# include <linux/perf_event.h>
+
+# 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 *)
+
+struct perf_event_query_bpf {
+ uint32_t ids_len;
+ uint32_t prog_cnt;
+ uint32_t ids[0];
+};
+# endif
+
+int
+main(int argc, char **argv)
+{
+ static const uint64_t magic64 = 0xfacefeeddeadc0deULL;
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, u64_ptr);
+ uint64_t *const u64_efault = u64_ptr + 1;
+ uint32_t *const u32_arr = tail_alloc(sizeof(uint32_t) * 4);
+ uint32_t *const u32_efault = u32_arr + 4;
+
+ unsigned long num_skip;
+ long inject_retval;
+ bool locked = false;
+
+ *u64_ptr = magic64;
+
+ 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 long i = 0; i < num_skip; i++) {
+ long ret = ioctl(-1, PERF_EVENT_IOC_ID, NULL);
+
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = %s%s\n",
+ 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"
+ ", PERF_EVENT_IOC_ID, NULL) returning %lu",
+ inject_retval);
+
+ /* PERF_EVENT_IOC_ID */
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, NULL) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = %ld (INJECTED)\n",
+ inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, u64_efault) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = %ld (INJECTED)\n",
+ u64_efault, inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, u64_ptr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, [%" PRIu64 "]) = %ld (INJECTED)\n",
+ magic64, inject_retval);
+
+ /* PERF_EVENT_IOC_QUERY_BPF */
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) = %ld (INJECTED)\n",
+ inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_efault)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, %p) = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[3] = 0xdeadbeef;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr + 3)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3735928559, ...}) "
+ "= %ld (INJECTED)\n",
+ inject_retval);
+
+ u32_arr[2] = 0xdecaffed;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr + 2)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3737845741"
+ ", prog_cnt=3735928559, ids=%p})"
+ " = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[0] = 0xbadc0ded;
+ u32_arr[1] = 5;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661"
+ ", prog_cnt=5, ids=[3737845741, 3735928559, ... /* %p */]})"
+ " = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[1] = 2;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661"
+ ", prog_cnt=2, ids=[3737845741, 3735928559]})"
+ " = %ld (INJECTED)\n",
+ inject_retval);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H");
+
+#endif
diff --git a/tests-m32/ioctl_perf-success.test b/tests-m32/ioctl_perf-success.test
new file mode 100755
index 0000000..779a2a9
--- /dev/null
+++ b/tests-m32/ioctl_perf-success.test
@@ -0,0 +1,15 @@
+#!/bin/sh -efu
+
+# Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls.
+
+. "${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
new file mode 100644
index 0000000..7db01db
--- /dev/null
+++ b/tests-m32/ioctl_perf.c
@@ -0,0 +1,238 @@
+/*
+ * Check decoding of PERF_EVENT_IOC_* commands of ioctl syscall.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_PERF_EVENT_H
+
+# include <inttypes.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/ioctl.h>
+# include <asm/unistd.h>
+# include <linux/perf_event.h>
+
+/*
+ * Workaround the bug in kernel UAPI that was fixed
+ * in Linux commit v2.6.33-rc1~48^2~288^2~19.
+ */
+# ifndef u64
+# define u64 uint64_t
+# endif
+
+# define XLAT_MACROS_ONLY
+# include "xlat/perf_ioctl_cmds.h"
+# undef XLAT_MACROS_ONLY
+
+# define STR16 "0123456789abcdef"
+
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t unknown_perf_cmd =
+ (kernel_ulong_t) 0xbadc0dedfeed24edULL;
+ static const kernel_ulong_t magic =
+ (kernel_ulong_t) 0xdeadbeefbadc0dedULL;
+ static const uint64_t magic64 = 0xfacefeeddeadc0deULL;
+ static const char str[] = STR16 STR16 STR16 STR16;
+
+ static struct {
+ unsigned int cmd;
+ const char *str;
+ } flag_iocs[] = {
+ { ARG_STR(PERF_EVENT_IOC_ENABLE) },
+ { ARG_STR(PERF_EVENT_IOC_DISABLE) },
+ { ARG_STR(PERF_EVENT_IOC_RESET) },
+ };
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, u64_ptr);
+ uint64_t *const u64_efault = u64_ptr + 1;
+ uint32_t *const u32_arr = tail_alloc(sizeof(uint32_t) * 4);
+ uint32_t *const u32_efault = u32_arr + 4;
+ char *const str_ptr = tail_memdup(str, sizeof(str));
+ char *const str_efault = str_ptr + sizeof(str);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct perf_event_attr, pea_ptr);
+
+ *u64_ptr = magic64;
+ fill_memory_ex(pea_ptr, sizeof(*pea_ptr), 0xaa, 0x55);
+
+ /* Unknown perf commands */
+ sys_ioctl(-1, unknown_perf_cmd, magic);
+ printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x24, %#x, %#x), "
+ "%#lx) = -1 EBADF (%m)\n",
+ _IOC_DIR((unsigned int) unknown_perf_cmd) & _IOC_NONE ?
+ "|_IOC_NONE" : "",
+ _IOC_NR((unsigned int) unknown_perf_cmd),
+ _IOC_SIZE((unsigned int) unknown_perf_cmd),
+ (unsigned long) magic);
+
+ sys_ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1, magic);
+ printf("ioctl(-1, _IOC(_IOC_WRITE, 0x24, %#x, %#x), %#lx)"
+ " = -1 EBADF (%m)\n",
+ (unsigned int) _IOC_NR(PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1),
+ (unsigned int) _IOC_SIZE(PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1),
+ (unsigned long) magic);
+
+ /* PERF_EVENT_IOC_{ENABLE,DISABLE,RESET} */
+ for (unsigned i = 0; i < ARRAY_SIZE(flag_iocs); i++) {
+ ioctl(-1, flag_iocs[i].cmd, 0);
+ printf("ioctl(-1, %s, 0) = -1 EBADF (%m)\n", flag_iocs[i].str);
+
+ ioctl(-1, flag_iocs[i].cmd, 1);
+ printf("ioctl(-1, %s, PERF_IOC_FLAG_GROUP) = -1 EBADF (%m)\n",
+ flag_iocs[i].str);
+
+ ioctl(-1, flag_iocs[i].cmd, 2);
+ printf("ioctl(-1, %s, 0x2 /* PERF_IOC_FLAG_??? */) "
+ "= -1 EBADF (%m)\n",
+ flag_iocs[i].str);
+
+ sys_ioctl(-1, flag_iocs[i].cmd, magic);
+ printf("ioctl(-1, %s, PERF_IOC_FLAG_GROUP|%#x) "
+ "= -1 EBADF (%m)\n",
+ flag_iocs[i].str, (unsigned int) magic & ~1U);
+ }
+
+ /* PERF_EVENT_IOC_REFRESH */
+ sys_ioctl(-1, PERF_EVENT_IOC_REFRESH, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_REFRESH, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_PERIOD */
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, u64_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, %p) = -1 EBADF (%m)\n",
+ u64_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, u64_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, [%" PRIu64 "])"
+ " = -1 EBADF (%m)\n",
+ magic64);
+
+ /* PERF_EVENT_IOC_SET_OUTPUT */
+ sys_ioctl(-1, PERF_EVENT_IOC_SET_OUTPUT, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_OUTPUT, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_SET_FILTER */
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, %p) = -1 EBADF (%m)\n",
+ str_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, \"%.32s\"...)"
+ " = -1 EBADF (%m)\n",
+ str_ptr);
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr + 40);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, \"%.32s\")"
+ " = -1 EBADF (%m)\n",
+ str_ptr + 40);
+
+ str_ptr[sizeof(str) - 1] = '0';
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr + 40);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, %p)"
+ " = -1 EBADF (%m)\n",
+ str_ptr + 40);
+
+ /* PERF_EVENT_IOC_ID */
+ ioctl(-1, PERF_EVENT_IOC_ID, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_ID, u64_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = -1 EBADF (%m)\n",
+ u64_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_ID, u64_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = -1 EBADF (%m)\n",
+ u64_ptr);
+
+ /* PERF_EVENT_IOC_SET_BPF */
+ sys_ioctl(-1, PERF_EVENT_IOC_SET_BPF, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_BPF, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_PAUSE_OUTPUT */
+ sys_ioctl(-1, PERF_EVENT_IOC_PAUSE_OUTPUT, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_PAUSE_OUTPUT, %lu) = -1 EBADF (%m)\n",
+ (unsigned long) magic);
+
+ /* PERF_EVENT_IOC_QUERY_BPF */
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, %p) = -1 EBADF (%m)\n",
+ u32_efault);
+
+ u32_arr[0] = 0xbadc0ded;
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661, ...})"
+ " = -1 EBADF (%m)\n");
+
+ /* PERF_EVENT_IOC_MODIFY_ATTRIBUTES */
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, NULL)"
+ " = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, pea_ptr + 1);
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, %p)"
+ " = -1 EBADF (%m)\n",
+ pea_ptr + 1);
+
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES"
+ ", {type=%#x /* PERF_TYPE_??? */"
+ ", size=%#x /* PERF_ATTR_SIZE_??? */"
+ ", config=%#llx, ...}) = -1 EBADF (%m)\n",
+ (unsigned int) pea_ptr->type,
+ (unsigned int) pea_ptr->size,
+ (unsigned long long) pea_ptr->config);
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, pea_ptr);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H");
+
+#endif
diff --git a/tests-m32/ioctl_perf.gen.test b/tests-m32/ioctl_perf.gen.test
new file mode 100755
index 0000000..0264f34
--- /dev/null
+++ b/tests-m32/ioctl_perf.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_perf +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests-m32/ioctl_ptp.c b/tests-m32/ioctl_ptp.c
new file mode 100644
index 0000000..1c82919
--- /dev/null
+++ b/tests-m32/ioctl_ptp.c
@@ -0,0 +1,131 @@
+/*
+ * Check decoding of PTP_* commands of ioctl syscall.
+ *
+ * Copyright (c) 2018 Harsha Sharma <[email protected]>
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_STRUCT_PTP_SYS_OFFSET
+
+#include <errno.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <linux/ptp_clock.h>
+
+#include "xlat.h"
+#include "xlat/ptp_flags_options.h"
+
+static void
+test_no_device(void)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_clock_caps, caps);
+ fill_memory(caps, sizeof(*caps));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_sys_offset, sysoff);
+ fill_memory(sysoff, sizeof(*sysoff));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_extts_request, extts);
+ fill_memory(extts, sizeof(*extts));
+
+ 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);
+
+ /* 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);
+
+ /* 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");
+
+ /* 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;
+ 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");
+
+ /* 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;
+ 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");
+
+ /* 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);
+
+ 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);
+}
+
+int
+main(void)
+{
+ test_no_device();
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_STRUCT_PTP_SYS_OFFSET")
+
+#endif /* HAVE_STRUCT_PTP_SYS_OFFSET */
diff --git a/tests-m32/ioctl_ptp.gen.test b/tests-m32/ioctl_ptp.gen.test
new file mode 100755
index 0000000..6c0b0a9
--- /dev/null
+++ b/tests-m32/ioctl_ptp.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_ptp +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests-m32/ioctl_v4l2.c b/tests-m32/ioctl_v4l2.c
index 2736b39..a7dcc49 100644
--- a/tests-m32/ioctl_v4l2.c
+++ b/tests-m32/ioctl_v4l2.c
@@ -842,6 +842,21 @@
printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_USER"
", count=%u}) = -1 EBADF (%m)\n", 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"
+ ", count=%u, controls=%p}) = -1 EBADF (%m)\n",
+ 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_??? */"
+ ", count=%u, controls=%p}) = -1 EBADF (%m)\n",
+ 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);
@@ -883,7 +898,7 @@
", {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\"}"
- ", %p]}) = -1 EBADF (%m)\n",
+ ", ... /* %p */]}) = -1 EBADF (%m)\n",
p_ext_controls->count,
p_ext_controls->controls[0].value,
(long long) p_ext_controls->controls[0].value64,
diff --git a/tests-m32/ipc.sh b/tests-m32/ipc.sh
index 5943c1a..ef55073 100644
--- a/tests-m32/ipc.sh
+++ b/tests-m32/ipc.sh
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-run_strace -eipc $args > "$EXP"
+run_strace -eipc "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
exit 0
diff --git a/tests-m32/ipc_msg-Xabbrev.c b/tests-m32/ipc_msg-Xabbrev.c
new file mode 100644
index 0000000..f4535e8
--- /dev/null
+++ b/tests-m32/ipc_msg-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_msg.c"
diff --git a/tests-m32/ipc_msg-Xabbrev.gen.test b/tests-m32/ipc_msg-Xabbrev.gen.test
new file mode 100755
index 0000000..0969ee1
--- /dev/null
+++ b/tests-m32/ipc_msg-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26); do not edit.
+set -- -Xabbrev -a26
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_msg-Xraw.c b/tests-m32/ipc_msg-Xraw.c
new file mode 100644
index 0000000..9c016d3
--- /dev/null
+++ b/tests-m32/ipc_msg-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_msg.c"
diff --git a/tests-m32/ipc_msg-Xraw.gen.test b/tests-m32/ipc_msg-Xraw.gen.test
new file mode 100755
index 0000000..5d5d732
--- /dev/null
+++ b/tests-m32/ipc_msg-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xraw +ipc.sh -Xraw -a16); do not edit.
+set -- -Xraw -a16
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_msg-Xverbose.c b/tests-m32/ipc_msg-Xverbose.c
new file mode 100644
index 0000000..3f59f98
--- /dev/null
+++ b/tests-m32/ipc_msg-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_msg.c"
diff --git a/tests-m32/ipc_msg-Xverbose.gen.test b/tests-m32/ipc_msg-Xverbose.gen.test
new file mode 100755
index 0000000..88c79a0
--- /dev/null
+++ b/tests-m32/ipc_msg-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xverbose +ipc.sh -Xverbose -a34); do not edit.
+set -- -Xverbose -a34
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_msg.c b/tests-m32/ipc_msg.c
index b493843..a74dba5 100644
--- a/tests-m32/ipc_msg.c
+++ b/tests-m32/ipc_msg.c
@@ -1,6 +1,7 @@
/*
* Copyright (c) 2015 Elvira Khabirova <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,6 +36,10 @@
#include "xlat.h"
#include "xlat/resource_flags.h"
+#ifndef MSG_STAT_ANY
+# define MSG_STAT_ANY 13
+#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)
@@ -52,13 +57,50 @@
# define TEST_MSGCTL_BOGUS_ADDR 1
#endif
+#if XLAT_RAW
+# define str_ipc_excl_nowait "0xface1c00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_msg_stat "0xb"
+# define str_msg_info "0xc"
+# define str_msg_stat_any "0xd"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_excl_nowait \
+ "0xface1c00 /\\* 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_msg_stat "0xb /\\* MSG_STAT \\*/"
+# define str_msg_info "0xc /\\* MSG_INFO \\*/"
+# define str_msg_stat_any "0xd /\\* MSG_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#else
+# define str_ipc_excl_nowait "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_msg_stat "MSG_STAT"
+# define str_msg_info "MSG_INFO"
+# define str_msg_stat_any "MSG_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
msgctl(id, IPC_RMID, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) += 0\n", id);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) += 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -67,7 +109,7 @@
{
static const key_t private_key =
(key_t) (0xffffffff00000000ULL | IPC_PRIVATE);
- static const key_t bogus_key = (key_t) 0xeca86420fdb97531ULL;
+ static const key_t bogus_key = (key_t) 0xeca86420fdb9f531ULL;
static const int bogus_msgid = 0xfdb97531;
static const int bogus_cmd = 0xdeadbeef;
#if TEST_MSGCTL_BOGUS_ADDR
@@ -79,37 +121,36 @@
struct msqid_ds ds;
rc = msgget(bogus_key, bogus_flags);
- printf("msgget\\(%#llx, %s%s%s%#x\\|%#04o\\) += %s\n",
+ printf("msgget\\(%#llx, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key),
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
+ str_ipc_excl_nowait,
bogus_flags & 0777, sprintrc_grep(rc));
id = msgget(private_key, 0600);
if (id < 0)
perror_msg_and_skip("msgget");
- printf("msgget\\(IPC_PRIVATE, 0600\\) += %d\n", id);
+ printf("msgget\\(%s, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = msgctl(bogus_msgid, bogus_cmd, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?%#x /\\* MSG_\\?\\?\\? \\*/, NULL\\)"
- " += %s\n", bogus_msgid, bogus_cmd, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
#if TEST_MSGCTL_BOGUS_ADDR
rc = msgctl(bogus_msgid, IPC_SET, bogus_addr);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, %p\\) += %s\n",
- bogus_msgid, bogus_addr, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_ipc_set, bogus_addr,
+ sprintrc_grep(rc));
#endif
if (msgctl(id, IPC_STAT, &ds))
perror_msg_and_skip("msgctl IPC_STAT");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{msg_perm=\\{uid=%u"
+ 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, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
+ ", 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,
@@ -119,18 +160,22 @@
if (msgctl(id, IPC_SET, &ds))
perror_msg_and_skip("msgctl IPC_SET");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, \\{msg_perm=\\{uid=%u"
- ", gid=%u, mode=%#o\\}, ...\\}\\) += 0\n",
- id, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
- (unsigned) ds.msg_perm.mode);
+ 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);
rc = msgctl(0, MSG_INFO, &ds);
- printf("msgctl\\(0, (IPC_64\\|)?MSG_INFO, %p\\) += %s\n",
- &ds, sprintrc_grep(rc));
+ printf("msgctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_msg_info, &ds, sprintrc_grep(rc));
rc = msgctl(id, MSG_STAT, &ds);
- printf("msgctl\\(%d, (IPC_64\\|)?MSG_STAT, %p\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_msg_stat, &ds, sprintrc_grep(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));
return 0;
}
diff --git a/tests-m32/ipc_msg.gen.test b/tests-m32/ipc_msg.gen.test
index b1f1f7e..8202619 100755
--- a/tests-m32/ipc_msg.gen.test
+++ b/tests-m32/ipc_msg.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg +ipc.sh ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg +ipc.sh -a26); do not edit.
+set -- -a26
. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_msgbuf-Xabbrev.c b/tests-m32/ipc_msgbuf-Xabbrev.c
new file mode 100644
index 0000000..e2f09eb
--- /dev/null
+++ b/tests-m32/ipc_msgbuf-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_msgbuf.c"
diff --git a/tests-m32/ipc_msgbuf-Xabbrev.gen.test b/tests-m32/ipc_msgbuf-Xabbrev.gen.test
new file mode 100755
index 0000000..402d804
--- /dev/null
+++ b/tests-m32/ipc_msgbuf-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev); do not edit.
+set -- -Xabbrev
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests-m32/ipc_msgbuf-Xraw.c b/tests-m32/ipc_msgbuf-Xraw.c
new file mode 100644
index 0000000..c6f8a31
--- /dev/null
+++ b/tests-m32/ipc_msgbuf-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_msgbuf.c"
diff --git a/tests-m32/ipc_msgbuf-Xraw.gen.test b/tests-m32/ipc_msgbuf-Xraw.gen.test
new file mode 100755
index 0000000..c1112cb
--- /dev/null
+++ b/tests-m32/ipc_msgbuf-Xraw.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests-m32/ipc_msgbuf-Xverbose.c b/tests-m32/ipc_msgbuf-Xverbose.c
new file mode 100644
index 0000000..ae09a4a
--- /dev/null
+++ b/tests-m32/ipc_msgbuf-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_msgbuf.c"
diff --git a/tests-m32/ipc_msgbuf-Xverbose.gen.test b/tests-m32/ipc_msgbuf-Xverbose.gen.test
new file mode 100755
index 0000000..2c72eb7
--- /dev/null
+++ b/tests-m32/ipc_msgbuf-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose); do not edit.
+set -- -Xverbose
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests-m32/ipc_msgbuf.c b/tests-m32/ipc_msgbuf.c
index c4af1be..e439c49 100644
--- a/tests-m32/ipc_msgbuf.c
+++ b/tests-m32/ipc_msgbuf.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2015 Elvira Khabirova <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,7 +28,10 @@
*/
#include "tests.h"
+#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
+#include <asm/unistd.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/stat.h>
@@ -38,22 +41,54 @@
static int msqid = -1;
+#if XLAT_RAW
+# define str_ipc_creat "0x200"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_64 "0x100"
+#elif XLAT_VERBOSE
+# define str_ipc_creat "0x200 /\\* IPC_CREAT \\*/"
+# define str_ipc_private "0 /\\* IPC_PRIVATE \\*/"
+# define str_ipc_rmid "0 /\\* IPC_RMID \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+#else
+# define str_ipc_creat "IPC_CREAT"
+# define str_ipc_private "IPC_PRIVATE"
+# define str_ipc_rmid "IPC_RMID"
+# define str_ipc_64 "IPC_64"
+#endif
+
static int
cleanup(void)
{
if (msqid != -1) {
int rc = msgctl(msqid, IPC_RMID, 0);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ msqid, str_ipc_64, str_ipc_rmid);
msqid = -1;
if (rc == -1)
return 77;
+ puts("\\+\\+\\+ exited with 0 \\+\\+\\+");
}
return 0;
}
int
+sys_msgrcv(int msqid, void *msgp, size_t sz, kernel_long_t msgtyp,
+ int msgflg)
+{
+#if defined __x86_64__ && defined __ILP32__
+ return syscall(__NR_msgrcv, msqid, msgp, sz, msgtyp, msgflg);
+#else
+ return msgrcv(msqid, msgp, sz, msgtyp, msgflg);
+#endif
+}
+
+int
main(void)
{
- const long mtype = 0xdefaced;
+ /* mtype has to be positive */
+ const kernel_long_t mtype = (kernel_long_t) 0x7facefed5adc0dedULL;
struct {
kernel_long_t mtype;
char mtext[msgsz];
@@ -64,11 +99,23 @@
msqid = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU);
if (msqid == -1)
perror_msg_and_skip("msgget");
+ printf("msgget\\(%s, %s\\|0700\\) = %d\n",
+ str_ipc_private, str_ipc_creat, msqid);
+
typedef void (*atexit_func)(void);
atexit((atexit_func) cleanup);
+
+ printf("msgsnd\\(%d, \\{%lld, \"" text_string "\\\\0\"\\}, 14, 0\\)"
+ " = 0\n",
+ msqid, (long long) mtype);
if (msgsnd(msqid, &msg, msgsz, 0) == -1)
perror_msg_and_skip("msgsnd");
- if (msgrcv(msqid, &msg, msgsz, mtype, 0) != msgsz)
+
+ if (sys_msgrcv(msqid, &msg, msgsz, -mtype, 0) != msgsz)
perror_msg_and_skip("msgrcv");
+ printf("msgrcv\\(%d, \\{%lld, \"" text_string "\\\\0\"\\}, 14, %lld"
+ ", 0\\) = 14\n",
+ msqid, (long long) mtype, -(long long) mtype);
+
return cleanup();
}
diff --git a/tests-m32/ipc_msgbuf.test b/tests-m32/ipc_msgbuf.test
index d0b65d1..9e78785 100755
--- a/tests-m32/ipc_msgbuf.test
+++ b/tests-m32/ipc_msgbuf.test
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
run_prog
-run_strace -v -e msgget,msgsnd,msgrcv,msgctl $args
-match_grep
+run_strace -a26 -v -e msgget,msgsnd,msgrcv,msgctl "$@" $args > "$EXP"
+match_grep "$LOG" "$EXP"
exit 0
diff --git a/tests-m32/ipc_sem-Xabbrev.c b/tests-m32/ipc_sem-Xabbrev.c
new file mode 100644
index 0000000..727005a
--- /dev/null
+++ b/tests-m32/ipc_sem-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_sem.c"
diff --git a/tests-m32/ipc_sem-Xabbrev.gen.test b/tests-m32/ipc_sem-Xabbrev.gen.test
new file mode 100755
index 0000000..0757a48
--- /dev/null
+++ b/tests-m32/ipc_sem-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29); do not edit.
+set -- -Xabbrev -a29
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_sem-Xraw.c b/tests-m32/ipc_sem-Xraw.c
new file mode 100644
index 0000000..0a57c0a
--- /dev/null
+++ b/tests-m32/ipc_sem-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_sem.c"
diff --git a/tests-m32/ipc_sem-Xraw.gen.test b/tests-m32/ipc_sem-Xraw.gen.test
new file mode 100755
index 0000000..07d59e5
--- /dev/null
+++ b/tests-m32/ipc_sem-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xraw +ipc.sh -Xraw -a19); do not edit.
+set -- -Xraw -a19
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_sem-Xverbose.c b/tests-m32/ipc_sem-Xverbose.c
new file mode 100644
index 0000000..56e8380
--- /dev/null
+++ b/tests-m32/ipc_sem-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_sem.c"
diff --git a/tests-m32/ipc_sem-Xverbose.gen.test b/tests-m32/ipc_sem-Xverbose.gen.test
new file mode 100755
index 0000000..43a61d0
--- /dev/null
+++ b/tests-m32/ipc_sem-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xverbose +ipc.sh -Xverbose -a36); do not edit.
+set -- -Xverbose -a36
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_sem.c b/tests-m32/ipc_sem.c
index c883272..8cbbfaa 100644
--- a/tests-m32/ipc_sem.c
+++ b/tests-m32/ipc_sem.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2015 Andreas Schwab <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,43 @@
#include "xlat.h"
#include "xlat/resource_flags.h"
+#ifndef SEM_STAT_ANY
+# define SEM_STAT_ANY 20
+#endif
+
+#if XLAT_RAW
+# define str_ipc_flags "0xface1e00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_stat "0x2"
+# define str_sem_stat "0x12"
+# define str_sem_info "0x13"
+# define str_sem_stat_any "0x14"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "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_stat "0x2 /\\* IPC_STAT \\*/"
+# define str_sem_stat "0x12 /\\* SEM_STAT \\*/"
+# define str_sem_info "0x13 /\\* SEM_INFO \\*/"
+# define str_sem_stat_any "0x14 /\\* SEM_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#else
+# 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_stat "IPC_STAT"
+# define str_sem_stat "SEM_STAT"
+# define str_sem_info "SEM_INFO"
+# define str_sem_stat_any "SEM_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#endif
+
union semun {
int val; /* Value for SETVAL */
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
@@ -50,8 +87,8 @@
cleanup(void)
{
semctl(id, 0, IPC_RMID, 0);
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_RMID, \\[?NULL\\]?\\) += 0\n",
- id);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?NULL\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -75,42 +112,41 @@
struct seminfo info;
rc = semget(bogus_key, bogus_size, bogus_flags);
- printf("semget\\(%#llx, %d, %s%s%s%#x\\|%#04o\\) += %s\n",
+ printf("semget\\(%#llx, %d, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
- bogus_flags & 0777, sprintrc_grep(rc));
+ str_ipc_flags, bogus_flags & 0777, sprintrc_grep(rc));
id = semget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("semget");
- printf("semget\\(IPC_PRIVATE, 1, 0600\\) += %d\n", id);
+ printf("semget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = semctl(bogus_semid, bogus_semnum, bogus_cmd, bogus_arg);
#define SEMCTL_BOGUS_ARG_FMT "(%#lx|\\[(%#lx|NULL)\\]|NULL)"
- printf("semctl\\(%d, %d, (IPC_64\\|)?%#x /\\* SEM_\\?\\?\\? \\*/"
- ", " SEMCTL_BOGUS_ARG_FMT "\\) += %s\n",
- bogus_semid, bogus_semnum, bogus_cmd,
+ printf("semctl\\(%d, %d, (%s\\|)?%s, " SEMCTL_BOGUS_ARG_FMT "\\) = %s\n",
+ bogus_semid, bogus_semnum, str_ipc_64, str_bogus_cmd,
bogus_arg, bogus_arg, sprintrc_grep(rc));
un.buf = &ds;
if (semctl(id, 0, IPC_STAT, un))
perror_msg_and_skip("semctl IPC_STAT");
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_STAT, \\[?%p\\]?\\) += 0\n",
- id, &ds);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_stat, &ds);
un.__buf = &info;
rc = semctl(0, 0, SEM_INFO, un);
- printf("semctl\\(0, 0, (IPC_64\\|)?SEM_INFO, \\[?%p\\]?\\) += %s\n",
- &info, sprintrc_grep(rc));
+ printf("semctl\\(0, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ str_ipc_64, str_sem_info, &info, sprintrc_grep(rc));
un.buf = &ds;
rc = semctl(id, 0, SEM_STAT, un);
- printf("semctl\\(%d, 0, (IPC_64\\|)?SEM_STAT, \\[?%p\\]?\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ id, str_ipc_64, str_sem_stat, &ds, sprintrc_grep(rc));
+
+ 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));
return 0;
}
diff --git a/tests-m32/ipc_sem.gen.test b/tests-m32/ipc_sem.gen.test
index a1c03d2..173b3af 100755
--- a/tests-m32/ipc_sem.gen.test
+++ b/tests-m32/ipc_sem.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem +ipc.sh ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem +ipc.sh -a29); do not edit.
+set -- -a29
. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_shm-Xabbrev.c b/tests-m32/ipc_shm-Xabbrev.c
new file mode 100644
index 0000000..c191aea
--- /dev/null
+++ b/tests-m32/ipc_shm-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_shm.c"
diff --git a/tests-m32/ipc_shm-Xabbrev.gen.test b/tests-m32/ipc_shm-Xabbrev.gen.test
new file mode 100755
index 0000000..d68c246
--- /dev/null
+++ b/tests-m32/ipc_shm-Xabbrev.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_shm-Xraw.c b/tests-m32/ipc_shm-Xraw.c
new file mode 100644
index 0000000..08e09ac
--- /dev/null
+++ b/tests-m32/ipc_shm-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_shm.c"
diff --git a/tests-m32/ipc_shm-Xraw.gen.test b/tests-m32/ipc_shm-Xraw.gen.test
new file mode 100755
index 0000000..071eef6
--- /dev/null
+++ b/tests-m32/ipc_shm-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xraw +ipc.sh -Xraw -a19); do not edit.
+set -- -Xraw -a19
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_shm-Xverbose.c b/tests-m32/ipc_shm-Xverbose.c
new file mode 100644
index 0000000..b936785
--- /dev/null
+++ b/tests-m32/ipc_shm-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_shm.c"
diff --git a/tests-m32/ipc_shm-Xverbose.gen.test b/tests-m32/ipc_shm-Xverbose.gen.test
new file mode 100755
index 0000000..170adee
--- /dev/null
+++ b/tests-m32/ipc_shm-Xverbose.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/ipc_shm.c b/tests-m32/ipc_shm.c
index 6586c8a..f5802cc 100644
--- a/tests-m32/ipc_shm.c
+++ b/tests-m32/ipc_shm.c
@@ -41,16 +41,62 @@
# define SHM_HUGE_MASK 0x3f
#endif
+#ifndef SHM_STAT_ANY
+# define SHM_STAT_ANY 15
+#endif
+
#include "xlat.h"
#include "xlat/shm_resource_flags.h"
+#if XLAT_RAW
+# define str_ipc_flags "0x2ce1e00"
+# define str_shm_huge "21<<26"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_shm_stat "0xd"
+# define str_shm_info "0xe"
+# define str_shm_stat_any "0xf"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdefaced2"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "0x2ce1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE" \
+ "\\|0x2ce0000 \\*/"
+# define str_shm_huge "21<<26 /\\* SHM_HUGE_SHIFT \\*/"
+# 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_shm_stat "0xd /\\* SHM_STAT \\*/"
+# define str_shm_info "0xe /\\* SHM_INFO \\*/"
+# define str_shm_stat_any "0xf /\\* SHM_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#else
+# define str_ipc_flags \
+ "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE\\|0x2ce0000"
+# define str_shm_huge "21<<SHM_HUGE_SHIFT"
+# 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_shm_stat "SHM_STAT"
+# define str_shm_info "SHM_INFO"
+# define str_shm_stat_any "SHM_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
shmctl(id, IPC_RMID, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) += 0\n", id);
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -82,68 +128,67 @@
struct shmid_ds ds;
rc = shmget(bogus_key, bogus_size, 0);
- printf("shmget\\(%#llx, %zu, 000\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, 000\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
sprintrc_grep(rc));
rc = shmget(bogus_key, bogus_size, huge_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "21<<SHM_HUGE_SHIFT", 0, sprintrc_grep(rc));
+ str_shm_huge, 0, sprintrc_grep(rc));
bogus_flags = 0xface1e55 & ~(bogus_ipc_shm_flags | huge_mask);
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %#x\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %#x\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
bogus_flags & ~0777,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags |= bogus_ipc_shm_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags),
+ str_ipc_flags,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags |= huge_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_ipc_flags, str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags &= ~bogus_ipc_shm_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %#x\\|%s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %#x\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
bogus_flags & ~(0777 | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
id = shmget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("shmget");
- printf("shmget\\(IPC_PRIVATE, 1, 0600\\) += %d\n", id);
+ printf("shmget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = shmctl(bogus_id, bogus_cmd, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?%#x /\\* SHM_\\?\\?\\? \\*/, NULL\\)"
- " += %s\n", bogus_id, bogus_cmd, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_id, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
rc = shmctl(bogus_id, IPC_STAT, bogus_addr);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, %p\\) += %s\n",
- bogus_id, bogus_addr, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_id, str_ipc_64, str_ipc_stat, bogus_addr,
+ sprintrc_grep(rc));
if (shmctl(id, IPC_STAT, &ds))
perror_msg_and_skip("shmctl IPC_STAT");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{shm_perm=\\{uid=%u, gid=%u, "
+ 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, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ "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,
@@ -153,18 +198,23 @@
if (shmctl(id, IPC_SET, &ds))
perror_msg_and_skip("shmctl IPC_SET");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_SET, \\{shm_perm=\\{uid=%u, gid=%u"
- ", mode=%#o\\}, ...\\}\\) += 0\n",
- id, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u"
+ ", 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);
rc = shmctl(0, SHM_INFO, &ds);
- printf("shmctl\\(0, (IPC_64\\|)?SHM_INFO, %p\\) += %s\n",
- &ds, sprintrc_grep(rc));
+ printf("shmctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_shm_info, &ds, sprintrc_grep(rc));
rc = shmctl(id, SHM_STAT, &ds);
- printf("shmctl\\(%d, (IPC_64\\|)?SHM_STAT, %p\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_shm_stat, &ds, sprintrc_grep(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));
return 0;
}
diff --git a/tests-m32/ipc_shm.gen.test b/tests-m32/ipc_shm.gen.test
index 8c6df9b..2e697d3 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 ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a29); do not edit.
+set -- -a29
. "${srcdir=.}/ipc.sh"
diff --git a/tests-m32/kcmp.c b/tests-m32/kcmp.c
index 60cd300..a6a05c5 100644
--- a/tests-m32/kcmp.c
+++ b/tests-m32/kcmp.c
@@ -2,6 +2,7 @@
* Check decoding of kcmp syscall.
*
* Copyright (c) 2016-2017 Eugene Syromyatnikov <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -167,7 +168,7 @@
int fd;
unsigned i;
- struct kcmp_epoll_slot *slot = tail_alloc(sizeof(*slot));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct kcmp_epoll_slot, slot);
/* Open some files to test printpidfd */
fd = open(null_path, O_RDONLY);
diff --git a/tests-m32/kexec_load.c b/tests-m32/kexec_load.c
index 2a6b441..ff4507c 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -129,7 +129,7 @@
printf("{buf=%p, bufsz=%zu, mem=%p, memsz=%zu}, ",
segms[i].buf, segms[i].bufsz,
segms[i].mem, segms[i].memsz);
- printf("%p], %s%s) = %s\n",
+ printf("... /* %p */], %s%s) = %s\n",
segms + NUM_SEGMS,
sizeof(long) == 8 ? flags[0].str64 : flags[0].str32,
flags[0].str, errstr);
diff --git a/tests-m32/keyctl-Xabbrev.c b/tests-m32/keyctl-Xabbrev.c
new file mode 100644
index 0000000..7b6b0dc
--- /dev/null
+++ b/tests-m32/keyctl-Xabbrev.c
@@ -0,0 +1 @@
+#include "keyctl.c"
diff --git a/tests-m32/keyctl-Xabbrev.gen.test b/tests-m32/keyctl-Xabbrev.gen.test
new file mode 100755
index 0000000..0068a03
--- /dev/null
+++ b/tests-m32/keyctl-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xabbrev -a31 -s10 -e trace=keyctl -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a31 -s10 -e trace=keyctl -Xabbrev
diff --git a/tests-m32/keyctl-Xraw.c b/tests-m32/keyctl-Xraw.c
new file mode 100644
index 0000000..202c22a
--- /dev/null
+++ b/tests-m32/keyctl-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "keyctl.c"
diff --git a/tests-m32/keyctl-Xraw.gen.test b/tests-m32/keyctl-Xraw.gen.test
new file mode 100755
index 0000000..2d89ea7
--- /dev/null
+++ b/tests-m32/keyctl-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xraw -a13 -s10 -e trace=keyctl -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a13 -s10 -e trace=keyctl -Xraw
diff --git a/tests-m32/keyctl-Xverbose.c b/tests-m32/keyctl-Xverbose.c
new file mode 100644
index 0000000..9f9d744
--- /dev/null
+++ b/tests-m32/keyctl-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "keyctl.c"
diff --git a/tests-m32/keyctl-Xverbose.gen.test b/tests-m32/keyctl-Xverbose.gen.test
new file mode 100755
index 0000000..a0cdd7d
--- /dev/null
+++ b/tests-m32/keyctl-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xverbose -a41 -s10 -e trace=keyctl -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a41 -s10 -e trace=keyctl -Xverbose
diff --git a/tests-m32/keyctl.c b/tests-m32/keyctl.c
index 5d46ab7..881f24b 100644
--- a/tests-m32/keyctl.c
+++ b/tests-m32/keyctl.c
@@ -89,6 +89,14 @@
/* From ioctl_dm.c */
# define STR32 "AbCdEfGhIjKlMnOpQrStUvWxYz012345"
+#if XLAT_RAW
+# define XARG_STR(v_) (v_), STRINGIFY(v_)
+#elif XLAT_VERBOSE
+# define XARG_STR(v_) (v_), STRINGIFY(v_) " /* " #v_ " */"
+#else
+# define XARG_STR ARG_STR
+#endif
+
/*
* When this is called with positive size, the buffer provided is an "out"
* argument and rc contains resulting size (globally defined nul_terminated_buf
@@ -187,7 +195,13 @@
long rc = syscall(__NR_keyctl, cmd, args[0], args[1], args[2], args[3]);
const char *errstr = sprintrc(rc);
+#if XLAT_RAW
+ printf("keyctl(%#x", (unsigned) cmd);
+#elif XLAT_VERBOSE
+ printf("keyctl(%#x /* %s */", (unsigned) cmd, cmd_str);
+#else
printf("keyctl(%s", cmd_str);
+#endif
for (i = 0; i < cnt; i++) {
printf(", ");
print_arg(args[i], arg_str[i], arg_fmt[i], arg_sz[i], rc);
@@ -299,8 +313,20 @@
static const struct keyctl_dh_params kcdhp_data = {
KEY_SPEC_GROUP_KEYRING, 1234567890, 3141592653U };
- static const char *kcdhp_str = "{private=KEY_SPEC_GROUP_KEYRING, "
- "prime=1234567890, base=-1153374643}";
+ static const char *kcdhp_str = "{private="
+#if XLAT_RAW || XLAT_VERBOSE
+ "-6"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
+ "KEY_SPEC_GROUP_KEYRING"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ ", prime=1234567890, base=-1153374643}";
/*
* It's bigger than current hash name size limit, but since it's
@@ -418,7 +444,15 @@
/* Invalid command */
do_keyctl((kernel_ulong_t) 0xbadc0dedfacefeedULL,
- "0xfacefeed /* KEYCTL_??? */",
+#if XLAT_VERBOSE
+ "KEYCTL_???"
+#else
+ "0xfacefeed"
+# if !XLAT_RAW
+ " /* KEYCTL_??? */"
+# endif
+#endif
+ ,
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xdeadfee1badc0de5ULL, NULL,
kulong_fmt,
@@ -440,7 +474,7 @@
(kernel_ulong_t) 0xbadc0dedffffffffLLU, "-1", NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_KEYRING_ID),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), "%d",
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), "%d",
sizeof(int), 3141592653U, NULL, "%d", NULL,
0UL);
@@ -469,7 +503,7 @@
buf_in_arg = true;
do_keyctl(ARG_STR(KEYCTL_UPDATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 0, NULL, ksize_fmt,
0UL);
@@ -498,7 +532,7 @@
/* KEYCTL_REVOKE */
do_keyctl(ARG_STR(KEYCTL_REVOKE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_REVOKE),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -513,7 +547,7 @@
/* KEYCTL_CHOWN */
do_keyctl(ARG_STR(KEYCTL_CHOWN),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(uid_t), ARG_STR(-1), NULL,
sizeof(gid_t), ARG_STR(-1), NULL,
0UL);
@@ -526,8 +560,15 @@
/* KEYCTL_SETPERM */
do_keyctl(ARG_STR(KEYCTL_SETPERM),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQKEY_AUTH_KEY), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQKEY_AUTH_KEY), NULL,
sizeof(uint32_t), 0xffffffffU,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xffffffff"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"KEY_POS_VIEW|KEY_POS_READ|KEY_POS_WRITE|"
"KEY_POS_SEARCH|KEY_POS_LINK|KEY_POS_SETATTR|"
"KEY_USR_VIEW|KEY_USR_READ|KEY_USR_WRITE|"
@@ -536,7 +577,12 @@
"KEY_GRP_SEARCH|KEY_GRP_LINK|KEY_GRP_SETATTR|"
"KEY_OTH_VIEW|KEY_OTH_READ|KEY_OTH_WRITE|"
"KEY_OTH_SEARCH|KEY_OTH_LINK|KEY_OTH_SETATTR|"
- "0xc0c0c0c0", NULL,
+ "0xc0c0c0c0"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ , NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_SETPERM),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -544,7 +590,12 @@
0UL);
do_keyctl(ARG_STR(KEYCTL_SETPERM),
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
- sizeof(uint32_t), 0xc0c0c0c0, "0xc0c0c0c0 /* KEY_??? */",
+ sizeof(uint32_t), 0xc0c0c0c0,
+ "0xc0c0c0c0"
+#if !XLAT_RAW
+ " /* KEY_??? */"
+#endif
+ ,
NULL,
0UL);
@@ -563,17 +614,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -581,7 +632,7 @@
/* KEYCTL_CLEAR */
do_keyctl(ARG_STR(KEYCTL_CLEAR),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_CLEAR),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -597,14 +648,14 @@
/* KEYCTL_LINK */
do_keyctl(ARG_STR(KEYCTL_LINK),
sizeof(int32_t), bogus_key1, NULL, "%d",
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_LINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(int32_t), bogus_key2, NULL, "%d",
0UL);
do_keyctl(ARG_STR(KEYCTL_LINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
0UL);
@@ -612,14 +663,14 @@
/* KEYCTL_UNLINK */
do_keyctl(ARG_STR(KEYCTL_UNLINK),
sizeof(int32_t), bogus_key1, NULL, "%d",
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_UNLINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(int32_t), bogus_key2, NULL, "%d",
0UL);
do_keyctl(ARG_STR(KEYCTL_UNLINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
0UL);
@@ -628,7 +679,7 @@
buf_in_arg = true;
do_keyctl(ARG_STR(KEYCTL_SEARCH),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(int32_t), 0, NULL, "%d");
@@ -636,7 +687,7 @@
sizeof(int32_t), bogus_key1, NULL, "%d",
sizeof(char *), (char *) 0xfffffacefffffeedULL, NULL, ptr_fmt,
sizeof(char *), (char *) 0xfffff00dfffff157ULL, NULL, ptr_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_USER_SESSION_KEYRING),
+ sizeof(int32_t), XARG_STR(KEY_SPEC_USER_SESSION_KEYRING),
NULL);
do_keyctl(ARG_STR(KEYCTL_SEARCH),
sizeof(int32_t), bogus_key2, NULL, "%d",
@@ -657,7 +708,7 @@
/* KEYCTL_RESTRICT_KEYRING */
do_keyctl(ARG_STR(KEYCTL_RESTRICT_KEYRING),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
NULL);
@@ -705,17 +756,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -751,11 +802,11 @@
ksize_fmt,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
do_keyctl(ARG_STR(KEYCTL_INSTANTIATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
sizeof(long_type_str), long_desc, NULL, NULL,
sizeof(kernel_ulong_t),
(kernel_ulong_t) sizeof(long_type_str), NULL, ksize_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
buf_in_arg = false;
@@ -788,7 +839,7 @@
/* KEYCTL_SET_REQKEY_KEYRING */
do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
- sizeof(int32_t), ARG_STR(KEY_REQKEY_DEFL_NO_CHANGE), NULL,
+ sizeof(int32_t), XARG_STR(KEY_REQKEY_DEFL_NO_CHANGE), NULL,
0UL);
/*
* Keep it commented out until proper way of faking syscalls is not
@@ -796,11 +847,15 @@
*/
/* do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
sizeof(int32_t),
- ARG_STR(KEY_REQKEY_DEFL_REQUESTOR_KEYRING), NULL, 0UL); */
+ XARG_STR(KEY_REQKEY_DEFL_REQUESTOR_KEYRING), NULL, 0UL); */
do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xfeedf157badc0dedLLU,
- "0xbadc0ded /* KEY_REQKEY_DEFL_??? */", NULL, 0UL);
+ "-1159983635"
+#if !XLAT_RAW
+ " /* KEY_REQKEY_DEFL_??? */"
+#endif
+ , NULL, 0UL);
/* KEYCTL_SET_TIMEOUT */
@@ -822,7 +877,7 @@
/* KEYCTL_ASSUME_AUTHORITY */
do_keyctl(ARG_STR(KEYCTL_ASSUME_AUTHORITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_ASSUME_AUTHORITY),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -848,17 +903,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -893,7 +948,7 @@
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xfeedf157badc0dedLLU, "3134983661",
NULL,
- sizeof(uint32_t), ARG_STR(ENODEV), NULL,
+ sizeof(uint32_t), XARG_STR(ENODEV), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
@@ -923,16 +978,16 @@
ksize_fmt,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
do_keyctl(ARG_STR(KEYCTL_INSTANTIATE_IOV),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
sizeof(key_iov), key_iov, key_iov_str2, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) IOV_SIZE, NULL,
ksize_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
/* KEYCTL_INVALIDATE */
do_keyctl(ARG_STR(KEYCTL_INVALIDATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_INVALIDATE),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -948,7 +1003,7 @@
/* KEYCTL_GET_PERSISTENT */
do_keyctl(ARG_STR(KEYCTL_GET_PERSISTENT),
sizeof(uid_t), ARG_STR(-1), NULL,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_PERSISTENT),
sizeof(uid_t), 2718281828U, NULL, "%u",
diff --git a/tests-m32/mknod.c b/tests-m32/mknod.c
index b387149..4bcc274 100644
--- a/tests-m32/mknod.c
+++ b/tests-m32/mknod.c
@@ -59,7 +59,7 @@
rc = call_mknod(mode, dev);
printf("mknod(\"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho"
", makedev(%u, %u)) = %ld %s (%m)\n",
- sample, mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX),
+ sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)),
major((unsigned) dev), minor((unsigned) dev),
rc, errno2name());
diff --git a/tests-m32/mknodat.c b/tests-m32/mknodat.c
index 756e277..318dc5a 100644
--- a/tests-m32/mknodat.c
+++ b/tests-m32/mknodat.c
@@ -59,7 +59,7 @@
rc = call_mknodat(mode, dev);
printf("mknodat(-1, \"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho"
", makedev(%u, %u)) = %ld %s (%m)\n",
- sample, mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX),
+ sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)),
major((unsigned) dev), minor((unsigned) dev),
rc, errno2name());
diff --git a/tests-m32/mmap-Xabbrev.c b/tests-m32/mmap-Xabbrev.c
new file mode 100644
index 0000000..b31ce42
--- /dev/null
+++ b/tests-m32/mmap-Xabbrev.c
@@ -0,0 +1 @@
+#include "mmap.c"
diff --git a/tests-m32/mmap-Xabbrev.gen.test b/tests-m32/mmap-Xabbrev.gen.test
new file mode 100755
index 0000000..b11a84f
--- /dev/null
+++ b/tests-m32/mmap-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xabbrev +mmap.test abbrev); do not edit.
+set -- abbrev
+. "${srcdir=.}/mmap.test"
diff --git a/tests-m32/mmap-Xraw.c b/tests-m32/mmap-Xraw.c
new file mode 100644
index 0000000..ef25c03
--- /dev/null
+++ b/tests-m32/mmap-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mmap.c"
diff --git a/tests-m32/mmap-Xraw.gen.test b/tests-m32/mmap-Xraw.gen.test
new file mode 100755
index 0000000..3caca91
--- /dev/null
+++ b/tests-m32/mmap-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xraw +mmap.test raw 14); do not edit.
+set -- raw 14
+. "${srcdir=.}/mmap.test"
diff --git a/tests-m32/mmap-Xverbose.c b/tests-m32/mmap-Xverbose.c
new file mode 100644
index 0000000..08e9e30
--- /dev/null
+++ b/tests-m32/mmap-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mmap.c"
diff --git a/tests-m32/mmap-Xverbose.gen.test b/tests-m32/mmap-Xverbose.gen.test
new file mode 100755
index 0000000..99b41c0
--- /dev/null
+++ b/tests-m32/mmap-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xverbose +mmap.test verbose); do not edit.
+set -- verbose
+. "${srcdir=.}/mmap.test"
diff --git a/tests-m32/mmap.c b/tests-m32/mmap.c
index 0321bf5..e9f587e 100644
--- a/tests-m32/mmap.c
+++ b/tests-m32/mmap.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -58,25 +58,60 @@
(void) close(0);
(void) close(0);
+#if XLAT_RAW
+ printf("%s(NULL, 0, %#x, %#x, 0, 0) = -1 EBADF (%m)\n",
+ name, PROT_NONE, MAP_FILE);
+#elif XLAT_VERBOSE
+ printf("%s(NULL, 0, %#x /* PROT_NONE */, %#x /* MAP_FILE */, 0, 0) "
+ "= -1 EBADF (%m)\n",
+ name, PROT_NONE, MAP_FILE);
+#else
printf("%s(NULL, 0, PROT_NONE, MAP_FILE, 0, 0) = -1 EBADF (%m)\n",
name);
+#endif
mmap(NULL, 0, PROT_NONE, MAP_FILE, 0, 0);
p = mmap(addr, length1, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, fd, offset);
if (MAP_FAILED == p)
perror_msg_and_fail("mmap");
+#if XLAT_RAW
+ printf("%s(%p, %lu, %#x, "
+ "%#x|%#x, %d, %#jx) = %p\n",
+ name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
+ MAP_ANONYMOUS, fd, uoffset, p);
+#elif XLAT_VERBOSE
+ printf("%s(%p, %lu, %#x /* PROT_READ|PROT_WRITE */, "
+ "%#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */, %d, %#jx) "
+ "= %p\n",
+ name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
+ MAP_ANONYMOUS, fd, uoffset, p);
+#else
printf("%s(%p, %lu, PROT_READ|PROT_WRITE, "
"MAP_PRIVATE|MAP_ANONYMOUS, %d, %#jx) = %p\n",
name, addr, length1, fd, uoffset, p);
+#endif
if (msync(p, length1, MS_SYNC))
perror_msg_and_fail("msync");
+#if XLAT_RAW
+ printf("msync(%p, %lu, %#x) = 0\n", p, length1, MS_SYNC);
+#elif XLAT_VERBOSE
+ printf("msync(%p, %lu, %#x /* MS_SYNC */) = 0\n", p, length1, MS_SYNC);
+#else
printf("msync(%p, %lu, MS_SYNC) = 0\n", p, length1);
+#endif
if (mprotect(p, length1, PROT_NONE))
perror_msg_and_fail("mprotect");
+#if XLAT_RAW
+ printf("mprotect(%p, %lu, %#x) = 0\n", p, length1, PROT_NONE);
+#elif XLAT_VERBOSE
+ printf("mprotect(%p, %lu, %#x /* PROT_NONE */) = 0\n",
+ p, length1, PROT_NONE);
+#else
printf("mprotect(%p, %lu, PROT_NONE) = 0\n", p, length1);
+#endif
addr = mremap(p, length1, length2, 0);
if (MAP_FAILED == addr)
@@ -87,8 +122,19 @@
addr + length2);
if (MAP_FAILED == p)
perror_msg_and_fail("mremap");
+#if XLAT_RAW
+ printf("mremap(%p, %lu, %lu, %#x, %p) = %p\n",
+ addr, length2, length3, MREMAP_MAYMOVE | MREMAP_FIXED,
+ addr + length2, p);
+#elif XLAT_VERBOSE
+ printf("mremap(%p, %lu, %lu, %#x /* MREMAP_MAYMOVE|MREMAP_FIXED */"
+ ", %p) = %p\n",
+ addr, length2, length3, MREMAP_MAYMOVE | MREMAP_FIXED,
+ addr + length2, p);
+#else
printf("mremap(%p, %lu, %lu, MREMAP_MAYMOVE|MREMAP_FIXED"
", %p) = %p\n", addr, length2, length3, addr + length2, p);
+#endif
if (munmap(p, length3))
perror_msg_and_fail("munmap");
@@ -96,7 +142,13 @@
if (mlockall(MCL_FUTURE))
perror_msg_and_fail("mlockall");
+#if XLAT_RAW
+ printf("mlockall(%#x) = 0\n", MCL_FUTURE);
+#elif XLAT_VERBOSE
+ printf("mlockall(%#x /* MCL_FUTURE */) = 0\n", MCL_FUTURE);
+#else
puts("mlockall(MCL_FUTURE) = 0");
+#endif
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests-m32/mmap.test b/tests-m32/mmap.test
index 7ba664e..7fa2c70 100755
--- a/tests-m32/mmap.test
+++ b/tests-m32/mmap.test
@@ -4,7 +4,7 @@
# syscalls decoding.
#
# Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2015-2017 The strace developers.
+# Copyright (c) 2015-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,15 +35,20 @@
check_prog sed
run_prog > /dev/null
+xlat_opt=""
+[ "$#" -gt 0 ] && xlat_opt="-X$1"
+align=20
+[ "$#" -gt 1 ] && align="$2"
+
syscall=
for n in mmap mmap2; do
$STRACE -e$n -h > /dev/null && syscall=$syscall,$n
done
run_strace -e$syscall $args > /dev/null
-if grep '^mmap(NULL, 0, PROT_NONE,' < "$LOG" > /dev/null; then
+if grep '^mmap(NULL, 0, \(0 /* PROT_NONE */\|0\|PROT_NONE\),' < "$LOG" > /dev/null; then
mmap=mmap
-elif grep '^mmap2(NULL, 0, PROT_NONE,' < "$LOG" > /dev/null; then
+elif grep '^mmap2(NULL, 0, \(0 \/\* PROT_NONE \*\/\|0\|PROT_NONE\),' < "$LOG" > /dev/null; then
mmap=mmap2
else
dump_log_and_fail_with "mmap/mmap2 not found in $STRACE $args output"
@@ -52,6 +57,6 @@
syscall=$mmap,madvise,mlockall,mprotect,mremap,msync,munmap
run_prog "../$NAME" $mmap > /dev/null
-run_strace -a20 -e$syscall $args > "$EXP"
-sed -n "/^$mmap(NULL, 0, PROT_NONE,/,\$p" < "$LOG" > "$OUT"
+run_strace -a$align -e$syscall $xlat_opt $args > "$EXP"
+sed -n "/^$mmap(NULL, 0, \(0 \/\* PROT_NONE \*\/\|0\|PROT_NONE\),/,\$p" < "$LOG" > "$OUT"
match_diff "$OUT" "$EXP"
diff --git a/tests-m32/mmap64-Xabbrev.c b/tests-m32/mmap64-Xabbrev.c
new file mode 100644
index 0000000..cbd7789
--- /dev/null
+++ b/tests-m32/mmap64-Xabbrev.c
@@ -0,0 +1 @@
+#include "mmap64.c"
diff --git a/tests-m32/mmap64-Xabbrev.gen.test b/tests-m32/mmap64-Xabbrev.gen.test
new file mode 100755
index 0000000..3e2c94b
--- /dev/null
+++ b/tests-m32/mmap64-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xabbrev +mmap.test abbrev); do not edit.
+set -- abbrev
+. "${srcdir=.}/mmap.test"
diff --git a/tests-m32/mmap64-Xraw.c b/tests-m32/mmap64-Xraw.c
new file mode 100644
index 0000000..f75f235
--- /dev/null
+++ b/tests-m32/mmap64-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mmap64.c"
diff --git a/tests-m32/mmap64-Xraw.gen.test b/tests-m32/mmap64-Xraw.gen.test
new file mode 100755
index 0000000..7aeed02
--- /dev/null
+++ b/tests-m32/mmap64-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xraw +mmap.test raw 14); do not edit.
+set -- raw 14
+. "${srcdir=.}/mmap.test"
diff --git a/tests-m32/mmap64-Xverbose.c b/tests-m32/mmap64-Xverbose.c
new file mode 100644
index 0000000..f72513e
--- /dev/null
+++ b/tests-m32/mmap64-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mmap64.c"
diff --git a/tests-m32/mmap64-Xverbose.gen.test b/tests-m32/mmap64-Xverbose.gen.test
new file mode 100755
index 0000000..0d675d9
--- /dev/null
+++ b/tests-m32/mmap64-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xverbose +mmap.test verbose); do not edit.
+set -- verbose
+. "${srcdir=.}/mmap.test"
diff --git a/tests-m32/mmsg_name.c b/tests-m32/mmsg_name.c
index 8c54a48..c17b13d 100644
--- a/tests-m32/mmsg_name.c
+++ b/tests-m32/mmsg_name.c
@@ -3,7 +3,7 @@
* of sendmmsg and recvmmsg syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -152,7 +152,7 @@
printf("sendmmsg(-1, [{msg_hdr=");
print_msghdr(&send_mh[IOV_MAX].msg_hdr, 0);
errno = saved_errno;
- printf("}, %p], %u, MSG_DONTWAIT) = %d %s (%m)\n",
+ printf("}, ... /* %p */], %u, MSG_DONTWAIT) = %d %s (%m)\n",
&send_mh[IOV_MAX1], 2, rc, errno2name());
rc = send_mmsg(send_fd, send_mh, IOV_MAX1, MSG_DONTWAIT);
diff --git a/tests-m32/modify_ldt.c b/tests-m32/modify_ldt.c
index 1e26bda..2d527ac 100644
--- a/tests-m32/modify_ldt.c
+++ b/tests-m32/modify_ldt.c
@@ -67,8 +67,8 @@
static const kernel_ulong_t bogus_bytecount =
(kernel_ulong_t) 0xdeadfacefa57beefULL;
- struct user_desc *us = tail_alloc(sizeof(*us));
- unsigned int *bogus_int = tail_alloc(sizeof(*bogus_int));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, us);
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, bogus_int);
long rc;
fill_memory(us, sizeof(*us));
diff --git a/tests-m32/mount-Xabbrev.c b/tests-m32/mount-Xabbrev.c
new file mode 100644
index 0000000..0f6fecd
--- /dev/null
+++ b/tests-m32/mount-Xabbrev.c
@@ -0,0 +1 @@
+#include "mount.c"
diff --git a/tests-m32/mount-Xabbrev.gen.test b/tests-m32/mount-Xabbrev.gen.test
new file mode 100755
index 0000000..10e261f
--- /dev/null
+++ b/tests-m32/mount-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xabbrev -a33 -e trace=mount -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xabbrev
diff --git a/tests-m32/mount-Xraw.c b/tests-m32/mount-Xraw.c
new file mode 100644
index 0000000..3aa1f08
--- /dev/null
+++ b/tests-m32/mount-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mount.c"
diff --git a/tests-m32/mount-Xraw.gen.test b/tests-m32/mount-Xraw.gen.test
new file mode 100755
index 0000000..ce852f8
--- /dev/null
+++ b/tests-m32/mount-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xraw -a33 -e trace=mount -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xraw
diff --git a/tests-m32/mount-Xverbose.c b/tests-m32/mount-Xverbose.c
new file mode 100644
index 0000000..0b211c7
--- /dev/null
+++ b/tests-m32/mount-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mount.c"
diff --git a/tests-m32/mount-Xverbose.gen.test b/tests-m32/mount-Xverbose.gen.test
new file mode 100755
index 0000000..c780070
--- /dev/null
+++ b/tests-m32/mount-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xverbose -a33 -e trace=mount -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xverbose
diff --git a/tests-m32/mount.c b/tests-m32/mount.c
index cbfe42f8..2e58571 100644
--- a/tests-m32/mount.c
+++ b/tests-m32/mount.c
@@ -2,6 +2,7 @@
* Check decoding of mount syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,7 +41,34 @@
# define MS_RELATIME (1ul << 21)
#endif
-#define str_ro_nosuid_nodev_noexec "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC"
+#if XLAT_RAW
+# define str_unknown "0x300"
+# define str_submount_200 "0x4000200"
+# define str_mgc_val "0xc0ed0000"
+# define str_remount "0x20"
+# define str_bind "0x1000"
+# define str_ro_nosuid_nodev_noexec "0xf"
+# define str_ro_nosuid_nodev_noexec_relatime "0x20000f"
+#elif XLAT_VERBOSE
+# define str_unknown "0x300 /* MS_??? */"
+# define str_submount_200 "0x4000200 /* MS_SUBMOUNT|0x200 */"
+# define str_mgc_val "0xc0ed0000 /* MS_MGC_VAL */"
+# define str_remount "0x20 /* MS_REMOUNT */"
+# define str_bind "0x1000 /* MS_BIND */"
+# define str_ro_nosuid_nodev_noexec \
+ "0xf /* MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC */"
+# define str_ro_nosuid_nodev_noexec_relatime \
+ "0x20000f /* MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_RELATIME */"
+#else /* !XLAT_RAW && !XLAT_VERBOSE */
+# define str_unknown "0x300 /* MS_??? */"
+# define str_submount_200 "MS_SUBMOUNT|0x200"
+# define str_mgc_val "MS_MGC_VAL"
+# define str_remount "MS_REMOUNT"
+# define str_bind "MS_BIND"
+# define str_ro_nosuid_nodev_noexec "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC"
+# define str_ro_nosuid_nodev_noexec_relatime \
+ "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_RELATIME"
+#endif /* XLAT_RAW, XLAT_VERBOSE */
int
main(void)
@@ -49,35 +77,59 @@
static const char target[] = "mount_target";
static const char fstype[] = "mount_fstype";
static const char data[] = "mount_data";
+ TAIL_ALLOC_OBJECT_CONST_PTR(char, bogus);
- int rc = mount(source, target, fstype, 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ bogus[0] = 'a';
+
+ int rc = mount(NULL, NULL, NULL, 0, NULL);
+ printf("mount(NULL, NULL, NULL, 0, NULL) = %s\n",
+ sprintrc(rc));
+
+ rc = mount(bogus, bogus, bogus, 768, bogus);
+ printf("mount(%p, %p, %p, %s, %p) = %s\n",
+ bogus, bogus, bogus, str_unknown, bogus, sprintrc(rc));
+
+ rc = mount(bogus + 1, bogus + 1, bogus + 1, 0x4000200, bogus + 1);
+ printf("mount(%p, %p, %p, %s, %p) = %s\n",
+ bogus + 1, bogus + 1, bogus + 1, str_submount_200,
+ bogus + 1, sprintrc(rc));
+
+ rc = mount(source, target, fstype, 15, data);
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype, str_ro_nosuid_nodev_noexec,
- data, rc, errno2name());
+ data, sprintrc(rc));
rc = mount(source, target, fstype, MS_RELATIME | 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype,
- str_ro_nosuid_nodev_noexec "|MS_RELATIME",
- data, rc, errno2name());
+ str_ro_nosuid_nodev_noexec_relatime,
+ data, sprintrc(rc));
rc = mount(source, target, fstype, MS_MGC_VAL, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
- source, target, fstype, "MS_MGC_VAL", data, rc, errno2name());
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
+ source, target, fstype, str_mgc_val, data, sprintrc(rc));
rc = mount(source, target, fstype, MS_MGC_VAL | 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype,
- "MS_MGC_VAL|" str_ro_nosuid_nodev_noexec,
- data, rc, errno2name());
+ str_mgc_val "|" str_ro_nosuid_nodev_noexec,
+ data, sprintrc(rc));
+
+ rc = mount(source, target, NULL, MS_REMOUNT, data);
+ printf("mount(\"%s\", \"%s\", NULL, %s, \"%s\") = %s\n",
+ source, target, str_remount, data, sprintrc(rc));
rc = mount(source, target, fstype, MS_REMOUNT, data);
- printf("mount(\"%s\", \"%s\", %p, %s, \"%s\") = %d %s (%m)\n",
- source, target, fstype, "MS_REMOUNT", data, rc, errno2name());
+ printf("mount(\"%s\", \"%s\", %p, %s, \"%s\") = %s\n",
+ source, target, fstype, str_remount, data, sprintrc(rc));
- rc = mount(source, target, fstype, MS_BIND, data);
- printf("mount(\"%s\", \"%s\", %p, %s, %p) = %d %s (%m)\n",
- source, target, fstype, "MS_BIND", data, rc, errno2name());
+ rc = mount(source, target, NULL, MS_BIND, data);
+ printf("mount(\"%s\", \"%s\", NULL, %s, %p) = %s\n",
+ source, target, str_bind, data, sprintrc(rc));
+
+ rc = mount(source, target, fstype, MS_BIND, NULL);
+ printf("mount(\"%s\", \"%s\", %p, %s, NULL) = %s\n",
+ source, target, fstype, str_bind, sprintrc(rc));
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests-m32/mount.gen.test b/tests-m32/mount.gen.test
index 69bc99b..2a3639c 100755
--- a/tests-m32/mount.gen.test
+++ b/tests-m32/mount.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount -a33 ); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff
+run_strace_match_diff -a33
diff --git a/tests-m32/move_pages.c b/tests-m32/move_pages.c
index 5ec25aa..851a8c7 100644
--- a/tests-m32/move_pages.c
+++ b/tests-m32/move_pages.c
@@ -2,7 +2,7 @@
* Check decoding of move_pages syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,7 @@
break;
}
} else {
- printf("%p", pages + i);
+ printf("... /* %p */", pages + i);
break;
}
const void *const addr = pages[i];
@@ -99,7 +99,7 @@
break;
}
} else {
- printf("%p", nodes + i);
+ printf("... /* %p */", nodes + i);
break;
}
printf("%d", nodes[i]);
diff --git a/tests-m32/msg_control.c b/tests-m32/msg_control.c
index 48b7347..01786d7 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -132,7 +132,7 @@
print_fds(cmsg, src_len);
printf("}");
if (aligned_cms_len < msg_controllen)
- printf(", %p", (void *) cmsg + aligned_cms_len);
+ printf(", ... /* %p */", (void *) cmsg + aligned_cms_len);
printf("]");
}
@@ -195,7 +195,7 @@
print_fds(cmsg[1], src1_len);
printf("}");
if (aligned_cms_len[1] < msg_controllen1)
- printf(", %p", (void *) cmsg[1] + aligned_cms_len[1]);
+ printf(", ... /* %p */", (void *) cmsg[1] + aligned_cms_len[1]);
printf("]");
errno = saved_errno;
@@ -425,7 +425,7 @@
print_security(cmsg, src_len);
printf("}");
if (aligned_cms_len < msg_controllen)
- printf(", %p", (void *) cmsg + aligned_cms_len);
+ printf(", ... /* %p */", (void *) cmsg + aligned_cms_len);
printf("]");
errno = saved_errno;
diff --git a/tests-m32/net-sockaddr.c b/tests-m32/net-sockaddr.c
index fe933d4..22cbb26 100644
--- a/tests-m32/net-sockaddr.c
+++ b/tests-m32/net-sockaddr.c
@@ -2,7 +2,7 @@
* Check decoding of sockaddr structures
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -436,25 +436,86 @@
{
const unsigned short h_psm = 12345;
const unsigned short h_cid = 13579;
- const struct sockaddr_l2 c_l2 = {
+ struct sockaddr_l2 c_l2 = {
.l2_family = AF_BLUETOOTH,
.l2_psm = htobs(h_psm),
.l2_bdaddr.b = "abcdef",
.l2_cid = htobs(h_cid),
- .l2_bdaddr_type = 42
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ .l2_bdaddr_type = 0xce,
+#endif
};
void *l2 = tail_memdup(&c_l2, sizeof(c_l2));
unsigned int len = sizeof(c_l2);
+
int ret = connect(-1, l2, len);
printf("connect(-1, {sa_family=AF_BLUETOOTH"
- ", l2_psm=htobs(%hu)"
+ ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)"
", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
- ", l2_cid=htobs(%hu), l2_bdaddr_type=%u}"
- ", %u) = %d EBADF (%m)\n", h_psm,
+ ", l2_cid=htobs(L2CAP_CID_DYN_START + %hu)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=0xce /* BDADDR_??? */"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ (short) (h_psm - 0x1001),
c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
- h_cid, c_l2.l2_bdaddr_type, len, ret);
+ (short) (h_cid - 0x40), len, ret);
+
+ c_l2.l2_psm = htobs(1);
+ c_l2.l2_cid = htobs(1);
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ c_l2.l2_bdaddr_type = BDADDR_LE_RANDOM;
+#endif
+ memcpy(l2, &c_l2, sizeof(c_l2));
+ ret = connect(-1, l2, len);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(L2CAP_PSM_SDP)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(L2CAP_CID_SIGNALING)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=BDADDR_LE_RANDOM"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ len, ret);
+
+ c_l2.l2_psm = htobs(0xbad);
+ c_l2.l2_cid = htobs(8);
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ c_l2.l2_bdaddr_type = 3;
+#endif
+ memcpy(l2, &c_l2, sizeof(c_l2));
+ ret = connect(-1, l2, len);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(0x8 /* L2CAP_CID_??? */)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=0x3 /* BDADDR_??? */"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ len, ret);
+
+ c_l2.l2_psm = htobs(0x10ff);
+ c_l2.l2_cid = htobs(0xffff);
+ memcpy(l2, &c_l2, 12);
+ ret = connect(-1, l2, 12);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(L2CAP_PSM_AUTO_END)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(L2CAP_CID_DYN_END)"
+ "}, 12) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ ret);
}
#endif
diff --git a/tests-m32/netlink_crypto.c b/tests-m32/netlink_crypto.c
index d15c17c..5c3dc04 100644
--- a/tests-m32/netlink_crypto.c
+++ b/tests-m32/netlink_crypto.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -98,8 +98,6 @@
static void
test_crypto_msg_newalg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
struct crypto_user_alg alg = {
.cru_name = "abcd",
.cru_driver_name = "efgh",
@@ -109,6 +107,8 @@
.cru_refcnt = 0xbcacfacd,
.cru_flags = 0xefacdbad
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(alg));
+
TEST_NETLINK_OBJECT_EX(fd, nlh0,
CRYPTO_MSG_NEWALG, NLM_F_REQUEST,
alg, print_quoted_memory,
@@ -149,7 +149,7 @@
static void
test_crypto_msg_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, 4);
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* CRYPTO_MSG_??? */",
diff --git a/tests-m32/netlink_kobject_uevent.c b/tests-m32/netlink_kobject_uevent.c
index 7edacd7..b28af49 100644
--- a/tests-m32/netlink_kobject_uevent.c
+++ b/tests-m32/netlink_kobject_uevent.c
@@ -27,9 +27,12 @@
*/
#include "tests.h"
+#include <string.h>
#include <stdio.h>
#include <sys/socket.h>
+#include <arpa/inet.h>
#include "netlink.h"
+#include "netlink_kobject_uevent.h"
static const char *errstr;
@@ -41,6 +44,94 @@
return rc;
}
+static void
+test_nlmsg_type_udev(const int fd)
+{
+ static const char extra[] = "12345678";
+ struct udev_monitor_netlink_header uh = {
+ .prefix = "libudev",
+ .magic = htonl(0xfeedcafe),
+ .header_size = sizeof(uh),
+ .properties_off = 40,
+ .properties_len = 299,
+ .filter_subsystem_hash = htonl(0xc370b302),
+ .filter_devtype_hash = htonl(0x10800000),
+ .filter_tag_bloom_hi = htonl(0x2000400),
+ .filter_tag_bloom_lo = htonl(0x10800000),
+ };
+ const unsigned int extra_len = LENGTH_OF(extra);
+ const unsigned int uh_len = sizeof(uh);
+
+ char *const buf = tail_alloc(uh_len + extra_len);
+ memcpy(buf + extra_len, &uh, uh_len);
+
+ sys_send(fd, buf + extra_len, uh_len);
+ printf("sendto(%d, {{prefix=\"%s\", magic=htonl(%#x)"
+ ", header_size=%u, properties_off=%u, properties_len=%u"
+ ", filter_subsystem_hash=htonl(%#x)"
+ ", filter_devtype_hash=htonl(%#x)"
+ ", filter_tag_bloom_hi=htonl(%#x)"
+ ", filter_tag_bloom_lo=htonl(%#x)}}, %u, MSG_DONTWAIT, NULL, "
+ "0) = %s\n"
+ , fd, uh.prefix,
+ ntohl(uh.magic), uh.header_size, uh.properties_off,
+ uh.properties_len, ntohl(uh.filter_subsystem_hash),
+ ntohl(uh.filter_devtype_hash), ntohl(uh.filter_tag_bloom_hi),
+ ntohl(uh.filter_tag_bloom_lo), uh_len, errstr);
+
+ memcpy(buf, &uh, uh_len);
+ memcpy(buf + uh_len, extra, extra_len);
+ sys_send(fd, buf, uh_len + extra_len);
+ printf("sendto(%d, {{prefix=\"%s\", magic=htonl(%#x)"
+ ", header_size=%u, properties_off=%u, properties_len=%u"
+ ", filter_subsystem_hash=htonl(%#x)"
+ ", filter_devtype_hash=htonl(%#x)"
+ ", filter_tag_bloom_hi=htonl(%#x)"
+ ", filter_tag_bloom_lo=htonl(%#x)}, "
+ , fd, uh.prefix,
+ ntohl(uh.magic), uh.header_size, uh.properties_off,
+ uh.properties_len, ntohl(uh.filter_subsystem_hash),
+ ntohl(uh.filter_devtype_hash), ntohl(uh.filter_tag_bloom_hi),
+ ntohl(uh.filter_tag_bloom_lo));
+ print_quoted_memory(buf + uh_len, extra_len);
+ printf("}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ uh_len + extra_len, errstr);
+
+ memcpy(buf + extra_len + 1, &uh, uh_len - 1);
+ sys_send(fd, buf + extra_len + 1, uh_len);
+ printf("sendto(%d, ", fd);
+ print_quoted_memory(&uh, MIN(uh_len - 1, DEFAULT_STRLEN));
+ printf("%s, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ (uh_len - 1 > DEFAULT_STRLEN ? "..." : ""),
+ uh_len, errstr);
+}
+
+static void
+test_nlmsg_type_kernel(const int fd)
+{
+ struct udev_monitor_netlink_header uh = {
+ .prefix = "change@",
+ .magic = htonl(0xfeedcafe),
+ .header_size = sizeof(uh),
+ .properties_off = 10,
+ .properties_len = 299,
+ .filter_subsystem_hash = htonl(0xfffffff),
+ .filter_devtype_hash = htonl(0x10000000),
+ .filter_tag_bloom_hi = htonl(0x2000400),
+ };
+ const unsigned int uh_len = sizeof(uh);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct udev_monitor_netlink_header, p);
+ memcpy(p, &uh, uh_len);
+
+ sys_send(fd, p, uh_len);
+ printf("sendto(%d, ", fd);
+ print_quoted_memory(&uh, MIN(uh_len, DEFAULT_STRLEN));
+ printf("%s, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ (uh_len > DEFAULT_STRLEN ? "..." : ""),
+ uh_len, errstr);
+}
+
int
main(void)
{
@@ -48,6 +139,8 @@
int fd = create_nl_socket(NETLINK_KOBJECT_UEVENT);
+ test_nlmsg_type_udev(fd);
+ test_nlmsg_type_kernel(fd);
/* test using data that looks like a zero-length C string */
char *const buf = tail_alloc(DEFAULT_STRLEN + 1);
buf[0] = '=';
diff --git a/tests-m32/netlink_netfilter.c b/tests-m32/netlink_netfilter.c
index 57532f5..2842e15 100644
--- a/tests-m32/netlink_netfilter.c
+++ b/tests-m32/netlink_netfilter.c
@@ -88,8 +88,8 @@
static void
test_nlmsg_done(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const int num = 0xabcdefad;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
TEST_NETLINK(fd, nlh0, NLMSG_DONE, NLM_F_REQUEST,
sizeof(num), &num, sizeof(num),
@@ -99,13 +99,21 @@
static void
test_nfgenmsg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ static const struct nlattr nla = {
+ .nla_len = sizeof(nla),
+ .nla_type = 0x0bcd
+ };
struct nfgenmsg msg = {
.nfgen_family = AF_UNIX,
.version = NFNETLINK_V0,
.res_id = NFNL_SUBSYS_NFTABLES
};
+ char str_buf[NLMSG_ALIGN(sizeof(msg)) + 4];
+ char nla_buf[NLMSG_ALIGN(sizeof(msg)) + sizeof(nla)];
+
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN,
+ MAX(sizeof(str_buf), sizeof(nla_buf)));
TEST_NETLINK_OBJECT_EX_(fd, nlh0,
NFNL_SUBSYS_NFTABLES << 8 | NFT_MSG_NEWTABLE,
@@ -150,8 +158,6 @@
printf(", version=NFNETLINK_V0");
printf(", res_id=htons(%d)", NFNL_SUBSYS_NFTABLES));
- char str_buf[NLMSG_ALIGN(sizeof(msg)) + 4];
-
msg.res_id = htons(0xabcd);
memcpy(str_buf, &msg, sizeof(msg));
memcpy(str_buf + NLMSG_ALIGN(sizeof(msg)), "1234", 4);
@@ -165,12 +171,6 @@
", \"\\x31\\x32\\x33\\x34\"", 0xabcd));
# endif /* NFNL_MSG_BATCH_BEGIN */
- static const struct nlattr nla = {
- .nla_len = sizeof(nla),
- .nla_type = 0x0bcd
- };
- char nla_buf[NLMSG_ALIGN(sizeof(msg)) + sizeof(nla)];
-
msg.res_id = htons(NFNL_SUBSYS_NFTABLES);
memcpy(nla_buf, &msg, sizeof(msg));
memcpy(nla_buf + NLMSG_ALIGN(sizeof(msg)), &nla, sizeof(nla));
diff --git a/tests-m32/netlink_netlink_diag.c b/tests-m32/netlink_netlink_diag.c
index 855e404..a682f7c 100644
--- a/tests-m32/netlink_netlink_diag.c
+++ b/tests-m32/netlink_netlink_diag.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Fabien Siron <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -55,8 +55,7 @@
},
.ndr = {
.sdiag_family = AF_NETLINK,
- .sdiag_protocol = NDIAG_PROTO_ALL,
- .ndiag_show = NDIAG_SHOW_MEMINFO
+ .sdiag_protocol = NDIAG_PROTO_ALL
}
};
struct iovec iov = {
diff --git a/tests-m32/netlink_protocol.c b/tests-m32/netlink_protocol.c
index be1a652..47f0e92 100644
--- a/tests-m32/netlink_protocol.c
+++ b/tests-m32/netlink_protocol.c
@@ -3,6 +3,7 @@
*
* Copyright (c) 2014-2017 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Fabien Siron <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -125,7 +126,8 @@
struct req req1;
char padding[NLMSG_ALIGN(sizeof(struct req)) - sizeof(struct req)];
struct req req2;
- } *const reqs = tail_alloc(sizeof(*reqs));
+ };
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct reqs, reqs);
memcpy(&reqs->req1, &c_req, sizeof(c_req));
memcpy(&reqs->req2, &c_req, sizeof(c_req));
@@ -144,7 +146,7 @@
rc = sendto(fd, efault2, sizeof(*reqs), MSG_DONTWAIT, NULL, 0);
printf("sendto(%d, [{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
", seq=0, pid=0}, \"\\x61\\x62\\x63\\x64\"}"
- ", %p], %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ ", ... /* %p */], %u, MSG_DONTWAIT, NULL, 0) = %s\n",
fd, reqs->req1.nlh.nlmsg_len, NLM_F_DUMP,
&((struct reqs *) efault2)->req2, (unsigned) sizeof(*reqs),
sprintrc(rc));
@@ -203,7 +205,7 @@
{
struct nlmsgerr *err;
struct nlmsghdr *nlh;
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(*err) + 4);
long rc;
/* error message without enough room for the error code */
@@ -318,9 +320,9 @@
test_nlmsg_done(const int fd)
{
struct nlmsghdr *nlh;
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
- long rc;
const int num = 0xfacefeed;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
+ long rc;
/* NLMSG_DONE message without enough room for an integer payload */
nlh = nlh0;
diff --git a/tests-m32/netlink_route.c b/tests-m32/netlink_route.c
index a1c7d1f..a3fbac9 100644
--- a/tests-m32/netlink_route.c
+++ b/tests-m32/netlink_route.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -143,8 +144,8 @@
static void
test_nlmsg_done(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const int num = 0xabcdefad;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
TEST_NETLINK(fd, nlh0, NLMSG_DONE, NLM_F_REQUEST,
sizeof(num), &num, sizeof(num),
@@ -154,10 +155,11 @@
static void
test_rtnl_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* RTM_??? */",
NLM_F_REQUEST, "NLM_F_REQUEST",
@@ -180,7 +182,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -204,7 +205,6 @@
static void
test_rtnl_link(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifinfomsg ifinfo = {
.ifi_family = AF_UNIX,
.ifi_type = ARPHRD_LOOPBACK,
@@ -212,6 +212,7 @@
.ifi_flags = IFF_UP,
.ifi_change = 0xfabcdeba
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(ifinfo));
TEST_NL_ROUTE(fd, nlh0, RTM_GETLINK, ifinfo,
printf("{ifi_family=AF_UNIX"),
@@ -225,7 +226,6 @@
static void
test_rtnl_addr(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifaddrmsg msg = {
.ifa_family = AF_UNIX,
.ifa_prefixlen = 0xde,
@@ -233,6 +233,7 @@
.ifa_scope = RT_SCOPE_UNIVERSE,
.ifa_index = ifindex_lo()
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETADDR, msg,
printf("{ifa_family=AF_UNIX"),
@@ -246,7 +247,6 @@
static void
test_rtnl_route(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct rtmsg msg = {
.rtm_family = AF_UNIX,
.rtm_dst_len = 0xaf,
@@ -258,6 +258,7 @@
.rtm_type = RTN_LOCAL,
.rtm_flags = RTM_F_NOTIFY
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETROUTE, msg,
printf("{rtm_family=AF_UNIX"),
@@ -275,7 +276,6 @@
static void
test_rtnl_rule(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct rtmsg msg = {
.rtm_family = AF_UNIX,
.rtm_dst_len = 0xaf,
@@ -285,6 +285,7 @@
.rtm_type = FR_ACT_TO_TBL,
.rtm_flags = FIB_RULE_INVERT
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETRULE, msg,
printf("{family=AF_UNIX"),
@@ -301,7 +302,6 @@
static void
test_rtnl_neigh(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ndmsg msg = {
.ndm_family = AF_UNIX,
.ndm_ifindex = ifindex_lo(),
@@ -309,6 +309,7 @@
.ndm_flags = NTF_PROXY,
.ndm_type = RTN_UNSPEC
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETNEIGH, msg,
printf("{ndm_family=AF_UNIX"),
@@ -321,10 +322,10 @@
static void
test_rtnl_neightbl(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct ndtmsg msg = {
.ndtm_family = AF_NETLINK
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNEIGHTBL, NLM_F_REQUEST,
@@ -335,7 +336,6 @@
static void
test_rtnl_tc(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct tcmsg msg = {
.tcm_family = AF_UNIX,
.tcm_ifindex = ifindex_lo(),
@@ -343,6 +343,7 @@
.tcm_parent = 0xafbcadab,
.tcm_info = 0xbcaedafa
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETQDISC, msg,
printf("{tcm_family=AF_UNIX"),
@@ -356,10 +357,10 @@
static void
test_rtnl_tca(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct tcamsg msg = {
.tca_family = AF_INET
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETACTION, NLM_F_REQUEST,
@@ -371,7 +372,6 @@
static void
test_rtnl_addrlabel(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifaddrlblmsg msg = {
.ifal_family = AF_UNIX,
.ifal_prefixlen = 0xaf,
@@ -379,6 +379,7 @@
.ifal_index = ifindex_lo(),
.ifal_seq = 0xfadcdafb
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETADDRLABEL, msg,
printf("{ifal_family=AF_UNIX"),
@@ -394,11 +395,11 @@
static void
test_rtnl_dcb(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct dcbmsg msg = {
.dcb_family = AF_UNIX,
.cmd = DCB_CMD_UNDEFINED
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETDCB, msg,
printf("{dcb_family=AF_UNIX"),
@@ -410,10 +411,10 @@
static void
test_rtnl_netconf(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct netconfmsg msg = {
.ncm_family = AF_INET
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNETCONF, NLM_F_REQUEST,
@@ -426,11 +427,11 @@
static void
test_rtnl_mdb(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct br_port_msg msg = {
.family = AF_UNIX,
.ifindex = ifindex_lo()
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETMDB, msg,
printf("{family=AF_UNIX"),
@@ -442,10 +443,10 @@
static void
test_rtnl_nsid(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct rtgenmsg msg = {
.rtgen_family = AF_UNIX
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNSID, NLM_F_REQUEST,
diff --git a/tests-m32/netlink_selinux.c b/tests-m32/netlink_selinux.c
index 2d76822..57cf8a5 100644
--- a/tests-m32/netlink_selinux.c
+++ b/tests-m32/netlink_selinux.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +54,7 @@
static void
test_selnl_msg_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, 4);
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* SELNL_MSG_??? */",
@@ -65,11 +66,11 @@
static void
test_selnl_msg_setenforce(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
static const struct selnl_msg_setenforce msg = {
.val = 0xfbdcdfab
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
+
TEST_NETLINK_OBJECT(fd, nlh0,
SELNL_MSG_SETENFORCE, NLM_F_REQUEST, msg,
PRINT_FIELD_D("{", msg, val);
@@ -79,11 +80,11 @@
static void
test_selnl_msg_policyload(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
static const struct selnl_msg_policyload msg = {
.seqno = 0xabdcfabc
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
+
TEST_NETLINK_OBJECT(fd, nlh0,
SELNL_MSG_POLICYLOAD, NLM_F_REQUEST, msg,
PRINT_FIELD_U("{", msg, seqno);
diff --git a/tests-m32/netlink_sock_diag.c b/tests-m32/netlink_sock_diag.c
index c2ebf12..880069f 100644
--- a/tests-m32/netlink_sock_diag.c
+++ b/tests-m32/netlink_sock_diag.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2016 Fabien Siron <[email protected]>
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -127,10 +127,11 @@
static void
test_odd_family_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK(fd, nlh0,
SOCK_DIAG_BY_FAMILY,
NLM_F_REQUEST,
@@ -153,7 +154,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -177,10 +177,11 @@
static void
test_odd_family_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK(fd, nlh0,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP,
sizeof(family), &family, sizeof(family),
@@ -200,7 +201,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -222,7 +222,6 @@
static void
test_unix_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct unix_diag_req req = {
.sdiag_family = AF_UNIX,
.sdiag_protocol = 253,
@@ -231,6 +230,7 @@
.udiag_show = UDIAG_SHOW_NAME,
.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_UNIX,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_UNIX"),
@@ -245,7 +245,6 @@
static void
test_unix_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct unix_diag_msg msg = {
.udiag_family = AF_UNIX,
.udiag_type = SOCK_STREAM,
@@ -253,6 +252,7 @@
.udiag_ino = 0xfacefeed,
.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_UNIX,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{udiag_family=AF_UNIX"),
@@ -266,7 +266,6 @@
static void
test_netlink_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct netlink_diag_req req = {
.sdiag_family = AF_NETLINK,
.sdiag_protocol = NDIAG_PROTO_ALL,
@@ -274,6 +273,7 @@
.ndiag_show = NDIAG_SHOW_MEMINFO,
.ndiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_NETLINK,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_NETLINK"),
@@ -298,7 +298,6 @@
static void
test_netlink_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct netlink_diag_msg msg = {
.ndiag_family = AF_NETLINK,
.ndiag_type = SOCK_RAW,
@@ -310,6 +309,7 @@
.ndiag_ino = 0xdaeefacd,
.ndiag_cookie = { 0xbadc0ded, 0xdeadbeef }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_NETLINK,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{ndiag_family=AF_NETLINK"),
@@ -327,7 +327,6 @@
static void
test_packet_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct packet_diag_req req = {
.sdiag_family = AF_PACKET,
.sdiag_protocol = ETH_P_LOOP,
@@ -335,6 +334,7 @@
.pdiag_show = PACKET_SHOW_INFO,
.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_PACKET,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_PACKET"),
@@ -348,7 +348,6 @@
static void
test_packet_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct packet_diag_msg msg = {
.pdiag_family = AF_PACKET,
.pdiag_type = SOCK_STREAM,
@@ -356,6 +355,7 @@
.pdiag_ino = 0xfacefeed,
.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_PACKET,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{pdiag_family=AF_PACKET"),
@@ -371,7 +371,6 @@
{
const char address[] = "12.34.56.78";
const char address6[] = "12:34:56:78:90:ab:cd:ef";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req_v2 req = {
.sdiag_family = AF_INET,
.idiag_ext = 1 << (INET_DIAG_CONG - 1),
@@ -384,6 +383,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -435,7 +435,6 @@
test_inet_diag_req(const int fd)
{
const char address[] = "12.34.56.78";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req req = {
.idiag_family = AF_INET,
.idiag_src_len = 0xde,
@@ -450,6 +449,7 @@
.idiag_states = 1 << TCP_LAST_ACK,
.idiag_dbs = 0xfacefeed,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -479,7 +479,6 @@
test_inet_diag_req_v2(const int fd)
{
const char address[] = "87.65.43.21";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req_v2 req = {
.sdiag_family = AF_INET,
.idiag_ext = 1 << (INET_DIAG_CONG - 1),
@@ -492,6 +491,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -519,7 +519,6 @@
test_inet_diag_msg(const int fd)
{
const char address[] = "11.22.33.44";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_msg msg = {
.idiag_family = AF_INET,
.idiag_state = TCP_LISTEN,
@@ -537,6 +536,7 @@
.idiag_uid = 0xdecefaeb,
.idiag_inode = 0xbadc0ded,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
if (!inet_pton(AF_INET, address, &msg.id.idiag_src) ||
!inet_pton(AF_INET, address, &msg.id.idiag_dst))
@@ -570,7 +570,6 @@
test_smc_diag_req(const int fd)
{
const char address[] = "43.21.56.78";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct smc_diag_req req = {
.diag_family = AF_SMC,
.diag_ext = 1 << (SMC_DIAG_CONNINFO - 1),
@@ -581,6 +580,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -606,7 +606,6 @@
test_smc_diag_msg(const int fd)
{
const char address[] = "34.87.12.90";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct smc_diag_msg msg = {
.diag_family = AF_SMC,
.diag_state = SMC_ACTIVE,
@@ -621,6 +620,7 @@
.diag_uid = 0xadcdfafc,
.diag_inode = 0xbadc0ded,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
if (!inet_pton(AF_INET, address, &msg.id.idiag_src) ||
!inet_pton(AF_INET, address, &msg.id.idiag_dst))
diff --git a/tests-m32/nlattr.c b/tests-m32/nlattr.c
index 41923c0..8556f68 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -172,7 +172,7 @@
", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
- ", nla_type=UNIX_DIAG_NAME}, %p]}, %u"
+ ", nla_type=UNIX_DIAG_NAME}, ... /* %p */]}, %u"
", MSG_DONTWAIT, NULL, 0) = %s\n",
fd, msg_len, NLA_HDRLEN, nla + 1, msg_len, sprintrc(rc));
diff --git a/tests-m32/nlattr_br_port_msg.c b/tests-m32/nlattr_br_port_msg.c
index a2a4792..d339414 100644
--- a/tests-m32/nlattr_br_port_msg.c
+++ b/tests-m32/nlattr_br_port_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct br_port_msg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_crypto_user_alg.c b/tests-m32/nlattr_crypto_user_alg.c
index 2482b33..b8ceba6 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -72,7 +72,12 @@
const int fd = create_nl_socket(NETLINK_CRYPTO);
const unsigned int hdrlen = sizeof(struct crypto_user_alg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ /*
+ * There are also other structures, but they are not bigger than
+ * DEFAULT_STRLEN so far.
+ */
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + DEFAULT_STRLEN);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_dcbmsg.c b/tests-m32/nlattr_dcbmsg.c
index cd63bb6..b6eb772 100644
--- a/tests-m32/nlattr_dcbmsg.c
+++ b/tests-m32/nlattr_dcbmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct dcbmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_fib_rule_hdr.c b/tests-m32/nlattr_fib_rule_hdr.c
index 394ab10..96ebadf 100644
--- a/tests-m32/nlattr_fib_rule_hdr.c
+++ b/tests-m32/nlattr_fib_rule_hdr.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,12 +34,24 @@
# include <inttypes.h>
# include "test_nlattr.h"
# include <linux/fib_rules.h>
+# include <linux/in.h>
# include <linux/ip.h>
# include <linux/rtnetlink.h>
#define FRA_TUN_ID 12
#define FRA_TABLE 15
#define FRA_UID_RANGE 20
+#define FRA_PROTOCOL 21
+#define FRA_IP_PROTO 22
+#define FRA_SPORT_RANGE 23
+#define FRA_DPORT_RANGE 24
+
+# ifndef HAVE_STRUCT_FIB_RULE_PORT_RANGE
+struct fib_rule_port_range {
+ uint16_t start;
+ uint16_t end;
+};
+# endif /* HAVE_STRUCT_FIB_RULE_PORT_RANGE */
static void
init_rtmsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
@@ -80,7 +92,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
@@ -125,6 +137,62 @@
printf("htobe64(%" PRIu64 ")", be64toh(tun_id)));
#endif
+ uint8_t proto;
+
+ static const struct {
+ uint8_t arg;
+ const char *str;
+ } proto_args[] = {
+ { ARG_STR(RTPROT_UNSPEC) },
+ { 5, "0x5 /* RTPROT_??? */" },
+ { 17, "RTPROT_MROUTED" },
+ { 42, "RTPROT_BABEL" },
+ { 43, "0x2b /* RTPROT_??? */" },
+ { ARG_STR(0xde) " /* RTPROT_??? */" },
+ };
+
+ for (unsigned i = 0; i < ARRAY_SIZE(proto_args); i++) {
+ proto = proto_args[i].arg;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_PROTOCOL, pattern, proto,
+ printf("%s", proto_args[i].str));
+ }
+
+ static const struct {
+ uint8_t arg;
+ const char *str;
+ } ipproto_args[] = {
+ { ARG_STR(IPPROTO_TCP) },
+ { 254, "0xfe /* IPPROTO_??? */" },
+ { ARG_STR(IPPROTO_RAW) },
+ };
+
+ for (unsigned i = 0; i < ARRAY_SIZE(ipproto_args); i++) {
+ proto = ipproto_args[i].arg;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_IP_PROTO, pattern, proto,
+ printf("%s", ipproto_args[i].str));
+ }
+
+ static const struct fib_rule_port_range prange = {
+ .start = 0xabcd,
+ .end = 0xfeed,
+ };
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_SPORT_RANGE, pattern, prange,
+ PRINT_FIELD_U("{", prange, start);
+ PRINT_FIELD_U(", ", prange, end);
+ printf("}"));
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_DPORT_RANGE, pattern, prange,
+ PRINT_FIELD_U("{", prange, start);
+ PRINT_FIELD_U(", ", prange, end);
+ printf("}"));
+
puts("+++ exited with 0 +++");
return 0;
}
diff --git a/tests-m32/nlattr_ifaddrlblmsg.c b/tests-m32/nlattr_ifaddrlblmsg.c
index 6003634..53a928d 100644
--- a/tests-m32/nlattr_ifaddrlblmsg.c
+++ b/tests-m32/nlattr_ifaddrlblmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ifaddrlblmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_ifaddrmsg.c b/tests-m32/nlattr_ifaddrmsg.c
index 93fbef1..c71ebb1 100644
--- a/tests-m32/nlattr_ifaddrmsg.c
+++ b/tests-m32/nlattr_ifaddrmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -83,9 +83,23 @@
{
skip_if_unavailable("/proc/self/fd/");
+ static const char address4[] = "12.34.56.78";
+ static const char address6[] = "12:34:56:78:90:ab:cd:ef";
+ static const struct ifa_cacheinfo ci = {
+ .ifa_prefered = 0xabcdefac,
+ .ifa_valid = 0xbcdadbca,
+ .cstamp = 0xcdabedba,
+ .tstamp = 0xdebabdac
+ };
+
+ struct in_addr a4;
+ struct in6_addr a6;
+ const uint32_t ifa_flags = IFA_F_SECONDARY | IFA_F_PERMANENT;
+
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ifaddrmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + MAX(sizeof(ci), sizeof(a6)));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
@@ -106,8 +120,6 @@
print_quoted_hex(pattern, 4));
SET_IFA_FAMILY(AF_INET);
- static const char address4[] = "12.34.56.78";
- struct in_addr a4;
if (!inet_pton(AF_INET, address4, &a4))
perror_msg_and_skip("inet_pton");
@@ -118,8 +130,6 @@
printf("%s", address4));
SET_IFA_FAMILY(AF_INET6);
- static const char address6[] = "12:34:56:78:90:ab:cd:ef";
- struct in6_addr a6;
if (!inet_pton(AF_INET6, address6, &a6))
perror_msg_and_skip("inet_pton");
@@ -129,12 +139,6 @@
IFA_ADDRESS, pattern, a6,
printf("%s", address6));
- static const struct ifa_cacheinfo ci = {
- .ifa_prefered = 0xabcdefac,
- .ifa_valid = 0xbcdadbca,
- .cstamp = 0xcdabedba,
- .tstamp = 0xdebabdac
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifaddrmsg, print_ifaddrmsg,
IFA_CACHEINFO, pattern, ci,
@@ -144,7 +148,6 @@
PRINT_FIELD_U(", ", ci, tstamp);
printf("}"));
- const uint32_t ifa_flags = IFA_F_SECONDARY | IFA_F_PERMANENT;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifaddrmsg, print_ifaddrmsg,
IFA_FLAGS, pattern, ifa_flags,
diff --git a/tests-m32/nlattr_ifinfomsg.c b/tests-m32/nlattr_ifinfomsg.c
index 1fff52c..71b1bab 100644
--- a/tests-m32/nlattr_ifinfomsg.c
+++ b/tests-m32/nlattr_ifinfomsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -46,6 +46,7 @@
# define IFLA_VF_PORTS 24
#endif
#define IFLA_LINK_NETNSID 37
+#define IFLA_EVENT 44
#ifndef IFLA_INFO_KIND
# define IFLA_INFO_KIND 1
@@ -89,28 +90,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_ROUTE);
- const unsigned int hdrlen = sizeof(struct ifinfomsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- 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 /* IFLA_??? */", nla_type);
- TEST_NLATTR_(fd, nlh0, hdrlen,
- init_ifinfomsg, print_ifinfomsg,
- nla_type, nla_type_str,
- 4, pattern, 4,
- print_quoted_hex(pattern, 4));
-
- const int32_t netnsid = 0xacbdabda;
- TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_ifinfomsg, print_ifinfomsg,
- IFLA_LINK_NETNSID, pattern, netnsid,
- printf("%d", netnsid));
-
static const struct rtnl_link_stats st = {
.rx_packets = 0xabcdefac,
.tx_packets = 0xbcdacdab,
@@ -136,6 +115,29 @@
.rx_compressed = 0xdeffadbd,
.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));
+
+ 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 /* IFLA_??? */", nla_type);
+ TEST_NLATTR_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ nla_type, nla_type_str,
+ 4, pattern, 4,
+ print_quoted_hex(pattern, 4));
+
+ const int32_t netnsid = 0xacbdabda;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_LINK_NETNSID, pattern, netnsid,
+ printf("%d", netnsid));
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_STATS, pattern, st,
@@ -343,6 +345,22 @@
printf("{nla_len=%u, nla_type=IFLA_VF_PORT}",
nla.nla_len));
+ static const struct {
+ uint32_t val;
+ const char *str;
+ } ifla_events[] = {
+ { 0, "IFLA_EVENT_NONE" },
+ { 6, "IFLA_EVENT_BONDING_OPTIONS" },
+ { ARG_STR(0x7) " /* IFLA_EVENT_??? */" },
+ { ARG_STR(0xdeadfeed) " /* IFLA_EVENT_??? */" },
+ };
+ for (size_t i = 0; i < ARRAY_SIZE(ifla_events); i++) {
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_EVENT, pattern, ifla_events[i].val,
+ printf("%s", ifla_events[i].str));
+ }
+
puts("+++ exited with 0 +++");
return 0;
}
diff --git a/tests-m32/nlattr_ifla.h b/tests-m32/nlattr_ifla.h
new file mode 100644
index 0000000..6989225
--- /dev/null
+++ b/tests-m32/nlattr_ifla.h
@@ -0,0 +1,78 @@
+/*
+ * netlink attribute ifinfomsg common code.
+ *
+ * Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_TESTS_NLATTR_IFLA_H
+#define STRACE_TESTS_NLATTR_IFLA_H
+
+#include "tests.h"
+
+#ifndef IFLA_ATTR
+# error "Please define IFLA_ATTR before including this file"
+#endif
+
+static const unsigned int hdrlen = sizeof(struct ifinfomsg);
+
+static void
+init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+ SET_STRUCT(struct nlmsghdr, nlh,
+ .nlmsg_len = msg_len,
+ .nlmsg_type = RTM_GETLINK,
+ .nlmsg_flags = NLM_F_DUMP
+ );
+
+ struct ifinfomsg *const msg = NLMSG_DATA(nlh);
+ SET_STRUCT(struct ifinfomsg, msg,
+ .ifi_family = AF_UNIX,
+ .ifi_type = ARPHRD_LOOPBACK,
+ .ifi_index = ifindex_lo(),
+ .ifi_flags = IFF_UP,
+ );
+
+ struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
+ SET_STRUCT(struct nlattr, nla,
+ .nla_len = msg_len - NLMSG_SPACE(hdrlen),
+ .nla_type = IFLA_ATTR
+ );
+}
+
+static void
+print_ifinfomsg(const unsigned int msg_len)
+{
+ printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
+ ", seq=0, pid=0}, {ifi_family=AF_UNIX"
+ ", ifi_type=ARPHRD_LOOPBACK"
+ ", ifi_index=" IFINDEX_LO_STR
+ ", ifi_flags=IFF_UP, ifi_change=0}"
+ ", {{nla_len=%u, nla_type=" STRINGIFY_VAL(IFLA_ATTR) "}",
+ msg_len, msg_len - NLMSG_SPACE(hdrlen));
+}
+
+#endif /* STRACE_TESTS_NLATTR_IFLA_H */
diff --git a/tests-m32/nlattr_ifla_af_spec.c b/tests-m32/nlattr_ifla_af_spec.c
new file mode 100644
index 0000000..24f55af
--- /dev/null
+++ b/tests-m32/nlattr_ifla_af_spec.c
@@ -0,0 +1,322 @@
+/*
+ * IFLA_AF_SPEC netlink attribute decoding check.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stddef.h>
+#include "test_nlattr.h"
+
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#ifdef HAVE_LINUX_IF_LINK_H
+# include <linux/if_link.h>
+#endif
+#include <linux/rtnetlink.h>
+
+#if !HAVE_DECL_IFLA_AF_SPEC
+enum { IFLA_AF_SPEC = 26 };
+#endif
+
+#define XLAT_MACROS_ONLY
+# include "xlat/rtnl_ifla_af_spec_inet_attrs.h"
+# include "xlat/rtnl_ifla_af_spec_inet6_attrs.h"
+#undef XLAT_MACROS_ONLY
+
+#ifndef HAVE_STRUCT_IFLA_CACHEINFO
+struct ifla_cacheinfo {
+ uint32_t max_reasm_len;
+ uint32_t tstamp;
+ uint32_t reachable_time;
+ uint32_t retrans_time;
+};
+#endif
+
+#define IFLA_ATTR IFLA_AF_SPEC
+#include "nlattr_ifla.h"
+
+#define AF_SPEC_FUNCS(family_) \
+ static void \
+ init_##family_##_msg(struct nlmsghdr *const nlh, \
+ const unsigned int msg_len) \
+ { \
+ init_ifinfomsg(nlh, msg_len); \
+ \
+ struct nlattr *nla = NLMSG_ATTR(nlh, hdrlen); \
+ nla += 1; \
+ SET_STRUCT(struct nlattr, nla, \
+ .nla_len = msg_len - NLMSG_SPACE(hdrlen) \
+ - NLA_HDRLEN, \
+ .nla_type = family_, \
+ ); \
+ } \
+ \
+ static void \
+ print_##family_##_msg(const unsigned int msg_len) \
+ { \
+ print_ifinfomsg(msg_len); \
+ printf(", {{nla_len=%u, nla_type=" #family_ "}", \
+ msg_len - NLMSG_SPACE(hdrlen) - NLA_HDRLEN); \
+ } \
+ /* end of AF_SPEC_FUNCS definition */
+
+AF_SPEC_FUNCS(AF_INET)
+AF_SPEC_FUNCS(AF_INET6)
+
+static void
+print_arr_val(uint32_t *val, size_t idx, const char *idx_str)
+{
+ if (idx_str)
+ printf("[%s] = ", idx_str);
+ else
+ printf("[%zu] = ", idx);
+
+ printf("%d", *val);
+}
+
+static void
+print_arr_uval(uint64_t *val, size_t idx, const char *idx_str)
+{
+ if (idx_str)
+ printf("[%s] = ", idx_str);
+ else
+ printf("[%zu] = ", idx);
+
+ printf("%" PRIu64, *val);
+}
+
+static void
+print_inet_conf_val(uint32_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "IPV4_DEVCONF_FORWARDING-1",
+ "IPV4_DEVCONF_MC_FORWARDING-1",
+ };
+
+ print_arr_val(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+
+static void
+print_inet6_conf_val(uint32_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "DEVCONF_FORWARDING",
+ "DEVCONF_HOPLIMIT",
+ };
+
+ print_arr_val(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+static void
+print_inet6_stats_val(uint64_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "IPSTATS_MIB_NUM",
+ "IPSTATS_MIB_INPKTS",
+ };
+
+ print_arr_uval(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+static void
+print_icmp6_stats_val(uint64_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "ICMP6_MIB_NUM",
+ "ICMP6_MIB_INMSGS",
+ "ICMP6_MIB_INERRORS",
+ "ICMP6_MIB_OUTMSGS",
+ "ICMP6_MIB_OUTERRORS",
+ "ICMP6_MIB_CSUMERRORS",
+ "6 /* ICMP6_MIB_??? */",
+ };
+
+ print_arr_uval(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+int
+main(void)
+{
+ static const uint8_t unknown_msg[] = { 0xab, 0xac, 0xdb, 0xcd };
+
+ skip_if_unavailable("/proc/self/fd/");
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ const unsigned int hdrlen = sizeof(struct ifinfomsg);
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 3 * NLA_HDRLEN + 256);
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+
+ /* unknown AF_* */
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ AF_UNIX, pattern, unknown_msg,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ 0, "IFLA_INET_UNSPEC", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ 2, "0x2 /* IFLA_INET_??? */", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET: IFLA_INET_CONF */
+ uint32_t inet_conf_vals[] = { 0xdeadc0de, 0xda7aface };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ IFLA_INET_CONF, pattern,
+ inet_conf_vals, 2, print_inet_conf_val);
+
+ /* AF_INET6 */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 0, "IFLA_INET6_UNSPEC", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 9, "0x9 /* IFLA_INET6_??? */", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET6: IFLA_INET6_FLAGS */
+ static const struct {
+ uint32_t flags;
+ const char *str;
+ } inet6_flags[] = {
+ { 0xf, "0xf /* IF_??? */" },
+ { 0x10, "IF_RS_SENT" },
+ { 0xc0, "IF_RA_MANAGED|IF_RA_OTHERCONF" },
+ { 0xdeadc0de, "IF_RS_SENT|IF_RA_MANAGED|IF_RA_OTHERCONF"
+ "|IF_READY|0x5eadc00e" },
+ };
+
+ for (size_t i = 0; i < ARRAY_SIZE(inet6_flags); i++) {
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg,
+ print_AF_INET6_msg,
+ 1, "IFLA_INET6_FLAGS", pattern,
+ inet6_flags[i].flags,
+ print_quoted_hex, 2,
+ printf("%s", inet6_flags[i].str));
+ }
+
+ /* AF_INET6: IFLA_INET6_CONF */
+ uint32_t inet6_conf_vals[] = { 0xdeadc0de, 0xda7aface };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_CONF, pattern,
+ inet6_conf_vals, 2, print_inet6_conf_val);
+
+ /* AF_INET6: IFLA_INET6_STATS */
+ uint64_t inet6_stats_vals[] = { 0xdeadc0deda7aface, 0xdec0deedbadc0ded };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_STATS, pattern,
+ inet6_stats_vals, 2, print_inet6_stats_val);
+
+ /* AF_INET6: IFLA_INET6_MCAST */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 4, "IFLA_INET6_MCAST", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET6: IFLA_INET6_CACHEINFO */
+ static const struct ifla_cacheinfo ci = {
+ 0xbadc0ded, 0xfacebeef, 0xdecafeed, 0xdeadfeed,
+ };
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 5, "IFLA_INET6_CACHEINFO", pattern,
+ ci, print_quoted_hex, 2,
+ PRINT_FIELD_U("{", ci, max_reasm_len);
+ PRINT_FIELD_U(", ", ci, tstamp);
+ PRINT_FIELD_U(", ", ci, reachable_time);
+ PRINT_FIELD_U(", ", ci, retrans_time);
+ printf("}"));
+
+ /* AF_INET6: IFLA_INET6_ICMP6STATS */
+ uint64_t icmp6_stats_vals[] = {
+ 0xdeadc0deda7aface, 0xdec0deedbadc0ded, 0xfacebeefdeadfeed,
+ 0xdeadc0deda7afacd, 0xdec0deedbadc0dee, 0xfacebeefdeadfeef,
+ 0xdeadc0deda7afacc
+ };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_ICMP6STATS, pattern,
+ icmp6_stats_vals, 2, print_icmp6_stats_val);
+
+ /* AF_INET6: IFLA_INET6_TOKEN */
+ uint8_t inet6_addr[16] = {
+ 0xba, 0xdc, 0x0d, 0xed, 0xfa, 0xce, 0xbe, 0xef,
+ 0xde, 0xca, 0xfe, 0xed, 0xde, 0xad, 0xfe, 0xed,
+ };
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 7, "IFLA_INET6_TOKEN", pattern,
+ inet6_addr, print_quoted_hex, 2,
+ printf("badc:ded:face:beef:deca:feed"
+ ":dead:feed"));
+
+ /* AF_INET6: IFLA_INET6_ */
+ static const struct {
+ uint8_t flags;
+ const char *str;
+ } agms[] = {
+ { 0x0, "IN6_ADDR_GEN_MODE_EUI64" },
+ { 0x3, "IN6_ADDR_GEN_MODE_RANDOM" },
+ { 0x4, "0x4 /* IN6_ADDR_GEN_MODE_??? */" },
+ { 0xff, "0xff /* IN6_ADDR_GEN_MODE_??? */" },
+ };
+
+ for (size_t i = 0; i < ARRAY_SIZE(agms); i++) {
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg,
+ print_AF_INET6_msg,
+ 8, "IFLA_INET6_ADDR_GEN_MODE",
+ pattern, agms[i].flags,
+ print_quoted_hex, 2,
+ printf("%s", agms[i].str));
+ }
+
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-m32/nlattr_ifla_af_spec.gen.test b/tests-m32/nlattr_ifla_af_spec.gen.test
new file mode 100755
index 0000000..601eeb2
--- /dev/null
+++ b/tests-m32/nlattr_ifla_af_spec.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_af_spec +netlink_sock_diag.test ); do not edit.
+set --
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/nlattr_ifla_brport.c b/tests-m32/nlattr_ifla_brport.c
index ae7c9da..1968426 100644
--- a/tests-m32/nlattr_ifla_brport.c
+++ b/tests-m32/nlattr_ifla_brport.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,65 +38,35 @@
#endif
#include <linux/rtnetlink.h>
+#if !HAVE_DECL_IFLA_PROTINFO
+enum { IFLA_PROTINFO = 12 };
+#endif
+
#define IFLA_BRPORT_PRIORITY 2
#define IFLA_BRPORT_MESSAGE_AGE_TIMER 21
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_PROTINFO
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_PROTINFO}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_PROTINFO
+#include "nlattr_ifla.h"
int
main(void)
{
skip_if_unavailable("/proc/self/fd/");
+ const uint16_t u16 = 0xabcd;
+ const uint64_t u64 = 0xabcdedeeefeafeab;
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN * 2 + sizeof(u64));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
- const uint16_t u16 = 0xabcd;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_BRPORT_PRIORITY, pattern, u16,
printf("%u", u16));
- const uint64_t u64 = 0xabcdedeeefeafeab;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_BRPORT_MESSAGE_AGE_TIMER, pattern, u64,
diff --git a/tests-m32/nlattr_ifla_linkinfo.c b/tests-m32/nlattr_ifla_linkinfo.c
new file mode 100644
index 0000000..1bf1bef
--- /dev/null
+++ b/tests-m32/nlattr_ifla_linkinfo.c
@@ -0,0 +1,711 @@
+/*
+ * IFLA_LINKINFO netlink attribute decoding check.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stddef.h>
+#include <arpa/inet.h>
+
+#include "test_nlattr.h"
+
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#ifdef HAVE_LINUX_IF_LINK_H
+# include <linux/if_link.h>
+#endif
+#include <linux/rtnetlink.h>
+
+#define XLAT_MACROS_ONLY
+# include <xlat/rtnl_link_attrs.h>
+# include <xlat/rtnl_ifla_info_attrs.h>
+#undef XLAT_MACROS_ONLY
+
+#define IFLA_ATTR IFLA_LINKINFO
+#include "nlattr_ifla.h"
+
+#define COMMA ,
+#define TEST_UNKNOWN_TUNNELS(fd_, nlh0_, objtype_, objtype_str_, \
+ obj_, objsz_, arrstrs_, ...) \
+ do { \
+ /* 64 is guestimate for maximum unknown type len */ \
+ char buf[8 * 2 + 64 + objsz_]; \
+ const char **arrstrs[] = arrstrs_; \
+ const char ***arrstrs_pos = arrstrs; \
+ const char **arrstr = *arrstrs_pos; \
+ const char *type = NULL; \
+ \
+ for (type = arrstr ? arrstr[0] : NULL; type && arrstr; \
+ type = (++arrstr)[0] ? arrstr[0] \
+ : (++arrstrs_pos)[0] \
+ ? (arrstr = arrstrs_pos[0])[0] \
+ : NULL) \
+ { \
+ size_t type_len = strlen(type) + 1; \
+ \
+ if (type_len > 64) \
+ error_msg_and_fail("Unexpectedly long " \
+ "unknown type: \"%s\" " \
+ "(length is %zu)", \
+ type, type_len); \
+ \
+ struct nlattr obj_nla = { \
+ .nla_len = NLA_HDRLEN + (objsz_), \
+ .nla_type = (objtype_), \
+ }; \
+ \
+ char *pos = buf; \
+ memcpy(pos, type, type_len); \
+ pos += NLA_ALIGN(type_len); \
+ memcpy(pos, &obj_nla, sizeof(obj_nla)); \
+ pos += sizeof(obj_nla); \
+ memcpy(pos, (obj_), (objsz_)); \
+ \
+ TEST_NLATTR_EX_((fd_), \
+ (nlh0_) - hdrlen - (pos - buf), \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ type_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf), \
+ printf("\"%s\"}", type); \
+ printf(", {{nla_len=%zu" \
+ ", nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (objtype_str_)); \
+ \
+ { __VA_ARGS__; } \
+ \
+ printf("}")); \
+ } \
+ } while (0)
+
+#define TEST_LINKINFO_(fd_, nlh0_, nla_type_, nla_type_str_, tuntype_, \
+ obj_, objsz_, pattern_, fallback_func_, ...) \
+ do { \
+ size_t tuntype_len = strlen(tuntype_) + 1; \
+ char *buf = tail_alloc(NLA_ALIGN(tuntype_len) \
+ + NLA_HDRLEN + (objsz_)); \
+ char *pos = buf; \
+ \
+ struct nlattr obj_nla = { \
+ .nla_len = NLA_HDRLEN + (objsz_), \
+ .nla_type = (nla_type_), \
+ }; \
+ \
+ memcpy(pos, (tuntype_), tuntype_len); \
+ pos += NLA_ALIGN(tuntype_len); \
+ memcpy(pos, &obj_nla, sizeof(obj_nla)); \
+ pos += sizeof(obj_nla); \
+ memcpy(pos, &(obj_), (objsz_)); \
+ \
+ if (fallback_func_ == print_quoted_hex) { \
+ TEST_NLATTR_EX_((fd_), \
+ (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, \
+ objsz_ + (pos - buf) - 1, \
+ buf, objsz_ + (pos - buf) - 1, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu" \
+ ", nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ (fallback_func_)((obj_), \
+ (objsz_) - 1); \
+ printf("}")); \
+ } \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf) - 1, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ printf("%p}", \
+ RTA_DATA(NLMSG_ATTR(nlh, \
+ (hdrlen + NLA_HDRLEN + (pos - buf)))) \
+ ) \
+ ); \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf), \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ \
+ { __VA_ARGS__; } \
+ \
+ printf("}")); \
+ } while (0)
+
+#define TEST_LINKINFO(fd_, nlh0_, nla_type_, tuntype_, \
+ obj_, pattern_, fallback_func_, ...) \
+ TEST_LINKINFO_((fd_), (nlh0_), nla_type_, #nla_type_, (tuntype_), \
+ (obj_), sizeof(obj_), pattern_, fallback_func_, \
+ __VA_ARGS__)
+
+#define TEST_NESTED_LINKINFO(fd_, nlh0_, \
+ nla_type_, nla_type_str_, tuntype_, \
+ subnla_type_, subnla_type_str_, \
+ obj_, pattern_, ...) \
+ do { \
+ size_t tuntype_len = strlen(tuntype_) + 1; \
+ struct { \
+ size_t sz; \
+ const char *str; \
+ } attrs[] = { __VA_ARGS__ }; \
+ size_t tunhdrlen; \
+ size_t buflen = NLA_ALIGN(tuntype_len) + NLA_HDRLEN; \
+ size_t attrsz = 0; \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) \
+ attrsz += NLA_HDRLEN + NLA_ALIGN(attrs[i].sz); \
+ \
+ buflen += attrsz; \
+ \
+ char *buf = tail_alloc(buflen); \
+ char *pos = buf; \
+ \
+ struct nlattr nla = { \
+ .nla_len = NLA_HDRLEN + attrsz, \
+ .nla_type = (nla_type_), \
+ }; \
+ \
+ memcpy(pos, (tuntype_), tuntype_len); \
+ pos += NLA_ALIGN(tuntype_len); \
+ memcpy(pos, &nla, sizeof(nla)); \
+ pos += sizeof(nla); \
+ \
+ tunhdrlen = pos - buf; \
+ \
+ nla.nla_type = subnla_type_; \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) { \
+ nla.nla_len = NLA_HDRLEN + attrs[i].sz; \
+ memcpy(pos, &nla, sizeof(nla)); \
+ pos += sizeof(nla); \
+ \
+ memcpy(pos, &(obj_), MIN(sizeof(obj_), attrs[i].sz)); \
+ \
+ if (attrs[i].sz > sizeof(obj_)) \
+ memcpy(pos + sizeof(obj_), \
+ &(pattern_), \
+ attrs[i].sz - sizeof(obj_)); \
+ \
+ pos += NLA_ALIGN(attrs[i].sz); \
+ } \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - hdrlen - tunhdrlen, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, buflen, \
+ buf, buflen, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, [", \
+ attrsz + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) \
+ printf("%s%s{nla_len=%zu" \
+ ", nla_type=%s}%s%s%s", \
+ i ? ", " : "", \
+ attrs[i].str ? "{": "", \
+ attrs[i].sz + NLA_HDRLEN, \
+ subnla_type_str_, \
+ attrs[i].str ? ", ": "", \
+ attrs[i].str ?: "", \
+ attrs[i].str ? "}" : ""); \
+ \
+ printf("]}")); \
+ } while (0)
+
+int
+main(void)
+{
+ static const uint8_t unknown_msg[] = { 0xab, 0xac, 0xdb, 0xcd };
+ static const char *unsupported_tunnel_types[] = {
+ "batadv", "bond",
+ "caif", "cfhsi",
+ "dummy",
+ "erspan",
+ "geneve", "gre", "gretap", "gtp",
+ "hsr",
+ "ifb", "ip6erspan", "ip6gre", "ip6gretap", "ip6tnl",
+ "ipip", "ipoib", "ipvlan", "ipvtap",
+ "lowpan",
+ "macsec", "macvlan", "macvtap",
+ "netdevsim", "nlmon",
+ "openvswitch",
+ "ppp",
+ "rmnet",
+ "sit",
+ "team",
+ "vcan", "veth", "vlan", "vrf", "vsockmon",
+ "vti", "vti6", "vxcan", "vxlan",
+ NULL
+ };
+ static const char *unsupported_xstats_types[] = {
+ "bridge",
+ "tun",
+ NULL
+ };
+ static const char *unsupported_data_types[] = {
+ "can",
+ NULL
+ };
+
+ skip_if_unavailable("/proc/self/fd/");
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ const unsigned int hdrlen = sizeof(struct ifinfomsg);
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 2 * NLA_HDRLEN + 256);
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+
+ /* unknown AF_INFO_* type */
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_INFO_UNSPEC, pattern, unknown_msg,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ 6, "0x6 /* IFLA_INFO_??? */", pattern,
+ unknown_msg, print_quoted_hex, 1,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", pattern,
+ unknown_msg, print_quoted_stringn, 1,
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_UNSPEC */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_UNSPEC, "IFLA_INFO_UNSPEC",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_KIND */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_KIND, "IFLA_INFO_KIND",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_DATA */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_DATA, "IFLA_INFO_DATA",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ struct val_name {
+ unsigned int val;
+ const char *name;
+ };
+
+ static const uint64_t u64_val = 0xdeadc0defacefeedULL;
+ static const uint32_t u32_val = 0xbadc0dedU;
+ static const uint16_t u16_val = 0xdeed;
+ static const uint8_t u8_val = 0xa1;
+
+ /* 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" },
+ { 45, "0x2d /* IFLA_BR_??? */" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(und_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ und_br_attrs[k].val, und_br_attrs[k].name,
+ unknown_msg, pattern,
+ { 2, "\"\\xab\\xac\"" },
+ { 4, "\"\\xab\\xac\\xdb\\xcd\"" },
+ { 6,
+ "\"\\xab\\xac\\xdb\\xcd\\x61\\x62\"" },
+ { 8, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\"" },
+ { 10, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\\x65\\x66\"" });
+ }
+
+ static const struct val_name u64_br_attrs[] = {
+ { 16, "IFLA_BR_HELLO_TIMER" },
+ { 17, "IFLA_BR_TCN_TIMER" },
+ { 18, "IFLA_BR_TOPOLOGY_CHANGE_TIMER" },
+ { 19, "IFLA_BR_GC_TIMER" },
+ { 30, "IFLA_BR_MCAST_LAST_MEMBER_INTVL" },
+ { 31, "IFLA_BR_MCAST_MEMBERSHIP_INTVL" },
+ { 32, "IFLA_BR_MCAST_QUERIER_INTVL" },
+ { 33, "IFLA_BR_MCAST_QUERY_INTVL" },
+ { 34, "IFLA_BR_MCAST_QUERY_RESPONSE_INTVL" },
+ { 35, "IFLA_BR_MCAST_STARTUP_QUERY_INTVL" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u64_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u64_br_attrs[k].val, u64_br_attrs[k].name,
+ u64_val, pattern,
+ { 7, "\""
+#if WORDS_BIGENDIAN
+ "\\xde\\xad\\xc0\\xde\\xfa\\xce\\xfe"
+#else
+ "\\xed\\xfe\\xce\\xfa\\xde\\xc0\\xad"
+#endif
+ "\"" },
+ { 8, "16045693111314087661" },
+ { 9, "16045693111314087661" });
+ }
+
+ static const struct val_name u32_br_attrs[] = {
+ { 1, "IFLA_BR_FORWARD_DELAY" },
+ { 2, "IFLA_BR_HELLO_TIME" },
+ { 3, "IFLA_BR_MAX_AGE" },
+ { 4, "IFLA_BR_AGEING_TIME" },
+ { 5, "IFLA_BR_STP_STATE" },
+ { 13, "IFLA_BR_ROOT_PATH_COST" },
+ { 26, "IFLA_BR_MCAST_HASH_ELASTICITY" },
+ { 27, "IFLA_BR_MCAST_HASH_MAX" },
+ { 28, "IFLA_BR_MCAST_LAST_MEMBER_CNT" },
+ { 29, "IFLA_BR_MCAST_STARTUP_QUERY_CNT" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u32_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u32_br_attrs[k].val, u32_br_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+ }
+
+ static const struct val_name u16_br_attrs[] = {
+ { 6, "IFLA_BR_PRIORITY" },
+ { 12, "IFLA_BR_ROOT_PORT" },
+ { 39, "IFLA_BR_VLAN_DEFAULT_PVID" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u16_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u16_br_attrs[k].val, u16_br_attrs[k].name,
+ u16_val, pattern,
+ { 1, "\""
+#if WORDS_BIGENDIAN
+ "\\xde"
+#else
+ "\\xed"
+#endif
+ "\"" },
+ { 2, "57069" },
+ { 3, "57069" });
+ }
+
+
+ static const struct val_name x16_br_attrs[] = {
+ { 9, "IFLA_BR_GROUP_FWD_MASK" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(x16_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ x16_br_attrs[k].val, x16_br_attrs[k].name,
+ u16_val, pattern,
+ { 1, "\""
+#if WORDS_BIGENDIAN
+ "\\xde"
+#else
+ "\\xed"
+#endif
+ "\"" },
+ { 2, "0xdeed" },
+ { 3, "0xdeed" });
+ }
+
+ static const struct val_name u8_br_attrs[] = {
+ { 7, "IFLA_BR_VLAN_FILTERING" },
+ { 14, "IFLA_BR_TOPOLOGY_CHANGE" },
+ { 15, "IFLA_BR_TOPOLOGY_CHANGE_DETECTED" },
+ { 22, "IFLA_BR_MCAST_ROUTER" },
+ { 23, "IFLA_BR_MCAST_SNOOPING" },
+ { 24, "IFLA_BR_MCAST_QUERY_USE_IFADDR" },
+ { 25, "IFLA_BR_MCAST_QUERIER" },
+ { 36, "IFLA_BR_NF_CALL_IPTABLES" },
+ { 37, "IFLA_BR_NF_CALL_IP6TABLES" },
+ { 38, "IFLA_BR_NF_CALL_ARPTABLES" },
+ { 41, "IFLA_BR_VLAN_STATS_ENABLED" },
+ { 42, "IFLA_BR_MCAST_STATS_ENABLED" },
+ { 43, "IFLA_BR_MCAST_IGMP_VERSION" },
+ { 44, "IFLA_BR_MCAST_MLD_VERSION" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u8_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u8_br_attrs[k].val, u8_br_attrs[k].name,
+ u8_val, pattern,
+ { 0, NULL },
+ { 1, "161" },
+ { 2, "161" });
+ }
+
+ unsigned short eth_p = htons(0x88C7);
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ 8, "IFLA_BR_VLAN_PROTOCOL",
+ eth_p, pattern,
+ { 1, "\"\\x88\"" },
+ { 2, "htons(ETH_P_PREAUTH)" },
+ { 2, "htons(ETH_P_PREAUTH)" });
+
+ static const uint8_t bridge_id[]
+ = { 0xbe, 0xef, 0xfa, 0xce, 0xde, 0xc0, 0xde, 0xad };
+ static const struct val_name br_id_attrs[] = {
+ { 10, "IFLA_BR_ROOT_ID" },
+ { 11, "IFLA_BR_BRIDGE_ID" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(br_id_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ br_id_attrs[k].val, br_id_attrs[k].name,
+ bridge_id, pattern,
+ { 7, "\"\\xbe\\xef\\xfa\\xce"
+ "\\xde\\xc0\\xde\"" },
+ { 8, "{prio=[190, 239]"
+ ", addr=fa:ce:de:c0:de:ad}" },
+ { 9, "{prio=[190, 239]"
+ ", addr=fa:ce:de:c0:de:ad}" });
+ }
+
+ /* tun attrs */
+ static const struct val_name u8_tun_attrs[] = {
+ { 4, "IFLA_TUN_PI" },
+ { 5, "IFLA_TUN_VNET_HDR" },
+ { 6, "IFLA_TUN_PERSIST" },
+ { 7, "IFLA_TUN_MULTI_QUEUE" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u8_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ u8_tun_attrs[k].val, u8_tun_attrs[k].name,
+ u8_val, pattern,
+ { 0, NULL },
+ { 1, "161" },
+ { 2, "161" });
+ }
+
+ static const struct val_name u32_tun_attrs[] = {
+ { 8, "IFLA_TUN_NUM_QUEUES" },
+ { 9, "IFLA_TUN_NUM_DISABLED_QUEUES" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u32_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ u32_tun_attrs[k].val,
+ u32_tun_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+ }
+
+ static const struct val_name und_tun_attrs[] = {
+ { 0, "IFLA_TUN_UNSPEC" },
+ { 10, "0xa /* IFLA_TUN_??? */" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(und_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ und_tun_attrs[k].val,
+ und_tun_attrs[k].name,
+ unknown_msg, pattern,
+ { 2, "\"\\xab\\xac\"" },
+ { 4, "\"\\xab\\xac\\xdb\\xcd\"" },
+ { 6,
+ "\"\\xab\\xac\\xdb\\xcd\\x61\\x62\"" },
+ { 8, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\"" },
+ { 10, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\\x65\\x66\"" });
+ }
+
+ static const uint32_t minus_one = 0xffffffffU;
+ static const struct val_name uid_tun_attrs[] = {
+ { 1, "IFLA_TUN_OWNER" },
+ { 2, "IFLA_TUN_GROUP" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(uid_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ uid_tun_attrs[k].val,
+ uid_tun_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ uid_tun_attrs[k].val,
+ uid_tun_attrs[k].name,
+ minus_one, pattern,
+ { 3, "\"\\xff\\xff\\xff\"" },
+ { 4, "-1" },
+ { 5, "-1" });
+ }
+
+ static const struct {
+ uint8_t val;
+ const char *str;
+ } tun_types[] = {
+ { 0, "0 /* IFF_??? */"},
+ { 1, "IFF_TUN"},
+ { 2, "IFF_TAP"},
+ { 3, "0x3 /* IFF_??? */"},
+ { 0xda, "0xda /* IFF_??? */"},
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(tun_types); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ 3, "IFLA_TUN_TYPE",
+ tun_types[k].val, pattern,
+ { 0, NULL },
+ { 1, tun_types[k].str },
+ { 2, tun_types[k].str });
+ }
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_XSTATS */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_XSTATS, "IFLA_INFO_XSTATS",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ /*
+ * can decoder decodes its data only if it's big
+ * enough.
+ */
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ uint32_t can_stats_data[] = {
+ 0xbadc0de0, 0xbadc0de1, 0xbadc0de2, 0xbadc0de3,
+ 0xbadc0de4, 0xbadc0de5,
+ };
+
+ TEST_LINKINFO(fd, nlh0, IFLA_INFO_XSTATS, "can",
+ can_stats_data, pattern, print_quoted_hex,
+ printf("{bus_error=3134983648"
+ ", error_warning=3134983649"
+ ", error_passive=3134983650"
+ ", bus_off=3134983651"
+ ", arbitration_lost=3134983652"
+ ", restarts=3134983653}"));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_SLVAE_KIND */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0,
+ IFLA_INFO_SLAVE_KIND, "IFLA_INFO_SLAVE_KIND",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_SLAVE_DATA */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0,
+ IFLA_INFO_SLAVE_DATA, "IFLA_INFO_SLAVE_DATA",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND + unknown type */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, 6, "0x6 /* IFLA_INFO_??? */",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-m32/nlattr_ifla_linkinfo.gen.test b/tests-m32/nlattr_ifla_linkinfo.gen.test
new file mode 100755
index 0000000..816ba99
--- /dev/null
+++ b/tests-m32/nlattr_ifla_linkinfo.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_linkinfo +netlink_sock_diag.test ); do not edit.
+set --
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/nlattr_ifla_port.c b/tests-m32/nlattr_ifla_port.c
index 61e90fe..e6cb6a4 100644
--- a/tests-m32/nlattr_ifla_port.c
+++ b/tests-m32/nlattr_ifla_port.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,50 +37,15 @@
#endif
#include <linux/rtnetlink.h>
-#ifndef IFLA_PORT_SELF
-# define IFLA_PORT_SELF 25
+#if !HAVE_DECL_IFLA_PORT_SELF
+enum { IFLA_PORT_SELF = 25 };
#endif
#ifndef IFLA_PORT_VF
# define IFLA_PORT_VF 1
#endif
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_PORT_SELF
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_PORT_SELF}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_PORT_SELF
+#include "nlattr_ifla.h"
int
main(void)
@@ -88,7 +53,7 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 2 * NLA_HDRLEN + 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_ifla_xdp.c b/tests-m32/nlattr_ifla_xdp.c
index cca5219..93149fa 100644
--- a/tests-m32/nlattr_ifla_xdp.c
+++ b/tests-m32/nlattr_ifla_xdp.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,63 +37,29 @@
#endif
#include <linux/rtnetlink.h>
-#ifndef IFLA_XDP
-# define IFLA_XDP 43
+#if !HAVE_DECL_IFLA_XDP
+enum { IFLA_XDP = 43 };
#endif
#ifndef IFLA_XDP_FD
# define IFLA_XDP_FD 1
#endif
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_XDP
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_XDP}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_XDP
+#include "nlattr_ifla.h"
int
main(void)
{
skip_if_unavailable("/proc/self/fd/");
+ const int32_t num = 0xabacdbcd;
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(num));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
- const int32_t num = 0xabacdbcd;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_XDP_FD, pattern, num,
diff --git a/tests-m32/nlattr_inet_diag_msg.c b/tests-m32/nlattr_inet_diag_msg.c
index ccc62ae..5984ee2 100644
--- a/tests-m32/nlattr_inet_diag_msg.c
+++ b/tests-m32/nlattr_inet_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,18 @@
#include <linux/inet_diag.h>
#include <linux/sock_diag.h>
+static const char * const sk_meminfo_strs[] = {
+ "SK_MEMINFO_RMEM_ALLOC",
+ "SK_MEMINFO_RCVBUF",
+ "SK_MEMINFO_WMEM_ALLOC",
+ "SK_MEMINFO_SNDBUF",
+ "SK_MEMINFO_FWD_ALLOC",
+ "SK_MEMINFO_WMEM_QUEUED",
+ "SK_MEMINFO_OPTMEM",
+ "SK_MEMINFO_BACKLOG",
+ "SK_MEMINFO_DROPS",
+};
+
static const char address[] = "10.11.12.13";
static void
@@ -77,9 +89,14 @@
}
static void
-print_uint(const unsigned int *p)
+print_uint(const unsigned int *p, size_t i)
{
- printf("%u", *p);
+ if (i >= ARRAY_SIZE(sk_meminfo_strs))
+ printf("[%zu /* SK_MEMINFO_??? */", i);
+ else
+ printf("[%s", sk_meminfo_strs[i]);
+
+ printf("] = %u", *p);
}
int
@@ -87,19 +104,46 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct inet_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct inet_diag_meminfo minfo = {
.idiag_rmem = 0xfadcacdb,
.idiag_wmem = 0xbdabcada,
.idiag_fmem = 0xbadbfafb,
.idiag_tmem = 0xfdacdadf
};
+ static const struct tcpvegas_info vegas = {
+ .tcpv_enabled = 0xfadcacdb,
+ .tcpv_rttcnt = 0xbdabcada,
+ .tcpv_rtt = 0xbadbfafb,
+ .tcpv_minrtt = 0xfdacdadf
+ };
+ static const struct tcp_dctcp_info dctcp = {
+ .dctcp_enabled = 0xfdac,
+ .dctcp_ce_state = 0xfadc,
+ .dctcp_alpha = 0xbdabcada,
+ .dctcp_ab_ecn = 0xbadbfafb,
+ .dctcp_ab_tot = 0xfdacdadf
+ };
+ static const struct tcp_bbr_info bbr = {
+ .bbr_bw_lo = 0xfdacdadf,
+ .bbr_bw_hi = 0xfadcacdb,
+ .bbr_min_rtt = 0xbdabcada,
+ .bbr_pacing_gain = 0xbadbfafb,
+ .bbr_cwnd_gain = 0xfdacdadf
+ };
+ static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
+ static uint32_t bigmem[SK_MEMINFO_VARS + 1];
+ static const uint32_t mark = 0xabdfadca;
+ static const uint8_t shutdown = 0xcd;
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct inet_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(bigmem), DEFAULT_STRLEN));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_MEMINFO, pattern, minfo,
@@ -109,12 +153,6 @@
PRINT_FIELD_U(", ", minfo, idiag_tmem);
printf("}"));
- static const struct tcpvegas_info vegas = {
- .tcpv_enabled = 0xfadcacdb,
- .tcpv_rttcnt = 0xbdabcada,
- .tcpv_rtt = 0xbadbfafb,
- .tcpv_minrtt = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_VEGASINFO, pattern, vegas,
@@ -125,13 +163,6 @@
printf("}"));
- static const struct tcp_dctcp_info dctcp = {
- .dctcp_enabled = 0xfdac,
- .dctcp_ce_state = 0xfadc,
- .dctcp_alpha = 0xbdabcada,
- .dctcp_ab_ecn = 0xbadbfafb,
- .dctcp_ab_tot = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_DCTCPINFO, pattern, dctcp,
@@ -142,13 +173,6 @@
PRINT_FIELD_U(", ", dctcp, dctcp_ab_tot);
printf("}"));
- static const struct tcp_bbr_info bbr = {
- .bbr_bw_lo = 0xfdacdadf,
- .bbr_bw_hi = 0xfadcacdb,
- .bbr_min_rtt = 0xbdabcada,
- .bbr_pacing_gain = 0xbadbfafb,
- .bbr_cwnd_gain = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_BBRINFO, pattern, bbr,
@@ -159,24 +183,16 @@
PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain);
printf("}"));
- static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_SKMEMINFO, pattern, mem, print_uint);
- static uint32_t bigmem[SK_MEMINFO_VARS + 1];
memcpy(bigmem, pattern, sizeof(bigmem));
- TEST_NLATTR(fd, nlh0, hdrlen, init_inet_diag_msg, print_inet_diag_msg,
- INET_DIAG_SKMEMINFO, sizeof(bigmem), bigmem, sizeof(bigmem),
- size_t i;
- for (i = 0; i < SK_MEMINFO_VARS; ++i) {
- printf(i ? ", " : "[");
- print_uint(&bigmem[i]);
- }
- printf(", ...]"));
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_inet_diag_msg, print_inet_diag_msg,
+ INET_DIAG_SKMEMINFO, pattern, bigmem, print_uint);
- static const uint32_t mark = 0xabdfadca;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_MARK, pattern, mark,
@@ -187,7 +203,6 @@
INET_DIAG_CLASS_ID, pattern, mark,
printf("%u", mark));
- static const uint8_t shutdown = 0xcd;
TEST_NLATTR(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_SHUTDOWN,
sizeof(shutdown), &shutdown, sizeof(shutdown),
diff --git a/tests-m32/nlattr_inet_diag_req_compat.c b/tests-m32/nlattr_inet_diag_req_compat.c
index b0b2171..52fd53f 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -86,7 +86,7 @@
int fd = create_nl_socket(NETLINK_SOCK_DIAG);
const unsigned int hdrlen = sizeof(struct inet_diag_req);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_inet_diag_req_v2.c b/tests-m32/nlattr_inet_diag_req_v2.c
index 1e09abe..cf19c60 100644
--- a/tests-m32/nlattr_inet_diag_req_v2.c
+++ b/tests-m32/nlattr_inet_diag_req_v2.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -407,7 +407,10 @@
skip_if_unavailable("/proc/self/fd/");
int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN +
+ sizeof(struct inet_diag_bc_op) +
+ sizeof(struct inet_diag_hostcond) +
+ sizeof(struct in6_addr) + DEFAULT_STRLEN);
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
test_inet_diag_bc_op(fd);
diff --git a/tests-m32/nlattr_mdba_mdb_entry.c b/tests-m32/nlattr_mdba_mdb_entry.c
index 124fe1d..61bded2 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,12 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4
+# ifdef HAVE_STRUCT_BR_MDB_ENTRY
+ - 4 + NLA_HDRLEN * 2 + sizeof(struct nlattr)
+ + sizeof(struct br_mdb_entry)
+# endif
+ );
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_mdba_router_port.c b/tests-m32/nlattr_mdba_router_port.c
index af908cd..a6621ca 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -87,25 +87,27 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_ROUTE);
-
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
const uint32_t ifindex = ifindex_lo();
- TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_br_port_msg, print_br_port_msg,
- MDBA_ROUTER_PORT, pattern, ifindex,
- printf(IFINDEX_LO_STR));
-
const uint8_t type = MDB_RTR_TYPE_DISABLED;
static const struct nlattr nla = {
.nla_len = NLA_HDRLEN + sizeof(type),
.nla_type = MDBA_ROUTER_PATTR_TYPE
};
char buf[NLMSG_ALIGN(ifindex) + NLA_HDRLEN + sizeof(type)];
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(buf));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_br_port_msg, print_br_port_msg,
+ MDBA_ROUTER_PORT, pattern, ifindex,
+ printf(IFINDEX_LO_STR));
+
memcpy(buf, &ifindex, sizeof(ifindex));
memcpy(buf + NLMSG_ALIGN(ifindex), &nla, sizeof(nla));
memcpy(buf + NLMSG_ALIGN(ifindex) + NLA_HDRLEN, &type, sizeof(type));
diff --git a/tests-m32/nlattr_ndmsg.c b/tests-m32/nlattr_ndmsg.c
index 8538a82..aa28a57 100644
--- a/tests-m32/nlattr_ndmsg.c
+++ b/tests-m32/nlattr_ndmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,8 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ndmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(struct nda_cacheinfo));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_ndtmsg.c b/tests-m32/nlattr_ndtmsg.c
index d3f1bdb..d120059 100644
--- a/tests-m32/nlattr_ndtmsg.c
+++ b/tests-m32/nlattr_ndtmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ndtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 11 * 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_netconfmsg.c b/tests-m32/nlattr_netconfmsg.c
index 6866adc..f5f5993 100644
--- a/tests-m32/nlattr_netconfmsg.c
+++ b/tests-m32/nlattr_netconfmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,7 +66,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct netconfmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_netlink_diag_msg.c b/tests-m32/nlattr_netlink_diag_msg.c
index 76a2d19..b598899 100644
--- a/tests-m32/nlattr_netlink_diag_msg.c
+++ b/tests-m32/nlattr_netlink_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,7 +66,7 @@
}
static void
-print_xlong(const unsigned long *p)
+print_xlong(const unsigned long *p, size_t i)
{
printf("%#lx", *p);
}
@@ -76,27 +76,32 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const unsigned long groups[] = {
(unsigned long) 0xdeadbeefbadc0dedULL,
(unsigned long) 0xdeadbeefbadc0dedULL
};
- TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
- init_netlink_diag_msg, print_netlink_diag_msg,
- NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
-
static const struct netlink_diag_ring ndr = {
.ndr_block_size = 0xfabfabdc,
.ndr_block_nr = 0xabcdabda,
.ndr_frame_size = 0xcbadbafa,
.ndr_frame_nr = 0xdbcafadb
};
+ static const uint32_t flags =
+ NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(groups), sizeof(ndr)));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_netlink_diag_msg, print_netlink_diag_msg,
+ NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_netlink_diag_msg, print_netlink_diag_msg,
NETLINK_DIAG_RX_RING, pattern, ndr,
@@ -106,8 +111,6 @@
PRINT_FIELD_U(", ", ndr, ndr_frame_nr);
printf("}"));
- static const uint32_t flags =
- NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_netlink_diag_msg, print_netlink_diag_msg,
NETLINK_DIAG_FLAGS, pattern, flags,
diff --git a/tests-m32/nlattr_nlmsgerr.c b/tests-m32/nlattr_nlmsgerr.c
index 837283c..073fde2 100644
--- a/tests-m32/nlattr_nlmsgerr.c
+++ b/tests-m32/nlattr_nlmsgerr.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,11 +69,13 @@
{
skip_if_unavailable("/proc/self/fd/");
+ static const uint8_t cookie[] = { 0xab, 0xfe };
+
const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
const unsigned int hdrlen = sizeof(struct nlmsgerr);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(cookie));
- static const uint8_t cookie[] = { 0xab, 0xfe };
TEST_NLATTR(fd, nlh0, hdrlen,
init_nlmsgerr, print_nlmsgerr,
NLMSGERR_ATTR_COOKIE,
diff --git a/tests-m32/nlattr_packet_diag_msg.c b/tests-m32/nlattr_packet_diag_msg.c
index 4211e20..016d052 100644
--- a/tests-m32/nlattr_packet_diag_msg.c
+++ b/tests-m32/nlattr_packet_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@
}
static void
-print_packet_diag_mclist(const struct packet_diag_mclist *const dml)
+print_packet_diag_mclist(const struct packet_diag_mclist *const dml, size_t i)
{
printf("{pdmc_index=" IFINDEX_LO_STR);
PRINT_FIELD_U(", ", *dml, pdmc_count);
@@ -84,7 +84,7 @@
};
static void
-print_sock_filter(const struct sock_filter *const f)
+print_sock_filter(const struct sock_filter *const f, size_t i)
{
if (f == filter)
printf("BPF_STMT(BPF_LD|BPF_B|BPF_ABS"
@@ -98,13 +98,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct packet_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct packet_diag_info pinfo = {
.pdi_index = 0xabcddafa,
.pdi_version = 0xbabcdafb,
@@ -113,16 +106,6 @@
.pdi_tstamp = 0xeafbaadf,
.pdi_flags = PDI_RUNNING
};
- TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_packet_diag_msg, print_packet_diag_msg,
- PACKET_DIAG_INFO, pattern, pinfo,
- PRINT_FIELD_U("{", pinfo, pdi_index);
- PRINT_FIELD_U(", ", pinfo, pdi_version);
- PRINT_FIELD_U(", ", pinfo, pdi_reserve);
- PRINT_FIELD_U(", ", pinfo, pdi_copy_thresh);
- PRINT_FIELD_U(", ", pinfo, pdi_tstamp);
- printf(", pdi_flags=PDI_RUNNING}"));
-
const struct packet_diag_mclist dml[] = {
{
.pdmc_index = ifindex_lo(),
@@ -139,11 +122,6 @@
.pdmc_addr = "5678"
}
};
- TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
- init_packet_diag_msg, print_packet_diag_msg,
- PACKET_DIAG_MCLIST, pattern, dml,
- print_packet_diag_mclist);
-
static const struct packet_diag_ring pdr = {
.pdr_block_size = 0xabcdafed,
.pdr_block_nr = 0xbcadefae,
@@ -153,6 +131,30 @@
.pdr_sizeof_priv = 0xfeadeacd,
.pdr_features = 0xadebadea
};
+
+ int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct packet_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(dml));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_packet_diag_msg, print_packet_diag_msg,
+ PACKET_DIAG_INFO, pattern, pinfo,
+ PRINT_FIELD_U("{", pinfo, pdi_index);
+ PRINT_FIELD_U(", ", pinfo, pdi_version);
+ PRINT_FIELD_U(", ", pinfo, pdi_reserve);
+ PRINT_FIELD_U(", ", pinfo, pdi_copy_thresh);
+ PRINT_FIELD_U(", ", pinfo, pdi_tstamp);
+ printf(", pdi_flags=PDI_RUNNING}"));
+
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_packet_diag_msg, print_packet_diag_msg,
+ PACKET_DIAG_MCLIST, pattern, dml,
+ print_packet_diag_mclist);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_packet_diag_msg, print_packet_diag_msg,
PACKET_DIAG_RX_RING, pattern, pdr,
diff --git a/tests-m32/nlattr_rtgenmsg.c b/tests-m32/nlattr_rtgenmsg.c
index ceb061d..bac21ef 100644
--- a/tests-m32/nlattr_rtgenmsg.c
+++ b/tests-m32/nlattr_rtgenmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,13 +66,14 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtgenmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ const unsigned int nla_type = 0xffff & NLA_TYPE_MASK;
+ char nla_type_str[256];
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(nla_type_str));
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 /* NETNSA_??? */", nla_type);
TEST_NLATTR_(fd, nlh0, hdrlen,
init_rtgenmsg, print_rtgenmsg,
diff --git a/tests-m32/nlattr_rtmsg.c b/tests-m32/nlattr_rtmsg.c
index 5f29f0c..db02929 100644
--- a/tests-m32/nlattr_rtmsg.c
+++ b/tests-m32/nlattr_rtmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -81,13 +81,14 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ const unsigned int nla_type = 0xffff & NLA_TYPE_MASK;
+ char nla_type_str[256];
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(nla_type_str));
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 /* RTA_??? */", nla_type);
TEST_NLATTR_(fd, nlh0, hdrlen,
init_rtmsg, print_rtmsg,
diff --git a/tests-m32/nlattr_smc_diag_msg.c b/tests-m32/nlattr_smc_diag_msg.c
index a06ad62..2e65ebd 100644
--- a/tests-m32/nlattr_smc_diag_msg.c
+++ b/tests-m32/nlattr_smc_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -97,13 +97,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct smc_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct smc_diag_conninfo cinfo = {
.token = 0xabcdefac,
.sndbuf_size = 0xbcdaefad,
@@ -149,6 +142,25 @@
.count = 0xcdedbad7
}
};
+ static const struct smc_diag_lgrinfo linfo = {
+ .lnk[0] = {
+ .link_id = 0xaf,
+ .ibport = 0xfa,
+ .ibname = "123",
+ .gid = "456",
+ .peer_gid = "789"
+ },
+ .role = SMC_CLNT
+ };
+
+ int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct smc_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(cinfo), sizeof(linfo)));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_smc_diag_msg, print_smc_diag_msg,
@@ -170,16 +182,6 @@
PRINT_FIELD_SMC_DIAG_CURSOR(", ", cinfo, tx_fin);
printf("}"));
- static const struct smc_diag_lgrinfo linfo = {
- .lnk[0] = {
- .link_id = 0xaf,
- .ibport = 0xfa,
- .ibname = "123",
- .gid = "456",
- .peer_gid = "789"
- },
- .role = SMC_CLNT
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_smc_diag_msg, print_smc_diag_msg,
SMC_DIAG_LGRINFO, pattern, linfo,
diff --git a/tests-m32/nlattr_tc_stats.c b/tests-m32/nlattr_tc_stats.c
index dd76cc7..8003ed3 100644
--- a/tests-m32/nlattr_tc_stats.c
+++ b/tests-m32/nlattr_tc_stats.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 8 * 5);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_tca_stab.c b/tests-m32/nlattr_tca_stab.c
index de6d356..9889050 100644
--- a/tests-m32/nlattr_tca_stab.c
+++ b/tests-m32/nlattr_tca_stab.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
#ifndef TCA_STAB
# define TCA_STAB 8
#endif
-#ifndef TCA_STAB_DATA
-# define TCA_STAB_DATA 2
+#if !HAVE_DECL_TCA_STAB_DATA
+enum { TCA_STAB_DATA = 2 };
#endif
const unsigned int hdrlen = sizeof(struct tcmsg);
@@ -76,7 +76,7 @@
}
static void
-print_uint16(const uint16_t *p)
+print_uint16(const uint16_t *p, size_t idx)
{
printf("%u", *p);
}
@@ -87,7 +87,11 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4
+#ifdef HAVE_STRUCT_TC_SIZESPEC
+ - 4 + sizeof(struct tc_sizespec)
+#endif
+ );
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_tcamsg.c b/tests-m32/nlattr_tcamsg.c
index 7f61153..43715d2 100644
--- a/tests-m32/nlattr_tcamsg.c
+++ b/tests-m32/nlattr_tcamsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,7 +62,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct tcamsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_tcmsg.c b/tests-m32/nlattr_tcmsg.c
index 32ce479..da88a45 100644
--- a/tests-m32/nlattr_tcmsg.c
+++ b/tests-m32/nlattr_tcmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,8 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct tcmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(struct tc_stats));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-m32/nlattr_unix_diag_msg.c b/tests-m32/nlattr_unix_diag_msg.c
index 2295404..180b8cd 100644
--- a/tests-m32/nlattr_unix_diag_msg.c
+++ b/tests-m32/nlattr_unix_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -65,7 +65,7 @@
}
static void
-print_uint(const unsigned int *p)
+print_uint(const unsigned int *p, size_t i)
{
printf("%u", *p);
}
@@ -75,17 +75,24 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct unix_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct unix_diag_vfs uv = {
.udiag_vfs_dev = 0xabcddafa,
.udiag_vfs_ino = 0xbafabcda
};
+ static const struct unix_diag_rqlen rql = {
+ .udiag_rqueue = 0xfabdcdad,
+ .udiag_wqueue = 0xbacdadcf
+ };
+ static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct unix_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(inode));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_VFS, pattern, uv,
@@ -95,10 +102,6 @@
PRINT_FIELD_U(", ", uv, udiag_vfs_ino);
printf("}"));
- static const struct unix_diag_rqlen rql = {
- .udiag_rqueue = 0xfabdcdad,
- .udiag_wqueue = 0xbacdadcf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_RQLEN, pattern, rql,
@@ -106,7 +109,6 @@
PRINT_FIELD_U(", ", rql, udiag_wqueue);
printf("}"));
- static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_ICONS, pattern, inode, print_uint);
diff --git a/tests-m32/nsyscalls.c b/tests-m32/nsyscalls.c
index 9f74867..681fb31 100644
--- a/tests-m32/nsyscalls.c
+++ b/tests-m32/nsyscalls.c
@@ -86,14 +86,14 @@
a[0], a[1], a[2], a[3], a[4], a[5], rc);
#else
printf("syscall_%#lx(%#llx, %#llx, %#llx, %#llx, %#llx, %#llx)"
- " = %ld (errno %d)\n", nr | SYSCALL_BIT,
+ " = %ld ENOSYS (%m)\n", nr | SYSCALL_BIT,
(unsigned long long) a[0],
(unsigned long long) a[1],
(unsigned long long) a[2],
(unsigned long long) a[3],
(unsigned long long) a[4],
(unsigned long long) a[5],
- rc, errno);
+ rc);
#endif
}
diff --git a/tests-m32/old_mmap-Xabbrev.c b/tests-m32/old_mmap-Xabbrev.c
new file mode 100644
index 0000000..033503c
--- /dev/null
+++ b/tests-m32/old_mmap-Xabbrev.c
@@ -0,0 +1 @@
+#include "old_mmap.c"
diff --git a/tests-m32/old_mmap-Xabbrev.gen.test b/tests-m32/old_mmap-Xabbrev.gen.test
new file mode 100755
index 0000000..0ee5608
--- /dev/null
+++ b/tests-m32/old_mmap-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xabbrev -a11 -e trace=mmap -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xabbrev
diff --git a/tests-m32/old_mmap-Xraw.c b/tests-m32/old_mmap-Xraw.c
new file mode 100644
index 0000000..06de40b
--- /dev/null
+++ b/tests-m32/old_mmap-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "old_mmap.c"
diff --git a/tests-m32/old_mmap-Xraw.gen.test b/tests-m32/old_mmap-Xraw.gen.test
new file mode 100755
index 0000000..6d7d3cf
--- /dev/null
+++ b/tests-m32/old_mmap-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xraw -a11 -e trace=mmap -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xraw
diff --git a/tests-m32/old_mmap-Xverbose.c b/tests-m32/old_mmap-Xverbose.c
new file mode 100644
index 0000000..b141fec
--- /dev/null
+++ b/tests-m32/old_mmap-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "old_mmap.c"
diff --git a/tests-m32/old_mmap-Xverbose.gen.test b/tests-m32/old_mmap-Xverbose.gen.test
new file mode 100755
index 0000000..6534a93
--- /dev/null
+++ b/tests-m32/old_mmap-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xverbose -a11 -e trace=mmap -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xverbose
diff --git a/tests-m32/old_mmap.c b/tests-m32/old_mmap.c
index 35ec428..07d572c 100644
--- a/tests-m32/old_mmap.c
+++ b/tests-m32/old_mmap.c
@@ -79,17 +79,41 @@
void *args = tail_memdup(args1_c, sizeof(args1_c));
rc = syscall(__NR_mmap, args);
+# if XLAT_RAW
+ printf("mmap(%#lx, %lu, %#x, %#x|%#x, %d, %#lx) = %ld %s (%m)\n",
+ args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+ (int) args1_c[4], args1_c[5], rc, errno2name());
+# elif XLAT_VERBOSE
+ printf("mmap(%#lx, %lu, %#x /* PROT_READ|PROT_EXEC */"
+ ", %#x /* MAP_FILE */|%#x /* MAP_FIXED */"
+ ", %d, %#lx) = %ld %s (%m)\n",
+ args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+ (int) args1_c[4], args1_c[5], rc, errno2name());
+# else
printf("mmap(%#lx, %lu, PROT_READ|PROT_EXEC, MAP_FILE|MAP_FIXED"
", %d, %#lx) = %ld %s (%m)\n",
args1_c[0], args1_c[1], (int) args1_c[4], args1_c[5],
rc, errno2name());
+# endif
memcpy(args, args2_c, sizeof(args2_c));
rc = syscall(__NR_mmap, args);
# ifndef PATH_TRACING
+# if XLAT_RAW
+ printf("mmap(NULL, %lu, %#x, %#x|%#x, %d, %#lx) = %#lx\n",
+ args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+ (int) args2_c[4], args2_c[5], rc);
+# elif XLAT_VERBOSE
+ printf("mmap(NULL, %lu, %#x /* PROT_READ|PROT_WRITE */"
+ ", %#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */"
+ ", %d, %#lx) = %#lx\n",
+ args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+ (int) args2_c[4], args2_c[5], rc);
+# 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);
+# endif
# endif
void *addr = (void *) rc;
diff --git a/tests-m32/opipe.test b/tests-m32/opipe.test
index f622045..db449bb 100755
--- a/tests-m32/opipe.test
+++ b/tests-m32/opipe.test
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
check_prog grep
-run_prog grep chdir $srcdir/umovestr.expected > "$EXP"
+grep chdir $srcdir/umovestr.expected > "$EXP"
run_prog ../umovestr
$STRACE -o "|cat > $LOG && $SLEEP_A_BIT && grep chdir < $LOG > $OUT" -e chdir $args ||
diff --git a/tests-m32/options-syntax.test b/tests-m32/options-syntax.test
index af7002b..1a290d0 100755
--- a/tests-m32/options-syntax.test
+++ b/tests-m32/options-syntax.test
@@ -56,6 +56,40 @@
check_h "invalid -s argument: '-42'" -s -42
check_h "invalid -s argument: '1073741824'" -s 1073741824
check_h "invalid -I argument: '5'" -I 5
+check_h "invalid -X argument: 'test'" -Xtest
+check_h "invalid -X argument: 'a'" -Xa
+check_h "invalid -X argument: 'abbreviated'" -X abbreviated
+
+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_e "invalid system call '/getcwd@ohmy'" -e trace=/getcwd@ohmy
+
+case "$STRACE_NATIVE_ARCH" in
+x86_64)
+ 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 "must have PROG [ARGS] or -p PID" -e trace=getcwd@x32
+ ;;
+x32)
+ check_h "incorrect personality designator '64' in qualification 'getcwd@64'" -e trace=getcwd@64
+ 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)
+ 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
+ ;;
+*)
+ pers="$((SIZEOF_LONG * 8))"
+ inv_pers="$((96 - pers))"
+ check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@"$pers"
+ check_h "incorrect personality designator '$inv_pers' in qualification 'getcwd@$inv_pers'" -e trace=getcwd@"$inv_pers"
+ check_h "incorrect personality designator 'x32' in qualification 'getcwd@x32'" -e trace=getcwd@x32
+esac
../zeroargc "$STRACE_EXE" /bin/true 2> "$LOG" &&
dump_log_and_fail_with \
diff --git a/tests-m32/personality-Xabbrev.c b/tests-m32/personality-Xabbrev.c
new file mode 100644
index 0000000..2e993dc
--- /dev/null
+++ b/tests-m32/personality-Xabbrev.c
@@ -0,0 +1 @@
+#include "personality.c"
diff --git a/tests-m32/personality-Xabbrev.gen.test b/tests-m32/personality-Xabbrev.gen.test
new file mode 100755
index 0000000..df93e6c
--- /dev/null
+++ b/tests-m32/personality-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xabbrev +personality.test -Xabbrev); do not edit.
+set -- -Xabbrev
+. "${srcdir=.}/personality.test"
diff --git a/tests-m32/personality-Xraw.c b/tests-m32/personality-Xraw.c
new file mode 100644
index 0000000..59702f8
--- /dev/null
+++ b/tests-m32/personality-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "personality.c"
diff --git a/tests-m32/personality-Xraw.gen.test b/tests-m32/personality-Xraw.gen.test
new file mode 100755
index 0000000..559f0f3
--- /dev/null
+++ b/tests-m32/personality-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xraw +personality.test -a15 -Xraw); do not edit.
+set -- -a15 -Xraw
+. "${srcdir=.}/personality.test"
diff --git a/tests-m32/personality-Xverbose.c b/tests-m32/personality-Xverbose.c
new file mode 100644
index 0000000..545ebe7
--- /dev/null
+++ b/tests-m32/personality-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "personality.c"
diff --git a/tests-m32/personality-Xverbose.gen.test b/tests-m32/personality-Xverbose.gen.test
new file mode 100755
index 0000000..b6ce209
--- /dev/null
+++ b/tests-m32/personality-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xverbose +personality.test -Xverbose); do not edit.
+set -- -Xverbose
+. "${srcdir=.}/personality.test"
diff --git a/tests-m32/personality.c b/tests-m32/personality.c
index 7a279a1..5d84807 100644
--- a/tests-m32/personality.c
+++ b/tests-m32/personality.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,51 +29,76 @@
#include <stdio.h>
#include <sys/personality.h>
+#if XLAT_RAW
+# define linux_type_str "0"
+# define good_type_str "0x6"
+# define bad_type_str "0x1f"
+# define good_flags_str "0x7000000"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str "0x7010000"
+#elif XLAT_VERBOSE
+# define linux_type_str "0 /\\* PER_LINUX \\*/"
+# define good_type_str "0x6 /\\* PER_BSD \\*/"
+# define bad_type_str "0x1f /\\* PER_\\?\\?\\? \\*/"
+# define good_flags_str \
+ "0x7000000 /\\* SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS \\*/"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str \
+ "0x7010000 /\\* SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS" \
+ "\\|0x10000 \\*/"
+#else
+# define linux_type_str "PER_LINUX"
+# define good_type_str "PER_BSD"
+# define bad_type_str "0x1f /\\* PER_\\?\\?\\? \\*/"
+# define good_flags_str "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str \
+ "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS\\|0x10000"
+#endif
+
int main(void)
{
const unsigned int good_type = PER_BSD;
- const char *good_type_str = "PER_BSD";
const unsigned int bad_type = 0x1f;
- const char *bad_type_str = "0x1f /\\* PER_\\?\\?\\? \\*/";
const unsigned int good_flags =
SHORT_INODE | WHOLE_SECONDS | STICKY_TIMEOUTS;
- const char *good_flags_str =
- "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS";
const unsigned int bad_flags = 0x10000;
- const char *bad_flags_str = "0x10000";
const unsigned int saved_pers = personality(0xffffffff);
printf("personality\\(0xffffffff\\) = %#x \\([^)]*\\)\n", saved_pers);
/* PER_LINUX */
personality(PER_LINUX);
- printf("personality\\(PER_LINUX\\) = %#x \\([^)]*\\)\n", saved_pers);
+ printf("personality\\(%s\\) = %#x \\([^)]*\\)\n",
+ linux_type_str, saved_pers);
personality(0xffffffff);
- puts("personality\\(0xffffffff\\) = 0 \\(PER_LINUX\\)");
+ printf("personality\\(0xffffffff\\) = 0 \\(%s\\)\n", linux_type_str);
personality(good_flags);
- printf("personality\\(PER_LINUX\\|%s\\) = 0 \\(PER_LINUX\\)\n",
- good_flags_str);
+ printf("personality\\(%s\\|%s\\) = 0 \\(%s\\)\n",
+ linux_type_str, good_flags_str, linux_type_str);
personality(bad_flags);
- printf("personality\\(PER_LINUX\\|%s\\)"
- " = %#x \\(PER_LINUX\\|%s\\)\n",
- bad_flags_str, good_flags, good_flags_str);
+ printf("personality\\(%s\\|%s\\)"
+ " = %#x \\(%s\\|%s\\)\n",
+ linux_type_str, bad_flags_str,
+ good_flags, linux_type_str, good_flags_str);
personality(good_flags | bad_flags);
- printf("personality\\(PER_LINUX\\|%s\\|%s\\)"
- " = %#x \\(PER_LINUX\\|%s\\)\n",
- good_flags_str, bad_flags_str, bad_flags, bad_flags_str);
+ printf("personality\\(%s\\|%s\\)"
+ " = %#x \\(%s\\|%s\\)\n",
+ linux_type_str, good_bad_flags_str,
+ bad_flags, linux_type_str, bad_flags_str);
/* another valid type */
personality(good_type);
- printf("personality\\(%s\\) = %#x \\(PER_LINUX\\|%s\\|%s\\)\n",
+ printf("personality\\(%s\\) = %#x \\(%s\\|%s\\)\n",
good_type_str, good_flags | bad_flags,
- good_flags_str, bad_flags_str);
+ linux_type_str, good_bad_flags_str);
personality(good_type | good_flags);
printf("personality\\(%s\\|%s\\) = %#x \\(%s\\)\n",
@@ -84,16 +110,16 @@
good_type_str, good_flags_str);
personality(good_type | good_flags | bad_flags);
- printf("personality\\(%s\\|%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
- good_type_str, good_flags_str, bad_flags_str,
+ printf("personality\\(%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
+ good_type_str, good_bad_flags_str,
good_type | bad_flags,
good_type_str, bad_flags_str);
/* invalid type */
personality(bad_type);
- printf("personality\\(%s\\) = %#x \\(%s\\|%s\\|%s\\)\n",
+ printf("personality\\(%s\\) = %#x \\(%s\\|%s\\)\n",
bad_type_str, good_type | good_flags | bad_flags,
- good_type_str, good_flags_str, bad_flags_str);
+ good_type_str, good_bad_flags_str);
personality(bad_type | good_flags);
printf("personality\\(%s\\|%s\\) = %#x \\(%s\\)\n",
@@ -105,14 +131,14 @@
bad_type_str, good_flags_str);
personality(bad_type | good_flags | bad_flags);
- printf("personality\\(%s\\|%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
- bad_type_str, good_flags_str, bad_flags_str,
+ printf("personality\\(%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
+ bad_type_str, good_bad_flags_str,
bad_type | bad_flags, bad_type_str, bad_flags_str);
personality(saved_pers);
- printf("personality\\([^)]*\\) = %#x \\(%s\\|%s\\|%s\\)\n",
+ printf("personality\\([^)]*\\) = %#x \\(%s\\|%s\\)\n",
bad_type | good_flags | bad_flags,
- bad_type_str, good_flags_str, bad_flags_str);
+ bad_type_str, good_bad_flags_str);
return 0;
}
diff --git a/tests-m32/personality.test b/tests-m32/personality.test
index ab2faf4..d279bd1 100755
--- a/tests-m32/personality.test
+++ b/tests-m32/personality.test
@@ -5,5 +5,5 @@
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-run_strace -a20 -epersonality $args > "$EXP"
+run_strace -a20 -epersonality "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
diff --git a/tests-m32/poll.c b/tests-m32/poll.c
index c5930a3..9624bd3 100644
--- a/tests-m32/poll.c
+++ b/tests-m32/poll.c
@@ -95,7 +95,7 @@
if (i)
tprintf(", ");
if (i >= valid) {
- tprintf("%p", &pfd[i]);
+ tprintf("... /* %p */", &pfd[i]);
break;
}
if (i >= abbrev) {
diff --git a/tests-m32/prctl-spec-inject.c b/tests-m32/prctl-spec-inject.c
new file mode 100644
index 0000000..593c3a6
--- /dev/null
+++ b/tests-m32/prctl-spec-inject.c
@@ -0,0 +1,153 @@
+/*
+ * Check decoding of PR_SET_SPECULATION_CTRL and PR_GET_SPECULATION_CTRL
+ * prctl operations.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_prctl
+
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+# include <linux/prctl.h>
+
+static long injected_val;
+
+long
+do_prctl(kernel_ulong_t cmd, kernel_ulong_t arg2, kernel_ulong_t arg3)
+{
+ long rc = syscall(__NR_prctl, cmd, arg2, arg3);
+
+ if (rc != injected_val)
+ error_msg_and_fail("Return value (%ld) differs from expected "
+ "injected value (%ld)",
+ rc, injected_val);
+
+ return rc;
+}
+
+int
+main(int argc, char **argv)
+{
+ static const kernel_ulong_t bogus_arg2 =
+ (kernel_ulong_t) 0xdeadfacebadc0dedULL;
+ static const kernel_ulong_t bogus_arg3 =
+ (kernel_ulong_t) 0xdecafeedbeefda7eULL;
+ static const struct {
+ long arg;
+ const char *str;
+ } get_strs[] = {
+ { -1, "" },
+ { 0, " (PR_SPEC_NOT_AFFECTED)" },
+ { 1, " (PR_SPEC_PRCTL)" },
+ { 3, " (PR_SPEC_PRCTL|PR_SPEC_ENABLE)" },
+ { 8, " (PR_SPEC_FORCE_DISABLE)" },
+ { 16, " (0x10)" },
+ { 42, " (PR_SPEC_ENABLE|PR_SPEC_FORCE_DISABLE|0x20)" },
+ };
+ static const struct {
+ kernel_ulong_t arg;
+ const char *str;
+ } set_strs[] = {
+ { 0, "0 /* PR_SPEC_??? */" },
+ { 1, "0x1 /* PR_SPEC_??? */" },
+ { 2, "PR_SPEC_ENABLE" },
+ { 3, "0x3 /* PR_SPEC_??? */" },
+ { 8, "PR_SPEC_FORCE_DISABLE" },
+ { 16, "0x10 /* PR_SPEC_??? */" },
+ { (kernel_ulong_t) 0xdecafeedbeefda7eULL, "0x"
+# if SIZEOF_KERNEL_LONG_T == 8
+ "decafeed"
+# endif
+ "beefda7e /* PR_SPEC_??? */" },
+ };
+
+ long rc;
+ const char *str = NULL;
+
+ if (argc < 2)
+ error_msg_and_fail("Usage: %s INJECTED_VAL", argv[0]);
+
+ injected_val = strtol(argv[1], NULL, 0);
+
+ /* PR_GET_SPECULATION_CTRL */
+ rc = do_prctl(52, 1, bogus_arg3);
+ printf("prctl(PR_GET_SPECULATION_CTRL, 0x1 /* PR_SPEC_??? */) "
+ "= %s (INJECTED)\n", sprintrc(rc));
+
+ rc = do_prctl(52, bogus_arg2, bogus_arg3);
+ printf("prctl(PR_GET_SPECULATION_CTRL, %#llx /* PR_SPEC_??? */) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg2, sprintrc(rc));
+
+ rc = do_prctl(52, 0, bogus_arg3);
+
+ for (unsigned i = 0; i < ARRAY_SIZE(get_strs); i++) {
+ if (get_strs[i].arg == rc) {
+ str = get_strs[i].str;
+ break;
+ }
+ }
+ if (!str)
+ error_msg_and_fail("Unknown return value: %ld", rc);
+
+ printf("prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS) "
+ "= %s%s (INJECTED)\n", sprintrc(rc), str);
+
+
+ /* PR_SET_SPECULATION_CTRL*/
+ rc = do_prctl(53, 1, bogus_arg3);
+ printf("prctl(PR_SET_SPECULATION_CTRL, 0x1 /* PR_SPEC_??? */, %#llx) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg3, sprintrc(rc));
+
+ rc = do_prctl(53, bogus_arg2, bogus_arg3);
+ printf("prctl(PR_SET_SPECULATION_CTRL, %#llx /* PR_SPEC_??? */, %#llx) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg2,
+ (unsigned long long) bogus_arg3,
+ sprintrc(rc));
+
+ for (unsigned i = 0; i < ARRAY_SIZE(set_strs); i++) {
+ rc = do_prctl(53, 0, set_strs[i].arg);
+ printf("prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS"
+ ", %s) = %s (INJECTED)\n",
+ set_strs[i].str, sprintrc(rc));
+ }
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_prctl")
+
+#endif
diff --git a/tests-m32/prctl-spec-inject.test b/tests-m32/prctl-spec-inject.test
new file mode 100755
index 0000000..c8fbe97
--- /dev/null
+++ b/tests-m32/prctl-spec-inject.test
@@ -0,0 +1,55 @@
+#!/bin/sh -efu
+#
+# Check decoding of PR_SET_SPECULATION_CTRL and PR_GET_SPECULATION_CTRL
+# prctl operations.
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${srcdir=.}/scno_tampering.sh"
+
+fault_args='-a53 -e trace=prctl -e inject=prctl:'
+prog="../$NAME"
+
+test_run_rval()
+{
+ local run rval injexpr
+ run="$1"; shift
+ rval="$1"; shift
+ injexpr="$1"; shift
+
+ run_strace $fault_args$injexpr $prog $rval > "$EXP"
+ LC_ALL=C grep -Ev '^prctl\(PR_[GS]ET_([^S][^P][^E][^C]])' \
+ < "$LOG" > "$OUT"
+ match_diff "$OUT" "$EXP"
+}
+
+test_run_rval 0 -1 "error=ENOTTY"
+test_run_rval 1 0 "retval=0"
+test_run_rval 2 1 "retval=1"
+test_run_rval 3 3 "retval=3"
+test_run_rval 4 8 "retval=8"
+test_run_rval 5 16 "retval=16"
+test_run_rval 6 42 "retval=42"
diff --git a/tests-m32/preadv-pwritev.c b/tests-m32/preadv-pwritev.c
index 44ed23a..57a08ad 100644
--- a/tests-m32/preadv-pwritev.c
+++ b/tests-m32/preadv-pwritev.c
@@ -2,7 +2,7 @@
* Check decoding of preadv and pwritev syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,7 @@
tprintf("pwritev(1, [], 0, 0) = 0\n");
rc = pwritev(1, w_iov + ARRAY_SIZE(w_iov_) - 1, 2, 0);
- tprintf("pwritev(1, [{iov_base=\"%s\", iov_len=%u}, %p], 2, 0)"
+ tprintf("pwritev(1, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2, 0)"
" = %ld %s (%m)\n",
w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests-m32/preadv2-pwritev2.c b/tests-m32/preadv2-pwritev2.c
index 89f37dd..7874b7a 100644
--- a/tests-m32/preadv2-pwritev2.c
+++ b/tests-m32/preadv2-pwritev2.c
@@ -2,7 +2,7 @@
* Check decoding of preadv2 and pwritev2 syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -104,7 +104,7 @@
tprintf("pwritev2(1, [], 0, 0, 0) = 0\n");
rc = pw(1, w_iov + ARRAY_SIZE(w_iov_) - 1, 2, 0);
- tprintf("pwritev2(1, [{iov_base=\"%s\", iov_len=%u}, %p], 2, 0, 0)"
+ tprintf("pwritev2(1, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2, 0, 0)"
" = %ld %s (%m)\n",
w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests-m32/print_quoted_string.c b/tests-m32/print_quoted_string.c
index 3ca5631..a58b69a 100644
--- a/tests-m32/print_quoted_string.c
+++ b/tests-m32/print_quoted_string.c
@@ -33,6 +33,18 @@
}
}
+void
+print_quoted_stringn(const char *instr, const size_t size)
+{
+ const size_t len = strnlen(instr, size);
+ if (len < size) {
+ print_quoted_memory(instr, len);
+ } else {
+ print_quoted_memory(instr, size);
+ printf("...");
+ }
+}
+
static void
print_octal(unsigned char c, char next)
{
diff --git a/tests-m32/process_vm_readv_writev.c b/tests-m32/process_vm_readv_writev.c
index 5ee801b..328dc9f 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -135,7 +135,7 @@
}
if (arg->addr_term)
- printf(", %p", iov + arg->count);
+ printf(", ... /* %p */", iov + arg->count);
printf("]");
}
diff --git a/tests-m32/ptrace.c b/tests-m32/ptrace.c
index 5c09fa3..2ca9ceb 100644
--- a/tests-m32/ptrace.c
+++ b/tests-m32/ptrace.c
@@ -60,10 +60,11 @@
printf("ptrace(PTRACE_PEEKSIGINFO, %u, NULL, %#lx) = %s\n",
(unsigned) pid, bad_request, errstr);
- struct {
+ struct psi {
unsigned long long off;
unsigned int flags, nr;
- } *const psi = tail_alloc(sizeof(*psi));
+ };
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct psi, psi);
psi->off = 0xdeadbeeffacefeedULL;
psi->flags = 1;
@@ -179,7 +180,7 @@
const unsigned long pid =
(unsigned long) 0xdefaced00000000ULL | (unsigned) getpid();
- uint64_t *filter_off = tail_alloc(sizeof(*filter_off));
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, filter_off);
const unsigned int sigset_size = get_sigset_size();
diff --git a/tests-m32/pure_executables.am b/tests-m32/pure_executables.am
index bbb3ad9..c65f4ca 100644
--- a/tests-m32/pure_executables.am
+++ b/tests-m32/pure_executables.am
@@ -8,9 +8,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -43,6 +48,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -105,10 +113,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -121,15 +132,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -154,11 +180,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -205,7 +240,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -230,6 +267,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -241,6 +281,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -357,7 +400,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
diff --git a/tests-m32/pure_executables.list b/tests-m32/pure_executables.list
index d78bd4d..39565d0 100755
--- a/tests-m32/pure_executables.list
+++ b/tests-m32/pure_executables.list
@@ -7,9 +7,14 @@
add_key
adjtimex
aio
+aio_pgetevents
alarm
bpf
bpf-v
+bpf-obj_get_info_by_fd
+bpf-obj_get_info_by_fd-v
+bpf-obj_get_info_by_fd-prog
+bpf-obj_get_info_by_fd-prog-v
brk
btrfs
caps
@@ -42,6 +47,9 @@
fallocate
fanotify_init
fanotify_mark
+fanotify_mark-Xabbrev
+fanotify_mark-Xraw
+fanotify_mark-Xverbose
fchdir
fchmod
fchmodat
@@ -104,10 +112,13 @@
ioctl_block
ioctl_dm
ioctl_evdev
+ioctl_inotify
ioctl_kvm_run
ioctl_loop
ioctl_mtd
ioctl_rtc
+ioctl_perf
+ioctl_ptp
ioctl_scsi
ioctl_sg_io_v3
ioctl_sg_io_v4
@@ -120,15 +131,30 @@
ip_mreq
ipc
ipc_msg
+ipc_msg-Xabbrev
+ipc_msg-Xraw
+ipc_msg-Xverbose
ipc_msgbuf
+ipc_msgbuf-Xabbrev
+ipc_msgbuf-Xraw
+ipc_msgbuf-Xverbose
ipc_sem
+ipc_sem-Xabbrev
+ipc_sem-Xraw
+ipc_sem-Xverbose
ipc_shm
+ipc_shm-Xabbrev
+ipc_shm-Xraw
+ipc_shm-Xverbose
kcmp
kcmp-y
kern_features
kexec_file_load
kexec_load
keyctl
+keyctl-Xabbrev
+keyctl-Xraw
+keyctl-Xverbose
kill
lchown
lchown32
@@ -153,11 +179,20 @@
mlock2
mlockall
mmap
+mmap-Xabbrev
+mmap-Xraw
+mmap-Xverbose
mmap64
+mmap64-Xabbrev
+mmap64-Xraw
+mmap64-Xverbose
mmsg
mmsg_name
modify_ldt
mount
+mount-Xabbrev
+mount-Xraw
+mount-Xverbose
move_pages
mq
mq_sendrecv
@@ -204,7 +239,9 @@
nlattr_ifaddrlblmsg
nlattr_ifaddrmsg
nlattr_ifinfomsg
+nlattr_ifla_af_spec
nlattr_ifla_brport
+nlattr_ifla_linkinfo
nlattr_ifla_port
nlattr_ifla_xdp
nlattr_inet_diag_msg
@@ -229,6 +266,9 @@
old_mmap
old_mmap-P
old_mmap-v-none
+old_mmap-Xabbrev
+old_mmap-Xraw
+old_mmap-Xverbose
oldfstat
oldlstat
oldselect
@@ -240,6 +280,9 @@
pause
perf_event_open
personality
+personality-Xabbrev
+personality-Xraw
+personality-Xverbose
pipe
pipe2
pkey_alloc
@@ -356,7 +399,13 @@
sigsuspend
so_linger
so_peercred
+so_peercred-Xabbrev
+so_peercred-Xraw
+so_peercred-Xverbose
sock_filter-v
+sock_filter-v-Xabbrev
+sock_filter-v-Xraw
+sock_filter-v-Xverbose
socketcall
sockopt-sol_netlink
splice
diff --git a/tests-m32/pwritev.c b/tests-m32/pwritev.c
index 58e5b41..3c2bdb6 100644
--- a/tests-m32/pwritev.c
+++ b/tests-m32/pwritev.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -65,7 +66,7 @@
if (i)
fputs(", ", stdout);
if (i == size) {
- printf("%p", &iov[i]);
+ printf("... /* %p */", &iov[i]);
break;
}
if (i == LIM) {
diff --git a/tests-m32/qual_fault-syntax.test b/tests-m32/qual_fault-syntax.test
index 43ade76..7f7a515 100755
--- a/tests-m32/qual_fault-syntax.test
+++ b/tests-m32/qual_fault-syntax.test
@@ -86,6 +86,12 @@
chdir:retval=0 \
chdir:signal=1 \
chdir:error=1:error=2 \
+ chdir:syscall=invalid \
+ chdir:syscall=chdir \
+ chdir:syscall=%file \
+ chdir:syscall=-42 \
+ chdir:syscall=42 \
+ chdir:syscall=gettid:syscall=gettid \
; do
$STRACE -e fault="$arg" true 2> "$LOG" &&
fail_with "$arg"
diff --git a/tests-m32/qual_fault-syscall.test b/tests-m32/qual_fault-syscall.test
new file mode 100755
index 0000000..cae97f5
--- /dev/null
+++ b/tests-m32/qual_fault-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_fault
+. "${srcdir=.}/qual_fault.test"
diff --git a/tests-m32/qual_fault.c b/tests-m32/qual_fault.c
index 670d9fe..d5d78bc 100644
--- a/tests-m32/qual_fault.c
+++ b/tests-m32/qual_fault.c
@@ -77,8 +77,9 @@
err, rc, errno);
if (is_raw)
- tprintf("writev(%#x, %p, 0x1) = -1 (errno %d)"
- " (INJECTED)\n", got_fd, &io, err);
+ tprintf("writev(%#x, %p, 0x1)"
+ " = -1 %s (%m) (INJECTED)\n",
+ got_fd, &io, errstr);
else
tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
" = -1 %s (%m) (INJECTED)\n",
diff --git a/tests-m32/qual_fault.test b/tests-m32/qual_fault.test
index 12b0a85..e166ffd 100755
--- a/tests-m32/qual_fault.test
+++ b/tests-m32/qual_fault.test
@@ -1,9 +1,9 @@
-#!/bin/sh
+#!/bin/sh -efu
#
# Check that fault injection works properly.
#
# Copyright (c) 2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2016-2017 The strace developers.
+# Copyright (c) 2016-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,9 @@
N=100
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
check_fault_injection()
{
local trace fault err first step procs extra
@@ -79,7 +82,7 @@
outpid="$NAME.pid"
run_strace -a11 -ff -e trace=$trace \
- "$@" -e fault=$fault$when$error $extra \
+ "$@" -e fault=$fault$when$error$suffix $extra \
../$NAME $raw "$err" "$first" "$step" $N \
"$procs" "$outexp" "$outgot" "$outout" "$outpid"
@@ -87,8 +90,8 @@
do
pid=$(cat "$outpid.$i")
- match_diff "$outout.$i" "$LOG.$pid"
- match_diff "$outexp.$i" "$outgot.$i"
+ match_diff "$LOG.$pid" "$outout.$i"
+ match_diff "$outgot.$i" "$outexp.$i"
done
}
diff --git a/tests-m32/qual_inject-error-signal-syscall.test b/tests-m32/qual_inject-error-signal-syscall.test
new file mode 100755
index 0000000..0adb35d
--- /dev/null
+++ b/tests-m32/qual_inject-error-signal-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-error-signal
+. "${srcdir=.}/qual_inject-error-signal.test"
diff --git a/tests-m32/qual_inject-error-signal.test b/tests-m32/qual_inject-error-signal.test
index 1fe4612..93d8321 100755
--- a/tests-m32/qual_inject-error-signal.test
+++ b/tests-m32/qual_inject-error-signal.test
@@ -3,6 +3,10 @@
# Check fault injection along with signal injection.
. "${srcdir=.}/scno_tampering.sh"
-run_strace -a12 -echdir,exit_group -einject=chdir:error=ENOENT:signal=USR1 \
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
+run_strace -a12 -echdir,exit_group \
+ -einject=chdir:error=ENOENT:signal=USR1"$suffix" \
"../$NAME"
match_diff
diff --git a/tests-m32/qual_inject-retval-syscall.test b/tests-m32/qual_inject-retval-syscall.test
new file mode 100755
index 0000000..fca9354
--- /dev/null
+++ b/tests-m32/qual_inject-retval-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-retval
+. "${srcdir=.}/qual_inject-retval.test"
diff --git a/tests-m32/qual_inject-retval.test b/tests-m32/qual_inject-retval.test
index 5a4efd1..239ab0a 100755
--- a/tests-m32/qual_inject-retval.test
+++ b/tests-m32/qual_inject-retval.test
@@ -4,6 +4,9 @@
. "${srcdir=.}/scno_tampering.sh"
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
check_injection()
{
local syscall rval
@@ -11,7 +14,7 @@
syscall=chdir
rval="$1"; shift
- run_strace -a12 -e$syscall -einject="$syscall:retval=$rval" "$@" \
+ run_strace -a12 -e$syscall -einject="$syscall:retval=$rval$suffix" "$@" \
../qual_inject-retval "$rval" > "$EXP"
match_diff "$LOG" "$EXP"
}
diff --git a/tests-m32/qual_inject-signal-syscall.test b/tests-m32/qual_inject-signal-syscall.test
new file mode 100755
index 0000000..42e9a26
--- /dev/null
+++ b/tests-m32/qual_inject-signal-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-signal
+. "${srcdir=.}/qual_inject-signal.test"
diff --git a/tests-m32/qual_inject-signal.test b/tests-m32/qual_inject-signal.test
index f17e5a0..7f75a8e 100755
--- a/tests-m32/qual_inject-signal.test
+++ b/tests-m32/qual_inject-signal.test
@@ -3,6 +3,9 @@
# Check signal injection.
. "${srcdir=.}/init.sh"
-run_strace -a12 -echdir,exit_group -einject=chdir:signal=USR1 \
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
+run_strace -a12 -echdir,exit_group -einject=chdir:signal=USR1"$suffix" \
../$NAME
match_diff
diff --git a/tests-m32/qual_inject-syntax.test b/tests-m32/qual_inject-syntax.test
index 20bc0c3..a53b01c 100755
--- a/tests-m32/qual_inject-syntax.test
+++ b/tests-m32/qual_inject-syntax.test
@@ -102,6 +102,12 @@
chdir:delay_exit=3:delay_exit=4 \
chdir:delay_enter=5:delay_exit=6:delay_enter=7 \
chdir:delay_exit=8:delay_enter=9:delay_exit=10 \
+ chdir:syscall=invalid \
+ chdir:syscall=chdir \
+ chdir:syscall=%file \
+ chdir:syscall=-42 \
+ chdir:syscall=42 \
+ chdir:syscall=gettid:syscall=gettid \
; do
$STRACE -e inject="$arg" true 2> "$LOG" &&
fail_with "$arg"
diff --git a/tests-m32/qualify_personality.sh b/tests-m32/qualify_personality.sh
new file mode 100644
index 0000000..7b19a2e
--- /dev/null
+++ b/tests-m32/qualify_personality.sh
@@ -0,0 +1,94 @@
+#! /bin/sh -efu
+#
+# Common code for per-personality qualification tests
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${srcdir=.}/init.sh"
+
+[ 2 -le "$#" ] ||
+ fail_ 'No personality designation ("64", "32", "x32") specified'
+
+pers="$1"
+shift
+trace_expr="$1"
+shift
+skip="${1-}"
+
+case "$STRACE_NATIVE_ARCH" in
+x86_64)
+ supported_pers='64 32 x32'
+ ;;
+x32)
+ supported_pers='x32 32'
+ ;;
+aarch64|powerpc64|riscv|s390x|sparc64|tile)
+ supported_pers='64 32'
+ ;;
+*)
+ supported_pers="$(($SIZEOF_LONG * 8))"
+ ;;
+esac
+
+# Detect current personality designation
+if [ "x$STRACE_NATIVE_ARCH" = "x$STRACE_ARCH" ]; then
+ case "$STRACE_NATIVE_ARCH" in
+ x32)
+ cur_pers=x32
+ ;;
+ *)
+ cur_pers="$(($SIZEOF_LONG * 8))"
+ ;;
+ esac
+else
+ if [ "x$SIZEOF_KERNEL_LONG_T" = "x$SIZEOF_LONG" ]; then
+ [ 4 -eq "$SIZEOF_LONG" ] ||
+ fail_ "sizeof(long) = $SIZEOF_LONG != 4"
+ cur_pers=32
+ else
+ [ 8 -eq "$SIZEOF_KERNEL_LONG_T" ] ||
+ fail_ "sizeof(kernel_long_t) = $SIZEOF_KERNEL_LONG_T != 8"
+ [ 4 -eq "$SIZEOF_LONG" ] ||
+ fail_ "sizeof(long) = $SIZEOF_LONG != 4"
+ cur_pers=x32
+ fi
+fi
+
+pers_found=0
+set -- $supported_pers
+for i; do
+ [ "x$pers" != "x$i" ] || pers_found=1
+done
+
+[ "$pers_found" = 1 ] ||
+ skip_ "Personality '$pers' is not supported on architecture" \
+ "'$STRACE_NATIVE_ARCH' (supported personalities: $supported_pers)"
+
+# If tested personality is not equivalent to current personality, reset $NAME,
+# so "$NAME.in", which is used by test_trace_expr, points to an empty file.
+[ "x$pers" = "x$cur_pers" ] || NAME=qualify_personality_empty
+
+test_trace_expr "$skip" -e trace="${trace_expr}@${pers}"
diff --git a/tests-m32/qualify_personality_empty.in b/tests-m32/qualify_personality_empty.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests-m32/qualify_personality_empty.in
diff --git a/tests-m32/readv.c b/tests-m32/readv.c
index 8430ca5..cae4e6b 100644
--- a/tests-m32/readv.c
+++ b/tests-m32/readv.c
@@ -2,7 +2,7 @@
* Check decoding of readv and writev syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -89,7 +89,7 @@
fds[1], (long) writev(fds[1], w_iov, 0));
rc = writev(fds[1], w_iov + ARRAY_SIZE(w_iov_) - 1, 2);
- tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%u}, %p], 2)"
+ tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2)"
" = %ld %s (%m)\n",
fds[1], w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests-m32/request_key.c b/tests-m32/request_key.c
index 866fe76..ce9b724 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -101,7 +101,7 @@
{ bogus_desc, NULL },
{ ARG_STR("\25\26\27\30\31") },
{ ARG_STR("desc") },
- { "overly long description", _STR("overly long ") "..." },
+ { "overly long description", STRINGIFY("overly long ") "..." },
};
struct {
@@ -113,7 +113,7 @@
{ bogus_info, NULL },
{ ARG_STR("\32\33\34\35\36") },
{ ARG_STR("info") },
- { "overly long info", _STR("overly long ") "..." },
+ { "overly long info", STRINGIFY("overly long ") "..." },
};
struct {
diff --git a/tests-m32/s390_guarded_storage.c b/tests-m32/s390_guarded_storage.c
index 69ac166..97475bb 100644
--- a/tests-m32/s390_guarded_storage.c
+++ b/tests-m32/s390_guarded_storage.c
@@ -175,8 +175,8 @@
static const kernel_ulong_t bogus_addr =
(kernel_ulong_t) 0xfacefeedac0ffeedULL;
- struct gs_cb *gscb = tail_alloc(sizeof(*gscb));
- struct gs_epl *gsepl = tail_alloc(sizeof(*gsepl));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct gs_cb, gscb);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct gs_epl, gsepl);
long rc;
diff --git a/tests-m32/s390_runtime_instr.c b/tests-m32/s390_runtime_instr.c
index 861bbd4..5d368a1 100644
--- a/tests-m32/s390_runtime_instr.c
+++ b/tests-m32/s390_runtime_instr.c
@@ -44,10 +44,11 @@
kernel_ulong_t cmd;
const char * cmd_str;
} cmd_args[] = {
- { 0, "???" },
- { 4, "???" },
- { (kernel_ulong_t) 0xdeafbeefdeadc0deULL, "???" },
- { 2, "STOP", },
+ { 0, "0 /* S390_RUNTIME_INSTR_??? */" },
+ { 4, "4 /* S390_RUNTIME_INSTR_??? */" },
+ { (kernel_ulong_t) 0xdeafbeefdeadc0deULL,
+ "-559038242 /* S390_RUNTIME_INSTR_??? */" },
+ { 2, "S390_RUNTIME_INSTR_STOP" },
};
static struct {
@@ -66,10 +67,8 @@
for (i = 0; i < ARRAY_SIZE(cmd_args); i++) {
rc = syscall(__NR_s390_runtime_instr, cmd_args[i].cmd, 0xdead);
- printf("s390_runtime_instr(%d /* S390_RUNTIME_INSTR_%s */) = "
- "%s\n",
- (int) cmd_args[i].cmd, cmd_args[i].cmd_str,
- sprintrc(rc));
+ printf("s390_runtime_instr(%s) = %s\n",
+ cmd_args[i].cmd_str, sprintrc(rc));
}
for (i = 0; i < ARRAY_SIZE(start_sig_args); i++) {
@@ -77,7 +76,7 @@
rc = syscall(__NR_s390_runtime_instr, 1, start_sig_args[i].sig);
saved_errno = errno;
- printf("s390_runtime_instr(1 /* S390_RUNTIME_INSTR_START */, ");
+ printf("s390_runtime_instr(S390_RUNTIME_INSTR_START, ");
if (start_sig_args[i].sig_str)
printf("%s", start_sig_args[i].sig_str);
diff --git a/tests-m32/s390_runtime_instr.gen.test b/tests-m32/s390_runtime_instr.gen.test
index 9197dc3..83e8150 100755
--- a/tests-m32/s390_runtime_instr.gen.test
+++ b/tests-m32/s390_runtime_instr.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (s390_runtime_instr -a50 ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (s390_runtime_instr -a44 ); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff -a50
+run_strace_match_diff -a44
diff --git a/tests-m32/s390_sthyi.c b/tests-m32/s390_sthyi.c
index 8f6bbfb..b7066e5 100644
--- a/tests-m32/s390_sthyi.c
+++ b/tests-m32/s390_sthyi.c
@@ -741,7 +741,7 @@
(kernel_ulong_t) 0xfee1deadfa57beefULL;
unsigned char *buf = tail_alloc(PAGE_SIZE);
- uint64_t *ret = tail_alloc(sizeof(*ret));
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, ret);
long rc;
diff --git a/tests-m32/seccomp-filter-v.c b/tests-m32/seccomp-filter-v.c
index 34ab3b5..38def28 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -118,7 +118,7 @@
prog->len = 3;
syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, 0, prog);
tprintf("seccomp(SECCOMP_SET_MODE_FILTER, 0, {len=%u"
- ", filter=[%s, %p]}) = -1 EFAULT (%m)\n",
+ ", filter=[%s, ... /* %p */]}) = -1 EFAULT (%m)\n",
prog->len, kill_stmt_txt, filter + ARRAY_SIZE(filter_c));
prog->len = 0;
@@ -136,7 +136,8 @@
prog->filter = big_filter;
prog->len = BPF_MAXINSNS + 1;
tprintf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=[",
- "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|0xfffffffc",
+ "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|"
+ "SECCOMP_FILTER_FLAG_SPEC_ALLOW|0xfffffff8",
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 7bc7656..53f8363 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -56,12 +56,13 @@
rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -1, prog);
printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=%p})"
" = %ld %s (%m)\n",
- "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|0xfffffffc",
+ "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|"
+ "SECCOMP_FILTER_FLAG_SPEC_ALLOW|0xfffffff8",
prog->len, prog->filter, rc, errno2name());
- rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -4L, efault);
+ rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -8L, efault);
printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, %p) = %ld %s (%m)\n",
- "0xfffffffc /* SECCOMP_FILTER_FLAG_??? */",
+ "0xfffffff8 /* SECCOMP_FILTER_FLAG_??? */",
efault, rc, errno2name());
puts("+++ exited with 0 +++");
diff --git a/tests-m32/semop.c b/tests-m32/semop.c
index 2366d38..4b14882 100644
--- a/tests-m32/semop.c
+++ b/tests-m32/semop.c
@@ -64,11 +64,11 @@
sem_b2->sem_flg = 0xbeef;
rc = semop(bogus_semid, sem_b2, 2);
- printf("semop(%d, [{%hu, %hd, %s%s%#hx}, %p], %u) = %s\n",
+ 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|" : "",
- sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT),
+ (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)),
sem_b2 + 1, 2, sprintrc(rc));
if (semop(id, sem_b, 1))
@@ -91,12 +91,12 @@
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"
+ 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|" : "",
- sem_b2->sem_flg & ~(SEM_UNDO | 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));
diff --git a/tests-m32/set_mempolicy.c b/tests-m32/set_mempolicy.c
index f3261a0..96ad7db 100644
--- a/tests-m32/set_mempolicy.c
+++ b/tests-m32/set_mempolicy.c
@@ -2,6 +2,7 @@
* Check decoding of set_mempolicy syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -76,7 +77,7 @@
printf("%#0*lx", (int) sizeof(long) * 2 + 2,
nodemask[i]);
} else {
- printf("%p", nodemask + i);
+ printf("... /* %p */", nodemask + i);
break;
}
}
diff --git a/tests-m32/setgroups.c b/tests-m32/setgroups.c
index 5645c22..a2851be 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -115,7 +115,7 @@
errstr = sprintrc(rc);
printf("%s(2, [", SYSCALL_NAME);
printuid(*g1);
- printf(", %p]) = %s\n", g1 + 1, errstr);
+ printf(", ... /* %p */]) = %s\n", g1 + 1, errstr);
g2[0] = -2;
g2[1] = -3;
@@ -133,7 +133,7 @@
printuid(g2[0]);
printf(", ");
printuid(g2[1]);
- printf(", %p]) = %s\n", g2 + 2, errstr);
+ printf(", ... /* %p */]) = %s\n", g2 + 2, errstr);
g3[0] = 0;
g3[1] = 1;
diff --git a/tests-m32/signal_receive.c b/tests-m32/signal_receive.c
index 01c52e8..a464b8c 100644
--- a/tests-m32/signal_receive.c
+++ b/tests-m32/signal_receive.c
@@ -1,43 +1,127 @@
+/*
+ * Check decoding of signal delivery.
+ *
+ * Copyright (c) 2016-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
#include "tests.h"
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
-void sig_print(const char *signame, const int pid, const int uid)
-{
- printf("kill(%d, %s) = 0\n"
- "--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d"
- ", si_uid=%d} ---\n",
- pid, signame, signame, signame, pid, uid);
-}
+static volatile int s_sig, s_code, s_pid, s_uid;
static void
-handler(int sig)
+handler(int sig, siginfo_t *info, void *ucontext)
{
+ s_sig = info->si_signo;
+ s_code = info->si_code;
+ s_pid = info->si_pid;
+ s_uid = info->si_uid;
}
int
main(void)
{
- int sig, pid = getpid(), uid = getuid();
- const struct sigaction act = { .sa_handler = handler };
- sigset_t mask;
- sigemptyset(&mask);
+ static const char prefix[] = "KERNEL BUG";
+ int printed = 0;
- for (sig = 1; sig <= 31; sig++) {
- if (sig != SIGKILL && sig != SIGSTOP) {
- sigaction(sig, &act, NULL);
- sigaddset(&mask, sig);
+ const int pid = getpid();
+ const int uid = geteuid();
+
+ for (int sig = 1; sig <= 31; ++sig) {
+ if (sig == SIGKILL || sig == SIGSTOP)
+ continue;
+
+ sigset_t mask;
+ sigemptyset(&mask);
+ sigaddset(&mask, sig);
+ if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+ perror_msg_and_fail("sigprocmask");
+
+ static const struct sigaction act = {
+ .sa_sigaction = handler,
+ .sa_flags = SA_SIGINFO
+ };
+ if (sigaction(sig, &act, NULL))
+ perror_msg_and_fail("sigaction: %d", sig);
+
+ if (kill(pid, sig) != 0)
+ perror_msg_and_fail("kill: %d", sig);
+
+#ifdef MPERS_IS_m32
+ /*
+ * The tracee has received a compat siginfo_t but
+ * the tracer has received a native siginfo_t.
+ */
+ const int e_sig = sig;
+ const int e_pid = pid;
+ const int e_uid = uid;
+#else
+ /*
+ * If the tracee is a native process,
+ * then the tracer is also native.
+ * If the tracee is a compat process,
+ * then the tracer is also compat.
+ * Anyway, both the tracee and the tracer
+ * have received the same siginfo_t.
+ */
+ const int e_sig = s_sig;
+ 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"
+ ", si_uid=%d} ---\n",
+ signal2name(sig), signal2name(e_sig), e_pid, e_uid);
+
+ if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) {
+ /*
+ * The kernel has failed to initialize siginfo_t
+ * properly. There is nothing that could be done
+ * on the strace side to workaround the kernel bug,
+ * so just print some useful diagnostics.
+ */
+ if (!printed) {
+ printed = 1;
+ fprintf(stderr, "%s: siginfo_t\n", prefix);
+ }
+ fprintf(stderr,
+ "%s: expected: si_signo=%d, si_code=%d"
+ ", si_pid=%d, 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);
}
}
- sigprocmask(SIG_UNBLOCK, &mask, NULL);
- for (sig = 1; sig <= 31; sig++) {
- if (sig != SIGKILL && sig != SIGSTOP) {
- if (kill(pid, sig) != 0)
- perror_msg_and_fail("kill: %d", sig);
- sig_print(signal2name(sig), pid, uid);
- }
+ if (printed) {
+ fprintf(stderr, "%s: end of diagnostics\n"
+ "*** PLEASE FIX THE KERNEL ***\n", prefix);
}
puts("+++ exited with 0 +++");
diff --git a/tests-m32/so_peercred-Xabbrev.c b/tests-m32/so_peercred-Xabbrev.c
new file mode 100644
index 0000000..a7056a6
--- /dev/null
+++ b/tests-m32/so_peercred-Xabbrev.c
@@ -0,0 +1 @@
+#include "so_peercred.c"
diff --git a/tests-m32/so_peercred-Xabbrev.gen.test b/tests-m32/so_peercred-Xabbrev.gen.test
new file mode 100755
index 0000000..64a5538
--- /dev/null
+++ b/tests-m32/so_peercred-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xabbrev -e trace=getsockopt -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xabbrev
diff --git a/tests-m32/so_peercred-Xraw.c b/tests-m32/so_peercred-Xraw.c
new file mode 100644
index 0000000..e45f2df
--- /dev/null
+++ b/tests-m32/so_peercred-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "so_peercred.c"
diff --git a/tests-m32/so_peercred-Xraw.gen.test b/tests-m32/so_peercred-Xraw.gen.test
new file mode 100755
index 0000000..471ae59
--- /dev/null
+++ b/tests-m32/so_peercred-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xraw -e trace=getsockopt -Xraw -a39); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xraw -a39
diff --git a/tests-m32/so_peercred-Xverbose.c b/tests-m32/so_peercred-Xverbose.c
new file mode 100644
index 0000000..1bb47e9
--- /dev/null
+++ b/tests-m32/so_peercred-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "so_peercred.c"
diff --git a/tests-m32/so_peercred-Xverbose.gen.test b/tests-m32/so_peercred-Xverbose.gen.test
new file mode 100755
index 0000000..2926517
--- /dev/null
+++ b/tests-m32/so_peercred-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xverbose -e trace=getsockopt -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xverbose
diff --git a/tests-m32/so_peercred.c b/tests-m32/so_peercred.c
index 53bf071..6eac846 100644
--- a/tests-m32/so_peercred.c
+++ b/tests-m32/so_peercred.c
@@ -2,6 +2,7 @@
* Check decoding of SO_PEERCRED socket option.
*
* Copyright (c) 2017 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -46,6 +47,28 @@
return rc;
}
+static const char *
+so_str(void)
+{
+ static char buf[256];
+
+ if (!buf[0]) {
+#if XLAT_RAW
+ snprintf(buf, sizeof(buf),
+ "%#x, %#x", SOL_SOCKET, SO_PEERCRED);
+#elif XLAT_VERBOSE
+ snprintf(buf, sizeof(buf),
+ "%#x /* SOL_SOCKET */, %#x /* SO_PEERCRED */",
+ SOL_SOCKET, SO_PEERCRED);
+#else
+ snprintf(buf, sizeof(buf),
+ "SOL_SOCKET, SO_PEERCRED");
+#endif
+ }
+
+ return buf;
+}
+
int
main(void)
{
@@ -59,7 +82,7 @@
/* classic getsockopt */
*len = sizeof(*peercred);
get_peercred(sv[0], peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", sv[0]);
+ printf("getsockopt(%d, %s", sv[0], so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
PRINT_FIELD_UID(", ", *peercred, gid);
@@ -72,7 +95,7 @@
/* getsockopt with optlen larger than necessary - shortened */
*len = sizeof(*peercred) + 1;
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
PRINT_FIELD_UID(", ", *peercred, gid);
@@ -82,14 +105,14 @@
/* getsockopt with optlen smaller than usual - truncated to ucred.pid */
*len = sizeof(peercred->pid);
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
printf("}, [%d]) = %s\n", *len, errstr);
/* getsockopt with optlen smaller than usual - truncated to ucred.uid */
*len = offsetof(struct ucred, gid);
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
printf("}, [%d]) = %s\n", *len, errstr);
@@ -97,20 +120,20 @@
/* getsockopt with optlen larger than usual - truncated to raw */
*len = sizeof(*peercred) - 1;
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, ", fd);
+ printf("getsockopt(%d, %s, ", fd, so_str());
print_quoted_hex(peercred, *len);
printf(", [%d]) = %s\n", *len, errstr);
/* getsockopt optval EFAULT */
*len = sizeof(*peercred);
get_peercred(fd, &peercred->uid, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, %p, [%d]) = %s\n",
- fd, &peercred->uid, *len, errstr);
+ printf("getsockopt(%d, %s, %p, [%d]) = %s\n",
+ fd, so_str(), &peercred->uid, *len, errstr);
/* getsockopt optlen EFAULT */
get_peercred(fd, peercred, len + 1);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, %p, %p) = %s\n",
- fd, peercred, len + 1, errstr);
+ printf("getsockopt(%d, %s, %p, %p) = %s\n",
+ fd, so_str(), peercred, len + 1, errstr);
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests-m32/sock_filter-v-Xabbrev.c b/tests-m32/sock_filter-v-Xabbrev.c
new file mode 100644
index 0000000..ac680e2
--- /dev/null
+++ b/tests-m32/sock_filter-v-Xabbrev.c
@@ -0,0 +1 @@
+#include "sock_filter-v.c"
diff --git a/tests-m32/sock_filter-v-Xabbrev.gen.test b/tests-m32/sock_filter-v-Xabbrev.gen.test
new file mode 100755
index 0000000..e52763f
--- /dev/null
+++ b/tests-m32/sock_filter-v-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xabbrev -v -e trace=getsockopt,setsockopt -X abbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -v -e trace=getsockopt,setsockopt -X abbrev
diff --git a/tests-m32/sock_filter-v-Xraw.c b/tests-m32/sock_filter-v-Xraw.c
new file mode 100644
index 0000000..e85309c
--- /dev/null
+++ b/tests-m32/sock_filter-v-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "sock_filter-v.c"
diff --git a/tests-m32/sock_filter-v-Xraw.gen.test b/tests-m32/sock_filter-v-Xraw.gen.test
new file mode 100755
index 0000000..3c7df81
--- /dev/null
+++ b/tests-m32/sock_filter-v-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xraw -a 37 -v -e trace=getsockopt,setsockopt -X raw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a 37 -v -e trace=getsockopt,setsockopt -X raw
diff --git a/tests-m32/sock_filter-v-Xverbose.c b/tests-m32/sock_filter-v-Xverbose.c
new file mode 100644
index 0000000..59d76bd
--- /dev/null
+++ b/tests-m32/sock_filter-v-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "sock_filter-v.c"
diff --git a/tests-m32/sock_filter-v-Xverbose.gen.test b/tests-m32/sock_filter-v-Xverbose.gen.test
new file mode 100755
index 0000000..b58c5b5
--- /dev/null
+++ b/tests-m32/sock_filter-v-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xverbose -v -e trace=getsockopt,setsockopt -X verbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -v -e trace=getsockopt,setsockopt -X verbose
diff --git a/tests-m32/sock_filter-v.c b/tests-m32/sock_filter-v.c
index 16d5c1c..6829786 100644
--- a/tests-m32/sock_filter-v.c
+++ b/tests-m32/sock_filter-v.c
@@ -2,6 +2,7 @@
* Check decoding of socket filters.
*
* Copyright (c) 2017 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,16 +36,30 @@
#include <sys/socket.h>
#include <linux/filter.h>
-#define PRINT_STMT_SYM(pfx, code, k) PRINT_STMT_SYM_(pfx, #code, #k)
-#define PRINT_STMT_SYM_(pfx, code, k) \
- printf("%sBPF_STMT(%s, %s)", pfx, code, k)
-#define PRINT_STMT_VAL(pfx, code, k) PRINT_STMT_VAL_(pfx, #code, k)
-#define PRINT_STMT_VAL_(pfx, code, k) \
- printf("%sBPF_STMT(%s, %#x)", pfx, code, k)
+/* SO_GET_FILTER was introduced by Linux commit v3.8-rc1~139^2~518 */
+#ifndef SO_GET_FILTER
+# define SO_GET_FILTER SO_ATTACH_FILTER
+#endif
-#define PRINT_JUMP(pfx, code, k, jt, jf) PRINT_JUMP_(pfx, #code, k, jt, jf)
-#define PRINT_JUMP_(pfx, code, k, jt, jf) \
- printf("%sBPF_JUMP(%s, %#x, %#x, %#x)", pfx, code, k, jt, jf)
+#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__)
+
+#define PRINT_JUMP(pfx, code_fmt, k, jt, jf, ...) \
+ printf("%sBPF_JUMP(" code_fmt ", %#x, %#x, %#x)", \
+ pfx, __VA_ARGS__, k, jt, jf)
static const struct sock_filter bpf_filter[] = {
BPF_STMT(BPF_LD|BPF_B|BPF_ABS, SKF_LL_OFF+4),
@@ -62,16 +77,43 @@
static void
print_filter(void)
{
- PRINT_STMT_SYM("[", BPF_LD|BPF_B|BPF_ABS, SKF_LL_OFF+4);
- PRINT_STMT_SYM(", ", BPF_LD|BPF_B|BPF_ABS, SKF_NET_OFF+8);
- PRINT_STMT_SYM(", ", BPF_LD|BPF_B|BPF_ABS, SKF_AD_OFF+SKF_AD_PROTOCOL);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JEQ, IPPROTO_UDP, 0, 5);
- PRINT_STMT_VAL(", ", BPF_LD|BPF_W|BPF_LEN, 0);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JGE, 100, 0, 3);
- PRINT_STMT_VAL(", ", BPF_LD|BPF_B|BPF_ABS, 42);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JEQ, 'a', 0, 1);
- PRINT_STMT_VAL(", ", BPF_RET|BPF_K, -1U);
- PRINT_STMT_VAL(", ", BPF_RET|BPF_K, 0);
+ PRINT_STMT("[", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+4",
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_LL_OFF));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+8",
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_NET_OFF));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+" XLAT_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_AD_OFF), XLAT_ARGS(SKF_AD_PROTOCOL));
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ IPPROTO_UDP, 0, 5,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JEQ));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_W), XLAT_ARGS(BPF_LEN),
+ 0);
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ 100, 0, 3,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JGE));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ 42);
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ 'a', 0, 1,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JEQ));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_RET), XLAT_ARGS(BPF_K),
+ -1U);
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_RET), XLAT_ARGS(BPF_K),
+ 0);
putchar(']');
}
@@ -80,7 +122,7 @@
static int
get_filter(int fd, void *val, socklen_t *len)
{
- int rc = getsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, val, len);
+ int rc = getsockopt(fd, SOL_SOCKET, SO_GET_FILTER, val, len);
errstr = sprintrc(rc);
return rc;
}
@@ -114,35 +156,41 @@
*len = BPF_MAXINSNS;
rc = get_filter(fd, NULL, len);
if (rc)
- perror_msg_and_skip("getsockopt SOL_SOCKET SO_ATTACH_FILTER");
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER"
- ", NULL, [%u->0]) = 0\n", fd, BPF_MAXINSNS);
+ perror_msg_and_skip("getsockopt SOL_SOCKET SO_GET_FILTER");
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", NULL, [%u->0]) "
+ "= 0\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER),
+ BPF_MAXINSNS);
/* getsockopt NULL optlen - EFAULT */
rc = get_filter(fd, NULL, NULL);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, NULL, NULL)"
- " = %s\n", fd, errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", NULL, NULL) "
+ "= %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), errstr);
/* attach a filter */
rc = set_filter(fd, prog, sizeof(*prog));
if (rc)
perror_msg_and_skip("setsockopt SOL_SOCKET SO_ATTACH_FILTER");
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, {len=%u, filter=",
- fd, prog->len);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", {len=%u, filter=",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_FILTER),
+ prog->len);
print_filter();
printf("}, %u) = 0\n", (unsigned int) sizeof(*prog));
/* setsockopt optlen is too small - EINVAL */
rc = set_filter(fd, prog, sizeof(*prog) - 4);
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p, %u) = %s\n",
- fd, prog, (unsigned int) sizeof(*prog) - 4, errstr);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, %u) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_FILTER), prog,
+ (unsigned int) sizeof(*prog) - 4, errstr);
#ifdef SO_ATTACH_REUSEPORT_CBPF
rc = setsockopt(fd, SOL_SOCKET, SO_ATTACH_REUSEPORT_CBPF,
prog, sizeof(*prog));
errstr = sprintrc(rc);
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_REUSEPORT_CBPF"
- ", {len=%u, filter=", fd, prog->len);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", {len=%u, filter=",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_REUSEPORT_CBPF),
+ prog->len);
print_filter();
printf("}, %u) = %s\n", (unsigned int) sizeof(*prog), errstr);
#endif
@@ -150,28 +198,30 @@
/* query sock_filter program length -> ARRAY_SIZE(bpf_filter) */
*len = 0;
rc = get_filter(fd, efault, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [0->%u]) = %s\n",
- fd, efault, (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [0->%u]) "
+ "= %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), efault,
+ (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
/* getsockopt optlen is too small - EINVAL */
*len = ARRAY_SIZE(bpf_filter) - 1;
rc = get_filter(fd, efault, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [%u]) = %s\n",
- fd, efault, (unsigned int) ARRAY_SIZE(bpf_filter) - 1, errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [%u]) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), efault,
+ (unsigned int) ARRAY_SIZE(bpf_filter) - 1, errstr);
/* getsockopt optval EFAULT */
*len = ARRAY_SIZE(bpf_filter);
rc = get_filter(fd, filter + 1, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [%u]) = %s\n", fd, filter + 1,
- (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [%u]) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER),
+ filter + 1, (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
/* getsockopt optlen is too large - truncated */
*len = ARRAY_SIZE(bpf_filter) + 1;
rc = get_filter(fd, filter, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, ", fd);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", ",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER));
print_filter();
printf(", [%u->%d]) = %s\n",
(unsigned int) ARRAY_SIZE(bpf_filter) + 1, *len, errstr);
diff --git a/tests-m32/strace-V.test b/tests-m32/strace-V.test
index eb05e86..a0274c2 100755
--- a/tests-m32/strace-V.test
+++ b/tests-m32/strace-V.test
@@ -38,7 +38,8 @@
exit 1
}
-option_unwind=$(getoption USE_LIBUNWIND " stack-unwind")
+option_unwind=$(getoption ENABLE_STACKTRACE \
+ " stack-trace=$(getstr USE_UNWINDER)")
option_demangle=$(getoption USE_DEMANGLE " stack-demangle")
option_m32=
diff --git a/tests-m32/strace-k-demangle.expected b/tests-m32/strace-k-demangle.expected
new file mode 100644
index 0000000..e42e78f
--- /dev/null
+++ b/tests-m32/strace-k-demangle.expected
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid ns::f3\(int\) ns::f2\(int\) ns::f1\(int\) ns::f0\(int\) main
diff --git a/tests-m32/strace-k-demangle.test b/tests-m32/strace-k-demangle.test
index 1616449..106a700 100755
--- a/tests-m32/strace-k-demangle.test
+++ b/tests-m32/strace-k-demangle.test
@@ -2,6 +2,5 @@
# Check strace -k symbol names demangling.
test_prog=../stack-fcall-mangled
-expected='getpid ns::f3(int) ns::f2(int) ns::f1(int) ns::f0(int) main '
. "${srcdir=.}"/strace-k.test
diff --git a/tests-m32/strace-k.expected b/tests-m32/strace-k.expected
new file mode 100644
index 0000000..840d648
--- /dev/null
+++ b/tests-m32/strace-k.expected
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
diff --git a/tests-m32/strace-k.test b/tests-m32/strace-k.test
index 2a21a9d..fb1e2b3 100755
--- a/tests-m32/strace-k.test
+++ b/tests-m32/strace-k.test
@@ -4,7 +4,7 @@
#
# Copyright (c) 2014 Masatake YAMATO <[email protected]>
# Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2014-2017 The strace developers.
+# Copyright (c) 2014-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,20 +35,41 @@
[ -f /proc/self/maps ] ||
framework_skip_ '/proc/self/maps is not available'
+check_prog grep
check_prog sed
check_prog tr
-: ${test_prog=../stack-fcall}
-: ${expected='getpid f3 f2 f1 f0 main '}
-
-run_prog "$test_prog"
+run_prog "${test_prog=../stack-fcall}"
run_strace -e getpid -k $args
-result=$(sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
- tr '\n' ' ')
+expected="$srcdir/$NAME.expected"
+sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
+ tr '\n' ' ' |sed 's/ $//' > "$OUT"
-test "$result" = "$expected" || {
- echo "expected: \"$expected\""
- echo "result: \"$result\""
+LC_ALL=C grep -E -x -f "$expected" < "$OUT" > /dev/null || {
+ cat >&2 <<__EOF__
+Failed pattern of expected output: $(cat "$expected")
+Actual output: $(cat "$OUT")
+__EOF__
+
+ pattern=
+ case "$STRACE_ARCH" in
+ aarch64|i386|ppc*|s390*|sparc*|x32|x86*)
+ # These architectures are supported by elfutils libdw,
+ # see grep '\<HOOK\>.*\<abi_cfi\>' elfutils/backends
+ ;;
+ arm) pattern='No DWARF information found'
+ # This is also supported by elfutils libdw
+ # but the latter needs debuginfo for unwinding.
+ ;;
+ *) pattern='Unwinding not supported for this architecture'
+ ;;
+ esac
+ if [ -n "$pattern" ] &&
+ LC_ALL=C grep -x " > $pattern" < "$LOG" > /dev/null; then
+ cat < "$LOG" >&2
+ skip_ "stack tracing is not fully supported on $STRACE_ARCH yet"
+ fi
+
dump_log_and_fail_with "$STRACE $args output mismatch"
}
diff --git a/tests-m32/struct_flock.c b/tests-m32/struct_flock.c
deleted file mode 100644
index 428c038..0000000
--- a/tests-m32/struct_flock.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include "flock.h"
-
-#define FILE_LEN 4096
-
-#define TEST_FLOCK_EINVAL(cmd) test_flock_einval(cmd, #cmd)
-
-#ifdef HAVE_TYPEOF
-# define TYPEOF_FLOCK_OFF_T typeof(((struct_kernel_flock *) NULL)->l_len)
-#else
-# define TYPEOF_FLOCK_OFF_T off_t
-#endif
-
-static long
-invoke_test_syscall(const unsigned int cmd, void *const p)
-{
- const kernel_ulong_t fd = F8ILL_KULONG_MASK;
- const kernel_ulong_t op = F8ILL_KULONG_MASK | cmd;
-
- return syscall(TEST_SYSCALL_NR, fd, op, (unsigned long) p);
-}
-
-static void
-test_flock_einval(const int cmd, const char *name)
-{
- struct_kernel_flock fl = {
- .l_type = F_RDLCK,
- .l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL,
- .l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL
- };
- long rc = invoke_test_syscall(cmd, &fl);
- 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, sprintrc(rc));
-}
-
-static void
-test_flock(void)
-{
- TEST_FLOCK_EINVAL(F_SETLK);
- TEST_FLOCK_EINVAL(F_SETLKW);
-
- struct_kernel_flock fl = {
- .l_type = F_RDLCK,
- .l_len = FILE_LEN
- };
- long rc = invoke_test_syscall(F_SETLK, &fl);
- 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, sprintrc(rc));
- if (rc)
- return;
-
- invoke_test_syscall(F_GETLK, &fl);
- 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(F_SETLK, &fl);
- printf("%s(0, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
- ", l_start=0, l_len=%d}) = 0\n",
- TEST_SYSCALL_STR, FILE_LEN);
-}
-
-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))
- perror_msg_and_fail("ftruncate");
-}
diff --git a/tests-m32/test_nlattr.h b/tests-m32/test_nlattr.h
index 43f467f..9038c0e 100644
--- a/tests-m32/test_nlattr.h
+++ b/tests-m32/test_nlattr.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -51,15 +51,17 @@
}
static void
-print_nlattr(const unsigned int nla_len, const char *const nla_type)
+print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_data)
{
- printf(", {{nla_len=%u, nla_type=%s}, ", nla_len, nla_type);
+ printf(", %s{{nla_len=%u, nla_type=%s}, ",
+ add_data ? "[" : "", nla_len, nla_type);
}
-#define TEST_NLATTR_(fd_, nlh0_, hdrlen_, \
+#define TEST_NLATTR_EX_(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, nla_type_str_, \
- nla_data_len_, src_, slen_, ...) \
+ nla_data_len_, nla_total_len_, \
+ src_, slen_, ...) \
do { \
struct nlmsghdr *const nlh = \
(nlh0_) - (NLA_HDRLEN + (slen_)); \
@@ -68,7 +70,7 @@
const unsigned int nla_len = \
NLA_HDRLEN + (nla_data_len_); \
const unsigned int msg_len = \
- NLMSG_SPACE(hdrlen_) + nla_len; \
+ NLMSG_SPACE(hdrlen_) + NLA_HDRLEN + (nla_total_len_); \
\
(init_msg_)(nlh, msg_len); \
init_nlattr(TEST_NLATTR_nla, nla_len, (nla_type_), \
@@ -80,14 +82,28 @@
\
printf("sendto(%d, {", (fd_)); \
(print_msg_)(msg_len); \
- print_nlattr(nla_len, (nla_type_str_)); \
+ print_nlattr(nla_len, (nla_type_str_), \
+ (nla_total_len_) > (nla_data_len_)); \
\
{ __VA_ARGS__; } \
\
+ if ((nla_total_len_) > (nla_data_len_)) \
+ printf("]"); \
+ \
printf("}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", \
msg_len, errstr); \
} while (0)
+#define TEST_NLATTR_(fd_, nlh0_, hdrlen_, \
+ init_msg_, print_msg_, \
+ nla_type_, nla_type_str_, \
+ nla_data_len_, src_, slen_, ...) \
+ TEST_NLATTR_EX_((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ (nla_data_len_), (nla_data_len_), \
+ (src_), (slen_), __VA_ARGS__)
+
#define TEST_NLATTR(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, \
@@ -106,11 +122,12 @@
sizeof(obj_) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
/* len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
- (init_msg_), (print_msg_), \
- (nla_type_), (nla_type_str_), \
- plen, (pattern_), plen, \
- (fallback_func)((pattern_), plen)); \
+ if (plen > 0) \
+ TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ plen, (pattern_), plen, \
+ (fallback_func)((pattern_), plen)); \
/* short read of sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
@@ -170,7 +187,7 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
printf("]")); \
/* short read of sizeof(obj_) */ \
@@ -183,11 +200,11 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf(", %p]", \
+ printf(", ... /* %p */]", \
RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_))) \
- + sizeof((obj_)[0]))); \
+ + sizeof(obj_) - sizeof((obj_)[0]))); \
/* sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
@@ -198,7 +215,7 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_); ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
printf("]")); \
} while (0)
@@ -206,21 +223,23 @@
#define TEST_NESTED_NLATTR_OBJECT_EX_(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, nla_type_str_, \
- pattern_, obj_, depth_, ...) \
+ pattern_, obj_, fallback_func, \
+ depth_, ...) \
do { \
const unsigned int plen = \
sizeof(obj_) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
/* len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
- (hdrlen_) + NLA_HDRLEN * depth_, \
- (init_msg_), (print_msg_), \
- (nla_type_), (nla_type_str_), \
- plen, (pattern_), plen, \
- print_quoted_hex((pattern_), plen); \
- size_t i; \
- for (i = 0; i < depth_; ++i) \
- printf("}")); \
+ if (plen > 0) \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ plen, (pattern_), plen, \
+ (fallback_func)((pattern_), plen); \
+ size_t i; \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* short read of sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
(hdrlen_) + NLA_HDRLEN * depth_, \
@@ -252,7 +271,8 @@
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
- (pattern_), (obj_), (depth_), \
+ (pattern_), (obj_), \
+ print_quoted_hex, (depth_), \
__VA_ARGS__)
#define TEST_NESTED_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \
@@ -261,27 +281,30 @@
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
- (pattern_), (obj_), 1, \
+ (pattern_), (obj_), \
+ print_quoted_hex, 1, \
__VA_ARGS__)
-#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
+#define TEST_NESTED_NLATTR_ARRAY_EX(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
- nla_type_, pattern_, obj_, print_elem_)\
+ nla_type_, pattern_, obj_, depth_, \
+ print_elem_) \
do { \
const unsigned int plen = \
sizeof((obj_)[0]) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof((obj_)[0]) - 1; \
/* len < sizeof((obj_)[0]) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
plen, (pattern_), plen, \
print_quoted_hex((pattern_), plen); \
- printf("}")); \
+ for (size_t i = 0; i < depth_; ++i) \
+ printf("}")); \
/* sizeof((obj_)[0]) < len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_) - 1, \
@@ -290,12 +313,14 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf("]}")); \
+ printf("]"); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* short read of sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_), \
@@ -304,14 +329,16 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf(", %p]}", \
+ printf(", ... /* %p */]", \
RTA_DATA(TEST_NLATTR_nla) \
- + sizeof((obj_)[0]))); \
+ + sizeof(obj_) - sizeof((obj_)[0])); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_), \
@@ -320,7 +347,17 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_); ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf("]}")); \
+ printf("]"); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
} while (0)
+
+#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
+ init_msg_, print_msg_, \
+ nla_type_, pattern_, obj_, print_elem_)\
+ TEST_NESTED_NLATTR_ARRAY_EX((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ nla_type_, (pattern_), (obj_), 1, \
+ (print_elem_))
diff --git a/tests-m32/tests.h b/tests-m32/tests.h
index 3bf454d..248e341 100644
--- a/tests-m32/tests.h
+++ b/tests-m32/tests.h
@@ -62,6 +62,14 @@
# define VERBOSE 0
#endif
+/* xlat verbosity defaults */
+#ifndef XLAT_RAW
+# define XLAT_RAW 0
+#endif
+#ifndef XLAT_VERBOSE
+# define XLAT_VERBOSE 0
+#endif
+
#ifndef DEFAULT_STRLEN
/* Default maximum # of bytes printed in printstr et al. */
# define DEFAULT_STRLEN 32
@@ -109,6 +117,9 @@
void *tail_memdup(const void *, const size_t)
ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE((2));
+#define midtail_alloc(after_, before_) \
+ ((void *) ((char *) tail_alloc(((before_) + (after_))) + (before_)))
+
/*
* Allocate an object of the specified type at the end
* of a mapped memory region.
@@ -163,6 +174,12 @@
*/
void print_quoted_cstring(const char *str, size_t size);
+/*
+ * Print a NUL-terminated string `str' of length up to `size'
+ * in a quoted form.
+ */
+void print_quoted_stringn(const char *str, size_t size);
+
/* Print memory in a quoted form with optional escape characters. */
void print_quoted_memory_ex(const void *, size_t, bool quote,
const char *escape_chars);
@@ -277,7 +294,6 @@
#endif
#define LL_VAL_TO_PAIR(llval) LL_PAIR((long) ((llval) >> 32), (long) (llval))
-#define _STR(_arg) #_arg
#define ARG_STR(_arg) (_arg), #_arg
#define ARG_ULL_STR(_arg) _arg##ULL, #_arg
diff --git a/tests-m32/trace_personality_32.gen.test b/tests-m32/trace_personality_32.gen.test
new file mode 100755
index 0000000..a5f5c7d
--- /dev/null
+++ b/tests-m32/trace_personality_32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_32 +qualify_personality.sh 32 'getcwd' 'fsync-y'); do not edit.
+set -- 32 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-m32/trace_personality_32.in b/tests-m32/trace_personality_32.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests-m32/trace_personality_32.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests-m32/trace_personality_64.gen.test b/tests-m32/trace_personality_64.gen.test
new file mode 100755
index 0000000..5b961ef
--- /dev/null
+++ b/tests-m32/trace_personality_64.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_64 +qualify_personality.sh 64 'getcwd' 'fsync-y'); do not edit.
+set -- 64 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-m32/trace_personality_64.in b/tests-m32/trace_personality_64.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests-m32/trace_personality_64.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests-m32/trace_personality_regex_32.gen.test b/tests-m32/trace_personality_regex_32.gen.test
new file mode 100755
index 0000000..f2800d2
--- /dev/null
+++ b/tests-m32/trace_personality_regex_32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_32 +qualify_personality.sh 32 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- 32 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-m32/trace_personality_regex_32.in b/tests-m32/trace_personality_regex_32.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests-m32/trace_personality_regex_32.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests-m32/trace_personality_regex_64.gen.test b/tests-m32/trace_personality_regex_64.gen.test
new file mode 100755
index 0000000..4b19f1b
--- /dev/null
+++ b/tests-m32/trace_personality_regex_64.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_64 +qualify_personality.sh 64 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- 64 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-m32/trace_personality_regex_64.in b/tests-m32/trace_personality_regex_64.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests-m32/trace_personality_regex_64.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests-m32/trace_personality_regex_x32.gen.test b/tests-m32/trace_personality_regex_x32.gen.test
new file mode 100755
index 0000000..7f41671
--- /dev/null
+++ b/tests-m32/trace_personality_regex_x32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_x32 +qualify_personality.sh x32 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- x32 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-m32/trace_personality_regex_x32.in b/tests-m32/trace_personality_regex_x32.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests-m32/trace_personality_regex_x32.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests-m32/trace_personality_x32.gen.test b/tests-m32/trace_personality_x32.gen.test
new file mode 100755
index 0000000..724499a
--- /dev/null
+++ b/tests-m32/trace_personality_x32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_x32 +qualify_personality.sh x32 'getcwd' 'fsync-y'); do not edit.
+set -- x32 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-m32/trace_personality_x32.in b/tests-m32/trace_personality_x32.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests-m32/trace_personality_x32.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests-m32/xet_thread_area_x86.c b/tests-m32/xet_thread_area_x86.c
index 36591ec..d5be69f 100644
--- a/tests-m32/xet_thread_area_x86.c
+++ b/tests-m32/xet_thread_area_x86.c
@@ -152,9 +152,9 @@
int main(void)
{
- struct user_desc *ta1 = tail_alloc(sizeof(*ta1));
- struct user_desc *ta2 = tail_alloc(sizeof(*ta2));
- unsigned *bogus_entry_number = tail_alloc(sizeof(*bogus_entry_number));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, ta1);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, ta2);
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, bogus_entry_number);
long set_rc = -1;
diff --git a/tests-mx32/Makefile b/tests-mx32/Makefile
index c9275ea..16a8752 100644
--- a/tests-mx32/Makefile
+++ b/tests-mx32/Makefile
@@ -139,7 +139,11 @@
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) caps-abbrev$(EXEEXT) \
+ block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
@@ -147,7 +151,8 @@
getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \
inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
- ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \
+ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
is_linux_mips_n64$(EXEEXT) ksysent$(EXEEXT) \
list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
@@ -159,18 +164,19 @@
perf_event_open_nonverbose$(EXEEXT) \
perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
- print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
- qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
- qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
- quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
- redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
- run_expect_termsig$(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) \
+ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
+ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
+ qual_signal$(EXEEXT) quotactl-v$(EXEEXT) \
+ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
+ restart_syscall$(EXEEXT) run_expect_termsig$(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) \
unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
##am__append_1 = strace-k-demangle.test
@@ -181,7 +187,10 @@
$(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -223,18 +232,25 @@
libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
- adjtimex$(EXEEXT) aio$(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) copy_file_range$(EXEEXT) creat$(EXEEXT) \
- delete_module$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \
- dup2$(EXEEXT) dup3$(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) fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
- fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
+ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \
+ alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
+ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \
+ dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(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) \
+ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
+ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \
+ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \
+ fanotify_mark-Xverbose$(EXEEXT) fchdir$(EXEEXT) \
fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \
@@ -255,49 +271,62 @@
getxxid$(EXEEXT) group_req$(EXEEXT) inet-cmsg$(EXEEXT) \
init_module$(EXEEXT) inotify$(EXEEXT) inotify_init1$(EXEEXT) \
ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \
- ioctl_evdev$(EXEEXT) ioctl_kvm_run$(EXEEXT) \
- ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) \
+ ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \
+ ioctl_kvm_run$(EXEEXT) ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) \
+ ioctl_rtc$(EXEEXT) ioctl_perf$(EXEEXT) ioctl_ptp$(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) ip_mreq$(EXEEXT) ipc$(EXEEXT) \
- ipc_msg$(EXEEXT) ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) \
- ipc_shm$(EXEEXT) kcmp$(EXEEXT) kcmp-y$(EXEEXT) \
- kern_features$(EXEEXT) kexec_file_load$(EXEEXT) \
- kexec_load$(EXEEXT) keyctl$(EXEEXT) kill$(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) \
- memfd_create$(EXEEXT) migrate_pages$(EXEEXT) mincore$(EXEEXT) \
- mkdir$(EXEEXT) mkdirat$(EXEEXT) mknod$(EXEEXT) \
- mknodat$(EXEEXT) mlock$(EXEEXT) mlock2$(EXEEXT) \
- mlockall$(EXEEXT) mmap$(EXEEXT) mmap64$(EXEEXT) mmsg$(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) \
+ ipc_sem$(EXEEXT) ipc_sem-Xabbrev$(EXEEXT) \
+ ipc_sem-Xraw$(EXEEXT) ipc_sem-Xverbose$(EXEEXT) \
+ ipc_shm$(EXEEXT) ipc_shm-Xabbrev$(EXEEXT) \
+ ipc_shm-Xraw$(EXEEXT) ipc_shm-Xverbose$(EXEEXT) kcmp$(EXEEXT) \
+ kcmp-y$(EXEEXT) kern_features$(EXEEXT) \
+ kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) keyctl$(EXEEXT) \
+ keyctl-Xabbrev$(EXEEXT) keyctl-Xraw$(EXEEXT) \
+ keyctl-Xverbose$(EXEEXT) kill$(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) memfd_create$(EXEEXT) \
+ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
+ mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
+ mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
+ mmap-Xabbrev$(EXEEXT) mmap-Xraw$(EXEEXT) \
+ mmap-Xverbose$(EXEEXT) mmap64$(EXEEXT) mmap64-Xabbrev$(EXEEXT) \
+ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \
mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \
- move_pages$(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-sockaddr$(EXEEXT) net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
- net-yy-inet6$(EXEEXT) net-yy-netlink$(EXEEXT) \
- net-yy-unix$(EXEEXT) netlink_audit$(EXEEXT) \
- netlink_crypto$(EXEEXT) netlink_generic$(EXEEXT) \
- netlink_kobject_uevent$(EXEEXT) netlink_netfilter$(EXEEXT) \
- netlink_protocol$(EXEEXT) netlink_route$(EXEEXT) \
- netlink_selinux$(EXEEXT) netlink_sock_diag$(EXEEXT) \
- netlink_xfrm$(EXEEXT) newfstatat$(EXEEXT) \
- nfnetlink_acct$(EXEEXT) nfnetlink_cthelper$(EXEEXT) \
- nfnetlink_ctnetlink$(EXEEXT) nfnetlink_ctnetlink_exp$(EXEEXT) \
- nfnetlink_cttimeout$(EXEEXT) nfnetlink_nft_compat$(EXEEXT) \
- nfnetlink_nftables$(EXEEXT) nfnetlink_ipset$(EXEEXT) \
- nfnetlink_osf$(EXEEXT) nfnetlink_queue$(EXEEXT) \
- nfnetlink_ulog$(EXEEXT) nlattr$(EXEEXT) \
- nlattr_crypto_user_alg$(EXEEXT) nlattr_br_port_msg$(EXEEXT) \
- nlattr_dcbmsg$(EXEEXT) nlattr_fib_rule_hdr$(EXEEXT) \
- nlattr_ifaddrlblmsg$(EXEEXT) nlattr_ifaddrmsg$(EXEEXT) \
- nlattr_ifinfomsg$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
- nlattr_ifla_port$(EXEEXT) nlattr_ifla_xdp$(EXEEXT) \
- nlattr_inet_diag_msg$(EXEEXT) \
+ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \
+ mount-Xverbose$(EXEEXT) move_pages$(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-sockaddr$(EXEEXT) \
+ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \
+ net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
+ netlink_audit$(EXEEXT) netlink_crypto$(EXEEXT) \
+ netlink_generic$(EXEEXT) netlink_kobject_uevent$(EXEEXT) \
+ netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+ netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+ netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+ newfstatat$(EXEEXT) nfnetlink_acct$(EXEEXT) \
+ nfnetlink_cthelper$(EXEEXT) nfnetlink_ctnetlink$(EXEEXT) \
+ nfnetlink_ctnetlink_exp$(EXEEXT) nfnetlink_cttimeout$(EXEEXT) \
+ nfnetlink_nft_compat$(EXEEXT) nfnetlink_nftables$(EXEEXT) \
+ nfnetlink_ipset$(EXEEXT) nfnetlink_osf$(EXEEXT) \
+ nfnetlink_queue$(EXEEXT) nfnetlink_ulog$(EXEEXT) \
+ nlattr$(EXEEXT) nlattr_crypto_user_alg$(EXEEXT) \
+ nlattr_br_port_msg$(EXEEXT) nlattr_dcbmsg$(EXEEXT) \
+ nlattr_fib_rule_hdr$(EXEEXT) nlattr_ifaddrlblmsg$(EXEEXT) \
+ nlattr_ifaddrmsg$(EXEEXT) nlattr_ifinfomsg$(EXEEXT) \
+ nlattr_ifla_af_spec$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
+ nlattr_ifla_linkinfo$(EXEEXT) nlattr_ifla_port$(EXEEXT) \
+ nlattr_ifla_xdp$(EXEEXT) nlattr_inet_diag_msg$(EXEEXT) \
nlattr_inet_diag_req_compat$(EXEEXT) \
nlattr_inet_diag_req_v2$(EXEEXT) \
nlattr_mdba_mdb_entry$(EXEEXT) \
@@ -309,11 +338,14 @@
nlattr_tc_stats$(EXEEXT) nlattr_tca_stab$(EXEEXT) \
nlattr_tcamsg$(EXEEXT) nlattr_tcmsg$(EXEEXT) \
nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
- old_mmap-P$(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) pipe$(EXEEXT) pipe2$(EXEEXT) \
+ old_mmap-P$(EXEEXT) old_mmap-v-none$(EXEEXT) \
+ old_mmap-Xabbrev$(EXEEXT) old_mmap-Xraw$(EXEEXT) \
+ old_mmap-Xverbose$(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) 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) \
@@ -361,7 +393,10 @@
sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
sigreturn$(EXEEXT) sigsuspend$(EXEEXT) so_linger$(EXEEXT) \
- so_peercred$(EXEEXT) sock_filter-v$(EXEEXT) \
+ so_peercred$(EXEEXT) so_peercred-Xabbrev$(EXEEXT) \
+ so_peercred-Xraw$(EXEEXT) so_peercred-Xverbose$(EXEEXT) \
+ sock_filter-v$(EXEEXT) sock_filter-v-Xabbrev$(EXEEXT) \
+ sock_filter-v-Xraw$(EXEEXT) sock_filter-v-Xverbose$(EXEEXT) \
socketcall$(EXEEXT) sockopt-sol_netlink$(EXEEXT) \
splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
@@ -418,6 +453,10 @@
aio_OBJECTS = aio.$(OBJEXT)
aio_LDADD = $(LDADD)
aio_DEPENDENCIES = libtests.a
+aio_pgetevents_SOURCES = aio_pgetevents.c
+aio_pgetevents_OBJECTS = aio_pgetevents.$(OBJEXT)
+aio_pgetevents_LDADD = $(LDADD)
+aio_pgetevents_DEPENDENCIES = libtests.a
alarm_SOURCES = alarm.c
alarm_OBJECTS = alarm.$(OBJEXT)
alarm_LDADD = $(LDADD)
@@ -449,6 +488,33 @@
bpf_OBJECTS = bpf.$(OBJEXT)
bpf_LDADD = $(LDADD)
bpf_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_SOURCES = bpf-obj_get_info_by_fd.c
+bpf_obj_get_info_by_fd_OBJECTS = bpf-obj_get_info_by_fd.$(OBJEXT)
+bpf_obj_get_info_by_fd_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_SOURCES = bpf-obj_get_info_by_fd-prog.c
+bpf_obj_get_info_by_fd_prog_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_v_SOURCES = \
+ bpf-obj_get_info_by_fd-prog-v.c
+bpf_obj_get_info_by_fd_prog_v_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_v_SOURCES = bpf-obj_get_info_by_fd-v.c
+bpf_obj_get_info_by_fd_v_OBJECTS = bpf-obj_get_info_by_fd-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_v_DEPENDENCIES = libtests.a
+bpf_success_SOURCES = bpf-success.c
+bpf_success_OBJECTS = bpf-success.$(OBJEXT)
+bpf_success_LDADD = $(LDADD)
+bpf_success_DEPENDENCIES = libtests.a
+bpf_success_v_SOURCES = bpf-success-v.c
+bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT)
+bpf_success_v_LDADD = $(LDADD)
+bpf_success_v_DEPENDENCIES = libtests.a
bpf_v_SOURCES = bpf-v.c
bpf_v_OBJECTS = bpf-v.$(OBJEXT)
bpf_v_LDADD = $(LDADD)
@@ -616,6 +682,18 @@
fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
fanotify_mark_LDADD = $(LDADD)
fanotify_mark_DEPENDENCIES = libtests.a
+fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+fanotify_mark_Xabbrev_LDADD = $(LDADD)
+fanotify_mark_Xabbrev_DEPENDENCIES = libtests.a
+fanotify_mark_Xraw_SOURCES = fanotify_mark-Xraw.c
+fanotify_mark_Xraw_OBJECTS = fanotify_mark-Xraw.$(OBJEXT)
+fanotify_mark_Xraw_LDADD = $(LDADD)
+fanotify_mark_Xraw_DEPENDENCIES = libtests.a
+fanotify_mark_Xverbose_SOURCES = fanotify_mark-Xverbose.c
+fanotify_mark_Xverbose_OBJECTS = fanotify_mark-Xverbose.$(OBJEXT)
+fanotify_mark_Xverbose_LDADD = $(LDADD)
+fanotify_mark_Xverbose_DEPENDENCIES = libtests.a
fchdir_SOURCES = fchdir.c
fchdir_OBJECTS = fchdir.$(OBJEXT)
fchdir_LDADD = $(LDADD)
@@ -895,6 +973,10 @@
ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
ioctl_evdev_v_LDADD = $(LDADD)
ioctl_evdev_v_DEPENDENCIES = libtests.a
+ioctl_inotify_SOURCES = ioctl_inotify.c
+ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT)
+ioctl_inotify_LDADD = $(LDADD)
+ioctl_inotify_DEPENDENCIES = libtests.a
ioctl_kvm_run_SOURCES = ioctl_kvm_run.c
ioctl_kvm_run_OBJECTS = ioctl_kvm_run.$(OBJEXT)
ioctl_kvm_run_LDADD = $(LDADD)
@@ -919,6 +1001,18 @@
ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
ioctl_nsfs_LDADD = $(LDADD)
ioctl_nsfs_DEPENDENCIES = libtests.a
+ioctl_perf_SOURCES = ioctl_perf.c
+ioctl_perf_OBJECTS = ioctl_perf.$(OBJEXT)
+ioctl_perf_LDADD = $(LDADD)
+ioctl_perf_DEPENDENCIES = libtests.a
+ioctl_perf_success_SOURCES = ioctl_perf-success.c
+ioctl_perf_success_OBJECTS = ioctl_perf-success.$(OBJEXT)
+ioctl_perf_success_LDADD = $(LDADD)
+ioctl_perf_success_DEPENDENCIES = libtests.a
+ioctl_ptp_SOURCES = ioctl_ptp.c
+ioctl_ptp_OBJECTS = ioctl_ptp.$(OBJEXT)
+ioctl_ptp_LDADD = $(LDADD)
+ioctl_ptp_DEPENDENCIES = libtests.a
ioctl_rtc_SOURCES = ioctl_rtc.c
ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
ioctl_rtc_LDADD = $(LDADD)
@@ -975,18 +1069,66 @@
ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
ipc_msg_LDADD = $(LDADD)
ipc_msg_DEPENDENCIES = libtests.a
+ipc_msg_Xabbrev_SOURCES = ipc_msg-Xabbrev.c
+ipc_msg_Xabbrev_OBJECTS = ipc_msg-Xabbrev.$(OBJEXT)
+ipc_msg_Xabbrev_LDADD = $(LDADD)
+ipc_msg_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msg_Xraw_SOURCES = ipc_msg-Xraw.c
+ipc_msg_Xraw_OBJECTS = ipc_msg-Xraw.$(OBJEXT)
+ipc_msg_Xraw_LDADD = $(LDADD)
+ipc_msg_Xraw_DEPENDENCIES = libtests.a
+ipc_msg_Xverbose_SOURCES = ipc_msg-Xverbose.c
+ipc_msg_Xverbose_OBJECTS = ipc_msg-Xverbose.$(OBJEXT)
+ipc_msg_Xverbose_LDADD = $(LDADD)
+ipc_msg_Xverbose_DEPENDENCIES = libtests.a
ipc_msgbuf_SOURCES = ipc_msgbuf.c
ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
ipc_msgbuf_LDADD = $(LDADD)
ipc_msgbuf_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xabbrev_SOURCES = ipc_msgbuf-Xabbrev.c
+ipc_msgbuf_Xabbrev_OBJECTS = ipc_msgbuf-Xabbrev.$(OBJEXT)
+ipc_msgbuf_Xabbrev_LDADD = $(LDADD)
+ipc_msgbuf_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xraw_SOURCES = ipc_msgbuf-Xraw.c
+ipc_msgbuf_Xraw_OBJECTS = ipc_msgbuf-Xraw.$(OBJEXT)
+ipc_msgbuf_Xraw_LDADD = $(LDADD)
+ipc_msgbuf_Xraw_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xverbose_SOURCES = ipc_msgbuf-Xverbose.c
+ipc_msgbuf_Xverbose_OBJECTS = ipc_msgbuf-Xverbose.$(OBJEXT)
+ipc_msgbuf_Xverbose_LDADD = $(LDADD)
+ipc_msgbuf_Xverbose_DEPENDENCIES = libtests.a
ipc_sem_SOURCES = ipc_sem.c
ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
ipc_sem_LDADD = $(LDADD)
ipc_sem_DEPENDENCIES = libtests.a
+ipc_sem_Xabbrev_SOURCES = ipc_sem-Xabbrev.c
+ipc_sem_Xabbrev_OBJECTS = ipc_sem-Xabbrev.$(OBJEXT)
+ipc_sem_Xabbrev_LDADD = $(LDADD)
+ipc_sem_Xabbrev_DEPENDENCIES = libtests.a
+ipc_sem_Xraw_SOURCES = ipc_sem-Xraw.c
+ipc_sem_Xraw_OBJECTS = ipc_sem-Xraw.$(OBJEXT)
+ipc_sem_Xraw_LDADD = $(LDADD)
+ipc_sem_Xraw_DEPENDENCIES = libtests.a
+ipc_sem_Xverbose_SOURCES = ipc_sem-Xverbose.c
+ipc_sem_Xverbose_OBJECTS = ipc_sem-Xverbose.$(OBJEXT)
+ipc_sem_Xverbose_LDADD = $(LDADD)
+ipc_sem_Xverbose_DEPENDENCIES = libtests.a
ipc_shm_SOURCES = ipc_shm.c
ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
ipc_shm_LDADD = $(LDADD)
ipc_shm_DEPENDENCIES = libtests.a
+ipc_shm_Xabbrev_SOURCES = ipc_shm-Xabbrev.c
+ipc_shm_Xabbrev_OBJECTS = ipc_shm-Xabbrev.$(OBJEXT)
+ipc_shm_Xabbrev_LDADD = $(LDADD)
+ipc_shm_Xabbrev_DEPENDENCIES = libtests.a
+ipc_shm_Xraw_SOURCES = ipc_shm-Xraw.c
+ipc_shm_Xraw_OBJECTS = ipc_shm-Xraw.$(OBJEXT)
+ipc_shm_Xraw_LDADD = $(LDADD)
+ipc_shm_Xraw_DEPENDENCIES = libtests.a
+ipc_shm_Xverbose_SOURCES = ipc_shm-Xverbose.c
+ipc_shm_Xverbose_OBJECTS = ipc_shm-Xverbose.$(OBJEXT)
+ipc_shm_Xverbose_LDADD = $(LDADD)
+ipc_shm_Xverbose_DEPENDENCIES = libtests.a
is_linux_mips_n64_SOURCES = is_linux_mips_n64.c
is_linux_mips_n64_OBJECTS = is_linux_mips_n64.$(OBJEXT)
is_linux_mips_n64_LDADD = $(LDADD)
@@ -1015,6 +1157,18 @@
keyctl_OBJECTS = keyctl.$(OBJEXT)
keyctl_LDADD = $(LDADD)
keyctl_DEPENDENCIES = libtests.a
+keyctl_Xabbrev_SOURCES = keyctl-Xabbrev.c
+keyctl_Xabbrev_OBJECTS = keyctl-Xabbrev.$(OBJEXT)
+keyctl_Xabbrev_LDADD = $(LDADD)
+keyctl_Xabbrev_DEPENDENCIES = libtests.a
+keyctl_Xraw_SOURCES = keyctl-Xraw.c
+keyctl_Xraw_OBJECTS = keyctl-Xraw.$(OBJEXT)
+keyctl_Xraw_LDADD = $(LDADD)
+keyctl_Xraw_DEPENDENCIES = libtests.a
+keyctl_Xverbose_SOURCES = keyctl-Xverbose.c
+keyctl_Xverbose_OBJECTS = keyctl-Xverbose.$(OBJEXT)
+keyctl_Xverbose_LDADD = $(LDADD)
+keyctl_Xverbose_DEPENDENCIES = libtests.a
kill_SOURCES = kill.c
kill_OBJECTS = kill.$(OBJEXT)
kill_LDADD = $(LDADD)
@@ -1122,10 +1276,34 @@
mmap_OBJECTS = mmap.$(OBJEXT)
mmap_LDADD = $(LDADD)
mmap_DEPENDENCIES = libtests.a
+mmap_Xabbrev_SOURCES = mmap-Xabbrev.c
+mmap_Xabbrev_OBJECTS = mmap-Xabbrev.$(OBJEXT)
+mmap_Xabbrev_LDADD = $(LDADD)
+mmap_Xabbrev_DEPENDENCIES = libtests.a
+mmap_Xraw_SOURCES = mmap-Xraw.c
+mmap_Xraw_OBJECTS = mmap-Xraw.$(OBJEXT)
+mmap_Xraw_LDADD = $(LDADD)
+mmap_Xraw_DEPENDENCIES = libtests.a
+mmap_Xverbose_SOURCES = mmap-Xverbose.c
+mmap_Xverbose_OBJECTS = mmap-Xverbose.$(OBJEXT)
+mmap_Xverbose_LDADD = $(LDADD)
+mmap_Xverbose_DEPENDENCIES = libtests.a
mmap64_SOURCES = mmap64.c
mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
mmap64_LDADD = $(LDADD)
mmap64_DEPENDENCIES = libtests.a
+mmap64_Xabbrev_SOURCES = mmap64-Xabbrev.c
+mmap64_Xabbrev_OBJECTS = mmap64_Xabbrev-mmap64-Xabbrev.$(OBJEXT)
+mmap64_Xabbrev_LDADD = $(LDADD)
+mmap64_Xabbrev_DEPENDENCIES = libtests.a
+mmap64_Xraw_SOURCES = mmap64-Xraw.c
+mmap64_Xraw_OBJECTS = mmap64_Xraw-mmap64-Xraw.$(OBJEXT)
+mmap64_Xraw_LDADD = $(LDADD)
+mmap64_Xraw_DEPENDENCIES = libtests.a
+mmap64_Xverbose_SOURCES = mmap64-Xverbose.c
+mmap64_Xverbose_OBJECTS = mmap64_Xverbose-mmap64-Xverbose.$(OBJEXT)
+mmap64_Xverbose_LDADD = $(LDADD)
+mmap64_Xverbose_DEPENDENCIES = libtests.a
mmsg_SOURCES = mmsg.c
mmsg_OBJECTS = mmsg.$(OBJEXT)
mmsg_LDADD = $(LDADD)
@@ -1150,6 +1328,18 @@
mount_OBJECTS = mount.$(OBJEXT)
mount_LDADD = $(LDADD)
mount_DEPENDENCIES = libtests.a
+mount_Xabbrev_SOURCES = mount-Xabbrev.c
+mount_Xabbrev_OBJECTS = mount-Xabbrev.$(OBJEXT)
+mount_Xabbrev_LDADD = $(LDADD)
+mount_Xabbrev_DEPENDENCIES = libtests.a
+mount_Xraw_SOURCES = mount-Xraw.c
+mount_Xraw_OBJECTS = mount-Xraw.$(OBJEXT)
+mount_Xraw_LDADD = $(LDADD)
+mount_Xraw_DEPENDENCIES = libtests.a
+mount_Xverbose_SOURCES = mount-Xverbose.c
+mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT)
+mount_Xverbose_LDADD = $(LDADD)
+mount_Xverbose_DEPENDENCIES = libtests.a
move_pages_SOURCES = move_pages.c
move_pages_OBJECTS = move_pages.$(OBJEXT)
move_pages_LDADD = $(LDADD)
@@ -1353,10 +1543,18 @@
nlattr_ifinfomsg_OBJECTS = nlattr_ifinfomsg.$(OBJEXT)
nlattr_ifinfomsg_LDADD = $(LDADD)
nlattr_ifinfomsg_DEPENDENCIES = libtests.a
+nlattr_ifla_af_spec_SOURCES = nlattr_ifla_af_spec.c
+nlattr_ifla_af_spec_OBJECTS = nlattr_ifla_af_spec.$(OBJEXT)
+nlattr_ifla_af_spec_LDADD = $(LDADD)
+nlattr_ifla_af_spec_DEPENDENCIES = libtests.a
nlattr_ifla_brport_SOURCES = nlattr_ifla_brport.c
nlattr_ifla_brport_OBJECTS = nlattr_ifla_brport.$(OBJEXT)
nlattr_ifla_brport_LDADD = $(LDADD)
nlattr_ifla_brport_DEPENDENCIES = libtests.a
+nlattr_ifla_linkinfo_SOURCES = nlattr_ifla_linkinfo.c
+nlattr_ifla_linkinfo_OBJECTS = nlattr_ifla_linkinfo.$(OBJEXT)
+nlattr_ifla_linkinfo_LDADD = $(LDADD)
+nlattr_ifla_linkinfo_DEPENDENCIES = libtests.a
nlattr_ifla_port_SOURCES = nlattr_ifla_port.c
nlattr_ifla_port_OBJECTS = nlattr_ifla_port.$(OBJEXT)
nlattr_ifla_port_LDADD = $(LDADD)
@@ -1458,6 +1656,18 @@
old_mmap_P_OBJECTS = old_mmap-P.$(OBJEXT)
old_mmap_P_LDADD = $(LDADD)
old_mmap_P_DEPENDENCIES = libtests.a
+old_mmap_Xabbrev_SOURCES = old_mmap-Xabbrev.c
+old_mmap_Xabbrev_OBJECTS = old_mmap-Xabbrev.$(OBJEXT)
+old_mmap_Xabbrev_LDADD = $(LDADD)
+old_mmap_Xabbrev_DEPENDENCIES = libtests.a
+old_mmap_Xraw_SOURCES = old_mmap-Xraw.c
+old_mmap_Xraw_OBJECTS = old_mmap-Xraw.$(OBJEXT)
+old_mmap_Xraw_LDADD = $(LDADD)
+old_mmap_Xraw_DEPENDENCIES = libtests.a
+old_mmap_Xverbose_SOURCES = old_mmap-Xverbose.c
+old_mmap_Xverbose_OBJECTS = old_mmap-Xverbose.$(OBJEXT)
+old_mmap_Xverbose_LDADD = $(LDADD)
+old_mmap_Xverbose_DEPENDENCIES = libtests.a
old_mmap_v_none_SOURCES = old_mmap-v-none.c
old_mmap_v_none_OBJECTS = old_mmap-v-none.$(OBJEXT)
old_mmap_v_none_LDADD = $(LDADD)
@@ -1526,6 +1736,18 @@
personality_OBJECTS = personality.$(OBJEXT)
personality_LDADD = $(LDADD)
personality_DEPENDENCIES = libtests.a
+personality_Xabbrev_SOURCES = personality-Xabbrev.c
+personality_Xabbrev_OBJECTS = personality-Xabbrev.$(OBJEXT)
+personality_Xabbrev_LDADD = $(LDADD)
+personality_Xabbrev_DEPENDENCIES = libtests.a
+personality_Xraw_SOURCES = personality-Xraw.c
+personality_Xraw_OBJECTS = personality-Xraw.$(OBJEXT)
+personality_Xraw_LDADD = $(LDADD)
+personality_Xraw_DEPENDENCIES = libtests.a
+personality_Xverbose_SOURCES = personality-Xverbose.c
+personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT)
+personality_Xverbose_LDADD = $(LDADD)
+personality_Xverbose_DEPENDENCIES = libtests.a
pipe_SOURCES = pipe.c
pipe_OBJECTS = pipe.$(OBJEXT)
pipe_LDADD = $(LDADD)
@@ -1598,6 +1820,10 @@
prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
prctl_securebits_LDADD = $(LDADD)
prctl_securebits_DEPENDENCIES = libtests.a
+prctl_spec_inject_SOURCES = prctl-spec-inject.c
+prctl_spec_inject_OBJECTS = prctl-spec-inject.$(OBJEXT)
+prctl_spec_inject_LDADD = $(LDADD)
+prctl_spec_inject_DEPENDENCIES = libtests.a
prctl_tid_address_SOURCES = prctl-tid_address.c
prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
prctl_tid_address_LDADD = $(LDADD)
@@ -2088,10 +2314,34 @@
so_peercred_OBJECTS = so_peercred.$(OBJEXT)
so_peercred_LDADD = $(LDADD)
so_peercred_DEPENDENCIES = libtests.a
+so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+so_peercred_Xabbrev_LDADD = $(LDADD)
+so_peercred_Xabbrev_DEPENDENCIES = libtests.a
+so_peercred_Xraw_SOURCES = so_peercred-Xraw.c
+so_peercred_Xraw_OBJECTS = so_peercred-Xraw.$(OBJEXT)
+so_peercred_Xraw_LDADD = $(LDADD)
+so_peercred_Xraw_DEPENDENCIES = libtests.a
+so_peercred_Xverbose_SOURCES = so_peercred-Xverbose.c
+so_peercred_Xverbose_OBJECTS = so_peercred-Xverbose.$(OBJEXT)
+so_peercred_Xverbose_LDADD = $(LDADD)
+so_peercred_Xverbose_DEPENDENCIES = libtests.a
sock_filter_v_SOURCES = sock_filter-v.c
sock_filter_v_OBJECTS = sock_filter-v.$(OBJEXT)
sock_filter_v_LDADD = $(LDADD)
sock_filter_v_DEPENDENCIES = libtests.a
+sock_filter_v_Xabbrev_SOURCES = sock_filter-v-Xabbrev.c
+sock_filter_v_Xabbrev_OBJECTS = sock_filter-v-Xabbrev.$(OBJEXT)
+sock_filter_v_Xabbrev_LDADD = $(LDADD)
+sock_filter_v_Xabbrev_DEPENDENCIES = libtests.a
+sock_filter_v_Xraw_SOURCES = sock_filter-v-Xraw.c
+sock_filter_v_Xraw_OBJECTS = sock_filter-v-Xraw.$(OBJEXT)
+sock_filter_v_Xraw_LDADD = $(LDADD)
+sock_filter_v_Xraw_DEPENDENCIES = libtests.a
+sock_filter_v_Xverbose_SOURCES = sock_filter-v-Xverbose.c
+sock_filter_v_Xverbose_OBJECTS = sock_filter-v-Xverbose.$(OBJEXT)
+sock_filter_v_Xverbose_LDADD = $(LDADD)
+sock_filter_v_Xverbose_DEPENDENCIES = libtests.a
socketcall_SOURCES = socketcall.c
socketcall_OBJECTS = socketcall.$(OBJEXT)
socketcall_LDADD = $(LDADD)
@@ -2402,45 +2652,58 @@
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
- accept4.c access.c acct.c add_key.c adjtimex.c aio.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-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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 \
+ 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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2456,59 +2719,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2526,44 +2794,57 @@
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 \
- 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-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 \
+ 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 \
+ 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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2579,59 +2860,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2879,12 +3165,12 @@
b='$*';; \
esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing aclocal-1.14
+ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing aclocal-1.14
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
-AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoconf
-AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoheader
-AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing automake-1.14
+AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoconf
+AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoheader
+AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing automake-1.14
AWK = gawk
BUILD_EXEEXT =
BUILD_OBJEXT =
@@ -2905,7 +3191,7 @@
CPPFLAGS_FOR_BUILD =
CPP_FOR_BUILD = gcc -E
CYGPATH_W = echo
-DEB_CHANGELOGTIME = Thu, 14 Jun 2018 16:29:09 -0700
+DEB_CHANGELOGTIME = Fri, 15 Jun 2018 17:54:18 +0000
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
@@ -2932,23 +3218,23 @@
LIBS =
LTLIBOBJS =
MAINT = #
-MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing makeinfo
-MANPAGE_DATE = 2018-04-04
+MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing makeinfo
+MANPAGE_DATE = 2018-06-13
MIPS_ABI =
MKDIR_P = /bin/mkdir -p
OBJEXT = o
PACKAGE = strace
PACKAGE_BUGREPORT = [email protected]
PACKAGE_NAME = strace
-PACKAGE_STRING = strace 4.22
+PACKAGE_STRING = strace 4.23
PACKAGE_TARNAME = strace
PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.22
+PACKAGE_VERSION = 4.23
PATH_SEPARATOR = :
PERL = /usr/bin/perl
RANLIB = aarch64-linux-android-ranlib
READELF = aarch64-linux-android-readelf
-RPM_CHANGELOGTIME = Thu Jun 14 2018
+RPM_CHANGELOGTIME = Fri Jun 15 2018
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
@@ -2957,13 +3243,13 @@
STRIP = aarch64-linux-android-strip
VALGRIND = valgrind
VALGRIND_ENABLED = yes
-VERSION = 4.22
+VERSION = 4.23
WARN_CFLAGS = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Winit-self -Wnested-externs -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
WARN_CFLAGS_FOR_BUILD = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
-abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22/tests-mx32
-abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22/tests-mx32
-abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
-abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
+abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23/tests-mx32
+abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23/tests-mx32
+abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
+abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
ac_ct_CC =
ac_ct_CC_FOR_BUILD = gcc
am__include = include
@@ -2999,8 +3285,12 @@
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/install-sh
+install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/install-sh
libdir = ${exec_prefix}/lib
+libdw_CFLAGS =
+libdw_CPPFLAGS =
+libdw_LDFLAGS =
+libdw_LIBS =
libexecdir = ${exec_prefix}/libexec
libiberty_CPPFLAGS =
libiberty_LDFLAGS =
@@ -3095,9 +3385,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -3130,6 +3425,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -3192,10 +3490,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -3208,15 +3509,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -3241,11 +3557,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -3292,7 +3617,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -3317,6 +3644,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -3328,6 +3658,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -3444,7 +3777,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
@@ -3515,6 +3854,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -3539,10 +3881,14 @@
# 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 alarm.gen.test \
- bpf.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 \
+ add_key.gen.test adjtimex.gen.test aio.gen.test \
+ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
+ bpf-v.gen.test bpf-obj_get_info_by_fd.gen.test \
+ bpf-obj_get_info_by_fd-v.gen.test \
+ bpf-obj_get_info_by_fd-prog.gen.test \
+ bpf-obj_get_info_by_fd-prog-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 \
@@ -3550,70 +3896,85 @@
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 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 fstat64.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 int_0x80.gen.test \
- ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \
- ioctl_evdev.gen.test ioctl_evdev-v.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 fstat64.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 \
+ int_0x80.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_loop.gen.test \
ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \
- ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test \
- ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test \
- kcmp-y.gen.test kern_features.gen.test \
- kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
- kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test \
+ ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test \
+ ioctl_ptp.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 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 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 \
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 \
- mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test \
- nlattr_br_port_msg.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_brport.gen.test nlattr_ifla_port.gen.test \
- nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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 \
@@ -3625,16 +3986,19 @@
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-v-none.gen.test oldfstat.gen.test \
- oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test \
+ old_mmap-P.gen.test old_mmap-v-none.gen.test \
+ old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test \
+ old_mmap-Xverbose.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 \
osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
perf_event_open_nonverbose.gen.test \
- perf_event_open_unabbrev.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 \
+ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ personality-Xraw.gen.test personality-Xverbose.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 \
printstr.gen.test printpath-umovestr.gen.test \
printpath-umovestr-peekdata.gen.test \
@@ -3675,22 +4039,29 @@
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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test \
- socketcall.gen.test sockopt-sol_netlink.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_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 \
+ 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 socketcall.gen.test \
+ sockopt-sol_netlink.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_x32.gen.test \
+ trace_personality_regex_32.gen.test \
+ trace_personality_regex_64.gen.test \
+ trace_personality_regex_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 utimes.gen.test \
@@ -3700,13 +4071,20 @@
xattr-strings.gen.test xet_robust_list.gen.test \
xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
xettimeofday.gen.test
-LIBUNWIND_TESTS =
-#LIBUNWIND_TESTS = strace-k.test $(am__append_1)
+STACKTRACE_TESTS =
+#STACKTRACE_TESTS = strace-k.test \
+# $(am__append_1)
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -3716,6 +4094,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -3742,6 +4121,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -3790,9 +4170,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -3816,8 +4200,8 @@
# end of MISC_TESTS
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -3838,6 +4222,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -3848,12 +4233,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -3861,6 +4246,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -3878,16 +4265,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
@@ -4001,6 +4395,10 @@
@rm -f aio$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
+aio_pgetevents$(EXEEXT): $(aio_pgetevents_OBJECTS) $(aio_pgetevents_DEPENDENCIES) $(EXTRA_aio_pgetevents_DEPENDENCIES)
+ @rm -f aio_pgetevents$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(aio_pgetevents_OBJECTS) $(aio_pgetevents_LDADD) $(LIBS)
+
alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES)
@rm -f alarm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
@@ -4033,6 +4431,30 @@
@rm -f bpf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
+bpf-obj_get_info_by_fd$(EXEEXT): $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog-v$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-v$(EXEEXT): $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_LDADD) $(LIBS)
+
+bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA_bpf_success_DEPENDENCIES)
+ @rm -f bpf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_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)
+
bpf-v$(EXEEXT): $(bpf_v_OBJECTS) $(bpf_v_DEPENDENCIES) $(EXTRA_bpf_v_DEPENDENCIES)
@rm -f bpf-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_v_OBJECTS) $(bpf_v_LDADD) $(LIBS)
@@ -4201,6 +4623,18 @@
@rm -f fanotify_mark$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
+fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES)
+ @rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+
+fanotify_mark-Xraw$(EXEEXT): $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_DEPENDENCIES) $(EXTRA_fanotify_mark_Xraw_DEPENDENCIES)
+ @rm -f fanotify_mark-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_LDADD) $(LIBS)
+
+fanotify_mark-Xverbose$(EXEEXT): $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_DEPENDENCIES) $(EXTRA_fanotify_mark_Xverbose_DEPENDENCIES)
+ @rm -f fanotify_mark-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_LDADD) $(LIBS)
+
fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES)
@rm -f fchdir$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
@@ -4481,6 +4915,10 @@
@rm -f ioctl_evdev-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_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)
+
ioctl_kvm_run$(EXEEXT): $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_DEPENDENCIES) $(EXTRA_ioctl_kvm_run_DEPENDENCIES)
@rm -f ioctl_kvm_run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_LDADD) $(LIBS)
@@ -4505,6 +4943,18 @@
@rm -f ioctl_nsfs$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
+ioctl_perf$(EXEEXT): $(ioctl_perf_OBJECTS) $(ioctl_perf_DEPENDENCIES) $(EXTRA_ioctl_perf_DEPENDENCIES)
+ @rm -f ioctl_perf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_OBJECTS) $(ioctl_perf_LDADD) $(LIBS)
+
+ioctl_perf-success$(EXEEXT): $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_DEPENDENCIES) $(EXTRA_ioctl_perf_success_DEPENDENCIES)
+ @rm -f ioctl_perf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_LDADD) $(LIBS)
+
+ioctl_ptp$(EXEEXT): $(ioctl_ptp_OBJECTS) $(ioctl_ptp_DEPENDENCIES) $(EXTRA_ioctl_ptp_DEPENDENCIES)
+ @rm -f ioctl_ptp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_ptp_OBJECTS) $(ioctl_ptp_LDADD) $(LIBS)
+
ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES)
@rm -f ioctl_rtc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
@@ -4561,18 +5011,66 @@
@rm -f ipc_msg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
+ipc_msg-Xabbrev$(EXEEXT): $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msg_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msg-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_LDADD) $(LIBS)
+
+ipc_msg-Xraw$(EXEEXT): $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_DEPENDENCIES) $(EXTRA_ipc_msg_Xraw_DEPENDENCIES)
+ @rm -f ipc_msg-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_LDADD) $(LIBS)
+
+ipc_msg-Xverbose$(EXEEXT): $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msg_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msg-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_LDADD) $(LIBS)
+
ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES)
@rm -f ipc_msgbuf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
+ipc_msgbuf-Xabbrev$(EXEEXT): $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_LDADD) $(LIBS)
+
+ipc_msgbuf-Xraw$(EXEEXT): $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xraw_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_LDADD) $(LIBS)
+
+ipc_msgbuf-Xverbose$(EXEEXT): $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_LDADD) $(LIBS)
+
ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES)
@rm -f ipc_sem$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
+ipc_sem-Xabbrev$(EXEEXT): $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_sem_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_sem-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_LDADD) $(LIBS)
+
+ipc_sem-Xraw$(EXEEXT): $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_DEPENDENCIES) $(EXTRA_ipc_sem_Xraw_DEPENDENCIES)
+ @rm -f ipc_sem-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_LDADD) $(LIBS)
+
+ipc_sem-Xverbose$(EXEEXT): $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_DEPENDENCIES) $(EXTRA_ipc_sem_Xverbose_DEPENDENCIES)
+ @rm -f ipc_sem-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_LDADD) $(LIBS)
+
ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES)
@rm -f ipc_shm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
+ipc_shm-Xabbrev$(EXEEXT): $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_shm_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_shm-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_LDADD) $(LIBS)
+
+ipc_shm-Xraw$(EXEEXT): $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_DEPENDENCIES) $(EXTRA_ipc_shm_Xraw_DEPENDENCIES)
+ @rm -f ipc_shm-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_LDADD) $(LIBS)
+
+ipc_shm-Xverbose$(EXEEXT): $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_DEPENDENCIES) $(EXTRA_ipc_shm_Xverbose_DEPENDENCIES)
+ @rm -f ipc_shm-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_LDADD) $(LIBS)
+
is_linux_mips_n64$(EXEEXT): $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_DEPENDENCIES) $(EXTRA_is_linux_mips_n64_DEPENDENCIES)
@rm -f is_linux_mips_n64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_LDADD) $(LIBS)
@@ -4601,6 +5099,18 @@
@rm -f keyctl$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
+keyctl-Xabbrev$(EXEEXT): $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_DEPENDENCIES) $(EXTRA_keyctl_Xabbrev_DEPENDENCIES)
+ @rm -f keyctl-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_LDADD) $(LIBS)
+
+keyctl-Xraw$(EXEEXT): $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_DEPENDENCIES) $(EXTRA_keyctl_Xraw_DEPENDENCIES)
+ @rm -f keyctl-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_LDADD) $(LIBS)
+
+keyctl-Xverbose$(EXEEXT): $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_DEPENDENCIES) $(EXTRA_keyctl_Xverbose_DEPENDENCIES)
+ @rm -f keyctl-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_LDADD) $(LIBS)
+
kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES)
@rm -f kill$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
@@ -4709,10 +5219,34 @@
@rm -f mmap$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
+mmap-Xabbrev$(EXEEXT): $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_DEPENDENCIES) $(EXTRA_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_LDADD) $(LIBS)
+
+mmap-Xraw$(EXEEXT): $(mmap_Xraw_OBJECTS) $(mmap_Xraw_DEPENDENCIES) $(EXTRA_mmap_Xraw_DEPENDENCIES)
+ @rm -f mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xraw_OBJECTS) $(mmap_Xraw_LDADD) $(LIBS)
+
+mmap-Xverbose$(EXEEXT): $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_DEPENDENCIES) $(EXTRA_mmap_Xverbose_DEPENDENCIES)
+ @rm -f mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_LDADD) $(LIBS)
+
mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES)
@rm -f mmap64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
+mmap64-Xabbrev$(EXEEXT): $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_DEPENDENCIES) $(EXTRA_mmap64_Xabbrev_DEPENDENCIES)
+ @rm -f mmap64-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_LDADD) $(LIBS)
+
+mmap64-Xraw$(EXEEXT): $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_DEPENDENCIES) $(EXTRA_mmap64_Xraw_DEPENDENCIES)
+ @rm -f mmap64-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_LDADD) $(LIBS)
+
+mmap64-Xverbose$(EXEEXT): $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_DEPENDENCIES) $(EXTRA_mmap64_Xverbose_DEPENDENCIES)
+ @rm -f mmap64-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_LDADD) $(LIBS)
+
mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES)
@rm -f mmsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
@@ -4737,6 +5271,18 @@
@rm -f mount$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
+mount-Xabbrev$(EXEEXT): $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_DEPENDENCIES) $(EXTRA_mount_Xabbrev_DEPENDENCIES)
+ @rm -f mount-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_LDADD) $(LIBS)
+
+mount-Xraw$(EXEEXT): $(mount_Xraw_OBJECTS) $(mount_Xraw_DEPENDENCIES) $(EXTRA_mount_Xraw_DEPENDENCIES)
+ @rm -f mount-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xraw_OBJECTS) $(mount_Xraw_LDADD) $(LIBS)
+
+mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES) $(EXTRA_mount_Xverbose_DEPENDENCIES)
+ @rm -f mount-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_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)
@@ -4941,10 +5487,18 @@
@rm -f nlattr_ifinfomsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifinfomsg_OBJECTS) $(nlattr_ifinfomsg_LDADD) $(LIBS)
+nlattr_ifla_af_spec$(EXEEXT): $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_DEPENDENCIES) $(EXTRA_nlattr_ifla_af_spec_DEPENDENCIES)
+ @rm -f nlattr_ifla_af_spec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_LDADD) $(LIBS)
+
nlattr_ifla_brport$(EXEEXT): $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_DEPENDENCIES) $(EXTRA_nlattr_ifla_brport_DEPENDENCIES)
@rm -f nlattr_ifla_brport$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_LDADD) $(LIBS)
+nlattr_ifla_linkinfo$(EXEEXT): $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_DEPENDENCIES) $(EXTRA_nlattr_ifla_linkinfo_DEPENDENCIES)
+ @rm -f nlattr_ifla_linkinfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_LDADD) $(LIBS)
+
nlattr_ifla_port$(EXEEXT): $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_DEPENDENCIES) $(EXTRA_nlattr_ifla_port_DEPENDENCIES)
@rm -f nlattr_ifla_port$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_LDADD) $(LIBS)
@@ -5045,6 +5599,18 @@
@rm -f old_mmap-P$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_P_OBJECTS) $(old_mmap_P_LDADD) $(LIBS)
+old_mmap-Xabbrev$(EXEEXT): $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_DEPENDENCIES) $(EXTRA_old_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f old_mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_LDADD) $(LIBS)
+
+old_mmap-Xraw$(EXEEXT): $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_DEPENDENCIES) $(EXTRA_old_mmap_Xraw_DEPENDENCIES)
+ @rm -f old_mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_LDADD) $(LIBS)
+
+old_mmap-Xverbose$(EXEEXT): $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_DEPENDENCIES) $(EXTRA_old_mmap_Xverbose_DEPENDENCIES)
+ @rm -f old_mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_LDADD) $(LIBS)
+
old_mmap-v-none$(EXEEXT): $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_DEPENDENCIES) $(EXTRA_old_mmap_v_none_DEPENDENCIES)
@rm -f old_mmap-v-none$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_LDADD) $(LIBS)
@@ -5113,6 +5679,18 @@
@rm -f personality$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
+personality-Xabbrev$(EXEEXT): $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_DEPENDENCIES) $(EXTRA_personality_Xabbrev_DEPENDENCIES)
+ @rm -f personality-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_LDADD) $(LIBS)
+
+personality-Xraw$(EXEEXT): $(personality_Xraw_OBJECTS) $(personality_Xraw_DEPENDENCIES) $(EXTRA_personality_Xraw_DEPENDENCIES)
+ @rm -f personality-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xraw_OBJECTS) $(personality_Xraw_LDADD) $(LIBS)
+
+personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xverbose_DEPENDENCIES) $(EXTRA_personality_Xverbose_DEPENDENCIES)
+ @rm -f personality-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS)
+
pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES)
@rm -f pipe$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
@@ -5185,6 +5763,10 @@
@rm -f prctl-securebits$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
+prctl-spec-inject$(EXEEXT): $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_DEPENDENCIES) $(EXTRA_prctl_spec_inject_DEPENDENCIES)
+ @rm -f prctl-spec-inject$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_LDADD) $(LIBS)
+
prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES)
@rm -f prctl-tid_address$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
@@ -5669,10 +6251,34 @@
@rm -f so_peercred$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_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)
+
+so_peercred-Xraw$(EXEEXT): $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_DEPENDENCIES) $(EXTRA_so_peercred_Xraw_DEPENDENCIES)
+ @rm -f so_peercred-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_LDADD) $(LIBS)
+
+so_peercred-Xverbose$(EXEEXT): $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_DEPENDENCIES) $(EXTRA_so_peercred_Xverbose_DEPENDENCIES)
+ @rm -f so_peercred-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_LDADD) $(LIBS)
+
sock_filter-v$(EXEEXT): $(sock_filter_v_OBJECTS) $(sock_filter_v_DEPENDENCIES) $(EXTRA_sock_filter_v_DEPENDENCIES)
@rm -f sock_filter-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(sock_filter_v_OBJECTS) $(sock_filter_v_LDADD) $(LIBS)
+sock_filter-v-Xabbrev$(EXEEXT): $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_DEPENDENCIES) $(EXTRA_sock_filter_v_Xabbrev_DEPENDENCIES)
+ @rm -f sock_filter-v-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_LDADD) $(LIBS)
+
+sock_filter-v-Xraw$(EXEEXT): $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_DEPENDENCIES) $(EXTRA_sock_filter_v_Xraw_DEPENDENCIES)
+ @rm -f sock_filter-v-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_LDADD) $(LIBS)
+
+sock_filter-v-Xverbose$(EXEEXT): $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_DEPENDENCIES) $(EXTRA_sock_filter_v_Xverbose_DEPENDENCIES)
+ @rm -f sock_filter-v-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_LDADD) $(LIBS)
+
socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES)
@rm -f socketcall$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
@@ -5960,6 +6566,7 @@
include ./$(DEPDIR)/add_key.Po
include ./$(DEPDIR)/adjtimex.Po
include ./$(DEPDIR)/aio.Po
+include ./$(DEPDIR)/aio_pgetevents.Po
include ./$(DEPDIR)/alarm.Po
include ./$(DEPDIR)/answer.Po
include ./$(DEPDIR)/attach-f-p-cmd.Po
@@ -5967,6 +6574,12 @@
include ./$(DEPDIR)/attach-p-cmd-cmd.Po
include ./$(DEPDIR)/attach-p-cmd-p.Po
include ./$(DEPDIR)/block_reset_raise_run.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po
+include ./$(DEPDIR)/bpf-success-v.Po
+include ./$(DEPDIR)/bpf-success.Po
include ./$(DEPDIR)/bpf-v.Po
include ./$(DEPDIR)/bpf.Po
include ./$(DEPDIR)/brk.Po
@@ -6009,6 +6622,9 @@
include ./$(DEPDIR)/fadvise64_64.Po
include ./$(DEPDIR)/fallocate.Po
include ./$(DEPDIR)/fanotify_init.Po
+include ./$(DEPDIR)/fanotify_mark-Xabbrev.Po
+include ./$(DEPDIR)/fanotify_mark-Xraw.Po
+include ./$(DEPDIR)/fanotify_mark-Xverbose.Po
include ./$(DEPDIR)/fanotify_mark.Po
include ./$(DEPDIR)/fchdir.Po
include ./$(DEPDIR)/fchmod.Po
@@ -6080,12 +6696,16 @@
include ./$(DEPDIR)/ioctl_dm.Po
include ./$(DEPDIR)/ioctl_evdev-v.Po
include ./$(DEPDIR)/ioctl_evdev.Po
+include ./$(DEPDIR)/ioctl_inotify.Po
include ./$(DEPDIR)/ioctl_kvm_run.Po
include ./$(DEPDIR)/ioctl_loop-nv.Po
include ./$(DEPDIR)/ioctl_loop-v.Po
include ./$(DEPDIR)/ioctl_loop.Po
include ./$(DEPDIR)/ioctl_mtd.Po
include ./$(DEPDIR)/ioctl_nsfs.Po
+include ./$(DEPDIR)/ioctl_perf-success.Po
+include ./$(DEPDIR)/ioctl_perf.Po
+include ./$(DEPDIR)/ioctl_ptp.Po
include ./$(DEPDIR)/ioctl_rtc-v.Po
include ./$(DEPDIR)/ioctl_rtc.Po
include ./$(DEPDIR)/ioctl_scsi.Po
@@ -6099,9 +6719,21 @@
include ./$(DEPDIR)/ioprio.Po
include ./$(DEPDIR)/ip_mreq.Po
include ./$(DEPDIR)/ipc.Po
+include ./$(DEPDIR)/ipc_msg-Xabbrev.Po
+include ./$(DEPDIR)/ipc_msg-Xraw.Po
+include ./$(DEPDIR)/ipc_msg-Xverbose.Po
include ./$(DEPDIR)/ipc_msg.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xraw.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xverbose.Po
include ./$(DEPDIR)/ipc_msgbuf.Po
+include ./$(DEPDIR)/ipc_sem-Xabbrev.Po
+include ./$(DEPDIR)/ipc_sem-Xraw.Po
+include ./$(DEPDIR)/ipc_sem-Xverbose.Po
include ./$(DEPDIR)/ipc_sem.Po
+include ./$(DEPDIR)/ipc_shm-Xabbrev.Po
+include ./$(DEPDIR)/ipc_shm-Xraw.Po
+include ./$(DEPDIR)/ipc_shm-Xverbose.Po
include ./$(DEPDIR)/ipc_shm.Po
include ./$(DEPDIR)/is_linux_mips_n64.Po
include ./$(DEPDIR)/kcmp-y.Po
@@ -6109,6 +6741,9 @@
include ./$(DEPDIR)/kern_features.Po
include ./$(DEPDIR)/kexec_file_load.Po
include ./$(DEPDIR)/kexec_load.Po
+include ./$(DEPDIR)/keyctl-Xabbrev.Po
+include ./$(DEPDIR)/keyctl-Xraw.Po
+include ./$(DEPDIR)/keyctl-Xverbose.Po
include ./$(DEPDIR)/keyctl.Po
include ./$(DEPDIR)/kill.Po
include ./$(DEPDIR)/ksysent.Po
@@ -6162,13 +6797,22 @@
include ./$(DEPDIR)/mlock.Po
include ./$(DEPDIR)/mlock2.Po
include ./$(DEPDIR)/mlockall.Po
+include ./$(DEPDIR)/mmap-Xabbrev.Po
+include ./$(DEPDIR)/mmap-Xraw.Po
+include ./$(DEPDIR)/mmap-Xverbose.Po
include ./$(DEPDIR)/mmap.Po
include ./$(DEPDIR)/mmap64-mmap64.Po
+include ./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+include ./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+include ./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
include ./$(DEPDIR)/mmsg-silent.Po
include ./$(DEPDIR)/mmsg.Po
include ./$(DEPDIR)/mmsg_name-v.Po
include ./$(DEPDIR)/mmsg_name.Po
include ./$(DEPDIR)/modify_ldt.Po
+include ./$(DEPDIR)/mount-Xabbrev.Po
+include ./$(DEPDIR)/mount-Xraw.Po
+include ./$(DEPDIR)/mount-Xverbose.Po
include ./$(DEPDIR)/mount.Po
include ./$(DEPDIR)/move_pages.Po
include ./$(DEPDIR)/mq.Po
@@ -6221,7 +6865,9 @@
include ./$(DEPDIR)/nlattr_ifaddrlblmsg.Po
include ./$(DEPDIR)/nlattr_ifaddrmsg.Po
include ./$(DEPDIR)/nlattr_ifinfomsg.Po
+include ./$(DEPDIR)/nlattr_ifla_af_spec.Po
include ./$(DEPDIR)/nlattr_ifla_brport.Po
+include ./$(DEPDIR)/nlattr_ifla_linkinfo.Po
include ./$(DEPDIR)/nlattr_ifla_port.Po
include ./$(DEPDIR)/nlattr_ifla_xdp.Po
include ./$(DEPDIR)/nlattr_inet_diag_msg.Po
@@ -6246,6 +6892,9 @@
include ./$(DEPDIR)/nsyscalls-d.Po
include ./$(DEPDIR)/nsyscalls.Po
include ./$(DEPDIR)/old_mmap-P.Po
+include ./$(DEPDIR)/old_mmap-Xabbrev.Po
+include ./$(DEPDIR)/old_mmap-Xraw.Po
+include ./$(DEPDIR)/old_mmap-Xverbose.Po
include ./$(DEPDIR)/old_mmap-v-none.Po
include ./$(DEPDIR)/old_mmap.Po
include ./$(DEPDIR)/oldfstat.Po
@@ -6263,6 +6912,9 @@
include ./$(DEPDIR)/perf_event_open.Po
include ./$(DEPDIR)/perf_event_open_nonverbose.Po
include ./$(DEPDIR)/perf_event_open_unabbrev.Po
+include ./$(DEPDIR)/personality-Xabbrev.Po
+include ./$(DEPDIR)/personality-Xraw.Po
+include ./$(DEPDIR)/personality-Xverbose.Po
include ./$(DEPDIR)/personality.Po
include ./$(DEPDIR)/pipe.Po
include ./$(DEPDIR)/pipe2.Po
@@ -6282,6 +6934,7 @@
include ./$(DEPDIR)/prctl-seccomp-filter-v.Po
include ./$(DEPDIR)/prctl-seccomp-strict.Po
include ./$(DEPDIR)/prctl-securebits.Po
+include ./$(DEPDIR)/prctl-spec-inject.Po
include ./$(DEPDIR)/prctl-tid_address.Po
include ./$(DEPDIR)/prctl-tsc.Po
include ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
@@ -6402,7 +7055,13 @@
include ./$(DEPDIR)/sigsuspend.Po
include ./$(DEPDIR)/sleep.Po
include ./$(DEPDIR)/so_linger.Po
+include ./$(DEPDIR)/so_peercred-Xabbrev.Po
+include ./$(DEPDIR)/so_peercred-Xraw.Po
+include ./$(DEPDIR)/so_peercred-Xverbose.Po
include ./$(DEPDIR)/so_peercred.Po
+include ./$(DEPDIR)/sock_filter-v-Xabbrev.Po
+include ./$(DEPDIR)/sock_filter-v-Xraw.Po
+include ./$(DEPDIR)/sock_filter-v-Xverbose.Po
include ./$(DEPDIR)/sock_filter-v.Po
include ./$(DEPDIR)/socketcall.Po
include ./$(DEPDIR)/sockopt-sol_netlink.Po
@@ -6929,6 +7588,48 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
+mmap64_Xabbrev-mmap64-Xabbrev.o: mmap64-Xabbrev.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.o -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+# $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-Xabbrev.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+
+mmap64_Xabbrev-mmap64-Xabbrev.obj: mmap64-Xabbrev.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.obj -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+# $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-Xabbrev.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+
+mmap64_Xraw-mmap64-Xraw.o: mmap64-Xraw.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.o -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+# $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-Xraw.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+
+mmap64_Xraw-mmap64-Xraw.obj: mmap64-Xraw.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.obj -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+# $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-Xraw.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+
+mmap64_Xverbose-mmap64-Xverbose.o: mmap64-Xverbose.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.o -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+# $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-Xverbose.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+
+mmap64_Xverbose-mmap64-Xverbose.obj: mmap64-Xverbose.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.obj -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+# $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-Xverbose.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+
newfstatat-newfstatat.o: newfstatat.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
@@ -7480,6 +8181,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7489,6 +8193,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7576,6 +8292,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7768,6 +8493,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7786,6 +8514,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7828,12 +8562,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7852,6 +8622,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7915,9 +8694,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7936,6 +8733,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -8062,9 +8868,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8137,6 +8949,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8179,6 +9000,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -8509,9 +9339,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8593,6 +9441,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
diff --git a/tests-mx32/Makefile.am b/tests-mx32/Makefile.am
index 63372b0..0572992 100644
--- a/tests-mx32/Makefile.am
+++ b/tests-mx32/Makefile.am
@@ -93,6 +93,12 @@
attach-p-cmd-cmd \
attach-p-cmd-p \
block_reset_raise_run \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
+ bpf-success \
+ bpf-success-v \
caps-abbrev \
check_sigblock \
check_sigign \
@@ -115,6 +121,7 @@
ioctl_loop-nv \
ioctl_loop-v \
ioctl_nsfs \
+ ioctl_perf-success \
ioctl_rtc-v \
is_linux_mips_n64 \
ksysent \
@@ -137,6 +144,7 @@
ppoll-v \
prctl-seccomp-filter-v \
prctl-seccomp-strict \
+ prctl-spec-inject \
print_maxfd \
qual_fault \
qual_inject-error-signal \
@@ -179,6 +187,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -202,20 +213,26 @@
include gen_tests.am
-if USE_LIBUNWIND
-LIBUNWIND_TESTS = strace-k.test
+if ENABLE_STACKTRACE
+STACKTRACE_TESTS = strace-k.test
if USE_DEMANGLE
-LIBUNWIND_TESTS += strace-k-demangle.test
+STACKTRACE_TESTS += strace-k-demangle.test
endif
else
-LIBUNWIND_TESTS =
+STACKTRACE_TESTS =
endif
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -225,6 +242,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -251,6 +269,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -299,9 +318,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -324,11 +347,11 @@
threads-execve.test \
# end of MISC_TESTS
-TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
+TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(STACKTRACE_TESTS)
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -352,6 +375,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -362,12 +386,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -375,6 +399,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -392,16 +418,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
diff --git a/tests-mx32/Makefile.in b/tests-mx32/Makefile.in
index 9558e7a..436af0d 100644
--- a/tests-mx32/Makefile.in
+++ b/tests-mx32/Makefile.in
@@ -139,7 +139,11 @@
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) caps-abbrev$(EXEEXT) \
+ block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
@@ -147,7 +151,8 @@
getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \
inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
- ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \
+ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
is_linux_mips_n64$(EXEEXT) ksysent$(EXEEXT) \
list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
@@ -159,21 +164,22 @@
perf_event_open_nonverbose$(EXEEXT) \
perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
- print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
- qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
- qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
- quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
- redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
- run_expect_termsig$(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) \
+ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
+ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
+ qual_signal$(EXEEXT) quotactl-v$(EXEEXT) \
+ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
+ restart_syscall$(EXEEXT) run_expect_termsig$(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) \
unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@am__append_1 = strace-k-demangle.test
+@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
@@ -181,7 +187,10 @@
$(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -223,18 +232,25 @@
libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
- adjtimex$(EXEEXT) aio$(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) copy_file_range$(EXEEXT) creat$(EXEEXT) \
- delete_module$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \
- dup2$(EXEEXT) dup3$(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) fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
- fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
+ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \
+ alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
+ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \
+ dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(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) \
+ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
+ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \
+ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \
+ fanotify_mark-Xverbose$(EXEEXT) fchdir$(EXEEXT) \
fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \
@@ -255,49 +271,62 @@
getxxid$(EXEEXT) group_req$(EXEEXT) inet-cmsg$(EXEEXT) \
init_module$(EXEEXT) inotify$(EXEEXT) inotify_init1$(EXEEXT) \
ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \
- ioctl_evdev$(EXEEXT) ioctl_kvm_run$(EXEEXT) \
- ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) \
+ ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \
+ ioctl_kvm_run$(EXEEXT) ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) \
+ ioctl_rtc$(EXEEXT) ioctl_perf$(EXEEXT) ioctl_ptp$(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) ip_mreq$(EXEEXT) ipc$(EXEEXT) \
- ipc_msg$(EXEEXT) ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) \
- ipc_shm$(EXEEXT) kcmp$(EXEEXT) kcmp-y$(EXEEXT) \
- kern_features$(EXEEXT) kexec_file_load$(EXEEXT) \
- kexec_load$(EXEEXT) keyctl$(EXEEXT) kill$(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) \
- memfd_create$(EXEEXT) migrate_pages$(EXEEXT) mincore$(EXEEXT) \
- mkdir$(EXEEXT) mkdirat$(EXEEXT) mknod$(EXEEXT) \
- mknodat$(EXEEXT) mlock$(EXEEXT) mlock2$(EXEEXT) \
- mlockall$(EXEEXT) mmap$(EXEEXT) mmap64$(EXEEXT) mmsg$(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) \
+ ipc_sem$(EXEEXT) ipc_sem-Xabbrev$(EXEEXT) \
+ ipc_sem-Xraw$(EXEEXT) ipc_sem-Xverbose$(EXEEXT) \
+ ipc_shm$(EXEEXT) ipc_shm-Xabbrev$(EXEEXT) \
+ ipc_shm-Xraw$(EXEEXT) ipc_shm-Xverbose$(EXEEXT) kcmp$(EXEEXT) \
+ kcmp-y$(EXEEXT) kern_features$(EXEEXT) \
+ kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) keyctl$(EXEEXT) \
+ keyctl-Xabbrev$(EXEEXT) keyctl-Xraw$(EXEEXT) \
+ keyctl-Xverbose$(EXEEXT) kill$(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) memfd_create$(EXEEXT) \
+ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
+ mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
+ mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
+ mmap-Xabbrev$(EXEEXT) mmap-Xraw$(EXEEXT) \
+ mmap-Xverbose$(EXEEXT) mmap64$(EXEEXT) mmap64-Xabbrev$(EXEEXT) \
+ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \
mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \
- move_pages$(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-sockaddr$(EXEEXT) net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
- net-yy-inet6$(EXEEXT) net-yy-netlink$(EXEEXT) \
- net-yy-unix$(EXEEXT) netlink_audit$(EXEEXT) \
- netlink_crypto$(EXEEXT) netlink_generic$(EXEEXT) \
- netlink_kobject_uevent$(EXEEXT) netlink_netfilter$(EXEEXT) \
- netlink_protocol$(EXEEXT) netlink_route$(EXEEXT) \
- netlink_selinux$(EXEEXT) netlink_sock_diag$(EXEEXT) \
- netlink_xfrm$(EXEEXT) newfstatat$(EXEEXT) \
- nfnetlink_acct$(EXEEXT) nfnetlink_cthelper$(EXEEXT) \
- nfnetlink_ctnetlink$(EXEEXT) nfnetlink_ctnetlink_exp$(EXEEXT) \
- nfnetlink_cttimeout$(EXEEXT) nfnetlink_nft_compat$(EXEEXT) \
- nfnetlink_nftables$(EXEEXT) nfnetlink_ipset$(EXEEXT) \
- nfnetlink_osf$(EXEEXT) nfnetlink_queue$(EXEEXT) \
- nfnetlink_ulog$(EXEEXT) nlattr$(EXEEXT) \
- nlattr_crypto_user_alg$(EXEEXT) nlattr_br_port_msg$(EXEEXT) \
- nlattr_dcbmsg$(EXEEXT) nlattr_fib_rule_hdr$(EXEEXT) \
- nlattr_ifaddrlblmsg$(EXEEXT) nlattr_ifaddrmsg$(EXEEXT) \
- nlattr_ifinfomsg$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
- nlattr_ifla_port$(EXEEXT) nlattr_ifla_xdp$(EXEEXT) \
- nlattr_inet_diag_msg$(EXEEXT) \
+ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \
+ mount-Xverbose$(EXEEXT) move_pages$(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-sockaddr$(EXEEXT) \
+ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \
+ net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
+ netlink_audit$(EXEEXT) netlink_crypto$(EXEEXT) \
+ netlink_generic$(EXEEXT) netlink_kobject_uevent$(EXEEXT) \
+ netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+ netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+ netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+ newfstatat$(EXEEXT) nfnetlink_acct$(EXEEXT) \
+ nfnetlink_cthelper$(EXEEXT) nfnetlink_ctnetlink$(EXEEXT) \
+ nfnetlink_ctnetlink_exp$(EXEEXT) nfnetlink_cttimeout$(EXEEXT) \
+ nfnetlink_nft_compat$(EXEEXT) nfnetlink_nftables$(EXEEXT) \
+ nfnetlink_ipset$(EXEEXT) nfnetlink_osf$(EXEEXT) \
+ nfnetlink_queue$(EXEEXT) nfnetlink_ulog$(EXEEXT) \
+ nlattr$(EXEEXT) nlattr_crypto_user_alg$(EXEEXT) \
+ nlattr_br_port_msg$(EXEEXT) nlattr_dcbmsg$(EXEEXT) \
+ nlattr_fib_rule_hdr$(EXEEXT) nlattr_ifaddrlblmsg$(EXEEXT) \
+ nlattr_ifaddrmsg$(EXEEXT) nlattr_ifinfomsg$(EXEEXT) \
+ nlattr_ifla_af_spec$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
+ nlattr_ifla_linkinfo$(EXEEXT) nlattr_ifla_port$(EXEEXT) \
+ nlattr_ifla_xdp$(EXEEXT) nlattr_inet_diag_msg$(EXEEXT) \
nlattr_inet_diag_req_compat$(EXEEXT) \
nlattr_inet_diag_req_v2$(EXEEXT) \
nlattr_mdba_mdb_entry$(EXEEXT) \
@@ -309,11 +338,14 @@
nlattr_tc_stats$(EXEEXT) nlattr_tca_stab$(EXEEXT) \
nlattr_tcamsg$(EXEEXT) nlattr_tcmsg$(EXEEXT) \
nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
- old_mmap-P$(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) pipe$(EXEEXT) pipe2$(EXEEXT) \
+ old_mmap-P$(EXEEXT) old_mmap-v-none$(EXEEXT) \
+ old_mmap-Xabbrev$(EXEEXT) old_mmap-Xraw$(EXEEXT) \
+ old_mmap-Xverbose$(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) 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) \
@@ -361,7 +393,10 @@
sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
sigreturn$(EXEEXT) sigsuspend$(EXEEXT) so_linger$(EXEEXT) \
- so_peercred$(EXEEXT) sock_filter-v$(EXEEXT) \
+ so_peercred$(EXEEXT) so_peercred-Xabbrev$(EXEEXT) \
+ so_peercred-Xraw$(EXEEXT) so_peercred-Xverbose$(EXEEXT) \
+ sock_filter-v$(EXEEXT) sock_filter-v-Xabbrev$(EXEEXT) \
+ sock_filter-v-Xraw$(EXEEXT) sock_filter-v-Xverbose$(EXEEXT) \
socketcall$(EXEEXT) sockopt-sol_netlink$(EXEEXT) \
splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
@@ -418,6 +453,10 @@
aio_OBJECTS = aio.$(OBJEXT)
aio_LDADD = $(LDADD)
aio_DEPENDENCIES = libtests.a
+aio_pgetevents_SOURCES = aio_pgetevents.c
+aio_pgetevents_OBJECTS = aio_pgetevents.$(OBJEXT)
+aio_pgetevents_LDADD = $(LDADD)
+aio_pgetevents_DEPENDENCIES = libtests.a
alarm_SOURCES = alarm.c
alarm_OBJECTS = alarm.$(OBJEXT)
alarm_LDADD = $(LDADD)
@@ -449,6 +488,33 @@
bpf_OBJECTS = bpf.$(OBJEXT)
bpf_LDADD = $(LDADD)
bpf_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_SOURCES = bpf-obj_get_info_by_fd.c
+bpf_obj_get_info_by_fd_OBJECTS = bpf-obj_get_info_by_fd.$(OBJEXT)
+bpf_obj_get_info_by_fd_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_SOURCES = bpf-obj_get_info_by_fd-prog.c
+bpf_obj_get_info_by_fd_prog_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_v_SOURCES = \
+ bpf-obj_get_info_by_fd-prog-v.c
+bpf_obj_get_info_by_fd_prog_v_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_v_SOURCES = bpf-obj_get_info_by_fd-v.c
+bpf_obj_get_info_by_fd_v_OBJECTS = bpf-obj_get_info_by_fd-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_v_DEPENDENCIES = libtests.a
+bpf_success_SOURCES = bpf-success.c
+bpf_success_OBJECTS = bpf-success.$(OBJEXT)
+bpf_success_LDADD = $(LDADD)
+bpf_success_DEPENDENCIES = libtests.a
+bpf_success_v_SOURCES = bpf-success-v.c
+bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT)
+bpf_success_v_LDADD = $(LDADD)
+bpf_success_v_DEPENDENCIES = libtests.a
bpf_v_SOURCES = bpf-v.c
bpf_v_OBJECTS = bpf-v.$(OBJEXT)
bpf_v_LDADD = $(LDADD)
@@ -616,6 +682,18 @@
fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
fanotify_mark_LDADD = $(LDADD)
fanotify_mark_DEPENDENCIES = libtests.a
+fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+fanotify_mark_Xabbrev_LDADD = $(LDADD)
+fanotify_mark_Xabbrev_DEPENDENCIES = libtests.a
+fanotify_mark_Xraw_SOURCES = fanotify_mark-Xraw.c
+fanotify_mark_Xraw_OBJECTS = fanotify_mark-Xraw.$(OBJEXT)
+fanotify_mark_Xraw_LDADD = $(LDADD)
+fanotify_mark_Xraw_DEPENDENCIES = libtests.a
+fanotify_mark_Xverbose_SOURCES = fanotify_mark-Xverbose.c
+fanotify_mark_Xverbose_OBJECTS = fanotify_mark-Xverbose.$(OBJEXT)
+fanotify_mark_Xverbose_LDADD = $(LDADD)
+fanotify_mark_Xverbose_DEPENDENCIES = libtests.a
fchdir_SOURCES = fchdir.c
fchdir_OBJECTS = fchdir.$(OBJEXT)
fchdir_LDADD = $(LDADD)
@@ -895,6 +973,10 @@
ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
ioctl_evdev_v_LDADD = $(LDADD)
ioctl_evdev_v_DEPENDENCIES = libtests.a
+ioctl_inotify_SOURCES = ioctl_inotify.c
+ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT)
+ioctl_inotify_LDADD = $(LDADD)
+ioctl_inotify_DEPENDENCIES = libtests.a
ioctl_kvm_run_SOURCES = ioctl_kvm_run.c
ioctl_kvm_run_OBJECTS = ioctl_kvm_run.$(OBJEXT)
ioctl_kvm_run_LDADD = $(LDADD)
@@ -919,6 +1001,18 @@
ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
ioctl_nsfs_LDADD = $(LDADD)
ioctl_nsfs_DEPENDENCIES = libtests.a
+ioctl_perf_SOURCES = ioctl_perf.c
+ioctl_perf_OBJECTS = ioctl_perf.$(OBJEXT)
+ioctl_perf_LDADD = $(LDADD)
+ioctl_perf_DEPENDENCIES = libtests.a
+ioctl_perf_success_SOURCES = ioctl_perf-success.c
+ioctl_perf_success_OBJECTS = ioctl_perf-success.$(OBJEXT)
+ioctl_perf_success_LDADD = $(LDADD)
+ioctl_perf_success_DEPENDENCIES = libtests.a
+ioctl_ptp_SOURCES = ioctl_ptp.c
+ioctl_ptp_OBJECTS = ioctl_ptp.$(OBJEXT)
+ioctl_ptp_LDADD = $(LDADD)
+ioctl_ptp_DEPENDENCIES = libtests.a
ioctl_rtc_SOURCES = ioctl_rtc.c
ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
ioctl_rtc_LDADD = $(LDADD)
@@ -975,18 +1069,66 @@
ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
ipc_msg_LDADD = $(LDADD)
ipc_msg_DEPENDENCIES = libtests.a
+ipc_msg_Xabbrev_SOURCES = ipc_msg-Xabbrev.c
+ipc_msg_Xabbrev_OBJECTS = ipc_msg-Xabbrev.$(OBJEXT)
+ipc_msg_Xabbrev_LDADD = $(LDADD)
+ipc_msg_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msg_Xraw_SOURCES = ipc_msg-Xraw.c
+ipc_msg_Xraw_OBJECTS = ipc_msg-Xraw.$(OBJEXT)
+ipc_msg_Xraw_LDADD = $(LDADD)
+ipc_msg_Xraw_DEPENDENCIES = libtests.a
+ipc_msg_Xverbose_SOURCES = ipc_msg-Xverbose.c
+ipc_msg_Xverbose_OBJECTS = ipc_msg-Xverbose.$(OBJEXT)
+ipc_msg_Xverbose_LDADD = $(LDADD)
+ipc_msg_Xverbose_DEPENDENCIES = libtests.a
ipc_msgbuf_SOURCES = ipc_msgbuf.c
ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
ipc_msgbuf_LDADD = $(LDADD)
ipc_msgbuf_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xabbrev_SOURCES = ipc_msgbuf-Xabbrev.c
+ipc_msgbuf_Xabbrev_OBJECTS = ipc_msgbuf-Xabbrev.$(OBJEXT)
+ipc_msgbuf_Xabbrev_LDADD = $(LDADD)
+ipc_msgbuf_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xraw_SOURCES = ipc_msgbuf-Xraw.c
+ipc_msgbuf_Xraw_OBJECTS = ipc_msgbuf-Xraw.$(OBJEXT)
+ipc_msgbuf_Xraw_LDADD = $(LDADD)
+ipc_msgbuf_Xraw_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xverbose_SOURCES = ipc_msgbuf-Xverbose.c
+ipc_msgbuf_Xverbose_OBJECTS = ipc_msgbuf-Xverbose.$(OBJEXT)
+ipc_msgbuf_Xverbose_LDADD = $(LDADD)
+ipc_msgbuf_Xverbose_DEPENDENCIES = libtests.a
ipc_sem_SOURCES = ipc_sem.c
ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
ipc_sem_LDADD = $(LDADD)
ipc_sem_DEPENDENCIES = libtests.a
+ipc_sem_Xabbrev_SOURCES = ipc_sem-Xabbrev.c
+ipc_sem_Xabbrev_OBJECTS = ipc_sem-Xabbrev.$(OBJEXT)
+ipc_sem_Xabbrev_LDADD = $(LDADD)
+ipc_sem_Xabbrev_DEPENDENCIES = libtests.a
+ipc_sem_Xraw_SOURCES = ipc_sem-Xraw.c
+ipc_sem_Xraw_OBJECTS = ipc_sem-Xraw.$(OBJEXT)
+ipc_sem_Xraw_LDADD = $(LDADD)
+ipc_sem_Xraw_DEPENDENCIES = libtests.a
+ipc_sem_Xverbose_SOURCES = ipc_sem-Xverbose.c
+ipc_sem_Xverbose_OBJECTS = ipc_sem-Xverbose.$(OBJEXT)
+ipc_sem_Xverbose_LDADD = $(LDADD)
+ipc_sem_Xverbose_DEPENDENCIES = libtests.a
ipc_shm_SOURCES = ipc_shm.c
ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
ipc_shm_LDADD = $(LDADD)
ipc_shm_DEPENDENCIES = libtests.a
+ipc_shm_Xabbrev_SOURCES = ipc_shm-Xabbrev.c
+ipc_shm_Xabbrev_OBJECTS = ipc_shm-Xabbrev.$(OBJEXT)
+ipc_shm_Xabbrev_LDADD = $(LDADD)
+ipc_shm_Xabbrev_DEPENDENCIES = libtests.a
+ipc_shm_Xraw_SOURCES = ipc_shm-Xraw.c
+ipc_shm_Xraw_OBJECTS = ipc_shm-Xraw.$(OBJEXT)
+ipc_shm_Xraw_LDADD = $(LDADD)
+ipc_shm_Xraw_DEPENDENCIES = libtests.a
+ipc_shm_Xverbose_SOURCES = ipc_shm-Xverbose.c
+ipc_shm_Xverbose_OBJECTS = ipc_shm-Xverbose.$(OBJEXT)
+ipc_shm_Xverbose_LDADD = $(LDADD)
+ipc_shm_Xverbose_DEPENDENCIES = libtests.a
is_linux_mips_n64_SOURCES = is_linux_mips_n64.c
is_linux_mips_n64_OBJECTS = is_linux_mips_n64.$(OBJEXT)
is_linux_mips_n64_LDADD = $(LDADD)
@@ -1015,6 +1157,18 @@
keyctl_OBJECTS = keyctl.$(OBJEXT)
keyctl_LDADD = $(LDADD)
keyctl_DEPENDENCIES = libtests.a
+keyctl_Xabbrev_SOURCES = keyctl-Xabbrev.c
+keyctl_Xabbrev_OBJECTS = keyctl-Xabbrev.$(OBJEXT)
+keyctl_Xabbrev_LDADD = $(LDADD)
+keyctl_Xabbrev_DEPENDENCIES = libtests.a
+keyctl_Xraw_SOURCES = keyctl-Xraw.c
+keyctl_Xraw_OBJECTS = keyctl-Xraw.$(OBJEXT)
+keyctl_Xraw_LDADD = $(LDADD)
+keyctl_Xraw_DEPENDENCIES = libtests.a
+keyctl_Xverbose_SOURCES = keyctl-Xverbose.c
+keyctl_Xverbose_OBJECTS = keyctl-Xverbose.$(OBJEXT)
+keyctl_Xverbose_LDADD = $(LDADD)
+keyctl_Xverbose_DEPENDENCIES = libtests.a
kill_SOURCES = kill.c
kill_OBJECTS = kill.$(OBJEXT)
kill_LDADD = $(LDADD)
@@ -1122,10 +1276,34 @@
mmap_OBJECTS = mmap.$(OBJEXT)
mmap_LDADD = $(LDADD)
mmap_DEPENDENCIES = libtests.a
+mmap_Xabbrev_SOURCES = mmap-Xabbrev.c
+mmap_Xabbrev_OBJECTS = mmap-Xabbrev.$(OBJEXT)
+mmap_Xabbrev_LDADD = $(LDADD)
+mmap_Xabbrev_DEPENDENCIES = libtests.a
+mmap_Xraw_SOURCES = mmap-Xraw.c
+mmap_Xraw_OBJECTS = mmap-Xraw.$(OBJEXT)
+mmap_Xraw_LDADD = $(LDADD)
+mmap_Xraw_DEPENDENCIES = libtests.a
+mmap_Xverbose_SOURCES = mmap-Xverbose.c
+mmap_Xverbose_OBJECTS = mmap-Xverbose.$(OBJEXT)
+mmap_Xverbose_LDADD = $(LDADD)
+mmap_Xverbose_DEPENDENCIES = libtests.a
mmap64_SOURCES = mmap64.c
mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
mmap64_LDADD = $(LDADD)
mmap64_DEPENDENCIES = libtests.a
+mmap64_Xabbrev_SOURCES = mmap64-Xabbrev.c
+mmap64_Xabbrev_OBJECTS = mmap64_Xabbrev-mmap64-Xabbrev.$(OBJEXT)
+mmap64_Xabbrev_LDADD = $(LDADD)
+mmap64_Xabbrev_DEPENDENCIES = libtests.a
+mmap64_Xraw_SOURCES = mmap64-Xraw.c
+mmap64_Xraw_OBJECTS = mmap64_Xraw-mmap64-Xraw.$(OBJEXT)
+mmap64_Xraw_LDADD = $(LDADD)
+mmap64_Xraw_DEPENDENCIES = libtests.a
+mmap64_Xverbose_SOURCES = mmap64-Xverbose.c
+mmap64_Xverbose_OBJECTS = mmap64_Xverbose-mmap64-Xverbose.$(OBJEXT)
+mmap64_Xverbose_LDADD = $(LDADD)
+mmap64_Xverbose_DEPENDENCIES = libtests.a
mmsg_SOURCES = mmsg.c
mmsg_OBJECTS = mmsg.$(OBJEXT)
mmsg_LDADD = $(LDADD)
@@ -1150,6 +1328,18 @@
mount_OBJECTS = mount.$(OBJEXT)
mount_LDADD = $(LDADD)
mount_DEPENDENCIES = libtests.a
+mount_Xabbrev_SOURCES = mount-Xabbrev.c
+mount_Xabbrev_OBJECTS = mount-Xabbrev.$(OBJEXT)
+mount_Xabbrev_LDADD = $(LDADD)
+mount_Xabbrev_DEPENDENCIES = libtests.a
+mount_Xraw_SOURCES = mount-Xraw.c
+mount_Xraw_OBJECTS = mount-Xraw.$(OBJEXT)
+mount_Xraw_LDADD = $(LDADD)
+mount_Xraw_DEPENDENCIES = libtests.a
+mount_Xverbose_SOURCES = mount-Xverbose.c
+mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT)
+mount_Xverbose_LDADD = $(LDADD)
+mount_Xverbose_DEPENDENCIES = libtests.a
move_pages_SOURCES = move_pages.c
move_pages_OBJECTS = move_pages.$(OBJEXT)
move_pages_LDADD = $(LDADD)
@@ -1353,10 +1543,18 @@
nlattr_ifinfomsg_OBJECTS = nlattr_ifinfomsg.$(OBJEXT)
nlattr_ifinfomsg_LDADD = $(LDADD)
nlattr_ifinfomsg_DEPENDENCIES = libtests.a
+nlattr_ifla_af_spec_SOURCES = nlattr_ifla_af_spec.c
+nlattr_ifla_af_spec_OBJECTS = nlattr_ifla_af_spec.$(OBJEXT)
+nlattr_ifla_af_spec_LDADD = $(LDADD)
+nlattr_ifla_af_spec_DEPENDENCIES = libtests.a
nlattr_ifla_brport_SOURCES = nlattr_ifla_brport.c
nlattr_ifla_brport_OBJECTS = nlattr_ifla_brport.$(OBJEXT)
nlattr_ifla_brport_LDADD = $(LDADD)
nlattr_ifla_brport_DEPENDENCIES = libtests.a
+nlattr_ifla_linkinfo_SOURCES = nlattr_ifla_linkinfo.c
+nlattr_ifla_linkinfo_OBJECTS = nlattr_ifla_linkinfo.$(OBJEXT)
+nlattr_ifla_linkinfo_LDADD = $(LDADD)
+nlattr_ifla_linkinfo_DEPENDENCIES = libtests.a
nlattr_ifla_port_SOURCES = nlattr_ifla_port.c
nlattr_ifla_port_OBJECTS = nlattr_ifla_port.$(OBJEXT)
nlattr_ifla_port_LDADD = $(LDADD)
@@ -1458,6 +1656,18 @@
old_mmap_P_OBJECTS = old_mmap-P.$(OBJEXT)
old_mmap_P_LDADD = $(LDADD)
old_mmap_P_DEPENDENCIES = libtests.a
+old_mmap_Xabbrev_SOURCES = old_mmap-Xabbrev.c
+old_mmap_Xabbrev_OBJECTS = old_mmap-Xabbrev.$(OBJEXT)
+old_mmap_Xabbrev_LDADD = $(LDADD)
+old_mmap_Xabbrev_DEPENDENCIES = libtests.a
+old_mmap_Xraw_SOURCES = old_mmap-Xraw.c
+old_mmap_Xraw_OBJECTS = old_mmap-Xraw.$(OBJEXT)
+old_mmap_Xraw_LDADD = $(LDADD)
+old_mmap_Xraw_DEPENDENCIES = libtests.a
+old_mmap_Xverbose_SOURCES = old_mmap-Xverbose.c
+old_mmap_Xverbose_OBJECTS = old_mmap-Xverbose.$(OBJEXT)
+old_mmap_Xverbose_LDADD = $(LDADD)
+old_mmap_Xverbose_DEPENDENCIES = libtests.a
old_mmap_v_none_SOURCES = old_mmap-v-none.c
old_mmap_v_none_OBJECTS = old_mmap-v-none.$(OBJEXT)
old_mmap_v_none_LDADD = $(LDADD)
@@ -1526,6 +1736,18 @@
personality_OBJECTS = personality.$(OBJEXT)
personality_LDADD = $(LDADD)
personality_DEPENDENCIES = libtests.a
+personality_Xabbrev_SOURCES = personality-Xabbrev.c
+personality_Xabbrev_OBJECTS = personality-Xabbrev.$(OBJEXT)
+personality_Xabbrev_LDADD = $(LDADD)
+personality_Xabbrev_DEPENDENCIES = libtests.a
+personality_Xraw_SOURCES = personality-Xraw.c
+personality_Xraw_OBJECTS = personality-Xraw.$(OBJEXT)
+personality_Xraw_LDADD = $(LDADD)
+personality_Xraw_DEPENDENCIES = libtests.a
+personality_Xverbose_SOURCES = personality-Xverbose.c
+personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT)
+personality_Xverbose_LDADD = $(LDADD)
+personality_Xverbose_DEPENDENCIES = libtests.a
pipe_SOURCES = pipe.c
pipe_OBJECTS = pipe.$(OBJEXT)
pipe_LDADD = $(LDADD)
@@ -1598,6 +1820,10 @@
prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
prctl_securebits_LDADD = $(LDADD)
prctl_securebits_DEPENDENCIES = libtests.a
+prctl_spec_inject_SOURCES = prctl-spec-inject.c
+prctl_spec_inject_OBJECTS = prctl-spec-inject.$(OBJEXT)
+prctl_spec_inject_LDADD = $(LDADD)
+prctl_spec_inject_DEPENDENCIES = libtests.a
prctl_tid_address_SOURCES = prctl-tid_address.c
prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
prctl_tid_address_LDADD = $(LDADD)
@@ -2088,10 +2314,34 @@
so_peercred_OBJECTS = so_peercred.$(OBJEXT)
so_peercred_LDADD = $(LDADD)
so_peercred_DEPENDENCIES = libtests.a
+so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+so_peercred_Xabbrev_LDADD = $(LDADD)
+so_peercred_Xabbrev_DEPENDENCIES = libtests.a
+so_peercred_Xraw_SOURCES = so_peercred-Xraw.c
+so_peercred_Xraw_OBJECTS = so_peercred-Xraw.$(OBJEXT)
+so_peercred_Xraw_LDADD = $(LDADD)
+so_peercred_Xraw_DEPENDENCIES = libtests.a
+so_peercred_Xverbose_SOURCES = so_peercred-Xverbose.c
+so_peercred_Xverbose_OBJECTS = so_peercred-Xverbose.$(OBJEXT)
+so_peercred_Xverbose_LDADD = $(LDADD)
+so_peercred_Xverbose_DEPENDENCIES = libtests.a
sock_filter_v_SOURCES = sock_filter-v.c
sock_filter_v_OBJECTS = sock_filter-v.$(OBJEXT)
sock_filter_v_LDADD = $(LDADD)
sock_filter_v_DEPENDENCIES = libtests.a
+sock_filter_v_Xabbrev_SOURCES = sock_filter-v-Xabbrev.c
+sock_filter_v_Xabbrev_OBJECTS = sock_filter-v-Xabbrev.$(OBJEXT)
+sock_filter_v_Xabbrev_LDADD = $(LDADD)
+sock_filter_v_Xabbrev_DEPENDENCIES = libtests.a
+sock_filter_v_Xraw_SOURCES = sock_filter-v-Xraw.c
+sock_filter_v_Xraw_OBJECTS = sock_filter-v-Xraw.$(OBJEXT)
+sock_filter_v_Xraw_LDADD = $(LDADD)
+sock_filter_v_Xraw_DEPENDENCIES = libtests.a
+sock_filter_v_Xverbose_SOURCES = sock_filter-v-Xverbose.c
+sock_filter_v_Xverbose_OBJECTS = sock_filter-v-Xverbose.$(OBJEXT)
+sock_filter_v_Xverbose_LDADD = $(LDADD)
+sock_filter_v_Xverbose_DEPENDENCIES = libtests.a
socketcall_SOURCES = socketcall.c
socketcall_OBJECTS = socketcall.$(OBJEXT)
socketcall_LDADD = $(LDADD)
@@ -2402,45 +2652,58 @@
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
- accept4.c access.c acct.c add_key.c adjtimex.c aio.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-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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 \
+ 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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2456,59 +2719,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2526,44 +2794,57 @@
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 \
- 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-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 \
+ 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 \
+ 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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2579,59 +2860,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2859,7 +3145,7 @@
bases=`echo $$bases`
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
-@USE_LIBUNWIND_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
TEST_SUITE_LOG = test-suite.log
TEST_EXTENSIONS = @EXEEXT@ .test
am__test_logs1 = $(TESTS:=.log)
@@ -3001,6 +3287,10 @@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
+libdw_CFLAGS = @libdw_CFLAGS@
+libdw_CPPFLAGS = @libdw_CPPFLAGS@
+libdw_LDFLAGS = @libdw_LDFLAGS@
+libdw_LIBS = @libdw_LIBS@
libexecdir = @libexecdir@
libiberty_CPPFLAGS = @libiberty_CPPFLAGS@
libiberty_LDFLAGS = @libiberty_LDFLAGS@
@@ -3095,9 +3385,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -3130,6 +3425,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -3192,10 +3490,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -3208,15 +3509,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -3241,11 +3557,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -3292,7 +3617,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -3317,6 +3644,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -3328,6 +3658,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -3444,7 +3777,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
@@ -3515,6 +3854,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -3539,10 +3881,14 @@
# 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 alarm.gen.test \
- bpf.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 \
+ add_key.gen.test adjtimex.gen.test aio.gen.test \
+ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
+ bpf-v.gen.test bpf-obj_get_info_by_fd.gen.test \
+ bpf-obj_get_info_by_fd-v.gen.test \
+ bpf-obj_get_info_by_fd-prog.gen.test \
+ bpf-obj_get_info_by_fd-prog-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 \
@@ -3550,70 +3896,85 @@
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 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 fstat64.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 int_0x80.gen.test \
- ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \
- ioctl_evdev.gen.test ioctl_evdev-v.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 fstat64.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 \
+ int_0x80.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_loop.gen.test \
ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \
- ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test \
- ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test \
- kcmp-y.gen.test kern_features.gen.test \
- kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
- kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test \
+ ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test \
+ ioctl_ptp.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 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 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 \
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 \
- mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test \
- nlattr_br_port_msg.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_brport.gen.test nlattr_ifla_port.gen.test \
- nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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 \
@@ -3625,16 +3986,19 @@
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-v-none.gen.test oldfstat.gen.test \
- oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test \
+ old_mmap-P.gen.test old_mmap-v-none.gen.test \
+ old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test \
+ old_mmap-Xverbose.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 \
osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
perf_event_open_nonverbose.gen.test \
- perf_event_open_unabbrev.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 \
+ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ personality-Xraw.gen.test personality-Xverbose.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 \
printstr.gen.test printpath-umovestr.gen.test \
printpath-umovestr-peekdata.gen.test \
@@ -3675,22 +4039,29 @@
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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test \
- socketcall.gen.test sockopt-sol_netlink.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_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 \
+ 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 socketcall.gen.test \
+ sockopt-sol_netlink.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_x32.gen.test \
+ trace_personality_regex_32.gen.test \
+ trace_personality_regex_64.gen.test \
+ trace_personality_regex_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 utimes.gen.test \
@@ -3700,13 +4071,20 @@
xattr-strings.gen.test xet_robust_list.gen.test \
xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
xettimeofday.gen.test
-@USE_LIBUNWIND_FALSE@LIBUNWIND_TESTS =
-@USE_LIBUNWIND_TRUE@LIBUNWIND_TESTS = strace-k.test $(am__append_1)
+@ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS =
+@ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
+@ENABLE_STACKTRACE_TRUE@ $(am__append_1)
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -3716,6 +4094,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -3742,6 +4121,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -3790,9 +4170,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -3816,8 +4200,8 @@
# end of MISC_TESTS
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -3838,6 +4222,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -3848,12 +4233,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -3861,6 +4246,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -3878,16 +4265,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
@@ -4001,6 +4395,10 @@
@rm -f aio$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
+aio_pgetevents$(EXEEXT): $(aio_pgetevents_OBJECTS) $(aio_pgetevents_DEPENDENCIES) $(EXTRA_aio_pgetevents_DEPENDENCIES)
+ @rm -f aio_pgetevents$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(aio_pgetevents_OBJECTS) $(aio_pgetevents_LDADD) $(LIBS)
+
alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES)
@rm -f alarm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
@@ -4033,6 +4431,30 @@
@rm -f bpf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
+bpf-obj_get_info_by_fd$(EXEEXT): $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog-v$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-v$(EXEEXT): $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_LDADD) $(LIBS)
+
+bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA_bpf_success_DEPENDENCIES)
+ @rm -f bpf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_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)
+
bpf-v$(EXEEXT): $(bpf_v_OBJECTS) $(bpf_v_DEPENDENCIES) $(EXTRA_bpf_v_DEPENDENCIES)
@rm -f bpf-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_v_OBJECTS) $(bpf_v_LDADD) $(LIBS)
@@ -4201,6 +4623,18 @@
@rm -f fanotify_mark$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
+fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES)
+ @rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+
+fanotify_mark-Xraw$(EXEEXT): $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_DEPENDENCIES) $(EXTRA_fanotify_mark_Xraw_DEPENDENCIES)
+ @rm -f fanotify_mark-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_LDADD) $(LIBS)
+
+fanotify_mark-Xverbose$(EXEEXT): $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_DEPENDENCIES) $(EXTRA_fanotify_mark_Xverbose_DEPENDENCIES)
+ @rm -f fanotify_mark-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_LDADD) $(LIBS)
+
fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES)
@rm -f fchdir$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
@@ -4481,6 +4915,10 @@
@rm -f ioctl_evdev-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_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)
+
ioctl_kvm_run$(EXEEXT): $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_DEPENDENCIES) $(EXTRA_ioctl_kvm_run_DEPENDENCIES)
@rm -f ioctl_kvm_run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_LDADD) $(LIBS)
@@ -4505,6 +4943,18 @@
@rm -f ioctl_nsfs$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
+ioctl_perf$(EXEEXT): $(ioctl_perf_OBJECTS) $(ioctl_perf_DEPENDENCIES) $(EXTRA_ioctl_perf_DEPENDENCIES)
+ @rm -f ioctl_perf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_OBJECTS) $(ioctl_perf_LDADD) $(LIBS)
+
+ioctl_perf-success$(EXEEXT): $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_DEPENDENCIES) $(EXTRA_ioctl_perf_success_DEPENDENCIES)
+ @rm -f ioctl_perf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_LDADD) $(LIBS)
+
+ioctl_ptp$(EXEEXT): $(ioctl_ptp_OBJECTS) $(ioctl_ptp_DEPENDENCIES) $(EXTRA_ioctl_ptp_DEPENDENCIES)
+ @rm -f ioctl_ptp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_ptp_OBJECTS) $(ioctl_ptp_LDADD) $(LIBS)
+
ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES)
@rm -f ioctl_rtc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
@@ -4561,18 +5011,66 @@
@rm -f ipc_msg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
+ipc_msg-Xabbrev$(EXEEXT): $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msg_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msg-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_LDADD) $(LIBS)
+
+ipc_msg-Xraw$(EXEEXT): $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_DEPENDENCIES) $(EXTRA_ipc_msg_Xraw_DEPENDENCIES)
+ @rm -f ipc_msg-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_LDADD) $(LIBS)
+
+ipc_msg-Xverbose$(EXEEXT): $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msg_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msg-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_LDADD) $(LIBS)
+
ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES)
@rm -f ipc_msgbuf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
+ipc_msgbuf-Xabbrev$(EXEEXT): $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_LDADD) $(LIBS)
+
+ipc_msgbuf-Xraw$(EXEEXT): $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xraw_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_LDADD) $(LIBS)
+
+ipc_msgbuf-Xverbose$(EXEEXT): $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_LDADD) $(LIBS)
+
ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES)
@rm -f ipc_sem$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
+ipc_sem-Xabbrev$(EXEEXT): $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_sem_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_sem-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_LDADD) $(LIBS)
+
+ipc_sem-Xraw$(EXEEXT): $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_DEPENDENCIES) $(EXTRA_ipc_sem_Xraw_DEPENDENCIES)
+ @rm -f ipc_sem-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_LDADD) $(LIBS)
+
+ipc_sem-Xverbose$(EXEEXT): $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_DEPENDENCIES) $(EXTRA_ipc_sem_Xverbose_DEPENDENCIES)
+ @rm -f ipc_sem-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_LDADD) $(LIBS)
+
ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES)
@rm -f ipc_shm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
+ipc_shm-Xabbrev$(EXEEXT): $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_shm_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_shm-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_LDADD) $(LIBS)
+
+ipc_shm-Xraw$(EXEEXT): $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_DEPENDENCIES) $(EXTRA_ipc_shm_Xraw_DEPENDENCIES)
+ @rm -f ipc_shm-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_LDADD) $(LIBS)
+
+ipc_shm-Xverbose$(EXEEXT): $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_DEPENDENCIES) $(EXTRA_ipc_shm_Xverbose_DEPENDENCIES)
+ @rm -f ipc_shm-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_LDADD) $(LIBS)
+
is_linux_mips_n64$(EXEEXT): $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_DEPENDENCIES) $(EXTRA_is_linux_mips_n64_DEPENDENCIES)
@rm -f is_linux_mips_n64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_LDADD) $(LIBS)
@@ -4601,6 +5099,18 @@
@rm -f keyctl$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
+keyctl-Xabbrev$(EXEEXT): $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_DEPENDENCIES) $(EXTRA_keyctl_Xabbrev_DEPENDENCIES)
+ @rm -f keyctl-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_LDADD) $(LIBS)
+
+keyctl-Xraw$(EXEEXT): $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_DEPENDENCIES) $(EXTRA_keyctl_Xraw_DEPENDENCIES)
+ @rm -f keyctl-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_LDADD) $(LIBS)
+
+keyctl-Xverbose$(EXEEXT): $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_DEPENDENCIES) $(EXTRA_keyctl_Xverbose_DEPENDENCIES)
+ @rm -f keyctl-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_LDADD) $(LIBS)
+
kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES)
@rm -f kill$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
@@ -4709,10 +5219,34 @@
@rm -f mmap$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
+mmap-Xabbrev$(EXEEXT): $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_DEPENDENCIES) $(EXTRA_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_LDADD) $(LIBS)
+
+mmap-Xraw$(EXEEXT): $(mmap_Xraw_OBJECTS) $(mmap_Xraw_DEPENDENCIES) $(EXTRA_mmap_Xraw_DEPENDENCIES)
+ @rm -f mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xraw_OBJECTS) $(mmap_Xraw_LDADD) $(LIBS)
+
+mmap-Xverbose$(EXEEXT): $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_DEPENDENCIES) $(EXTRA_mmap_Xverbose_DEPENDENCIES)
+ @rm -f mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_LDADD) $(LIBS)
+
mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES)
@rm -f mmap64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
+mmap64-Xabbrev$(EXEEXT): $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_DEPENDENCIES) $(EXTRA_mmap64_Xabbrev_DEPENDENCIES)
+ @rm -f mmap64-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_LDADD) $(LIBS)
+
+mmap64-Xraw$(EXEEXT): $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_DEPENDENCIES) $(EXTRA_mmap64_Xraw_DEPENDENCIES)
+ @rm -f mmap64-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_LDADD) $(LIBS)
+
+mmap64-Xverbose$(EXEEXT): $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_DEPENDENCIES) $(EXTRA_mmap64_Xverbose_DEPENDENCIES)
+ @rm -f mmap64-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_LDADD) $(LIBS)
+
mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES)
@rm -f mmsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
@@ -4737,6 +5271,18 @@
@rm -f mount$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
+mount-Xabbrev$(EXEEXT): $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_DEPENDENCIES) $(EXTRA_mount_Xabbrev_DEPENDENCIES)
+ @rm -f mount-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_LDADD) $(LIBS)
+
+mount-Xraw$(EXEEXT): $(mount_Xraw_OBJECTS) $(mount_Xraw_DEPENDENCIES) $(EXTRA_mount_Xraw_DEPENDENCIES)
+ @rm -f mount-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xraw_OBJECTS) $(mount_Xraw_LDADD) $(LIBS)
+
+mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES) $(EXTRA_mount_Xverbose_DEPENDENCIES)
+ @rm -f mount-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_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)
@@ -4941,10 +5487,18 @@
@rm -f nlattr_ifinfomsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifinfomsg_OBJECTS) $(nlattr_ifinfomsg_LDADD) $(LIBS)
+nlattr_ifla_af_spec$(EXEEXT): $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_DEPENDENCIES) $(EXTRA_nlattr_ifla_af_spec_DEPENDENCIES)
+ @rm -f nlattr_ifla_af_spec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_LDADD) $(LIBS)
+
nlattr_ifla_brport$(EXEEXT): $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_DEPENDENCIES) $(EXTRA_nlattr_ifla_brport_DEPENDENCIES)
@rm -f nlattr_ifla_brport$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_LDADD) $(LIBS)
+nlattr_ifla_linkinfo$(EXEEXT): $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_DEPENDENCIES) $(EXTRA_nlattr_ifla_linkinfo_DEPENDENCIES)
+ @rm -f nlattr_ifla_linkinfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_LDADD) $(LIBS)
+
nlattr_ifla_port$(EXEEXT): $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_DEPENDENCIES) $(EXTRA_nlattr_ifla_port_DEPENDENCIES)
@rm -f nlattr_ifla_port$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_LDADD) $(LIBS)
@@ -5045,6 +5599,18 @@
@rm -f old_mmap-P$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_P_OBJECTS) $(old_mmap_P_LDADD) $(LIBS)
+old_mmap-Xabbrev$(EXEEXT): $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_DEPENDENCIES) $(EXTRA_old_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f old_mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_LDADD) $(LIBS)
+
+old_mmap-Xraw$(EXEEXT): $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_DEPENDENCIES) $(EXTRA_old_mmap_Xraw_DEPENDENCIES)
+ @rm -f old_mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_LDADD) $(LIBS)
+
+old_mmap-Xverbose$(EXEEXT): $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_DEPENDENCIES) $(EXTRA_old_mmap_Xverbose_DEPENDENCIES)
+ @rm -f old_mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_LDADD) $(LIBS)
+
old_mmap-v-none$(EXEEXT): $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_DEPENDENCIES) $(EXTRA_old_mmap_v_none_DEPENDENCIES)
@rm -f old_mmap-v-none$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_LDADD) $(LIBS)
@@ -5113,6 +5679,18 @@
@rm -f personality$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
+personality-Xabbrev$(EXEEXT): $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_DEPENDENCIES) $(EXTRA_personality_Xabbrev_DEPENDENCIES)
+ @rm -f personality-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_LDADD) $(LIBS)
+
+personality-Xraw$(EXEEXT): $(personality_Xraw_OBJECTS) $(personality_Xraw_DEPENDENCIES) $(EXTRA_personality_Xraw_DEPENDENCIES)
+ @rm -f personality-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xraw_OBJECTS) $(personality_Xraw_LDADD) $(LIBS)
+
+personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xverbose_DEPENDENCIES) $(EXTRA_personality_Xverbose_DEPENDENCIES)
+ @rm -f personality-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS)
+
pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES)
@rm -f pipe$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
@@ -5185,6 +5763,10 @@
@rm -f prctl-securebits$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
+prctl-spec-inject$(EXEEXT): $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_DEPENDENCIES) $(EXTRA_prctl_spec_inject_DEPENDENCIES)
+ @rm -f prctl-spec-inject$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_LDADD) $(LIBS)
+
prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES)
@rm -f prctl-tid_address$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
@@ -5669,10 +6251,34 @@
@rm -f so_peercred$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_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)
+
+so_peercred-Xraw$(EXEEXT): $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_DEPENDENCIES) $(EXTRA_so_peercred_Xraw_DEPENDENCIES)
+ @rm -f so_peercred-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_LDADD) $(LIBS)
+
+so_peercred-Xverbose$(EXEEXT): $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_DEPENDENCIES) $(EXTRA_so_peercred_Xverbose_DEPENDENCIES)
+ @rm -f so_peercred-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_LDADD) $(LIBS)
+
sock_filter-v$(EXEEXT): $(sock_filter_v_OBJECTS) $(sock_filter_v_DEPENDENCIES) $(EXTRA_sock_filter_v_DEPENDENCIES)
@rm -f sock_filter-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(sock_filter_v_OBJECTS) $(sock_filter_v_LDADD) $(LIBS)
+sock_filter-v-Xabbrev$(EXEEXT): $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_DEPENDENCIES) $(EXTRA_sock_filter_v_Xabbrev_DEPENDENCIES)
+ @rm -f sock_filter-v-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_LDADD) $(LIBS)
+
+sock_filter-v-Xraw$(EXEEXT): $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_DEPENDENCIES) $(EXTRA_sock_filter_v_Xraw_DEPENDENCIES)
+ @rm -f sock_filter-v-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_LDADD) $(LIBS)
+
+sock_filter-v-Xverbose$(EXEEXT): $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_DEPENDENCIES) $(EXTRA_sock_filter_v_Xverbose_DEPENDENCIES)
+ @rm -f sock_filter-v-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_LDADD) $(LIBS)
+
socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES)
@rm -f socketcall$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
@@ -5960,6 +6566,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adjtimex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aio_pgetevents.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alarm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/answer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-f-p-cmd.Po@am__quote@
@@ -5967,6 +6574,12 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/brk.Po@am__quote@
@@ -6009,6 +6622,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64_64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallocate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@
@@ -6080,12 +6696,16 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_inotify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop-nv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_mtd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_nsfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_perf-success.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_perf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_ptp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_rtc-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_rtc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_scsi.Po@am__quote@
@@ -6099,9 +6719,21 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ip_mreq.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@
@@ -6109,6 +6741,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kexec_file_load.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kexec_load.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@
@@ -6162,13 +6797,22 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlock2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlockall.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64-mmap64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg-silent.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg_name-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg_name.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modify_ldt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mq.Po@am__quote@
@@ -6221,7 +6865,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifaddrlblmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifaddrmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifinfomsg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_af_spec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_brport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_linkinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_port.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@
@@ -6246,6 +6892,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls-d.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-P.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-v-none.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldfstat.Po@am__quote@
@@ -6263,6 +6912,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open_nonverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open_unabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@
@@ -6282,6 +6934,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-seccomp-filter-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-seccomp-strict.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-securebits.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-spec-inject.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-tid_address.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-tsc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po@am__quote@
@@ -6402,7 +7055,13 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigsuspend.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketcall.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockopt-sol_netlink.Po@am__quote@
@@ -6929,6 +7588,48 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
+mmap64_Xabbrev-mmap64-Xabbrev.o: mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.o -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-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) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+
+mmap64_Xabbrev-mmap64-Xabbrev.obj: mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.obj -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-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) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+
+mmap64_Xraw-mmap64-Xraw.o: mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.o -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-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) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+
+mmap64_Xraw-mmap64-Xraw.obj: mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.obj -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-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) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+
+mmap64_Xverbose-mmap64-Xverbose.o: mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.o -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-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) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+
+mmap64_Xverbose-mmap64-Xverbose.obj: mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.obj -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-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) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+
newfstatat-newfstatat.o: newfstatat.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
@@ -7480,6 +8181,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7489,6 +8193,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7576,6 +8292,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7768,6 +8493,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7786,6 +8514,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7828,12 +8562,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7852,6 +8622,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7915,9 +8694,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7936,6 +8733,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -8062,9 +8868,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8137,6 +8949,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8179,6 +9000,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -8509,9 +9339,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8593,6 +9441,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
diff --git a/tests-mx32/add_key.c b/tests-mx32/add_key.c
index 999da03..9ad5e28 100644
--- a/tests-mx32/add_key.c
+++ b/tests-mx32/add_key.c
@@ -2,7 +2,7 @@
* Check decoding of add_key syscall.
*
* Copyright (c) 2016 Eugene Syromyatnikov <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -102,7 +102,7 @@
{ bogus_desc, NULL },
{ ARG_STR("\25\26\27\30\31") },
{ ARG_STR("desc") },
- { "overly long description", _STR("overly long ") "..." },
+ { "overly long description", STRINGIFY("overly long ") "..." },
};
struct {
@@ -113,10 +113,10 @@
{ ARG_STR(NULL), 0 },
{ bogus_payload + sizeof(unterminated3), NULL,
(size_t) 0xdeadbeefbadc0dedULL },
- { bogus_payload, _STR(""), 0 },
- { bogus_payload, _STR("\16\17\20\21\22"), 5 },
+ { bogus_payload, STRINGIFY(""), 0 },
+ { bogus_payload, STRINGIFY("\16\17\20\21\22"), 5 },
{ bogus_payload, NULL, 10 },
- { "overly long payload", _STR("overly long ") "...", 15 },
+ { "overly long payload", STRINGIFY("overly long ") "...", 15 },
};
struct {
diff --git a/tests-mx32/aio.c b/tests-mx32/aio.c
index 335bb31..ea18700 100644
--- a/tests-mx32/aio.c
+++ b/tests-mx32/aio.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -335,7 +335,7 @@
"}, {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]) = %s\n",
+ "}, {NULL}, {%#lx}, ... /* %p */]) = %s\n",
*ctx, 1057L,
cbv2[0].aio_data, cbv2[0].aio_key,
cbv2[0].aio_lio_opcode, cbv2[0].aio_fildes,
diff --git a/tests-mx32/aio_pgetevents.c b/tests-mx32/aio_pgetevents.c
new file mode 100644
index 0000000..ba5ac71
--- /dev/null
+++ b/tests-mx32/aio_pgetevents.c
@@ -0,0 +1,190 @@
+/*
+ * Check decoding of io_pgetevents syscall.
+ *
+ * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+#include <unistd.h>
+#include <asm/unistd.h>
+#include "scno.h"
+
+#if defined __NR_io_setup && defined __NR_io_pgetevents
+
+# include <fcntl.h>
+# include <inttypes.h>
+# include <stdio.h>
+# include <time.h>
+
+# include "nsig.h"
+
+# include <linux/aio_abi.h>
+
+# if !HAVE_STRUCT___AIO_SIGSET
+struct __aio_sigset {
+ sigset_t *sigmask;
+ size_t sigsetsize;
+};
+# endif
+
+static const char *errstr;
+
+static long
+sys_io_pgetevents(const kernel_ulong_t ctx_id,
+ const kernel_long_t min_nr,
+ const kernel_long_t nr,
+ const kernel_ulong_t events,
+ const kernel_ulong_t timeout,
+ const kernel_ulong_t usig)
+{
+ long rc = syscall(__NR_io_pgetevents, ctx_id, min_nr, nr,
+ events, timeout, usig);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t bogus_ctx =
+ (kernel_ulong_t) 0xface1e55deadbeefLL;
+ static const kernel_long_t bogus_min_nr =
+ (kernel_long_t) 0xca7faceddeadf00dLL;
+ static const kernel_long_t bogus_nr =
+ (kernel_long_t) 0xba5e1e505ca571e0LL;
+ static const size_t bogus_sigsetsize =
+ (size_t) 0xdeadbeefbadcaffeULL;
+
+ const unsigned int sizeof_data0 = 4096;
+ const unsigned int sizeof_data1 = 8192;
+ void *data0 = tail_alloc(sizeof_data0);
+ void *data1 = tail_alloc(sizeof_data1);
+
+ const struct iocb proto_cb[] = {
+ {
+ .aio_data = (unsigned long) 0xfeedface11111111ULL,
+ .aio_reqprio = 11,
+ .aio_buf = (unsigned long) data0,
+ .aio_offset = (unsigned long) 0xdeface1facefeedULL,
+ .aio_nbytes = sizeof_data0
+ },
+ {
+ .aio_data = (unsigned long) 0xfeedface22222222ULL,
+ .aio_reqprio = 22,
+ .aio_buf = (unsigned long) data1,
+ .aio_offset = (unsigned long) 0xdeface2cafef00dULL,
+ .aio_nbytes = sizeof_data1
+ }
+ };
+ const struct iocb *cb = tail_memdup(proto_cb, sizeof(proto_cb));
+
+ const long proto_cbs[] = {
+ (long) &cb[0], (long) &cb[1]
+ };
+ const long *cbs = tail_memdup(proto_cbs, sizeof(proto_cbs));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned long, ctx);
+ *ctx = 0;
+
+ const unsigned int nr = ARRAY_SIZE(proto_cb);
+
+ const struct io_event *ev = tail_alloc(nr * sizeof(struct io_event));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct __aio_sigset, ss);
+ TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, sigs);
+
+ (void) close(0);
+ if (open("/dev/zero", O_RDONLY))
+ perror_msg_and_skip("open: %s", "/dev/zero");
+
+ if (syscall(__NR_io_setup, nr, ctx))
+ perror_msg_and_skip("io_setup");
+
+ if (syscall(__NR_io_submit, *ctx, nr, cbs) != (long) nr)
+ perror_msg_and_skip("io_submit");
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ (uintptr_t) (ev + 1), 0, 0);
+ printf("io_pgetevents(%#jx, %ld, %ld, %p, NULL, NULL) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ev + 1, errstr);
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, (uintptr_t) (ts + 1), 0);
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, %p, NULL) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ts + 1, errstr);
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, 0, (uintptr_t) (ss + 1));
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, NULL, %p) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ss + 1, errstr);
+
+ ss->sigmask = sigs + 1;
+ ss->sigsetsize = bogus_sigsetsize;
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, 0, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, NULL"
+ ", {sigmask=%p, sigsetsize=%zu}) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, sigs + 1, bogus_sigsetsize, errstr);
+
+ ts->tv_sec = 0xdeadbeefU;
+ ts->tv_nsec = 0xfacefeedU;
+ ss->sigmask = sigs;
+ ss->sigsetsize = NSIG_BYTES;
+ sys_io_pgetevents(bogus_ctx, 0, 0, 0, (uintptr_t) ts, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, 0, 0, NULL"
+ ", {tv_sec=%lld, tv_nsec=%llu}"
+ ", {sigmask=~[], sigsetsize=%u}) = %s\n",
+ (uintmax_t) bogus_ctx, (long long) ts->tv_sec,
+ zero_extend_signed_to_ull(ts->tv_nsec), NSIG_BYTES,
+ errstr);
+
+ sigemptyset(sigs);
+ sigaddset(sigs, SIGSYS);
+
+ ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL;
+ ts->tv_nsec = (long) 0xbadc0dedfacefeedLL;
+ sys_io_pgetevents(bogus_ctx, 0, 0, 0, (uintptr_t) ts, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, 0, 0, NULL"
+ ", {tv_sec=%lld, tv_nsec=%llu}"
+ ", {sigmask=[SYS], sigsetsize=%u}) = %s\n",
+ (uintmax_t) bogus_ctx, (long long) ts->tv_sec,
+ zero_extend_signed_to_ull(ts->tv_nsec), NSIG_BYTES,
+ errstr);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_io_setup && __NR_io_pgetevents")
+
+#endif
diff --git a/tests-mx32/aio_pgetevents.gen.test b/tests-mx32/aio_pgetevents.gen.test
new file mode 100755
index 0000000..7ea3874
--- /dev/null
+++ b/tests-mx32/aio_pgetevents.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (aio_pgetevents -e trace=io_pgetevents); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=io_pgetevents
diff --git a/tests-mx32/bpf-obj_get_info_by_fd-prog-v.c b/tests-mx32/bpf-obj_get_info_by_fd-prog-v.c
new file mode 100644
index 0000000..d7e10b4
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd-prog-v.c
@@ -0,0 +1,3 @@
+#define CHECK_OBJ_PROG 1
+#define VERBOSE 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests-mx32/bpf-obj_get_info_by_fd-prog-v.gen.test b/tests-mx32/bpf-obj_get_info_by_fd-prog-v.gen.test
new file mode 100755
index 0000000..fcaa1d8
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd-prog-v.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-prog-v -a20 -y -v -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -v -e trace=bpf
diff --git a/tests-mx32/bpf-obj_get_info_by_fd-prog.c b/tests-mx32/bpf-obj_get_info_by_fd-prog.c
new file mode 100644
index 0000000..19a5f75
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd-prog.c
@@ -0,0 +1,2 @@
+#define CHECK_OBJ_PROG 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests-mx32/bpf-obj_get_info_by_fd-prog.gen.test b/tests-mx32/bpf-obj_get_info_by_fd-prog.gen.test
new file mode 100755
index 0000000..8cbd7c0
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd-prog.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-prog -a20 -y -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -e trace=bpf
diff --git a/tests-mx32/bpf-obj_get_info_by_fd-v.c b/tests-mx32/bpf-obj_get_info_by_fd-v.c
new file mode 100644
index 0000000..2debc5f
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd-v.c
@@ -0,0 +1,2 @@
+#define VERBOSE 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests-mx32/bpf-obj_get_info_by_fd-v.gen.test b/tests-mx32/bpf-obj_get_info_by_fd-v.gen.test
new file mode 100755
index 0000000..255d91e
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd-v.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-v -a20 -y -v -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -v -e trace=bpf
diff --git a/tests-mx32/bpf-obj_get_info_by_fd.c b/tests-mx32/bpf-obj_get_info_by_fd.c
new file mode 100644
index 0000000..67b5122
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd.c
@@ -0,0 +1,499 @@
+/*
+ * Check bpf(BPF_OBJ_GET_INFO_BY_FD) decoding.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifndef CHECK_OBJ_PROG
+# define CHECK_OBJ_PROG 0
+#endif
+
+#include <inttypes.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/sysmacros.h>
+#include <asm/unistd.h>
+
+#include "print_fields.h"
+#include "scno.h"
+
+#ifdef HAVE_LINUX_BPF_H
+# include <linux/bpf.h>
+#endif
+
+#include "bpf_attr.h"
+
+#include "xlat.h"
+#include "xlat/bpf_map_flags.h"
+#include "xlat/bpf_map_types.h"
+#include "xlat/bpf_prog_types.h"
+
+#define XLAT_MACROS_ONLY
+#include "xlat/bpf_commands.h"
+#include "xlat/bpf_op_alu.h"
+#include "xlat/bpf_op_jmp.h"
+#include "xlat/bpf_size.h"
+#include "xlat/bpf_src.h"
+#include "xlat/ebpf_class.h"
+#include "xlat/ebpf_mode.h"
+#include "xlat/ebpf_op_alu.h"
+#include "xlat/ebpf_regs.h"
+#include "xlat/ebpf_size.h"
+
+#ifndef HAVE_STRUCT_BPF_INSN
+struct bpf_insn {
+ uint8_t code;
+ uint8_t dst_reg:4;
+ uint8_t src_reg:4;
+ int16_t off;
+ int32_t imm;
+};
+#endif
+
+static const char *errstr;
+
+static long
+sys_bpf(kernel_ulong_t cmd, void *attr, kernel_ulong_t size)
+{
+ long rc = syscall(__NR_bpf, cmd, attr, size);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+static void
+print_map_create(void *attr_void, size_t size, long rc)
+{
+ /* struct BPF_MAP_CREATE_struct *attr = attr_void; */
+
+ printf("bpf(BPF_MAP_CREATE, {map_type=BPF_MAP_TYPE_ARRAY, key_size=4"
+ ", value_size=8, max_entries=1");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_flags))
+ printf(", map_flags=0");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, inner_map_fd))
+ printf(", inner_map_fd=0</dev/null>");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_name))
+ printf(", map_name=\"test_map\"");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_ifindex))
+ printf(", map_ifindex=0");
+ printf("}, %zu) = ", size);
+ if (rc >= 0)
+ printf("%ld<anon_inode:bpf-map>\n", rc);
+ else
+ puts(errstr);
+}
+
+#if CHECK_OBJ_PROG
+static struct bpf_insn socket_prog[] = {
+ { /* 0 */
+ .code = BPF_ALU64 | BPF_K | BPF_MOV,
+ .dst_reg = BPF_REG_1,
+ .imm = 0,
+ },
+ { /* 1 */
+ .code = BPF_STX | BPF_W | BPF_MEM,
+ .dst_reg = BPF_REG_10,
+ .src_reg = BPF_REG_1,
+ .off = -4,
+ },
+ { /* 2 */
+ .code = BPF_ALU64 | BPF_X | BPF_MOV,
+ .dst_reg = BPF_REG_2,
+ .src_reg = BPF_REG_10,
+ },
+ { /* 3 */
+ .code = BPF_ALU64 | BPF_K | BPF_ADD,
+ .dst_reg = BPF_REG_2,
+ .imm = -4,
+ },
+ { /* 4 */
+ .code = BPF_LD | BPF_DW | BPF_IMM,
+ .dst_reg = BPF_REG_1,
+ .src_reg = 1 /* BPF_PSEUDO_MAP_FD */,
+ .imm = 0, /* to be set to map fd */
+ },
+ { /* 5 */
+ .imm = 0,
+ },
+ { /* 6 */
+ .code = BPF_JMP | BPF_K | BPF_CALL,
+ .imm = 0x1, /* BPF_FUNC_map_lookup_elem */
+ },
+ { /* 7 */
+ .code = BPF_ALU64 | BPF_K | BPF_MOV,
+ .dst_reg = BPF_REG_0,
+ .imm = 0,
+ },
+ { /* 8 */
+ .code = BPF_JMP | BPF_K | BPF_EXIT,
+ },
+};
+
+# if VERBOSE
+static const char *socket_prog_fmt =
+ "[{code=BPF_ALU64|BPF_K|BPF_MOV"
+ ", dst_reg=BPF_REG_1, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_STX|BPF_W|BPF_MEM"
+ ", dst_reg=BPF_REG_10, src_reg=BPF_REG_1, off=-4, imm=0}"
+ ", {code=BPF_ALU64|BPF_X|BPF_MOV"
+ ", dst_reg=BPF_REG_2, src_reg=BPF_REG_10, off=0, imm=0}"
+ ", {code=BPF_ALU64|BPF_K|BPF_ADD"
+ ", dst_reg=BPF_REG_2, src_reg=BPF_REG_0, off=0, imm=0xfffffffc}"
+ ", {code=BPF_LD|BPF_DW|BPF_IMM"
+ ", dst_reg=BPF_REG_1, src_reg=BPF_REG_1, off=0, imm=%#x}"
+ ", {code=BPF_LD|BPF_W|BPF_IMM"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_JMP|BPF_K|BPF_CALL"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0x1}"
+ ", {code=BPF_ALU64|BPF_K|BPF_MOV"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_JMP|BPF_K|BPF_EXIT"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ "]";
+# endif /* VERBOSE */
+
+static const char *license = "BSD";
+static char log_buf[4096];
+
+static void
+print_prog_load(void *attr_void, size_t size, long rc)
+{
+ printf("bpf(BPF_PROG_LOAD, {prog_type=BPF_PROG_TYPE_SOCKET_FILTER"
+ ", insn_cnt=%zu, insns=", ARRAY_SIZE(socket_prog));
+# if VERBOSE
+ printf(socket_prog_fmt, socket_prog[4].imm);
+# else
+ printf("%p", socket_prog);
+# endif
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, license))
+ printf(", license=\"BSD\"");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, log_buf))
+ printf(", log_level=42, log_size=%zu, log_buf=\"\"",
+ sizeof(log_buf));
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, kern_version))
+ printf(", kern_version=KERNEL_VERSION(57005, 192, 222)");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_flags))
+ printf(", prog_flags=0");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_name))
+ printf(", prog_name=\"test_prog\"");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_ifindex))
+ printf(", prog_ifindex=0");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, expected_attach_type))
+ printf(", expected_attach_type=BPF_CGROUP_INET_INGRESS");
+ printf("}, %zu) = ", size);
+ if (rc >= 0)
+ printf("%ld<anon_inode:bpf-prog>\n", rc);
+ else
+ puts(errstr);
+}
+#endif /* CHECK_OBJ_PROG */
+
+static long
+try_bpf(kernel_ulong_t cmd, void (*printer)(void *attr, size_t size, long rc),
+ void *attr, size_t **sizes)
+{
+ long rc;
+
+ for (rc = -1; **sizes; (*sizes)++) {
+ rc = sys_bpf(cmd, attr, **sizes);
+ printer(attr, **sizes, rc);
+
+ if (rc >= 0)
+ break;
+ }
+
+ return rc;
+}
+
+int
+main(void)
+{
+ struct BPF_MAP_CREATE_struct bpf_map_create_attr = {
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .key_size = 4,
+ .value_size = 8,
+ .max_entries = 1,
+ .map_name = "test_map",
+ };
+ size_t bpf_map_create_attr_sizes[] = {
+ sizeof(bpf_map_create_attr),
+ offsetofend(struct BPF_MAP_CREATE_struct, max_entries),
+ 0,
+ };
+
+#if CHECK_OBJ_PROG
+ struct BPF_PROG_LOAD_struct bpf_prog_load_attr = {
+ .prog_type = BPF_PROG_TYPE_SOCKET_FILTER,
+ .insn_cnt = ARRAY_SIZE(socket_prog),
+ .insns = (uintptr_t) socket_prog,
+ .license = (uintptr_t) license,
+ .log_level = 42,
+ .log_size = sizeof(log_buf),
+ .log_buf = (uintptr_t) log_buf,
+ .kern_version = 0xdeadc0de,
+ .prog_name = "test_prog",
+ };
+ size_t bpf_prog_load_attr_sizes[] = {
+ sizeof(bpf_prog_load_attr),
+ offsetofend(struct BPF_PROG_LOAD_struct, prog_name),
+ offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
+ offsetofend(struct BPF_PROG_LOAD_struct, kern_version),
+ offsetofend(struct BPF_PROG_LOAD_struct, log_buf),
+ offsetofend(struct BPF_PROG_LOAD_struct, license),
+ offsetofend(struct BPF_PROG_LOAD_struct, insns),
+ 0,
+ };
+#endif /* CHECK_OBJ_PROG */
+
+ size_t *bpf_map_create_attr_size = bpf_map_create_attr_sizes;
+ int map_fd = try_bpf(BPF_MAP_CREATE, print_map_create,
+ &bpf_map_create_attr, &bpf_map_create_attr_size);
+ if (map_fd < 0)
+ perror_msg_and_skip("BPF_MAP_CREATE failed");
+
+#if CHECK_OBJ_PROG
+ socket_prog[4].imm = map_fd;
+
+ size_t *bpf_prog_load_attr_size = bpf_prog_load_attr_sizes;
+ int prog_fd = try_bpf(BPF_PROG_LOAD, print_prog_load,
+ &bpf_prog_load_attr, &bpf_prog_load_attr_size);
+ if (prog_fd < 0)
+ perror_msg_and_skip("BPF_PROG_LOAD failed (log: \"%s\")",
+ log_buf);
+#endif /* CHECK_OBJ_PROG */
+
+ /*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+ #define MAP_INFO_SZ (sizeof(*map_info) + 64)
+ struct bpf_map_info_struct *map_info = calloc(1, MAP_INFO_SZ);
+ struct BPF_OBJ_GET_INFO_BY_FD_struct bpf_map_get_info_attr = {
+ .bpf_fd = map_fd,
+ .info_len = MAP_INFO_SZ,
+ .info = (uintptr_t) map_info,
+ };
+
+ int ret = sys_bpf(BPF_OBJ_GET_INFO_BY_FD, &bpf_map_get_info_attr,
+ sizeof(bpf_map_get_info_attr));
+ if (ret < 0)
+ perror_msg_and_skip("BPF_OBJ_GET_INFO_BY_FD map failed");
+
+ printf("bpf(BPF_OBJ_GET_INFO_BY_FD"
+ ", {info={bpf_fd=%d<anon_inode:bpf-map>, info_len=%zu",
+ map_fd, MAP_INFO_SZ);
+ if (bpf_map_get_info_attr.info_len != MAP_INFO_SZ)
+ printf(" => %u", bpf_map_get_info_attr.info_len);
+
+ printf(", info=");
+#if VERBOSE
+ printf("{type=");
+ printxval(bpf_map_types, map_info->type, "BPF_MAP_TYPE_???");
+ PRINT_FIELD_U(", ", *map_info, id);
+ PRINT_FIELD_U(", ", *map_info, key_size);
+ PRINT_FIELD_U(", ", *map_info, value_size);
+ PRINT_FIELD_U(", ", *map_info, max_entries);
+ printf(", map_flags=");
+ printflags(bpf_map_flags, map_info->map_flags, "BPF_F_???");
+
+ if (bpf_map_get_info_attr.info_len >
+ offsetof(struct bpf_map_info_struct, name)) {
+ printf(", name=");
+ print_quoted_cstring(map_info->name, sizeof(map_info->name));
+ }
+ 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, netns_dev))
+ printf(", netns_dev=makedev(%u, %u)",
+ major(map_info->netns_dev), minor(map_info->netns_dev));
+ if (bpf_map_get_info_attr.info_len >
+ offsetof(struct bpf_map_info_struct, netns_ino))
+ printf(", netns_ino=%" PRIu64, map_info->netns_ino);
+ printf("}");
+#else /* !VERBOSE */
+ printf("%p", map_info);
+#endif /* VERBOSE */
+ printf("}}, %zu) = %s\n", sizeof(bpf_map_get_info_attr), errstr);
+
+#if CHECK_OBJ_PROG
+ /*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+ #define PROG_INFO_SZ (sizeof(*prog_info) + 64)
+ struct bpf_prog_info_struct *prog_info = calloc(1, PROG_INFO_SZ);
+ struct bpf_insn *xlated_prog = tail_alloc(sizeof(*xlated_prog) * 42);
+ uint32_t *map_ids = tail_alloc(sizeof(*map_ids) * 2);
+ struct BPF_OBJ_GET_INFO_BY_FD_struct bpf_prog_get_info_attr = {
+ .bpf_fd = prog_fd,
+ .info_len = PROG_INFO_SZ,
+ .info = (uintptr_t) prog_info,
+ };
+ size_t old_prog_info_len = PROG_INFO_SZ;
+
+ for (unsigned int i = 0; i < 4; i++) {
+ prog_info->jited_prog_len = 0;
+ switch (i) {
+ case 1:
+ prog_info->xlated_prog_insns =
+ (uintptr_t) (xlated_prog + 42);
+ prog_info->xlated_prog_len = 336;
+ prog_info->map_ids = (uintptr_t) (map_ids + 2);
+ prog_info->nr_map_ids = 2;
+ break;
+ case 2:
+ prog_info->xlated_prog_insns = (uintptr_t) xlated_prog;
+ /* TODO: check xlated_prog output */
+ prog_info->xlated_prog_len = 0;
+ prog_info->map_ids = (uintptr_t) map_ids;
+ prog_info->nr_map_ids = 0;
+ break;
+ case 3:
+ prog_info->xlated_prog_insns = (uintptr_t) xlated_prog;
+ prog_info->xlated_prog_len = 0;
+ prog_info->map_ids = (uintptr_t) map_ids;
+ prog_info->nr_map_ids = 2;
+ break;
+ }
+
+ ret = sys_bpf(BPF_OBJ_GET_INFO_BY_FD, &bpf_prog_get_info_attr,
+ sizeof(bpf_prog_get_info_attr));
+ if (i != 1 && ret < 0)
+ perror_msg_and_skip("BPF_OBJ_GET_INFO_BY_FD"
+ " prog %u failed", i);
+
+ printf("bpf(BPF_OBJ_GET_INFO_BY_FD"
+ ", {info={bpf_fd=%d<anon_inode:bpf-prog>, info_len=%zu",
+ prog_fd, old_prog_info_len);
+ if (!i && bpf_prog_get_info_attr.info_len != PROG_INFO_SZ)
+ printf(" => %u", bpf_prog_get_info_attr.info_len);
+ old_prog_info_len = bpf_prog_get_info_attr.info_len;
+
+ printf(", info=");
+# if VERBOSE
+ printf("{type=");
+ printxval(bpf_prog_types, prog_info->type, "BPF_PROG_TYPE_???");
+ PRINT_FIELD_U(", ", *prog_info, id);
+ printf(", tag=");
+ print_quoted_hex(prog_info->tag, sizeof(prog_info->tag));
+ printf(", jited_prog_len=0");
+ if (prog_info->jited_prog_len)
+ printf(" => %u", prog_info->jited_prog_len);
+ printf(", jited_prog_insns=NULL");
+ switch (i) {
+ case 0:
+ printf(", xlated_prog_len=0");
+ if (prog_info->xlated_prog_len)
+ printf(" => %u", prog_info->xlated_prog_len);
+ printf(", xlated_prog_insns=NULL");
+ break;
+ case 1:
+ printf(", xlated_prog_len=336");
+ if (prog_info->xlated_prog_len != 336)
+ printf(" => %u", prog_info->xlated_prog_len);
+ if (prog_info->xlated_prog_len)
+ printf(", xlated_prog_insns=%p", xlated_prog + 42);
+ else
+ printf(", xlated_prog_insns=[]");
+ break;
+ case 2:
+ case 3:
+ printf(", xlated_prog_len=0");
+ if (prog_info->xlated_prog_len)
+ printf(" => %u", prog_info->xlated_prog_len);
+ printf(", xlated_prog_insns=[]");
+ break;
+ }
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, load_time))
+ printf(", load_time=%" PRIu64, prog_info->load_time);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, created_by_uid))
+ printf(", created_by_uid=%u",
+ prog_info->created_by_uid);
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, map_ids)) {
+ switch (i) {
+ case 0:
+ printf(", nr_map_ids=0");
+ if (prog_info->nr_map_ids)
+ printf(" => 1");
+ printf(", map_ids=NULL");
+ break;
+ case 1:
+ printf(", nr_map_ids=2, map_ids=%p",
+ map_ids + 2);
+ break;
+ case 2:
+ printf(", nr_map_ids=0");
+ if (prog_info->nr_map_ids)
+ printf(" => 1");
+ printf(", map_ids=[]");
+ break;
+ case 3:
+ printf(", nr_map_ids=2");
+ if (prog_info->nr_map_ids != 2)
+ printf(" => 1");
+ printf(", map_ids=[%u]", map_info->id);
+ break;
+ }
+ }
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, name))
+ printf(", name=\"test_prog\"");
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, ifindex))
+ printf(", ifindex=%u", prog_info->ifindex);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, netns_dev))
+ printf(", netns_dev=makedev(%u, %u)",
+ major(prog_info->netns_dev),
+ minor(prog_info->netns_dev));
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, netns_ino))
+ printf(", netns_ino=%" PRIu64, prog_info->netns_ino);
+
+ printf("}");
+# else /* !VERBOSE */
+ printf("%p", prog_info);
+# endif /* VERBOSE */
+ printf("}}, %zu) = %s\n",
+ sizeof(bpf_prog_get_info_attr), errstr);
+ }
+#endif /* CHECK_OBJ_PROG */
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-mx32/bpf-obj_get_info_by_fd.gen.test b/tests-mx32/bpf-obj_get_info_by_fd.gen.test
new file mode 100755
index 0000000..0efa59a
--- /dev/null
+++ b/tests-mx32/bpf-obj_get_info_by_fd.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd -a20 -y -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -e trace=bpf
diff --git a/tests-mx32/bpf-success-v.c b/tests-mx32/bpf-success-v.c
new file mode 100644
index 0000000..48c2a16
--- /dev/null
+++ b/tests-mx32/bpf-success-v.c
@@ -0,0 +1,2 @@
+#define INJECT_RETVAL 42
+#include "bpf-v.c"
diff --git a/tests-mx32/bpf-success-v.test b/tests-mx32/bpf-success-v.test
new file mode 100755
index 0000000..819afbb
--- /dev/null
+++ b/tests-mx32/bpf-success-v.test
@@ -0,0 +1,6 @@
+#!/bin/sh -efu
+
+. "${srcdir=.}/scno_tampering.sh"
+
+run_strace -a20 -v -e trace=bpf -e inject=bpf:retval=42 ../bpf-success-v > "$EXP"
+match_diff "$LOG" "$EXP"
diff --git a/tests-mx32/bpf-success.c b/tests-mx32/bpf-success.c
new file mode 100644
index 0000000..06f4695
--- /dev/null
+++ b/tests-mx32/bpf-success.c
@@ -0,0 +1,2 @@
+#define INJECT_RETVAL 42
+#include "bpf.c"
diff --git a/tests-mx32/bpf-success.test b/tests-mx32/bpf-success.test
new file mode 100755
index 0000000..3cdfd35
--- /dev/null
+++ b/tests-mx32/bpf-success.test
@@ -0,0 +1,6 @@
+#!/bin/sh -efu
+
+. "${srcdir=.}/scno_tampering.sh"
+
+run_strace -a20 -e trace=bpf -e inject=bpf:retval=42 ../bpf-success > "$EXP"
+match_diff "$LOG" "$EXP"
diff --git a/tests-mx32/bpf.c b/tests-mx32/bpf.c
index 72d7e8e..15ce713 100644
--- a/tests-mx32/bpf.c
+++ b/tests-mx32/bpf.c
@@ -49,6 +49,19 @@
#include "xlat.h"
#include "xlat/bpf_commands.h"
+#if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4
+# define BIG_ADDR(addr64_, addr32_) addr64_
+# 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(addr64_, addr32_) addr64_ " or " addr32_
+# define BIG_ADDR_MAYBE(addr_) addr_ " or "
+#else
+# define BIG_ADDR(addr64_, addr32_) addr32_
+# define BIG_ADDR_MAYBE(addr_)
+#endif
+
#ifndef HAVE_STRUCT_BPF_INSN
struct bpf_insn {
uint8_t code;
@@ -76,6 +89,8 @@
BPF_ATTR_DATA_FIELD(BPF_PROG_GET_FD_BY_ID);
BPF_ATTR_DATA_FIELD(BPF_MAP_GET_FD_BY_ID);
BPF_ATTR_DATA_FIELD(BPF_OBJ_GET_INFO_BY_FD);
+ BPF_ATTR_DATA_FIELD(BPF_PROG_QUERY);
+ BPF_ATTR_DATA_FIELD(BPF_RAW_TRACEPOINT_OPEN);
char char_data[256];
};
@@ -105,7 +120,20 @@
sys_bpf(kernel_ulong_t cmd, kernel_ulong_t attr, kernel_ulong_t size)
{
long rc = syscall(__NR_bpf, cmd, attr, size);
+
errstr = sprintrc(rc);
+
+#ifdef INJECT_RETVAL
+ if (rc != INJECT_RETVAL)
+ error_msg_and_fail("Got a return value of %ld != %d",
+ rc, INJECT_RETVAL);
+
+ static char inj_errstr[4096];
+
+ snprintf(inj_errstr, sizeof(inj_errstr), "%s (INJECTED)", errstr);
+ errstr = inj_errstr;
+#endif
+
return rc;
}
@@ -232,36 +260,173 @@
cmd_check->cmd_str, addr, page_size + 1, errstr);
}
-static const struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
+static void
+init_BPF_MAP_CREATE_attr7(struct bpf_attr_check *check)
+{
+ struct BPF_MAP_CREATE_struct *attr = &check->data.BPF_MAP_CREATE_data;
+ attr->map_ifindex = ifindex_lo();
+}
+
+static struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
{
.data = { .BPF_MAP_CREATE_data = { .map_type = 2 } },
.size = offsetofend(struct BPF_MAP_CREATE_struct, map_type),
.str = "map_type=BPF_MAP_TYPE_ARRAY, key_size=0, value_size=0"
- ", max_entries=0, map_flags=0, inner_map_fd=0"
+ ", max_entries=0"
},
- {
+ { /* 1 */
.data = { .BPF_MAP_CREATE_data = {
- .map_type = 1,
+ .map_type = 16,
.key_size = 4,
.value_size = 8,
.max_entries = 256,
- .map_flags = 7,
+ .map_flags = 63,
.inner_map_fd = -1,
- .numa_node = 42
+ .numa_node = 3141592653,
+ .map_name = "0123456789abcde",
} },
- .size = offsetofend(struct BPF_MAP_CREATE_struct, numa_node),
- .str = "map_type=BPF_MAP_TYPE_HASH, key_size=4"
+ .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8,
+ .str = "map_type=BPF_MAP_TYPE_CPUMAP, key_size=4"
", value_size=8, max_entries=256"
", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU"
- "|BPF_F_NUMA_NODE, inner_map_fd=-1, numa_node=42"
- }
+ "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY"
+ "|BPF_F_STACK_BUILD_ID"
+ ", inner_map_fd=-1"
+ ", numa_node=3141592653"
+ ", map_name=\"0123456\"...",
+
+ },
+ { /* 2 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 17,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xffffffc0,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "",
+ .map_ifindex = 3141592653,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex),
+ .str = "map_type=0x11 /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=0xffffffc0 /* BPF_F_??? */"
+ ", inner_map_fd=-1576685468"
+ ", map_name=\"\", map_ifindex=3141592653",
+
+ },
+ { /* 3 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_flags),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80",
+ },
+ { /* 4 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, inner_map_fd),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468",
+ },
+ { /* 5 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, numa_node),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */",
+ },
+ { /* 6 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "fedcba9876543210",
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_name),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */"
+ ", map_name=\"fedcba987654321\"...",
+ },
+ { /* 7 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "0123456789abcde",
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */"
+ ", map_name=\"0123456789abcde\""
+ ", map_ifindex=" IFINDEX_LO_STR,
+ .init_fn = init_BPF_MAP_CREATE_attr7,
+ },
};
static const struct bpf_attr_check BPF_MAP_LOOKUP_ELEM_checks[] = {
{
.data = { .BPF_MAP_LOOKUP_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0, value=0"
+ .str = "map_fd=-1, key=NULL, value=NULL"
},
{
.data = { .BPF_MAP_LOOKUP_ELEM_data = {
@@ -278,7 +443,7 @@
{
.data = { .BPF_MAP_UPDATE_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_UPDATE_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0, value=0, flags=BPF_ANY"
+ .str = "map_fd=-1, key=NULL, value=NULL, flags=BPF_ANY"
},
{
.data = { .BPF_MAP_UPDATE_ELEM_data = {
@@ -297,7 +462,7 @@
{
.data = { .BPF_MAP_DELETE_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_DELETE_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0"
+ .str = "map_fd=-1, key=NULL"
},
{
.data = { .BPF_MAP_DELETE_ELEM_data = {
@@ -313,7 +478,7 @@
{
.data = { .BPF_MAP_GET_NEXT_KEY_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_GET_NEXT_KEY_struct, map_fd),
- .str = "map_fd=-1, key=0, next_key=0"
+ .str = "map_fd=-1, key=NULL, next_key=NULL"
},
{
.data = { .BPF_MAP_GET_NEXT_KEY_data = {
@@ -327,30 +492,96 @@
};
static const struct bpf_insn insns[] = {
- { .code = 0x95 }
+ {
+ .code = 0x95,
+ .dst_reg = 10,
+ .src_reg = 11,
+ .off = 0xdead,
+ .imm = 0xbadc0ded,
+ },
};
static const char license[] = "GPL";
-static char log_buf[4096];
static const char pathname[] = "/sys/fs/bpf/foo/bar";
+static char *log_buf;
+/*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+#define log_buf_size 4096U
+
+static inline char *
+get_log_buf(void)
+{
+ if (!log_buf)
+ log_buf = tail_alloc(log_buf_size);
+ return log_buf;
+}
+
+static inline char *
+get_log_buf_tail(void)
+{
+ return get_log_buf() + log_buf_size;
+}
+
+#if VERBOSE
+# define INSNS_FMT \
+ "[{code=BPF_JMP|BPF_K|BPF_EXIT, dst_reg=BPF_REG_10" \
+ ", src_reg=0xb /* BPF_REG_??? */, off=%d, imm=%#x}]"
+# define INSNS_ARG insns[0].off, insns[0].imm
+#else
+# define INSNS_FMT "%p"
+# define INSNS_ARG insns
+#endif
+
static void
-init_BPF_PROG_LOAD_attr(struct bpf_attr_check *check)
+init_BPF_PROG_LOAD_attr3(struct bpf_attr_check *check)
{
struct BPF_PROG_LOAD_struct *attr = &check->data.BPF_PROG_LOAD_data;
+
attr->insns = (uintptr_t) insns;
attr->license = (uintptr_t) license;
- attr->log_buf = (uintptr_t) log_buf;
+ attr->log_buf = (uintptr_t) get_log_buf_tail();
}
static void
-print_BPF_PROG_LOAD_attr(const struct bpf_attr_check *check, unsigned long addr)
+print_BPF_PROG_LOAD_attr3(const struct bpf_attr_check *check, unsigned long addr)
{
- printf("prog_type=BPF_PROG_TYPE_SOCKET_FILTER, insn_cnt=%u, insns=%p"
- ", license=\"%s\", log_level=42, log_size=4096, log_buf=%p"
+ printf("prog_type=BPF_PROG_TYPE_SOCKET_FILTER, insn_cnt=%u"
+ ", insns=" INSNS_FMT ", license=\"%s\", log_level=2718281828"
+ ", log_size=%u, log_buf=%p"
", kern_version=KERNEL_VERSION(51966, 240, 13)"
- ", prog_flags=BPF_F_STRICT_ALIGNMENT",
- (unsigned int) ARRAY_SIZE(insns), insns,
- license, log_buf);
+ ", prog_flags=0x2 /* BPF_F_??? */"
+ ", prog_name=\"0123456789abcde\"..., prog_ifindex=3203399405",
+ (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license,
+ log_buf_size, get_log_buf_tail());
+}
+
+static void
+init_BPF_PROG_LOAD_attr4(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_LOAD_struct *attr = &check->data.BPF_PROG_LOAD_data;
+
+ attr->insns = (uintptr_t) insns;
+ attr->license = (uintptr_t) license;
+ attr->log_buf = (uintptr_t) get_log_buf();
+ attr->prog_ifindex = ifindex_lo();
+
+ strncpy(log_buf, "log test", 9);
+}
+
+static void
+print_BPF_PROG_LOAD_attr4(const struct bpf_attr_check *check, unsigned long addr)
+{
+ printf("prog_type=BPF_PROG_TYPE_UNSPEC, insn_cnt=%u, insns=" INSNS_FMT
+ ", license=\"%s\", log_level=2718281828, log_size=4"
+ ", log_buf=\"log \"..."
+ ", kern_version=KERNEL_VERSION(51966, 240, 13)"
+ ", prog_flags=BPF_F_STRICT_ALIGNMENT|0x2"
+ ", 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 struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
@@ -358,21 +589,82 @@
.data = { .BPF_PROG_LOAD_data = { .prog_type = 1 } },
.size = offsetofend(struct BPF_PROG_LOAD_struct, prog_type),
.str = "prog_type=BPF_PROG_TYPE_SOCKET_FILTER"
- ", insn_cnt=0, insns=0, license=NULL"
+ ", insn_cnt=0, insns=NULL, license=NULL"
},
- {
+ { /* 1 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 18,
+ .insn_cnt = 0xbadc0ded,
+ .insns = 0,
+ .license = 0,
+ .log_level = 42,
+ .log_size = 3141592653U,
+ .log_buf = 0,
+ .kern_version = 0xcafef00d,
+ .prog_flags = 0,
+ } },
+ .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
+ .str = "prog_type=0x12 /* 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)"
+ ", prog_flags=0",
+ },
+ { /* 2 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 17,
+ .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_RAW_TRACEPOINT"
+ ", 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\"",
+ },
+ { /* 3 */
.data = { .BPF_PROG_LOAD_data = {
.prog_type = 1,
.insn_cnt = ARRAY_SIZE(insns),
- .log_level = 42,
- .log_size = sizeof(log_buf),
+ .log_level = 2718281828U,
+ .log_size = log_buf_size,
.kern_version = 0xcafef00d,
- .prog_flags = 1
+ .prog_flags = 2,
+ .prog_name = "0123456789abcdef",
+ .prog_ifindex = 0xbeeffeed,
} },
- .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
- .init_fn = init_BPF_PROG_LOAD_attr,
- .print_fn = print_BPF_PROG_LOAD_attr
- }
+ .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_ifindex),
+ .init_fn = init_BPF_PROG_LOAD_attr3,
+ .print_fn = print_BPF_PROG_LOAD_attr3
+ },
+ { /* 4 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 0,
+ .insn_cnt = ARRAY_SIZE(insns),
+ .log_level = 2718281828U,
+ .log_size = 4,
+ .kern_version = 0xcafef00d,
+ .prog_flags = 3,
+ .prog_name = "0123456789abcdef",
+ .expected_attach_type = 9,
+ } },
+ .size = offsetofend(struct BPF_PROG_LOAD_struct,
+ expected_attach_type),
+ .init_fn = init_BPF_PROG_LOAD_attr4,
+ .print_fn = print_BPF_PROG_LOAD_attr4
+ },
};
static void
@@ -393,16 +685,7 @@
.pathname = 0xFFFFFFFFFFFFFFFFULL
} },
.size = offsetofend(struct BPF_OBJ_PIN_struct, pathname),
- .str = "pathname="
-#if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4
- "0xffffffffffffffff"
-#elif defined __arm__ || defined __i386__ || defined __mips__ || \
- defined __powerpc__ || defined __riscv__ || defined __s390__ \
- || defined __sparc__ || defined __tile__
- "0xffffffffffffffff or 0xffffffff"
-#else
- "0xffffffff"
-#endif
+ .str = "pathname=" BIG_ADDR("0xffffffffffffffff", "0xffffffff")
", bpf_fd=0",
},
{
@@ -468,7 +751,7 @@
.data = { .BPF_PROG_TEST_RUN_data = { .prog_fd = -1 } },
.size = offsetofend(struct BPF_PROG_TEST_RUN_struct, prog_fd),
.str = "test={prog_fd=-1, retval=0, data_size_in=0"
- ", data_size_out=0, data_in=0, data_out=0"
+ ", data_size_out=0, data_in=NULL, data_out=NULL"
", repeat=0, duration=0}"
},
{
@@ -594,7 +877,7 @@
{
.data = { .BPF_OBJ_GET_INFO_BY_FD_data = { .bpf_fd = -1 } },
.size = offsetofend(struct BPF_OBJ_GET_INFO_BY_FD_struct, bpf_fd),
- .str = "info={bpf_fd=-1, info_len=0, info=0}"
+ .str = "info={bpf_fd=-1, info_len=0, info=NULL}"
},
{
.data = { .BPF_OBJ_GET_INFO_BY_FD_data = {
@@ -608,6 +891,194 @@
}
};
+
+static uint32_t prog_load_ids[] = { 0, 1, 0xffffffff, 2718281828, };
+uint32_t *prog_load_ids_ptr;
+
+static void
+init_BPF_PROG_QUERY_attr4(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_QUERY_struct *attr = &check->data.BPF_PROG_QUERY_data;
+
+ if (!prog_load_ids_ptr)
+ prog_load_ids_ptr = tail_memdup(prog_load_ids,
+ sizeof(prog_load_ids));
+
+ attr->prog_ids = (uintptr_t) prog_load_ids_ptr;
+ attr->prog_cnt = ARRAY_SIZE(prog_load_ids);
+}
+
+static void
+print_BPF_PROG_QUERY_attr4(const struct bpf_attr_check *check, unsigned long addr)
+{
+ 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
+ ", prog_ids=[0, 1, 4294967295, 2718281828], prog_cnt=4}"
+#else
+ ", prog_ids=%p, prog_cnt=4}", prog_load_ids_ptr
+#endif
+ );
+}
+
+static void
+init_BPF_PROG_QUERY_attr5(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_QUERY_struct *attr = &check->data.BPF_PROG_QUERY_data;
+
+ if (!prog_load_ids_ptr)
+ prog_load_ids_ptr = tail_memdup(prog_load_ids,
+ sizeof(prog_load_ids));
+
+ attr->prog_ids = (uintptr_t) prog_load_ids_ptr;
+ attr->prog_cnt = ARRAY_SIZE(prog_load_ids) + 1;
+}
+
+static void
+print_BPF_PROG_QUERY_attr5(const struct bpf_attr_check *check, unsigned long addr)
+{
+ 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
+ ", prog_ids=[0, 1, 4294967295, 2718281828, ... /* %p */]"
+ ", prog_cnt=5}",
+ prog_load_ids_ptr + ARRAY_SIZE(prog_load_ids)
+#else
+ ", prog_ids=%p, prog_cnt=5}", prog_load_ids_ptr
+#endif
+ );
+}
+
+static struct bpf_attr_check BPF_PROG_QUERY_checks[] = {
+ {
+ .data = { .BPF_PROG_QUERY_data = { .target_fd = -1 } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, target_fd),
+ .str = "query={target_fd=-1"
+ ", attach_type=BPF_CGROUP_INET_INGRESS, query_flags=0"
+ ", attach_flags=0, prog_ids=NULL, prog_cnt=0}",
+ },
+ { /* 1 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 13,
+ .query_flags = 1,
+ .attach_flags = 3,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, attach_flags),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=BPF_CGROUP_INET6_POST_BIND"
+ ", query_flags=BPF_F_QUERY_EFFECTIVE"
+ ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI"
+ ", prog_ids=NULL, prog_cnt=0}",
+ },
+ { /* 2 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 14,
+ .query_flags = 0xfffffffe,
+ .attach_flags = 0xfffffffc,
+ .prog_ids = 0xffffffffffffffffULL,
+ .prog_cnt = 2718281828,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=0xe /* BPF_??? */"
+ ", query_flags=0xfffffffe /* BPF_F_QUERY_??? */"
+ ", attach_flags=0xfffffffc /* BPF_F_??? */"
+ ", prog_ids="
+ BIG_ADDR("0xffffffffffffffff", "0xffffffff")
+ ", prog_cnt=2718281828}",
+ },
+ { /* 3 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ .prog_ids = 0xffffffffffffffffULL,
+ .prog_cnt = 0,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=0xfeedface /* BPF_??? */"
+ ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c"
+ ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc"
+ ", prog_ids=" BIG_ADDR_MAYBE("0xffffffffffffffff") "[]"
+ ", prog_cnt=0}",
+ },
+ { /* 4 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .init_fn = init_BPF_PROG_QUERY_attr4,
+ .print_fn = print_BPF_PROG_QUERY_attr4,
+ },
+ { /* 5 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .init_fn = init_BPF_PROG_QUERY_attr5,
+ .print_fn = print_BPF_PROG_QUERY_attr5,
+ },
+};
+
+
+static void
+init_BPF_RAW_TRACEPOINT_attr2(struct bpf_attr_check *check)
+{
+ /* TODO: test the 128 byte limit */
+ static const char tp_name[] = "0123456789qwertyuiop0123456789qwe";
+
+ struct BPF_RAW_TRACEPOINT_OPEN_struct *attr =
+ &check->data.BPF_RAW_TRACEPOINT_OPEN_data;
+
+ attr->name = (uintptr_t) tp_name;
+}
+
+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}",
+ },
+ { /* 1 */
+ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = {
+ .name = 0xffffffff00000000ULL,
+ .prog_fd = 0xdeadbeef,
+ } },
+ .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct,
+ prog_fd),
+ .str = "raw_tracepoint="
+ "{name=" BIG_ADDR("0xffffffff00000000", "NULL")
+ ", prog_fd=-559038737}",
+ },
+ {
+ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = {
+ .prog_fd = 0xdeadbeef,
+ } },
+ .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct,
+ prog_fd),
+ .init_fn = init_BPF_RAW_TRACEPOINT_attr2,
+ .str = "raw_tracepoint="
+ "{name=\"0123456789qwertyuiop0123456789qw\"..."
+ ", prog_fd=-559038737}",
+ }
+};
+
+
#define CHK(cmd_) \
{ \
cmd_, #cmd_, \
@@ -635,6 +1106,8 @@
CHK(BPF_PROG_GET_FD_BY_ID),
CHK(BPF_MAP_GET_FD_BY_ID),
CHK(BPF_OBJ_GET_INFO_BY_FD),
+ CHK(BPF_PROG_QUERY),
+ CHK(BPF_RAW_TRACEPOINT_OPEN),
};
page_size = get_page_size();
diff --git a/tests-mx32/btrfs-X.test b/tests-mx32/btrfs-X.test
new file mode 100755
index 0000000..c129be9
--- /dev/null
+++ b/tests-mx32/btrfs-X.test
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Check verbose xlat decoding of btrfs ioctl
+
+. "${srcdir=.}/init.sh"
+
+check_prog grep
+run_prog ../btrfs -X > /dev/null
+run_strace -a16 -Xverbose -eioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-mx32/btrfs-vX.test b/tests-mx32/btrfs-vX.test
new file mode 100755
index 0000000..163b29f
--- /dev/null
+++ b/tests-mx32/btrfs-vX.test
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Check verbose, verbose xlat decoding of btrfs ioctl
+
+. "${srcdir=.}/init.sh"
+
+check_prog grep
+run_prog ../btrfs -v -X > /dev/null
+run_strace -a16 -Xverbose -veioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-mx32/btrfs-vwX.test b/tests-mx32/btrfs-vwX.test
new file mode 100755
index 0000000..57c6891
--- /dev/null
+++ b/tests-mx32/btrfs-vwX.test
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Check verbose, verbose xlat decoding of btrfs ioctl w/ live ioctls.
+
+# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM
+
+# Typical usage:
+# mkfs.btrfs <dev>
+# mount <dev> /mnt
+# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-vwX"
+# umount /mnt
+
+. "${srcdir=.}/init.sh"
+
+if [ -z "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT not set"
+elif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
+fi
+
+check_prog grep
+run_prog ../btrfs -v -w -X "${BTRFS_MOUNTPOINT}" > /dev/null
+run_strace -a16 -Xverbose -veioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-mx32/btrfs-wX.test b/tests-mx32/btrfs-wX.test
new file mode 100755
index 0000000..5fb6949
--- /dev/null
+++ b/tests-mx32/btrfs-wX.test
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Check verbose xlat decoding of btrfs ioctl w/ live ioctls.
+
+# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM
+
+# Typical usage:
+# mkfs.btrfs <dev>
+# mount <dev> /mnt
+# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-wX"
+# umount /mnt
+
+. "${srcdir=.}/init.sh"
+
+if [ -z "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT not set"
+elif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
+fi
+
+check_prog grep
+run_prog ../btrfs -w -X "${BTRFS_MOUNTPOINT}" > /dev/null
+run_strace -a16 -Xverbose -eioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests-mx32/btrfs.c b/tests-mx32/btrfs.c
index 415f692..b44bc87 100644
--- a/tests-mx32/btrfs.c
+++ b/tests-mx32/btrfs.c
@@ -13,6 +13,7 @@
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <sys/sysmacros.h>
#include <sys/vfs.h>
#include <linux/fs.h>
#include <linux/btrfs.h>
@@ -23,6 +24,7 @@
#include "xlat/btrfs_balance_flags.h"
#include "xlat/btrfs_balance_state.h"
#include "xlat/btrfs_compress_types.h"
+#include "xlat/btrfs_cont_reading_from_srcdev_mode.h"
#include "xlat/btrfs_defrag_flags.h"
#include "xlat/btrfs_dev_stats_values.h"
#include "xlat/btrfs_dev_stats_flags.h"
@@ -62,6 +64,11 @@
static int btrfs_test_dir_fd;
static bool verbose;
static bool write_ok;
+static bool verbose_xlat;
+
+static const char *path;
+static const char dir_name_fmt[] = "strace-test-%d";
+static char dir_name[sizeof(dir_name_fmt) + sizeof(int) * 3];
const unsigned char uuid_reference[BTRFS_UUID_SIZE] = {
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
@@ -152,11 +159,61 @@
static const char *
-maybe_print_uint64max(uint64_t val)
+sprint_xlat_(uint32_t val, const char *xlat)
{
- if (val == UINT64_MAX)
- return " /* UINT64_MAX */";
- return "";
+ static char str[256];
+ int ret;
+
+ if (verbose_xlat) {
+ ret = snprintf(str, sizeof(str), "%#x /* %s */", val, xlat);
+
+ if (ret < 0)
+ perror_msg_and_fail("sprint_ioc(%#x, %s)", val, xlat);
+ if ((unsigned) ret >= sizeof(str))
+ error_msg_and_fail("sprint_ioc(%#x, %s): buffer "
+ "overflow", val, xlat);
+
+ return str;
+ }
+
+ return xlat;
+}
+
+#define ioc(x_) sprint_xlat_(x_, #x_)
+
+void
+prfl_btrfs(const struct xlat *xlat, const unsigned long long val,
+ const char *str)
+{
+ if (verbose_xlat && val)
+ printf("%#llx /* ", val);
+ printflags(xlat, val, str);
+ if (verbose_xlat && val)
+ printf(" */");
+}
+
+void
+prxval_btrfs(const struct xlat *xlat, const unsigned long long val,
+ const char *str, bool known)
+{
+ if (verbose_xlat && known)
+ printf("%#llx /* ", val);
+ printxval(xlat, val, str);
+ if (verbose_xlat && known)
+ printf(" */");
+}
+
+static void
+print_uint64(const char *prefix, uint64_t val)
+{
+ if (val == UINT64_MAX) {
+ if (verbose_xlat)
+ printf("%s%" PRIu64 " /* UINT64_MAX */", prefix, val);
+ else
+ printf("%sUINT64_MAX", prefix);
+ } else {
+ printf("%s%" PRIu64, prefix, val);
+ }
}
/* takes highest valid flag bit */
@@ -182,10 +239,10 @@
btrfs_test_trans_ioctls(void)
{
ioctl(-1, BTRFS_IOC_TRANS_START, NULL);
- printf("ioctl(-1, BTRFS_IOC_TRANS_START) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_TRANS_START));
ioctl(-1, BTRFS_IOC_TRANS_END, NULL);
- printf("ioctl(-1, BTRFS_IOC_TRANS_END) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_TRANS_END));
}
/*
@@ -201,14 +258,15 @@
uint64_t u64val = 0xdeadbeefbadc0dedULL;
ioctl(-1, BTRFS_IOC_SYNC, NULL);
- printf("ioctl(-1, BTRFS_IOC_SYNC) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SYNC));
ioctl(-1, BTRFS_IOC_WAIT_SYNC, NULL);
- printf("ioctl(-1, BTRFS_IOC_WAIT_SYNC, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_WAIT_SYNC));
ioctl(-1, BTRFS_IOC_WAIT_SYNC, &u64val);
- printf("ioctl(-1, BTRFS_IOC_WAIT_SYNC, [%" PRIu64
- "]) = -1 EBADF (%m)\n", u64val);
+ printf("ioctl(-1, %s, [%" PRIu64 "]) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_WAIT_SYNC), u64val);
/*
* The live test of BTRFS_IOC_SYNC happens as a part of the test
@@ -220,24 +278,24 @@
btrfs_print_qgroup_inherit(struct btrfs_qgroup_inherit *inherit)
{
printf("{flags=");
- printflags(btrfs_qgroup_inherit_flags, inherit->flags,
+ prfl_btrfs(btrfs_qgroup_inherit_flags, inherit->flags,
"BTRFS_QGROUP_INHERIT_???");
printf(", num_qgroups=%" PRI__u64
", num_ref_copies=%" PRI__u64
", num_excl_copies=%" PRI__u64 ", lim={flags=",
inherit->num_qgroups, inherit->num_ref_copies,
inherit->num_excl_copies);
- printflags(btrfs_qgroup_limit_flags,
+ prfl_btrfs(btrfs_qgroup_limit_flags,
inherit->lim.flags,
"BTRFS_QGROUP_LIMIT_???");
printf(", max_rfer=%" PRI__u64 ", max_excl=%" PRI__u64
", rsv_rfer=%" PRI__u64 ", rsv_excl=%" PRI__u64
- "}, qgroups=",
+ "}, ",
inherit->lim.max_rfer, inherit->lim.max_excl,
inherit->lim.rsv_rfer, inherit->lim.rsv_excl);
if (verbose) {
unsigned int i;
- printf("[");
+ printf("qgroups=[");
for (i = 0; i < inherit->num_qgroups; i++) {
if (i > 0)
printf(", ");
@@ -254,7 +312,7 @@
btrfs_print_vol_args_v2(struct btrfs_ioctl_vol_args_v2 *args, int print_qgroups)
{
printf("{fd=%d, flags=", (int) args->fd);
- printflags(btrfs_snap_flags_v2, args->flags, "BTRFS_SUBVOL_???");
+ prfl_btrfs(btrfs_snap_flags_v2, args->flags, "BTRFS_SUBVOL_???");
if (args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
printf(", size=%" PRI__u64 ", qgroup_inherit=", args->size);
@@ -302,61 +360,64 @@
strcpy(vol_args.name, subvol_name);
ioctl(-1, BTRFS_IOC_SNAP_CREATE, NULL);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE));
ioctl(-1, BTRFS_IOC_SNAP_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE, "
- "{fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, "
- "{fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_DESTROY,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_DESTROY), vol_args.name);
strncpy(vol_args.name, long_subvol_name, BTRFS_PATH_NAME_MAX);
ioctl(-1, BTRFS_IOC_SNAP_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_DESTROY,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_DESTROY), vol_args.name);
long_subvol_name = realloc(long_subvol_name, BTRFS_SUBVOL_NAME_MAX);
if (!long_subvol_name)
perror_msg_and_fail("realloc failed");
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE_V2));
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
strcpy(vol_args_v2.name, subvol_name);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
strncpy(vol_args_v2.name, long_subvol_name, BTRFS_SUBVOL_NAME_MAX);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
@@ -364,12 +425,12 @@
strcpy(vol_args_v2.name, subvol_name);
vol_args_v2.qgroup_inherit = bad_pointer;
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 0);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 0);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
@@ -394,31 +455,33 @@
inherit->lim.rsv_excl = u64val;
vol_args_v2.qgroup_inherit = inherit;
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFAULT_SUBVOL));
ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, &u64val);
- printf("ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, [%"
- PRIu64 "]) = -1 EBADF (%m)\n", u64val);
+ printf("ioctl(-1, %s, [%" PRIu64 "]) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFAULT_SUBVOL), u64val);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_SETFLAGS, ");
- printflags(btrfs_snap_flags_v2, vol_args_v2.flags,
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_SETFLAGS));
+ prfl_btrfs(btrfs_snap_flags_v2, vol_args_v2.flags,
"BTRFS_SUBVOL_???");
ioctl(-1, BTRFS_IOC_SUBVOL_SETFLAGS, &vol_args_v2.flags);
printf(") = -1 EBADF (%m)\n");
if (write_ok) {
struct btrfs_ioctl_vol_args_v2 args_passed;
+ long ret;
/*
* Returns transid if flags & BTRFS_SUBVOL_CREATE_ASYNC
* - BTRFS_IOC_SNAP_CREATE_V2
@@ -432,11 +495,14 @@
vol_args_v2.size = 0;
vol_args_v2.qgroup_inherit = NULL;
args_passed = vol_args_v2;
- printf("ioctl(%d, BTRFS_IOC_SUBVOL_CREATE_V2, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
- ioctl(btrfs_test_dir_fd, BTRFS_IOC_SUBVOL_CREATE_V2,
+ ret = ioctl(btrfs_test_dir_fd, BTRFS_IOC_SUBVOL_CREATE_V2,
&args_passed);
+ if (ret < 0)
+ perror_msg_and_fail("ioctl(BTRFS_IOC_SUBVOL_CREATE_V2) "
+ "failed");
printf(" => {transid=%" PRI__u64 "}) = 0\n",
args_passed.transid);
@@ -448,8 +514,8 @@
strncpy(vol_args_v2.name, long_subvol_name, BTRFS_NAME_LEN);
vol_args_v2.fd = subvolfd;
args_passed = vol_args_v2;
- printf("ioctl(%d, BTRFS_IOC_SNAP_CREATE_V2, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&args_passed, 1);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_CREATE_V2,
&args_passed);
@@ -460,15 +526,15 @@
strncpy(vol_args.name, long_subvol_name, 255);
vol_args.name[255] = 0;
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(%d, BTRFS_IOC_SNAP_DESTROY, "
- "{fd=%d, name=\"%.*s\"}) = 0\n",
- btrfs_test_dir_fd, (int) vol_args.fd, 255, long_subvol_name);
+ printf("ioctl(%d, %s, {fd=%d, name=\"%.*s\"}) = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_DESTROY),
+ (int) vol_args.fd, 255, long_subvol_name);
strcpy(vol_args.name, subvol_name);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(%d, BTRFS_IOC_SNAP_DESTROY, "
- "{fd=%d, name=\"%s\"}) = 0\n",
- btrfs_test_dir_fd, (int) vol_args.fd, subvol_name);
+ printf("ioctl(%d, %s, {fd=%d, name=\"%s\"}) = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_DESTROY),
+ (int) vol_args.fd, subvol_name);
close(subvolfd);
}
@@ -479,19 +545,18 @@
btrfs_print_balance_args(struct btrfs_balance_args *args)
{
printf("{profiles=");
- printflags(btrfs_space_info_flags, args->profiles,
+ prfl_btrfs(btrfs_space_info_flags, args->profiles,
"BTRFS_BLOCK_GROUP_???");
- printf(", usage=%"PRI__u64 "%s, devid=%"PRI__u64 "%s, pstart=%"PRI__u64
- "%s, pend=%"PRI__u64 "%s, vstart=%"PRI__u64 "%s, vend=%"PRI__u64
- "%s, target=%"PRI__u64 "%s, flags=",
- args->usage, maybe_print_uint64max(args->usage),
- args->devid, maybe_print_uint64max(args->devid),
- args->pstart, maybe_print_uint64max(args->pstart),
- args->pend, maybe_print_uint64max(args->pend),
- args->vstart, maybe_print_uint64max(args->vstart),
- args->vend, maybe_print_uint64max(args->vend),
- args->target, maybe_print_uint64max(args->target));
- printflags(btrfs_balance_args, args->flags, "BTRFS_BALANCE_ARGS_???");
+ print_uint64(", usage=", args->usage);
+ printf(", devid=makedev(%u, %u)",
+ major(args->devid), minor(args->devid));
+ print_uint64(", pstart=", args->pstart);
+ print_uint64(", pend=", args->pend);
+ print_uint64(", vstart=", args->vstart);
+ print_uint64(", vend=", args->vend);
+ print_uint64(", target=", args->target);
+ printf(", flags=");
+ prfl_btrfs(btrfs_balance_args, args->flags, "BTRFS_BALANCE_ARGS_???");
printf("}");
}
@@ -531,25 +596,31 @@
struct btrfs_ioctl_vol_args vol_args = {};
ioctl(-1, BTRFS_IOC_BALANCE_CTL, 1);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_CTL, "
- "BTRFS_BALANCE_CTL_PAUSE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, %sBTRFS_BALANCE_CTL_PAUSE%s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_CTL),
+ verbose_xlat ? "0x1 /* " : "",
+ verbose_xlat ? " */" : "");
ioctl(-1, BTRFS_IOC_BALANCE_CTL, 2);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_CTL, "
- "BTRFS_BALANCE_CTL_CANCEL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "%sBTRFS_BALANCE_CTL_CANCEL%s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_CTL),
+ verbose_xlat ? "0x2 /* " : "",
+ verbose_xlat ? " */" : "");
ioctl(-1, BTRFS_IOC_BALANCE, NULL);
- printf("ioctl(-1, BTRFS_IOC_BALANCE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_BALANCE));
ioctl(-1, BTRFS_IOC_BALANCE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_BALANCE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_BALANCE));
/* struct btrfs_ioctl_balance_args */
ioctl(-1, BTRFS_IOC_BALANCE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_V2));
- printf("ioctl(-1, BTRFS_IOC_BALANCE_V2, {flags=");
- printflags(btrfs_balance_flags, args.flags, "BTRFS_BALANCE_???");
+ printf("ioctl(-1, %s, {flags=", ioc(BTRFS_IOC_BALANCE_V2));
+ prfl_btrfs(btrfs_balance_flags, args.flags, "BTRFS_BALANCE_???");
printf(", data=");
btrfs_print_balance_args(&args.data);
printf(", meta=");
@@ -560,6 +631,8 @@
printf("}) = -1 EBADF (%m)\n");
if (write_ok) {
+ long ret;
+
args.flags = BTRFS_BALANCE_DATA | BTRFS_BALANCE_METADATA |
BTRFS_BALANCE_SYSTEM;
args.data.flags = 0;
@@ -568,10 +641,18 @@
args.meta.profiles = 0;
args.sys.flags = 0;
args.sys.profiles = 0;
- printf("ioctl(%d, BTRFS_IOC_BALANCE_V2, {flags=",
- btrfs_test_dir_fd);
- printflags(btrfs_balance_flags, args.flags,
+ /*
+ * We should keep args the same for data in meta in case
+ * volume-under-tests uses mixed groups data and metadata.
+ */
+ args.meta.pend = -1ULL;
+ args.meta.vend = -1ULL;
+
+ printf("ioctl(%d, %s, {flags=",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_BALANCE_V2));
+
+ prfl_btrfs(btrfs_balance_flags, args.flags,
"BTRFS_BALANCE_???");
printf(", data=");
btrfs_print_balance_args(&args.data);
@@ -579,20 +660,24 @@
btrfs_print_balance_args(&args.meta);
printf(", sys=");
btrfs_print_balance_args(&args.sys);
- ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args);
- printf("} => {flags=");
- printflags(btrfs_balance_flags, args.flags,
- "BTRFS_BALANCE_???");
- printf(", state=");
- printflags(btrfs_balance_state, args.state,
- "BTRFS_BALANCE_STATE_???");
- printf(", data=");
- btrfs_print_balance_args(&args.data);
- printf(", meta=");
- btrfs_print_balance_args(&args.meta);
- printf(", sys=");
- btrfs_print_balance_args(&args.sys);
- printf("}) = 0\n");
+ ret = ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args);
+ if (ret < 0) {
+ printf("}) = %s\n", sprintrc(ret));
+ } else {
+ printf("} => {flags=");
+ prfl_btrfs(btrfs_balance_flags, args.flags,
+ "BTRFS_BALANCE_???");
+ printf(", state=");
+ prfl_btrfs(btrfs_balance_state, args.state,
+ "BTRFS_BALANCE_STATE_???");
+ printf(", data=");
+ btrfs_print_balance_args(&args.data);
+ printf(", meta=");
+ btrfs_print_balance_args(&args.meta);
+ printf(", sys=");
+ btrfs_print_balance_args(&args.sys);
+ printf("}) = %ld\n", ret);
+ }
}
}
@@ -615,38 +700,35 @@
};
ioctl(-1, BTRFS_IOC_RESIZE, NULL);
- printf("ioctl(-1, BTRFS_IOC_RESIZE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_RESIZE));
strcpy(args.name, devid);
ioctl(-1, BTRFS_IOC_RESIZE, &args);
- printf("ioctl(-1, BTRFS_IOC_RESIZE, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_RESIZE), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_SCAN_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCAN_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCAN_DEV));
strcpy(args.name, devname);
ioctl(-1, BTRFS_IOC_SCAN_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_SCAN_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCAN_DEV), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_ADD_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_ADD_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_ADD_DEV));
ioctl(-1, BTRFS_IOC_ADD_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_ADD_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_ADD_DEV), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_RM_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_RM_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_RM_DEV));
ioctl(-1, BTRFS_IOC_RM_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_RM_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_RM_DEV), (int) args.fd, args.name);
}
@@ -667,17 +749,21 @@
};
ioctl(-1, BTRFS_IOC_CLONE, clone_fd);
- printf("ioctl(-1, BTRFS_IOC_CLONE or FICLONE, %x) = -1 EBADF (%m)\n",
- clone_fd);
+ printf("ioctl(-1, %s, %x) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE, "BTRFS_IOC_CLONE or FICLONE"),
+ clone_fd);
ioctl(-1, BTRFS_IOC_CLONE_RANGE, NULL);
- printf("ioctl(-1, BTRFS_IOC_CLONE_RANGE or FICLONERANGE, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE_RANGE,
+ "BTRFS_IOC_CLONE_RANGE or FICLONERANGE"));
ioctl(-1, BTRFS_IOC_CLONE_RANGE, &args);
- printf("ioctl(-1, BTRFS_IOC_CLONE_RANGE or FICLONERANGE, "
+ printf("ioctl(-1, %s, "
"{src_fd=%d, src_offset=%" PRI__u64 ", src_length=%" PRI__u64
", dest_offset=%" PRI__u64 "}) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE_RANGE,
+ "BTRFS_IOC_CLONE_RANGE or FICLONERANGE"),
(int) args.src_fd, args.src_offset, args.src_length,
args.dest_offset);
}
@@ -686,16 +772,17 @@
#define BTRFS_INVALID_COMPRESS (BTRFS_COMPRESS_TYPES + 1)
static void
-btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args)
+btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args,
+ bool compress_type_known)
{
- printf("{start=%" PRIu64 ", len=%" PRIu64 "%s, flags=",
- (uint64_t) args->start, (uint64_t) args->len,
- maybe_print_uint64max(args->len));
+ printf("{start=%" PRIu64, (uint64_t) args->start);
+ print_uint64(", len=", args->len);
- printflags(btrfs_defrag_flags, args->flags, "BTRFS_DEFRAG_RANGE_???");
+ printf(", flags=");
+ prfl_btrfs(btrfs_defrag_flags, args->flags, "BTRFS_DEFRAG_RANGE_???");
printf(", extent_thresh=%u, compress_type=", args->extent_thresh);
- printxval(btrfs_compress_types, args->compress_type,
- "BTRFS_COMPRESS_???");
+ prxval_btrfs(btrfs_compress_types, args->compress_type,
+ "BTRFS_COMPRESS_???", compress_type_known);
printf("}");
}
@@ -721,29 +808,30 @@
* actually consume it.
*/
ioctl(-1, BTRFS_IOC_DEFRAG, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEFRAG));
ioctl(-1, BTRFS_IOC_DEFRAG, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEFRAG));
/* struct btrfs_ioctl_defrag_range_args */
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFRAG_RANGE));
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, true);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
args.compress_type = BTRFS_INVALID_COMPRESS;
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, false);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
args.len--;
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, false);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
}
@@ -761,18 +849,28 @@
btrfs_print_objectid(uint64_t objectid)
{
const char *str = xlookup(btrfs_tree_objectids, objectid);
- printf("%" PRIu64, objectid);
- if (str)
- printf(" /* %s */", str);
+ if (str) {
+ if (verbose_xlat)
+ printf("%" PRIu64 " /* %s */", objectid, str);
+ else
+ printf("%s", str);
+ } else {
+ printf("%" PRIu64, objectid);
+ }
}
static void
btrfs_print_key_type(uint32_t type)
{
const char *str = xlookup(btrfs_key_types, type);
- printf("%u", type);
- if (str)
- printf(" /* %s */", str);
+ if (str) {
+ if (verbose_xlat)
+ printf("%u /* %s */", type, str);
+ else
+ printf("%s", str);
+ } else {
+ printf("%u", type);
+ }
}
static void
@@ -788,18 +886,10 @@
printf(", max_objectid=");
btrfs_print_objectid(key->max_objectid);
}
- if (key->min_offset)
- printf(", min_offset=%" PRI__u64 "%s",
- key->min_offset, maybe_print_uint64max(key->min_offset));
- if (key->max_offset)
- printf(", max_offset=%" PRI__u64 "%s",
- key->max_offset, maybe_print_uint64max(key->max_offset));
- if (key->min_transid)
- printf(", min_transid=%" PRI__u64 "%s", key->min_transid,
- maybe_print_uint64max(key->min_transid));
- if (key->max_transid)
- printf(", max_transid=%" PRI__u64 "%s", key->max_transid,
- maybe_print_uint64max(key->max_transid));
+ print_uint64(", min_offset=", key->min_offset);
+ print_uint64(", max_offset=", key->max_offset);
+ print_uint64(", min_transid=", key->min_transid);
+ print_uint64(", max_transid=", key->max_transid);
printf(", min_type=");
btrfs_print_key_type(key->min_type);
printf(", max_type=");
@@ -814,7 +904,7 @@
if (verbose) {
uint64_t i;
uint64_t off = 0;
- printf("[");
+ printf("buf=[");
for (i = 0; i < key->nr_items; i++) {
struct btrfs_ioctl_search_header *sh;
sh = (typeof(sh))(buf + off);
@@ -859,19 +949,21 @@
};
ioctl(-1, BTRFS_IOC_TREE_SEARCH, NULL);
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_TREE_SEARCH));
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_TREE_SEARCH_V2));
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -880,13 +972,13 @@
key_reference.min_objectid = 6;
key_reference.max_objectid = 7;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -895,13 +987,13 @@
key_reference.min_offset++;
key_reference.max_offset--;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -910,13 +1002,13 @@
key_reference.min_transid++;
key_reference.max_transid--;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -925,13 +1017,13 @@
key_reference.min_type = 1;
key_reference.max_type = 12;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -950,11 +1042,11 @@
key_reference.max_offset = -1ULL;
search_args.key = key_reference;
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH, &search_args);
- printf("} => {key={nr_items=%u}, buf=",
+ printf("} => {key={nr_items=%u}, ",
search_args.key.nr_items);
btrfs_print_tree_search_buf(&search_args.key, search_args.buf,
sizeof(search_args.buf));
@@ -966,12 +1058,12 @@
args->key = key_reference;
args->buf_size = bufsize;
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH_V2, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&key_reference);
printf(", buf_size=%" PRIu64 "}", (uint64_t) args->buf_size);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH_V2, args);
- printf(" => {key={nr_items=%u}, buf_size=%" PRIu64 ", buf=",
+ printf(" => {key={nr_items=%u}, buf_size=%" PRIu64 ", ",
args->key.nr_items, (uint64_t)args->buf_size);
btrfs_print_tree_search_buf(&args->key, args->buf,
args->buf_size);
@@ -979,8 +1071,8 @@
args->key = key_reference;
args->buf_size = sizeof(struct btrfs_ioctl_search_header);
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH_V2, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&args->key);
printf(", buf_size=%" PRIu64 "}", (uint64_t)args->buf_size);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH_V2, args);
@@ -1003,9 +1095,10 @@
};
ioctl(-1, BTRFS_IOC_INO_LOOKUP, NULL);
- printf("ioctl(-1, BTRFS_IOC_INO_LOOKUP, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_INO_LOOKUP));
- printf("ioctl(-1, BTRFS_IOC_INO_LOOKUP, {treeid=");
+ printf("ioctl(-1, %s, {treeid=", ioc(BTRFS_IOC_INO_LOOKUP));
btrfs_print_objectid(args.treeid);
printf(", objectid=");
btrfs_print_objectid(args.objectid);
@@ -1013,8 +1106,8 @@
printf("}) = -1 EBADF (%m)\n");
if (btrfs_test_root) {
- printf("ioctl(%d, BTRFS_IOC_INO_LOOKUP, {treeid=",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {treeid=",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_INO_LOOKUP));
btrfs_print_objectid(args.treeid);
printf(", objectid=");
btrfs_print_objectid(args.objectid);
@@ -1033,20 +1126,20 @@
struct btrfs_ioctl_space_args args = {};
ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL);
- printf("ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SPACE_INFO));
ioctl(-1, BTRFS_IOC_SPACE_INFO, &args);
- printf("ioctl(-1, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}) = -1 EBADF (%m)\n",
- args.space_slots);
+ printf("ioctl(-1, %s, {space_slots=%" PRI__u64 "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SPACE_INFO), args.space_slots);
if (btrfs_test_root) {
struct btrfs_ioctl_space_args args_passed;
struct btrfs_ioctl_space_args *argsp;
args_passed = args;
- printf("ioctl(%d, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}",
- btrfs_test_dir_fd, args_passed.space_slots);
+ printf("ioctl(%d, %s, {space_slots=%" PRI__u64 "}",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SPACE_INFO),
+ args_passed.space_slots);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SPACE_INFO, &args_passed);
printf(" => {total_spaces=%" PRI__u64 "}) = 0\n",
args_passed.total_spaces);
@@ -1058,22 +1151,22 @@
*argsp = args;
argsp->space_slots = args_passed.total_spaces;
- printf("ioctl(%d, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}",
- btrfs_test_dir_fd, argsp->space_slots);
+ printf("ioctl(%d, %s, {space_slots=%" PRI__u64 "}",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SPACE_INFO),
+ argsp->space_slots);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SPACE_INFO, argsp);
- printf(" => {total_spaces=%" PRI__u64 ", spaces=",
+ printf(" => {total_spaces=%" PRI__u64 ", ",
argsp->total_spaces);
if (verbose) {
unsigned int i;
- printf("[");
+ printf("spaces=[");
for (i = 0; i < argsp->total_spaces; i++) {
struct btrfs_ioctl_space_info *info;
info = &argsp->spaces[i];
if (i)
printf(", ");
printf("{flags=");
- printflags(btrfs_space_info_flags, info->flags,
+ prfl_btrfs(btrfs_space_info_flags, info->flags,
"BTRFS_SPACE_INFO_???");
printf(", total_bytes=%" PRI__u64
", used_bytes=%" PRI__u64 "}",
@@ -1106,25 +1199,28 @@
};
ioctl(-1, BTRFS_IOC_SCRUB, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SCRUB));
ioctl(-1, BTRFS_IOC_SCRUB_CANCEL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_CANCEL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SCRUB_CANCEL));
- printf("ioctl(-1, BTRFS_IOC_SCRUB, {devid=%" PRI__u64 ", start=%"
- PRI__u64 "%s, end=%" PRI__u64 "%s, flags=",
- args.devid, args.start, maybe_print_uint64max(args.start),
- args.end, maybe_print_uint64max(args.end));
- printflags(btrfs_scrub_flags, args.flags, "BTRFS_SCRUB_???");
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)",
+ ioc(BTRFS_IOC_SCRUB), major(args.devid), minor(args.devid));
+ print_uint64(", start=", args.start);
+ print_uint64(", end=", args.end);
+ printf(", flags=");
+ prfl_btrfs(btrfs_scrub_flags, args.flags, "BTRFS_SCRUB_???");
ioctl(-1, BTRFS_IOC_SCRUB, &args);
printf("}) = -1 EBADF (%m)\n");
ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCRUB_PROGRESS));
ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, &args);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, "
- "{devid=%" PRI__u64 "}) = -1 EBADF (%m)\n", args.devid);
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCRUB_PROGRESS),
+ major(args.devid), minor(args.devid));
}
/*
@@ -1140,12 +1236,14 @@
memcpy(&args.uuid, uuid_reference, BTRFS_UUID_SIZE);
ioctl(-1, BTRFS_IOC_DEV_INFO, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEV_INFO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_INFO));
ioctl(-1, BTRFS_IOC_DEV_INFO, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_INFO, "
- "{devid=%" PRI__u64 ", uuid=%s}) = -1 EBADF (%m)\n",
- args.devid, uuid_reference_string);
+ printf("ioctl(-1, %s, "
+ "{devid=makedev(%u, %u), uuid=%s}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_INFO), major(args.devid), minor(args.devid),
+ uuid_reference_string);
}
/*
@@ -1177,32 +1275,32 @@
ioctl(-1, BTRFS_IOC_INO_PATHS, NULL);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_INO_PATHS));
ioctl(-1, BTRFS_IOC_LOGICAL_INO, NULL);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_LOGICAL_INO));
ioctl(-1, BTRFS_IOC_INO_PATHS, &args);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(-1, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=NULL}) = -1 EBADF (%m)\n",
- args.inum, args.size);
+ ioc(BTRFS_IOC_INO_PATHS), args.inum, args.size);
args.fspath = (uintptr_t) buf;
ioctl(-1, BTRFS_IOC_INO_PATHS, &args);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(-1, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=0x%" PRI__x64 "}) = -1 EBADF (%m)\n",
- args.inum, args.size, args.fspath);
+ ioc(BTRFS_IOC_INO_PATHS), args.inum, args.size, args.fspath);
args.fspath = 0;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", reserved=[0xdeadc0defacefeeb"
", 0xdeadc0defacefeec, 0xdeadc0defacefeed]"
", flags=0xdeadc0defacefeee /* BTRFS_LOGICAL_INO_ARGS_??? */"
", inodes=NULL}) = -1 EBADF (%m)\n",
- args.inum, args.size);
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size);
args.fspath = (uintptr_t) buf;
args.reserved[0] = 0;
@@ -1215,11 +1313,13 @@
1;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", reserved=[0, 0xdeadc0defacefeec, 0]"
- ", flags=BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET"
+ ", flags=%sBTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET%s"
", inodes=0x%" PRI__x64 "}) = -1 EBADF (%m)\n",
- args.inum, args.size, args.fspath);
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size,
+ verbose_xlat ? "0x1 /* " : "", verbose_xlat ? " */" : "",
+ args.fspath);
args.reserved[1] = 0;
#ifdef HAVE_BTRFS_IOCTL_LOGICAL_INO_ARGS
@@ -1230,9 +1330,10 @@
0;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", flags=0, inodes=0x%" PRI__x64
- "}) = -1 EBADF (%m)\n", args.inum, args.size, args.fspath);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size, args.fspath);
#ifdef HAVE_LINUX_FIEMAP_H
if (btrfs_test_root) {
@@ -1248,17 +1349,16 @@
perror_msg_and_fail("fstat failed");
args.inum = si.st_ino;
- printf("ioctl(%d, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(%d, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=0x%" PRI__x64 "}",
- btrfs_test_dir_fd, args.inum, args.size,
- args.fspath);
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_INO_PATHS),
+ args.inum, args.size, args.fspath);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_INO_PATHS, &args);
- printf(" => {fspath={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, val=",
+ printf(" => {fspath={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, ",
data->bytes_left, data->bytes_missing, data->elem_cnt,
data->elem_missed);
if (verbose) {
- printf("[\"strace-test\"]");
+ printf("val=[\"%s\"]", dir_name);
} else
printf("...");
printf("}}) = 0\n");
@@ -1280,7 +1380,7 @@
*/
fsync(fd);
ioctl(fd, BTRFS_IOC_SYNC, NULL);
- printf("ioctl(%d, BTRFS_IOC_SYNC) = 0\n", fd);
+ printf("ioctl(%d, %s) = 0\n", fd, ioc(BTRFS_IOC_SYNC));
size = sizeof(*fiemap) + 2 * sizeof(fiemap->fm_extents[0]);
fiemap = malloc(size);
@@ -1292,18 +1392,19 @@
fiemap->fm_extent_count = 2;
/* This is also a live test for FIEMAP */
- printf("ioctl(%d, FS_IOC_FIEMAP, {fm_start=%" PRI__u64
+ printf("ioctl(%d, %s, {fm_start=%" PRI__u64
", fm_length=%" PRI__u64 ", fm_flags=",
- fd, fiemap->fm_start, fiemap->fm_length);
- printflags(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
+ fd, ioc(FS_IOC_FIEMAP),
+ fiemap->fm_start, fiemap->fm_length);
+ prfl_btrfs(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
printf(", fm_extent_count=%u}", fiemap->fm_extent_count);
ioctl(fd, FS_IOC_FIEMAP, fiemap);
printf(" => {fm_flags=");
- printflags(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
- printf(", fm_mapped_extents=%u, fm_extents=",
+ prfl_btrfs(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
+ printf(", fm_mapped_extents=%u, ",
fiemap->fm_mapped_extents);
if (verbose) {
- printf("[");
+ printf("fm_extents=[");
unsigned int i;
for (i = 0; i < fiemap->fm_mapped_extents; i++) {
struct fiemap_extent *fe;
@@ -1316,7 +1417,7 @@
", ",
fe->fe_logical, fe->fe_physical,
fe->fe_length);
- printflags(fiemap_extent_flags, fe->fe_flags,
+ prfl_btrfs(fiemap_extent_flags, fe->fe_flags,
"FIEMAP_EXTENT_???");
printf("}");
}
@@ -1326,15 +1427,16 @@
printf("}) = 0\n");
args.inum = fiemap->fm_extents[0].fe_physical;
- printf("ioctl(%d, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(%d, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", flags=0, inodes=0x%" PRI__x64 "}",
- fd, args.inum, args.size, args.fspath);
+ fd, ioc(BTRFS_IOC_LOGICAL_INO),
+ args.inum, args.size, args.fspath);
ioctl(fd, BTRFS_IOC_LOGICAL_INO, &args);
- printf(" => {inodes={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, val=",
+ printf(" => {inodes={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, ",
data->bytes_left, data->bytes_missing, data->elem_cnt,
data->elem_missed);
if (verbose) {
- printf("[{inum=%llu, offset=0, root=5}]",
+ printf("val=[{inum=%llu, offset=0, root=5}]",
(unsigned long long) si.st_ino);
} else
printf("...");
@@ -1359,18 +1461,23 @@
.nsec = 12345,
},
};
+ int saved_errno;
+
memcpy(&args.uuid, uuid_reference, BTRFS_UUID_SIZE);
ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_RECEIVED_SUBVOL));
ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, &args);
- printf("ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, "
- "{uuid=%s, stransid=%" PRI__u64 ", stime=%" PRI__u64
- ".%u, flags=0}) = -1 EBADF (%m)\n",
- uuid_reference_string, args.stransid, args.stime.sec,
- args.stime.nsec);
+ saved_errno = errno;
+ printf("ioctl(-1, %s, {uuid=%s, stransid=%" PRI__u64
+ ", stime={sec=%" PRI__u64 ", nsec=%u}",
+ ioc(BTRFS_IOC_SET_RECEIVED_SUBVOL), uuid_reference_string,
+ args.stransid, args.stime.sec, args.stime.nsec);
+ print_time_t_nsec(args.stime.sec, args.stime.nsec, true);
+ errno = saved_errno;
+ printf(", flags=0}) = -1 EBADF (%m)\n");
}
/*
@@ -1388,29 +1495,25 @@
};
ioctl(-1, BTRFS_IOC_SEND, NULL);
- printf("ioctl(-1, BTRFS_IOC_SEND, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SEND));
- printf("ioctl(-1, BTRFS_IOC_SEND, "
- "{send_fd=%d, clone_sources_count=%" PRI__u64
- ", clone_sources=",
+ printf("ioctl(-1, %s, {send_fd=%d, clone_sources_count=%" PRI__u64
+ ", clone_sources=NULL",
+ ioc(BTRFS_IOC_SEND),
(int) args.send_fd, args.clone_sources_count);
- if (verbose)
- printf("NULL");
- else
- printf("...");
printf(", parent_root=");
btrfs_print_objectid(args.parent_root);
printf(", flags=");
- printflags(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
+ prfl_btrfs(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
ioctl(-1, BTRFS_IOC_SEND, &args);
printf("}) = -1 EBADF (%m)\n");
args.clone_sources_count = 2;
args.clone_sources = (__u64 *) (void *) u64_array;
- printf("ioctl(-1, BTRFS_IOC_SEND, "
- "{send_fd=%d, clone_sources_count=%" PRI__u64
+ printf("ioctl(-1, %s, {send_fd=%d, clone_sources_count=%" PRI__u64
", clone_sources=",
+ ioc(BTRFS_IOC_SEND),
(int) args.send_fd, args.clone_sources_count);
if (verbose) {
printf("[");
@@ -1419,11 +1522,11 @@
btrfs_print_objectid(u64_array[1]);
printf("]");
} else
- printf("...");
+ printf("%p", args.clone_sources);
printf(", parent_root=");
btrfs_print_objectid(args.parent_root);
printf(", flags=");
- printflags(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
+ prfl_btrfs(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
ioctl(-1, BTRFS_IOC_SEND, &args);
printf("}) = -1 EBADF (%m)\n");
}
@@ -1440,26 +1543,37 @@
};
ioctl(-1, BTRFS_IOC_QUOTA_CTL, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL));
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_ENABLE}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_QUOTA_CTL_ENABLE%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x1 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 2;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_DISABLE}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_QUOTA_CTL_DISABLE%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x2 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 3;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_RESCAN__NOTUSED}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "{cmd=%sBTRFS_QUOTA_CTL_RESCAN__NOTUSED%s}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x3 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 4;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "0x4 /* BTRFS_QUOTA_CTL_??? */}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "{cmd=0x4 /* BTRFS_QUOTA_CTL_??? */}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL));
}
/*
@@ -1476,12 +1590,14 @@
};
ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, NULL);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_ASSIGN));
ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, &args);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, "
+ printf("ioctl(-1, %s, "
"{assign=%" PRI__u64 ", src=%" PRI__u64 ", dst=%" PRI__u64
- "}) = -1 EBADF (%m)\n", args.assign, args.src, args.dst);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_ASSIGN), args.assign, args.src, args.dst);
}
/*
@@ -1497,12 +1613,13 @@
};
ioctl(-1, BTRFS_IOC_QGROUP_CREATE, NULL);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_CREATE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_QGROUP_CREATE));
ioctl(-1, BTRFS_IOC_QGROUP_CREATE, &args);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_CREATE, "
+ printf("ioctl(-1, %s, "
"{create=%" PRI__u64 ", qgroupid=%" PRI__u64
- "}) = -1 EBADF (%m)\n", args.create, args.qgroupid);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_CREATE), args.create, args.qgroupid);
}
/*
@@ -1519,13 +1636,15 @@
};
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN));
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, "
- "{flags=0}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {flags=0}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN));
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN_WAIT, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN_WAIT) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN_WAIT));
}
@@ -1542,20 +1661,21 @@
char label[BTRFS_LABEL_SIZE] = "btrfs-label";
ioctl(-1, BTRFS_IOC_SET_FSLABEL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_FSLABEL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FSLABEL));
ioctl(-1, BTRFS_IOC_SET_FSLABEL, label);
- printf("ioctl(-1, BTRFS_IOC_SET_FSLABEL, \"%s\") = -1 EBADF (%m)\n",
- label);
+ printf("ioctl(-1, %s, \"%s\") = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FSLABEL), label);
if (write_ok) {
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SET_FSLABEL, label);
- printf("ioctl(%d, BTRFS_IOC_SET_FSLABEL, \"%s\") = 0\n",
- btrfs_test_dir_fd, label);
+ printf("ioctl(%d, %s, \"%s\") = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SET_FSLABEL), label);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_FSLABEL, label);
- printf("ioctl(%d, BTRFS_IOC_GET_FSLABEL, \"%s\") = 0\n",
- btrfs_test_dir_fd, label);
+ printf("ioctl(%d, %s, \"%s\") = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_FSLABEL), label);
}
}
@@ -1573,12 +1693,13 @@
};
ioctl(-1, BTRFS_IOC_GET_DEV_STATS, NULL);
- printf("ioctl(-1, BTRFS_IOC_GET_DEV_STATS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_GET_DEV_STATS));
- printf("ioctl(-1, BTRFS_IOC_GET_DEV_STATS, {devid=%" PRI__u64
- ", nr_items=%" PRI__u64 ", flags=",
- args.devid, args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)"
+ ", nr_items=%" PRI__u64 ", flags=",
+ ioc(BTRFS_IOC_GET_DEV_STATS),
+ major(args.devid), minor(args.devid), args.nr_items);
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
ioctl(-1, BTRFS_IOC_GET_DEV_STATS, &args);
printf("}) = -1 EBADF (%m)\n");
@@ -1586,24 +1707,33 @@
if (write_ok) {
unsigned int i;
args.flags = BTRFS_DEV_STATS_RESET;
- printf("ioctl(%d, BTRFS_IOC_GET_DEV_STATS, {devid=%" PRI__u64
+ printf("ioctl(%d, %s, {devid=makedev(%u, %u)"
", nr_items=%" PRI__u64 ", flags=",
- btrfs_test_dir_fd, args.devid, args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_DEV_STATS),
+ major(args.devid), minor(args.devid), args.nr_items);
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_DEV_STATS, &args);
printf("} => {nr_items=%" PRI__u64 ", flags=",
args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
printf(", [");
for (i = 0; i < args.nr_items; i++) {
const char *name = xlookup(btrfs_dev_stats_values, i);
if (i)
printf(", ");
+
+ if (name) {
+ if (verbose_xlat)
+ printf("[%u /* %s */] = ", i, name);
+ else
+ printf("[%s] = ", name);
+ } else {
+ printf("[%u] = ", i);
+ }
+
printf("%" PRI__u64, args.values[i]);
- if (name)
- printf(" /* %s */", name);
}
printf("]}) = 0\n");
}
@@ -1627,22 +1757,38 @@
/* struct btrfs_ioctl_dev_replace_args */
ioctl(-1, BTRFS_IOC_DEV_REPLACE, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEV_REPLACE));
- ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, "
- "{cmd=BTRFS_IOCTL_DEV_REPLACE_CMD_START, start={srcdevid=%"
- PRI__u64 ", cont_reading_from_srcdev_mode=%" PRI__u64
- ", srcdev_name=\"%s\", tgtdev_name=\"%s\"}}) = -1 EBADF (%m)\n",
- args.start.srcdevid,
- args.start.cont_reading_from_srcdev_mode,
- (char *)args.start.srcdev_name,
- (char *)args.start.tgtdev_name);
+ for (unsigned long i = 0; i < 3; i++) {
+ int saved_errno;
+
+ args.start.cont_reading_from_srcdev_mode = i;
+ ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
+ saved_errno = errno;
+ printf("ioctl(-1, %s, "
+ "{cmd=%sBTRFS_IOCTL_DEV_REPLACE_CMD_START%s"
+ ", start={srcdevid=makedev(%u, %u)"
+ ", cont_reading_from_srcdev_mode=",
+ ioc(BTRFS_IOC_DEV_REPLACE),
+ verbose_xlat ? "0 /* " : "", verbose_xlat ? " */" : "",
+ major(args.start.srcdevid), minor(args.start.srcdevid));
+ prxval_btrfs(btrfs_cont_reading_from_srcdev_mode,
+ args.start.cont_reading_from_srcdev_mode,
+ "BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV"
+ "_MODE_???", i < 2);
+ errno = saved_errno;
+ printf(", srcdev_name=\"%s\", tgtdev_name=\"%s\"}}) "
+ "= -1 EBADF (%m)\n",
+ (char *)args.start.srcdev_name,
+ (char *)args.start.tgtdev_name);
+ }
args.cmd = 1;
ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, "
- "{cmd=BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_IOCTL_DEV_REPLACE_CMD_STATUS%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_REPLACE),
+ verbose_xlat ? "0x1 /* " : "", verbose_xlat ? " */" : "");
}
static void
@@ -1656,13 +1802,16 @@
struct file_dedupe_range *argsp;
ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME, NULL);
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"));
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(-1, %s, "
"{src_offset=%" PRIu64
", src_length=%" PRIu64
", dest_count=%hu, info=[]",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"),
(uint64_t)args.src_offset,
(uint64_t)args.src_length, args.dest_count);
ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME, &args);
@@ -1682,10 +1831,12 @@
argsp->info[2].dest_fd = 2;
argsp->info[2].dest_offset = 20480;
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(-1, %s, "
"{src_offset=%" PRIu64
", src_length=%" PRIu64
", dest_count=%hu, info=",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"),
(int64_t)argsp->src_offset,
(uint64_t)argsp->src_length, argsp->dest_count);
printf("[{dest_fd=%" PRId64 ", dest_offset=%" PRIu64
@@ -1744,9 +1895,12 @@
argsp->info[2].dest_fd = fd2;
argsp->info[2].dest_offset = 20480;
- printf("ioctl(%d, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(%d, %s, "
"{src_offset=%" PRIu64 ", src_length=%" PRIu64
", dest_count=%hu, info=", fd1,
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME"
+ " or FIDEDUPERANGE"),
(uint64_t)argsp->src_offset,
(uint64_t)argsp->src_length, argsp->dest_count);
printf("[{dest_fd=%" PRId64 ", dest_offset=%" PRIu64
@@ -1797,11 +1951,11 @@
"BTRFS_FEATURE_COMPAT_???");
printf(", compat_ro_flags=");
- printflags(btrfs_features_compat_ro, flags->compat_ro_flags,
+ prfl_btrfs(btrfs_features_compat_ro, flags->compat_ro_flags,
"BTRFS_FEATURE_COMPAT_RO_???");
printf(", incompat_flags=");
- printflags(btrfs_features_incompat, flags->incompat_flags,
+ prfl_btrfs(btrfs_features_incompat, flags->incompat_flags,
"BTRFS_FEATURE_INCOMPAT_???");
printf("}");
}
@@ -1831,9 +1985,10 @@
struct btrfs_ioctl_feature_flags supported_features[3];
ioctl(-1, BTRFS_IOC_SET_FEATURES, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_FEATURES, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FEATURES));
- printf("ioctl(-1, BTRFS_IOC_SET_FEATURES, [");
+ printf("ioctl(-1, %s, [", ioc(BTRFS_IOC_SET_FEATURES));
btrfs_print_features(&args[0]);
printf(", ");
btrfs_print_features(&args[1]);
@@ -1841,8 +1996,8 @@
printf("]) = -1 EBADF (%m)\n");
if (btrfs_test_root) {
- printf("ioctl(%d, BTRFS_IOC_GET_FEATURES, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_FEATURES));
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_FEATURES,
&supported_features);
btrfs_print_features(&supported_features[0]);
@@ -1850,8 +2005,9 @@
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_SUPPORTED_FEATURES,
&supported_features);
- printf("ioctl(%d, BTRFS_IOC_GET_SUPPORTED_FEATURES, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd,
+ ioc(BTRFS_IOC_GET_SUPPORTED_FEATURES));
printf("[");
btrfs_print_features(&supported_features[0]);
printf(" /* supported */, ");
@@ -1880,19 +2036,28 @@
unsigned int i;
for (i = 0; i < ARRAY_SIZE(btrfs_read_cmd); ++i) {
ioctl(-1, (unsigned long) btrfs_read_cmd[i].val, 0);
- printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", btrfs_read_cmd[i].str);
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(btrfs_read_cmd[i].val,
+ btrfs_read_cmd[i].str));
}
}
+static void
+rm_test_dir(void)
+{
+ int rootfd = open(path, O_RDONLY|O_DIRECTORY);
+
+ unlinkat(rootfd, dir_name, AT_REMOVEDIR);
+}
+
int
main(int argc, char *argv[])
{
int opt;
int ret;
- const char *path;
- while ((opt = getopt(argc, argv, "wv")) != -1) {
+ while ((opt = getopt(argc, argv, "wvX")) != -1) {
switch (opt) {
case 'v':
/*
@@ -1904,11 +2069,18 @@
case 'w':
write_ok = true;
break;
+ case 'X':
+ verbose_xlat = true;
+ break;
default:
- error_msg_and_fail("usage: btrfs [-v] [-w] [path]");
+ error_msg_and_fail("usage: btrfs [-vwX] [path]");
}
}
+ ret = snprintf(dir_name, sizeof(dir_name), dir_name_fmt, getpid());
+ if (ret < 0)
+ perror_msg_and_fail("snprintf(dir_name)");
+
/*
* This will enable optional tests that require a valid file descriptor
*/
@@ -1930,14 +2102,18 @@
if (rootfd < 0)
perror_msg_and_fail("open(%s) failed", path);
- ret = mkdirat(rootfd, "strace-test", 0755);
+ ret = mkdirat(rootfd, dir_name, 0755);
if (ret < 0 && errno != EEXIST)
- perror_msg_and_fail("mkdirat(strace-test) failed");
+ perror_msg_and_fail("mkdirat(%s) failed", dir_name);
- btrfs_test_dir_fd = openat(rootfd, "strace-test",
+ /* Register removal of the created directory. */
+ if (ret == 0)
+ atexit(rm_test_dir);
+
+ btrfs_test_dir_fd = openat(rootfd, dir_name,
O_RDONLY|O_DIRECTORY);
if (btrfs_test_dir_fd < 0)
- perror_msg_and_fail("openat(strace-test) failed");
+ perror_msg_and_fail("openat(%s) failed", dir_name);
close(rootfd);
} else
write_ok = false;
diff --git a/tests-mx32/execve.c b/tests-mx32/execve.c
index da3bc52..c1dedfc 100644
--- a/tests-mx32/execve.c
+++ b/tests-mx32/execve.c
@@ -2,7 +2,7 @@
* This file is part of execve strace test.
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,17 +59,18 @@
execve(FILENAME, tail_argv, tail_envp);
printf("execve(\"%s\""
- ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#if VERBOSE
- ", [\"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#else
", %p /* 5 vars, unterminated */"
#endif
") = -1 ENOENT (%m)\n",
Q_FILENAME, q_argv[0], q_argv[1], q_argv[2],
- argv[3], argv[4], argv[5]
+ argv[3], argv[4], argv[5], (char *) tail_argv + sizeof(argv)
#if VERBOSE
- , q_envp[0], q_envp[1], envp[2], envp[3], envp[4]
+ , q_envp[0], q_envp[1], envp[2], envp[3], envp[4],
+ (char *) tail_envp + sizeof(envp)
#else
, tail_envp
#endif
diff --git a/tests-mx32/execveat.c b/tests-mx32/execveat.c
index 566a59f..853e26c 100644
--- a/tests-mx32/execveat.c
+++ b/tests-mx32/execveat.c
@@ -2,7 +2,7 @@
* This file is part of execveat strace test.
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -64,17 +64,18 @@
syscall(__NR_execveat, -100, FILENAME, tail_argv, tail_envp, 0x1100);
printf("execveat(AT_FDCWD, \"%s\""
- ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#if VERBOSE
- ", [\"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#else
", %p /* 5 vars, unterminated */"
#endif
", AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) = -1 %s (%m)\n",
Q_FILENAME, q_argv[0], q_argv[1], q_argv[2],
- argv[3], argv[4], argv[5],
+ argv[3], argv[4], argv[5], (char *) tail_argv + sizeof(argv),
#if VERBOSE
q_envp[0], q_envp[1], envp[2], envp[3], envp[4],
+ (char *) tail_envp + sizeof(envp),
#else
tail_envp,
#endif
diff --git a/tests-mx32/fanotify_mark-Xabbrev.c b/tests-mx32/fanotify_mark-Xabbrev.c
new file mode 100644
index 0000000..2dc9fa1
--- /dev/null
+++ b/tests-mx32/fanotify_mark-Xabbrev.c
@@ -0,0 +1 @@
+#include "fanotify_mark.c"
diff --git a/tests-mx32/fanotify_mark-Xabbrev.gen.test b/tests-mx32/fanotify_mark-Xabbrev.gen.test
new file mode 100755
index 0000000..86c4034
--- /dev/null
+++ b/tests-mx32/fanotify_mark-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xabbrev -e trace=fanotify_mark
diff --git a/tests-mx32/fanotify_mark-Xraw.c b/tests-mx32/fanotify_mark-Xraw.c
new file mode 100644
index 0000000..f02c886
--- /dev/null
+++ b/tests-mx32/fanotify_mark-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "fanotify_mark.c"
diff --git a/tests-mx32/fanotify_mark-Xraw.gen.test b/tests-mx32/fanotify_mark-Xraw.gen.test
new file mode 100755
index 0000000..5be964d
--- /dev/null
+++ b/tests-mx32/fanotify_mark-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xraw -e trace=fanotify_mark
diff --git a/tests-mx32/fanotify_mark-Xverbose.c b/tests-mx32/fanotify_mark-Xverbose.c
new file mode 100644
index 0000000..b76f46f
--- /dev/null
+++ b/tests-mx32/fanotify_mark-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "fanotify_mark.c"
diff --git a/tests-mx32/fanotify_mark-Xverbose.gen.test b/tests-mx32/fanotify_mark-Xverbose.gen.test
new file mode 100755
index 0000000..ef1a99d
--- /dev/null
+++ b/tests-mx32/fanotify_mark-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xverbose -e trace=fanotify_mark
diff --git a/tests-mx32/fanotify_mark.c b/tests-mx32/fanotify_mark.c
index 11cf7d0..9509b83 100644
--- a/tests-mx32/fanotify_mark.c
+++ b/tests-mx32/fanotify_mark.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Eugene Syromyatnikov <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,20 @@
# include <unistd.h>
# include <sys/fanotify.h>
+#if XLAT_RAW
+# define str_fan_mark_add "0x1"
+# define str_fan_modify_ondir "0x40000002"
+# define str_at_fdcwd "-100"
+#elif XLAT_VERBOSE
+# define str_fan_mark_add "0x1 /* FAN_MARK_ADD */"
+# define str_fan_modify_ondir "0x40000002 /* FAN_MODIFY|FAN_ONDIR */"
+# define str_at_fdcwd "-100 /* AT_FDCWD */"
+#else
+# define str_fan_mark_add "FAN_MARK_ADD"
+# define str_fan_modify_ondir "FAN_MODIFY|FAN_ONDIR"
+# define str_at_fdcwd "AT_FDCWD"
+#endif
+
/* Performs fanotify_mark call via the syscall interface. */
static void
do_call(kernel_ulong_t fd, kernel_ulong_t flags, const char *flags_str,
@@ -97,26 +111,73 @@
static const struct strval flags[] = {
{ F8ILL_KULONG_MASK, "0" },
{ (kernel_ulong_t) 0xdec0deddefaced00ULL,
- "0xefaced00 /* FAN_MARK_??? */" },
+ "0xefaced00"
+#if !XLAT_RAW
+ " /* FAN_MARK_??? */"
+#endif
+ },
{ (kernel_ulong_t) 0xda7a105700000040ULL,
- "FAN_MARK_IGNORED_SURV_MODIFY" },
+#if XLAT_RAW
+ "0x40"
+#elif XLAT_VERBOSE
+ "0x40 /* FAN_MARK_IGNORED_SURV_MODIFY */"
+#else
+ "FAN_MARK_IGNORED_SURV_MODIFY"
+#endif
+ },
{ (kernel_ulong_t) 0xbadc0deddeadfeedULL,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xdeadfeed"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"FAN_MARK_ADD|FAN_MARK_DONT_FOLLOW|FAN_MARK_ONLYDIR|"
"FAN_MARK_IGNORED_MASK|FAN_MARK_IGNORED_SURV_MODIFY|"
- "FAN_MARK_FLUSH|0xdeadfe00" },
+ "FAN_MARK_FLUSH|0xdeadfe00"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ },
};
static const struct strval64 masks[] = {
{ ARG_ULL_STR(0) },
{ 0xdeadfeedfacebeefULL,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xdeadfeedfacebeef"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"FAN_ACCESS|FAN_MODIFY|FAN_CLOSE_WRITE|FAN_OPEN|"
"FAN_ACCESS_PERM|FAN_ONDIR|FAN_EVENT_ON_CHILD|"
- "0xdeadfeedb2ccbec4" },
- { ARG_ULL_STR(0xffffffffb7fcbfc4) " /* FAN_??? */" },
+ "0xdeadfeedb2ccbec4"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ },
+ { ARG_ULL_STR(0xffffffffb7fcbfc4)
+#if !XLAT_RAW
+ " /* FAN_??? */"
+#endif
+ },
};
static const struct strval dirfds[] = {
{ (kernel_ulong_t) 0xfacefeed00000001ULL, "1" },
- { (kernel_ulong_t) 0xdec0ded0ffffffffULL, "FAN_NOFD" },
- { (kernel_ulong_t) 0xbadfacedffffff9cULL, "AT_FDCWD" },
+ { (kernel_ulong_t) 0xdec0ded0ffffffffULL,
+#if XLAT_RAW
+ "-1"
+#elif XLAT_VERBOSE
+ "-1 /* FAN_NOFD */"
+#else
+ "FAN_NOFD"
+#endif
+ },
+ { (kernel_ulong_t) 0xbadfacedffffff9cULL, str_at_fdcwd },
{ (kernel_ulong_t) 0xdefaced1beeff00dULL, "-1091571699" },
};
static const char str64[] = STR64;
@@ -149,8 +210,9 @@
rc = fanotify_mark(-1, FAN_MARK_ADD, FAN_MODIFY | FAN_ONDIR,
-100, ".");
- printf("fanotify_mark(-1, FAN_MARK_ADD, FAN_MODIFY|FAN_ONDIR"
- ", AT_FDCWD, \".\") = %s\n", sprintrc(rc));
+ printf("fanotify_mark(-1, %s, %s, %s, \".\") = %s\n",
+ str_fan_mark_add, str_fan_modify_ondir, str_at_fdcwd,
+ sprintrc(rc));
for (i = 0; i < ARRAY_SIZE(fds); i++) {
for (j = 0; j < ARRAY_SIZE(flags); j++) {
diff --git a/tests-mx32/fcntl-common.c b/tests-mx32/fcntl-common.c
new file mode 100644
index 0000000..a35a837
--- /dev/null
+++ b/tests-mx32/fcntl-common.c
@@ -0,0 +1,267 @@
+/*
+ * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include "flock.h"
+
+#define FILE_LEN 4096
+
+#define TEST_FLOCK_EINVAL(cmd) test_flock_einval(cmd, #cmd)
+#define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+
+#ifdef HAVE_TYPEOF
+# define TYPEOF_FLOCK_OFF_T typeof(((struct_kernel_flock *) NULL)->l_len)
+#else
+# define TYPEOF_FLOCK_OFF_T off_t
+#endif
+
+static const char *errstr;
+
+static long
+invoke_test_syscall(const unsigned int fd, const unsigned int cmd, void *const p)
+{
+ const kernel_ulong_t kfd = F8ILL_KULONG_MASK | fd;
+ const kernel_ulong_t op = F8ILL_KULONG_MASK | cmd;
+
+ long rc = syscall(TEST_SYSCALL_NR, kfd, op, (uintptr_t) p);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+static void
+test_flock_einval(const int cmd, const char *name)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL;
+ fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+
+ invoke_test_syscall(0, cmd, fl);
+ 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);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, name, bad_addr, errstr);
+}
+
+/*
+ * This function is not declared static to avoid potential
+ * "defined but not used" warning when included by fcntl.c
+ */
+void
+test_flock64_einval(const int cmd, const char *name)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL;
+ fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+
+ invoke_test_syscall(0, cmd, fl);
+ 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);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, name, bad_addr, errstr);
+}
+
+static void
+test_flock(void)
+{
+ TEST_FLOCK_EINVAL(F_SETLK);
+ TEST_FLOCK_EINVAL(F_SETLKW);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_SETLK, fl);
+ 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);
+ if (rc)
+ return;
+
+ invoke_test_syscall(0, F_GETLK, fl);
+ 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);
+ 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);
+}
+
+static void
+test_flock64_ofd(void)
+{
+#if defined F_OFD_GETLK && defined F_OFD_SETLK && defined F_OFD_SETLKW
+ TEST_FLOCK64_EINVAL(F_OFD_SETLK);
+ TEST_FLOCK64_EINVAL(F_OFD_SETLKW);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_OFD_SETLK, fl);
+ 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);
+ if (rc)
+ return;
+
+ invoke_test_syscall(0, F_OFD_GETLK, fl);
+ 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);
+ 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);
+#endif /* F_OFD_GETLK && F_OFD_SETLK && F_OFD_SETLKW */
+}
+
+static void test_flock64_lk64(void);
+
+static void
+test_flock64(void)
+{
+ test_flock64_ofd();
+ test_flock64_lk64();
+}
+
+/*
+ * F_[GS]ETOWN_EX had conflicting values with F_[SG]ETLK64
+ * in kernel revisions v2.6.32-rc1~96..v2.6.32-rc7~23.
+ */
+#undef TEST_F_OWNER_EX
+#if defined F_GETOWN_EX && defined F_SETOWN_EX \
+ && (F_GETOWN_EX != F_SETLK64) && (F_SETOWN_EX != F_GETLK64)
+# define TEST_F_OWNER_EX
+#endif
+
+#ifdef TEST_F_OWNER_EX
+# include "f_owner_ex.h"
+
+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)
+{
+ 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);
+
+ void *bad_addr = (void *) fo + 1;
+ invoke_test_syscall(0, cmd, bad_addr);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, cmd_name, bad_addr, errstr);
+
+ return rc;
+}
+
+static void
+test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name,
+ pid_t pid)
+{
+ long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX),
+ type, type_name, pid);
+ if (!rc)
+ test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX),
+ type, type_name, pid);
+}
+
+static void
+test_f_owner_ex(void)
+{
+ static const struct {
+ int type;
+ const char *type_name;
+ pid_t pid[2];
+ } a[] = {
+ { ARG_STR(F_OWNER_TID), { 1234567890, 20 } },
+ { ARG_STR(F_OWNER_PID), { 1298126790, 30 } },
+ { ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } }
+ };
+
+ 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]);
+ }
+ }
+}
+#endif /* TEST_F_OWNER_EX */
+
+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))
+ perror_msg_and_fail("ftruncate");
+}
+
+int
+main(void)
+{
+ create_sample();
+ test_flock();
+ test_flock64();
+#ifdef TEST_F_OWNER_EX
+ test_f_owner_ex();
+#endif
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-mx32/fcntl.c b/tests-mx32/fcntl.c
index 4f62ca2..7539f19 100644
--- a/tests-mx32/fcntl.c
+++ b/tests-mx32/fcntl.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,51 +33,40 @@
# define TEST_SYSCALL_NR __NR_fcntl
# define TEST_SYSCALL_STR "fcntl"
-# include "struct_flock.c"
-
-# define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+# include "fcntl-common.c"
static void
-test_flock64_einval(const int cmd, const char *name)
+test_flock64_undecoded(const int cmd, const char *name)
{
struct_kernel_flock64 fl = {
.l_type = F_RDLCK,
.l_start = 0xdefaced1facefeedULL,
.l_len = 0xdefaced2cafef00dULL
};
- long rc = invoke_test_syscall(cmd, &fl);
+ invoke_test_syscall(0, cmd, &fl);
printf("%s(0, %s, %p) = %s\n",
- TEST_SYSCALL_STR, name, &fl, sprintrc(rc));
+ TEST_SYSCALL_STR, name, &fl, errstr);
}
+#define TEST_FLOCK64_UNDECODED(cmd) test_flock64_undecoded(cmd, #cmd)
+
static void
-test_flock64(void)
+test_flock64_lk64(void)
{
/*
* F_[GS]ETOWN_EX had conflicting values with F_[GS]ETLK64
* in kernel revisions v2.6.32-rc1~96..v2.6.32-rc7~23.
*/
-#if !defined(F_GETOWN_EX) || F_GETOWN_EX != F_SETLK64
- TEST_FLOCK64_EINVAL(F_SETLK64);
-#endif
+# if !defined(F_GETOWN_EX) || F_GETOWN_EX != F_SETLK64
+ TEST_FLOCK64_UNDECODED(F_SETLK64);
+# endif
/* F_GETLK and F_SETLKW64 have conflicting values on mips64 */
-#if !defined(__mips64) || F_GETLK != F_SETLKW64
- TEST_FLOCK64_EINVAL(F_SETLKW64);
-#endif
-#if !defined(F_SETOWN_EX) || F_SETOWN_EX != F_GETLK64
- TEST_FLOCK64_EINVAL(F_GETLK64);
-#endif
-}
-
-int
-main(void)
-{
- create_sample();
- test_flock();
- test_flock64();
-
- puts("+++ exited with 0 +++");
- return 0;
+# if !defined(__mips64) || F_GETLK != F_SETLKW64
+ TEST_FLOCK64_UNDECODED(F_SETLKW64);
+# endif
+# if !defined(F_SETOWN_EX) || F_SETOWN_EX != F_GETLK64
+ TEST_FLOCK64_UNDECODED(F_GETLK64);
+# endif
}
#else
diff --git a/tests-mx32/fcntl64.c b/tests-mx32/fcntl64.c
index 068956e..f65f7cb 100644
--- a/tests-mx32/fcntl64.c
+++ b/tests-mx32/fcntl64.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,68 +33,38 @@
# define TEST_SYSCALL_NR __NR_fcntl64
# define TEST_SYSCALL_STR "fcntl64"
-# include "struct_flock.c"
-
-# define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+# include "fcntl-common.c"
static void
-test_flock64_einval(const int cmd, const char *name)
-{
- struct_kernel_flock64 fl = {
- .l_type = F_RDLCK,
- .l_start = 0xdefaced1facefeedULL,
- .l_len = 0xdefaced2cafef00dULL
- };
- long rc = invoke_test_syscall(cmd, &fl);
- 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, sprintrc(rc));
-}
-
-static void
-test_flock64(void)
+test_flock64_lk64(void)
{
TEST_FLOCK64_EINVAL(F_SETLK64);
TEST_FLOCK64_EINVAL(F_SETLKW64);
-# ifdef F_OFD_SETLK
- TEST_FLOCK64_EINVAL(F_OFD_SETLK);
- TEST_FLOCK64_EINVAL(F_OFD_SETLKW);
-# endif
- struct_kernel_flock64 fl = {
- .l_type = F_RDLCK,
- .l_len = FILE_LEN
- };
- long rc = invoke_test_syscall(F_SETLK64, &fl);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_SETLK64, fl);
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, sprintrc(rc));
+ TEST_SYSCALL_STR, FILE_LEN, errstr);
if (rc)
return;
- invoke_test_syscall(F_GETLK64, &fl);
+ invoke_test_syscall(0, F_GETLK64, fl);
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(F_SETLK64, &fl);
- printf("%s(0, F_SETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ invoke_test_syscall(0, F_SETLKW64, fl);
+ 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);
}
-int
-main(void)
-{
- create_sample();
- test_flock();
- test_flock64();
-
- puts("+++ exited with 0 +++");
- return 0;
-}
-
#else
SKIP_MAIN_UNDEFINED("__NR_fcntl64")
diff --git a/tests-mx32/gen_tests.am b/tests-mx32/gen_tests.am
index 2cd76bc..5db8375 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 alarm.gen.test bpf.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 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 fstat64.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 int_0x80.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_kvm_run.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test kcmp-y.gen.test kern_features.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.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 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 mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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_brport.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-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 osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.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 printstr.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.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 pwritev.gen.test quotactl.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 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 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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test socketcall.gen.test sockopt-sol_netlink.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_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 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-v.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-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 fstat64.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 int_0x80.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_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.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 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 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 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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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-v-none.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.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 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 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 printstr.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.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 pwritev.gen.test quotactl.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 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 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_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 socketcall.gen.test sockopt-sol_netlink.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_x32.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_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 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
$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -28,6 +28,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -37,6 +40,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -124,6 +139,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -316,6 +340,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -334,6 +361,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -376,12 +409,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -400,6 +469,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -463,9 +541,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -484,6 +580,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -610,9 +715,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -685,6 +796,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -727,6 +847,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -1057,9 +1186,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -1141,6 +1288,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.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 a95ff3e..24e0510 100644
--- a/tests-mx32/gen_tests.in
+++ b/tests-mx32/gen_tests.in
@@ -34,9 +34,14 @@
add_key -a30 -s12
adjtimex -a15
aio -a14 -e trace=io_setup,io_submit,io_getevents,io_cancel,io_destroy
+aio_pgetevents -e trace=io_pgetevents
alarm -a10
bpf -a20
bpf-v -a20 -v -e trace=bpf
+bpf-obj_get_info_by_fd -a20 -y -e trace=bpf
+bpf-obj_get_info_by_fd-v -a20 -y -v -e trace=bpf
+bpf-obj_get_info_by_fd-prog -a20 -y -e trace=bpf
+bpf-obj_get_info_by_fd-prog-v -a20 -y -v -e trace=bpf
btrfs +ioctl.test
chmod -a28
chown -a28
@@ -66,6 +71,9 @@
fallocate -a18
fanotify_init
fanotify_mark -a32
+fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark
+fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark
+fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark
fchdir -a11
fchmod -a15
fchmodat
@@ -130,12 +138,15 @@
ioctl_dm-v +ioctl.test -v -s9
ioctl_evdev +ioctl.test
ioctl_evdev-v +ioctl.test -v
+ioctl_inotify +ioctl.test
ioctl_kvm_run +ioctl.test -a36 -y
ioctl_loop +ioctl.test
ioctl_loop-nv +ioctl.test -a22 -e verbose=none
ioctl_loop-v +ioctl.test -v
ioctl_mtd +ioctl.test
ioctl_nsfs +ioctl.test -esignal=none
+ioctl_perf +ioctl.test
+ioctl_ptp +ioctl.test
ioctl_rtc +ioctl.test
ioctl_rtc-v +ioctl.test -v
ioctl_scsi +ioctl.test
@@ -149,15 +160,30 @@
ioprio -a18 -e trace=ioprio_get,ioprio_set
ip_mreq -e trace=setsockopt
ipc -a19
-ipc_msg +ipc.sh
-ipc_sem +ipc.sh
-ipc_shm +ipc.sh
+ipc_msg +ipc.sh -a26
+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-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-Xraw +ipc.sh -Xraw -a19
+ipc_shm-Xverbose +ipc.sh -Xverbose -a36
kcmp -a22
kcmp-y -a22 -y -e trace=kcmp
kern_features -a16
kexec_file_load -s9
kexec_load -s9
keyctl -a31 -s10
+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
lchown -a30
lchown32 -a32
@@ -179,13 +205,22 @@
mlock -a20 -e trace=mlock,munlock
mlock2
mlockall -a12
+mmap-Xabbrev +mmap.test abbrev
+mmap-Xraw +mmap.test raw 14
+mmap-Xverbose +mmap.test verbose
mmap64 +mmap.test
+mmap64-Xabbrev +mmap.test abbrev
+mmap64-Xraw +mmap.test raw 14
+mmap64-Xverbose +mmap.test verbose
mmsg -e read=0 -e write=1 -e trace=recvmmsg,sendmmsg
mmsg-silent -a25 -e verbose=none -e trace=sendmmsg,recvmmsg
mmsg_name -a25 -e trace=sendmmsg,recvmmsg
mmsg_name-v -v -a25 -e trace=sendmmsg,recvmmsg
modify_ldt -a23
-mount
+mount -a33
+mount-Xabbrev -a33 -e trace=mount -Xabbrev
+mount-Xraw -a33 -e trace=mount -Xraw
+mount-Xverbose -a33 -e trace=mount -Xverbose
move_pages -s3
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
@@ -228,7 +263,9 @@
nlattr_ifaddrlblmsg +netlink_sock_diag.test
nlattr_ifaddrmsg +netlink_sock_diag.test
nlattr_ifinfomsg +netlink_sock_diag.test
+nlattr_ifla_af_spec +netlink_sock_diag.test
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_inet_diag_msg +netlink_sock_diag.test
@@ -253,6 +290,9 @@
old_mmap -a11 -e trace=mmap
old_mmap-P -e trace=mmap -P "/dev/full" 9>>/dev/full
old_mmap-v-none -a11 -e trace=mmap -e verbose=none
+old_mmap-Xabbrev -a11 -e trace=mmap -Xabbrev
+old_mmap-Xraw -a11 -e trace=mmap -Xraw
+old_mmap-Xverbose -a11 -e trace=mmap -Xverbose
oldfstat -a18 -v -P stat.sample
oldlstat -a32 -v -P stat.sample -P /dev/full
oldselect -a13 -e trace=select
@@ -267,6 +307,9 @@
perf_event_open -a1
perf_event_open_nonverbose -a34 -e verbose=none -e trace=perf_event_open
perf_event_open_unabbrev -a1 -v -e trace=perf_event_open
+personality-Xabbrev +personality.test -Xabbrev
+personality-Xraw +personality.test -a15 -Xraw
+personality-Xverbose +personality.test -Xverbose
pipe2 -a15
pkey_alloc -a17
pkey_free -a13
@@ -322,7 +365,7 @@
s390_guarded_storage -a32
s390_guarded_storage-v -e trace=s390_guarded_storage -a32 -v
s390_pci_mmio_read_write -e trace=s390_pci_mmio_read,s390_pci_mmio_write -a30
-s390_runtime_instr -a50
+s390_runtime_instr -a44
s390_sthyi -a47
s390_sthyi-v -e trace=s390_sthyi -a47 -v
sched test_trace_expr times -e/sched
@@ -377,7 +420,13 @@
sigsuspend -a19 -esignal=none
so_linger -e trace=getsockopt,setsockopt
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
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
+sock_filter-v-Xverbose -v -e trace=getsockopt,setsockopt -X verbose
socketcall -a20
sockopt-sol_netlink -e trace=getsockopt,setsockopt
splice
@@ -405,6 +454,12 @@
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
+trace_personality_32 +qualify_personality.sh 32 'getcwd' 'fsync-y'
+trace_personality_64 +qualify_personality.sh 64 'getcwd' 'fsync-y'
+trace_personality_x32 +qualify_personality.sh x32 'getcwd' 'fsync-y'
+trace_personality_regex_32 +qualify_personality.sh 32 '/clock.*' 'times|fcntl.*'
+trace_personality_regex_64 +qualify_personality.sh 64 '/clock.*' 'times|fcntl.*'
+trace_personality_regex_x32 +qualify_personality.sh x32 '/clock.*' 'times|fcntl.*'
trace_question test_trace_expr '' -e?osf_utimes,?/^pkey_.*
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
diff --git a/tests-mx32/init.sh b/tests-mx32/init.sh
index dffbfce..8861b70 100644
--- a/tests-mx32/init.sh
+++ b/tests-mx32/init.sh
@@ -1,7 +1,7 @@
#!/bin/sh
#
# Copyright (c) 2011-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2011-2017 The strace developers.
+# Copyright (c) 2011-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -230,6 +230,17 @@
match_diff "$LOG" "$EXP"
}
+# Usage: run_strace_match_grep [args to run_strace]
+run_strace_match_grep()
+{
+ args="$*"
+ [ -n "$args" -a -z "${args##*-e trace=*}" ] ||
+ set -- -e trace="$NAME" "$@"
+ run_prog > /dev/null
+ run_strace "$@" $args > "$EXP"
+ match_grep "$LOG" "$EXP"
+}
+
# Print kernel version code.
# usage: kernel_version_code $(uname -r)
kernel_version_code()
diff --git a/tests-mx32/ioctl_evdev.c b/tests-mx32/ioctl_evdev.c
index 9d16cec..5eacac0 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,6 +39,13 @@
# include <sys/ioctl.h>
# include <linux/input.h>
+# ifndef EV_SW
+# define EV_SW 5
+# endif
+# ifndef ABS_MT_TOOL_Y
+# define ABS_MT_TOOL_Y 0x3d
+# endif
+
static const unsigned int magic = 0xdeadbeef;
static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL;
@@ -67,12 +74,14 @@
# endif /* VERBOSE */
}
-# define TEST_NULL_ARG(cmd) \
+# define TEST_NULL_ARG_EX(cmd, str) \
do { \
ioctl(-1, cmd, 0); \
- printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", str); \
} while (0)
+# define TEST_NULL_ARG(cmd) TEST_NULL_ARG_EX(cmd, #cmd)
+
int
main(void)
{
@@ -117,14 +126,24 @@
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(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(0x3f), "EVIOCGABS(0x3f /* ABS_??? */)");
+ TEST_NULL_ARG_EX(EVIOCSABS(0x3f), "EVIOCSABS(0x3f /* ABS_??? */)");
+
TEST_NULL_ARG(EVIOCGBIT(EV_SYN, 0));
TEST_NULL_ARG(EVIOCGBIT(EV_KEY, 1));
TEST_NULL_ARG(EVIOCGBIT(EV_REL, 2));
TEST_NULL_ARG(EVIOCGBIT(EV_ABS, 3));
TEST_NULL_ARG(EVIOCGBIT(EV_MSC, 4));
-# ifdef EV_SW
TEST_NULL_ARG(EVIOCGBIT(EV_SW, 5));
-# endif
TEST_NULL_ARG(EVIOCGBIT(EV_LED, 6));
TEST_NULL_ARG(EVIOCGBIT(EV_SND, 7));
TEST_NULL_ARG(EVIOCGBIT(EV_REP, 8));
@@ -132,6 +151,12 @@
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(0x18, 13),
+ "EVIOCGBIT(0x18 /* EV_??? */, 13)");
+ TEST_NULL_ARG_EX(EVIOCGBIT(0x1f, 14),
+ "EVIOCGBIT(0x1f /* EV_??? */, 14)");
+
ioctl(-1, EVIOCGBIT(EV_MAX, 42), 0);
printf("ioctl(-1, EVIOCGBIT(%#x /* EV_??? */, 42), NULL)"
" = -1 EBADF (%m)\n", EV_MAX);
diff --git a/tests-mx32/ioctl_inotify.c b/tests-mx32/ioctl_inotify.c
new file mode 100644
index 0000000..0650c62
--- /dev/null
+++ b/tests-mx32/ioctl_inotify.c
@@ -0,0 +1,81 @@
+/*
+ * This file is part of ioctl_inotify strace test.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <asm/unistd.h>
+#include <linux/ioctl.h>
+
+#ifndef INOTIFY_IOC_SETNEXTWD
+# define INOTIFY_IOC_SETNEXTWD _IOW('I', 0, int32_t)
+#endif
+
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t unknown_inotify_cmd =
+ (kernel_ulong_t) 0xbadc0dedfeed49edULL;
+ static const kernel_ulong_t magic =
+ (kernel_ulong_t) 0xdeadbeefbadc0dedULL;
+
+ /* Unknown inotify commands */
+ sys_ioctl(-1, unknown_inotify_cmd, magic);
+ printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x49, %#x, %#x), "
+ "%#lx) = -1 EBADF (%m)\n",
+ _IOC_DIR((unsigned int) unknown_inotify_cmd) & _IOC_NONE ?
+ "|_IOC_NONE" : "",
+ _IOC_NR((unsigned int) unknown_inotify_cmd),
+ _IOC_SIZE((unsigned int) unknown_inotify_cmd),
+ (unsigned long) magic);
+
+ sys_ioctl(-1, INOTIFY_IOC_SETNEXTWD + 1, magic);
+ printf("ioctl(-1, _IOC(_IOC_WRITE, 0x49, %#x, %#x), %#lx)"
+ " = -1 EBADF (%m)\n",
+ (unsigned int) _IOC_NR(INOTIFY_IOC_SETNEXTWD + 1),
+ (unsigned int) _IOC_SIZE(INOTIFY_IOC_SETNEXTWD + 1),
+ (unsigned long) magic);
+
+ /* INOTIFY_IOC_SETNEXTWD */
+ sys_ioctl(-1, INOTIFY_IOC_SETNEXTWD, magic);
+ printf("ioctl(-1, INOTIFY_IOC_SETNEXTWD, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-mx32/ioctl_inotify.gen.test b/tests-mx32/ioctl_inotify.gen.test
new file mode 100755
index 0000000..237a98b
--- /dev/null
+++ b/tests-mx32/ioctl_inotify.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_inotify +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests-mx32/ioctl_kvm_run.c b/tests-mx32/ioctl_kvm_run.c
index 1794614..e1bef57 100644
--- a/tests-mx32/ioctl_kvm_run.c
+++ b/tests-mx32/ioctl_kvm_run.c
@@ -40,6 +40,7 @@
# include <string.h>
# include <sys/ioctl.h>
# include <sys/mman.h>
+# include <unistd.h>
# include <linux/kvm.h>
static int
@@ -56,7 +57,7 @@
static const char dev[] = "/dev/kvm";
static const char vm_dev[] = "anon_inode:kvm-vm";
-static const char vcpu_dev[] = "anon_inode:kvm-vcpu";
+static char vcpu_dev[] = "anon_inode:kvm-vcpu:0";
static size_t page_size;
extern const char code[];
@@ -165,6 +166,23 @@
}
}
+static int
+vcpu_dev_should_have_cpuid(int fd)
+{
+ int r = 0;
+ char *filename = NULL;
+ char buf[sizeof(vcpu_dev)];
+
+ if (asprintf(&filename, "/proc/%d/fd/%d", getpid(), fd) < 0)
+ error_msg_and_fail("asprintf");
+
+ if (readlink(filename, buf, sizeof(buf)) == sizeof(buf) - 1
+ && (memcmp(buf, vcpu_dev, sizeof(buf) - 1) == 0))
+ r = 1;
+ free(filename);
+ return r;
+}
+
int
main(void)
{
@@ -208,6 +226,15 @@
(unsigned long) page_size, (unsigned long) page_size, mem);
int vcpu_fd = KVM_IOCTL(vm_fd, KVM_CREATE_VCPU, NULL);
+ if (!vcpu_dev_should_have_cpuid(vcpu_fd))
+ /*
+ * This is an older kernel that doesn't place a cpuid
+ * at the end of the dentry associated with vcpu_fd.
+ * Trim the cpuid part of vcpu_dev like:
+ * "anon_inode:kvm-vcpu:0" -> "anon_inode:kvm-vcpu"
+ */
+ vcpu_dev[strlen (vcpu_dev) - 2] = '\0';
+
printf("ioctl(%d<%s>, KVM_CREATE_VCPU, 0) = %d<%s>\n",
vm_fd, vm_dev, vcpu_fd, vcpu_dev);
diff --git a/tests-mx32/ioctl_loop.c b/tests-mx32/ioctl_loop.c
index bafbd37..10b7dc3 100644
--- a/tests-mx32/ioctl_loop.c
+++ b/tests-mx32/ioctl_loop.c
@@ -34,8 +34,10 @@
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
+#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/sysmacros.h>
+#include <asm/unistd.h>
#include <linux/ioctl.h>
#include <linux/loop.h>
#include "print_fields.h"
@@ -45,6 +47,12 @@
# define ABBREV 0
#endif
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
static void
print_loop_info(struct loop_info * const info, bool print_encrypt,
const char *encrypt_type, const char *encrypt_key,
@@ -178,7 +186,7 @@
TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info64, info64);
/* Unknown loop commands */
- ioctl(-1, unknown_loop_cmd, magic);
+ sys_ioctl(-1, unknown_loop_cmd, magic);
printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x4c, %#x, %#x), "
"%#lx) = -1 EBADF (%m)\n",
_IOC_DIR((unsigned int) unknown_loop_cmd) & _IOC_NONE ?
@@ -187,14 +195,14 @@
_IOC_SIZE((unsigned int) unknown_loop_cmd),
(unsigned long) magic);
- ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic);
+ sys_ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic);
printf("ioctl(-1, _IOC(0, 0x4c, %#x, %#x), %#lx) = "
"-1 EBADF (%m)\n",
_IOC_NR(LOOP_SET_BLOCK_SIZE + 1),
_IOC_SIZE(LOOP_SET_BLOCK_SIZE + 1),
(unsigned long) magic);
- ioctl(-1, LOOP_CTL_GET_FREE + 1, magic);
+ sys_ioctl(-1, LOOP_CTL_GET_FREE + 1, magic);
printf("ioctl(-1, _IOC(0, 0x4c, %#x, %#x), %#lx) = "
"-1 EBADF (%m)\n",
_IOC_NR(LOOP_CTL_GET_FREE + 1),
@@ -202,7 +210,7 @@
(unsigned long) magic);
/* LOOP_SET_FD */
- ioctl(-1, LOOP_SET_FD, magic);
+ sys_ioctl(-1, LOOP_SET_FD, magic);
printf("ioctl(-1, LOOP_SET_FD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
@@ -289,7 +297,7 @@
printf("ioctl(-1, LOOP_GET_STATUS64, %p) = -1 EBADF (%m)\n", info64);
/* LOOP_CHANGE_FD */
- ioctl(-1, LOOP_CHANGE_FD, magic);
+ sys_ioctl(-1, LOOP_CHANGE_FD, magic);
printf("ioctl(-1, LOOP_CHANGE_FD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
@@ -298,22 +306,22 @@
printf("ioctl(-1, LOOP_SET_CAPACITY) = -1 EBADF (%m)\n");
/* LOOP_SET_DIRECT_IO */
- ioctl(-1, LOOP_SET_DIRECT_IO, magic);
+ sys_ioctl(-1, LOOP_SET_DIRECT_IO, magic);
printf("ioctl(-1, LOOP_SET_DIRECT_IO, %lu) = -1 EBADF (%m)\n",
(unsigned long) magic);
/* LOOP_SET_BLOCK_SIZE */
- ioctl(-1, LOOP_SET_BLOCK_SIZE, magic);
+ sys_ioctl(-1, LOOP_SET_BLOCK_SIZE, magic);
printf("ioctl(-1, LOOP_SET_BLOCK_SIZE, %lu) = -1 EBADF (%m)\n",
(unsigned long) magic);
/* LOOP_CTL_ADD */
- ioctl(-1, LOOP_CTL_ADD, magic);
+ sys_ioctl(-1, LOOP_CTL_ADD, magic);
printf("ioctl(-1, LOOP_CTL_ADD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
/* LOOP_CTL_REMOVE */
- ioctl(-1, LOOP_CTL_REMOVE, magic);
+ sys_ioctl(-1, LOOP_CTL_REMOVE, magic);
printf("ioctl(-1, LOOP_CTL_REMOVE, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
diff --git a/tests-mx32/ioctl_perf-success.c b/tests-mx32/ioctl_perf-success.c
new file mode 100644
index 0000000..9eade6a
--- /dev/null
+++ b/tests-mx32/ioctl_perf-success.c
@@ -0,0 +1,165 @@
+/*
+ * Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_PERF_EVENT_H
+
+# include <assert.h>
+# include <inttypes.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+# include <sys/ioctl.h>
+# include <linux/perf_event.h>
+
+# 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 *)
+
+struct perf_event_query_bpf {
+ uint32_t ids_len;
+ uint32_t prog_cnt;
+ uint32_t ids[0];
+};
+# endif
+
+int
+main(int argc, char **argv)
+{
+ static const uint64_t magic64 = 0xfacefeeddeadc0deULL;
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, u64_ptr);
+ uint64_t *const u64_efault = u64_ptr + 1;
+ uint32_t *const u32_arr = tail_alloc(sizeof(uint32_t) * 4);
+ uint32_t *const u32_efault = u32_arr + 4;
+
+ unsigned long num_skip;
+ long inject_retval;
+ bool locked = false;
+
+ *u64_ptr = magic64;
+
+ 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 long i = 0; i < num_skip; i++) {
+ long ret = ioctl(-1, PERF_EVENT_IOC_ID, NULL);
+
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = %s%s\n",
+ 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"
+ ", PERF_EVENT_IOC_ID, NULL) returning %lu",
+ inject_retval);
+
+ /* PERF_EVENT_IOC_ID */
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, NULL) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = %ld (INJECTED)\n",
+ inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, u64_efault) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = %ld (INJECTED)\n",
+ u64_efault, inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, u64_ptr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, [%" PRIu64 "]) = %ld (INJECTED)\n",
+ magic64, inject_retval);
+
+ /* PERF_EVENT_IOC_QUERY_BPF */
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) = %ld (INJECTED)\n",
+ inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_efault)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, %p) = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[3] = 0xdeadbeef;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr + 3)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3735928559, ...}) "
+ "= %ld (INJECTED)\n",
+ inject_retval);
+
+ u32_arr[2] = 0xdecaffed;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr + 2)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3737845741"
+ ", prog_cnt=3735928559, ids=%p})"
+ " = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[0] = 0xbadc0ded;
+ u32_arr[1] = 5;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661"
+ ", prog_cnt=5, ids=[3737845741, 3735928559, ... /* %p */]})"
+ " = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[1] = 2;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661"
+ ", prog_cnt=2, ids=[3737845741, 3735928559]})"
+ " = %ld (INJECTED)\n",
+ inject_retval);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H");
+
+#endif
diff --git a/tests-mx32/ioctl_perf-success.test b/tests-mx32/ioctl_perf-success.test
new file mode 100755
index 0000000..779a2a9
--- /dev/null
+++ b/tests-mx32/ioctl_perf-success.test
@@ -0,0 +1,15 @@
+#!/bin/sh -efu
+
+# Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls.
+
+. "${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
new file mode 100644
index 0000000..7db01db
--- /dev/null
+++ b/tests-mx32/ioctl_perf.c
@@ -0,0 +1,238 @@
+/*
+ * Check decoding of PERF_EVENT_IOC_* commands of ioctl syscall.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_PERF_EVENT_H
+
+# include <inttypes.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/ioctl.h>
+# include <asm/unistd.h>
+# include <linux/perf_event.h>
+
+/*
+ * Workaround the bug in kernel UAPI that was fixed
+ * in Linux commit v2.6.33-rc1~48^2~288^2~19.
+ */
+# ifndef u64
+# define u64 uint64_t
+# endif
+
+# define XLAT_MACROS_ONLY
+# include "xlat/perf_ioctl_cmds.h"
+# undef XLAT_MACROS_ONLY
+
+# define STR16 "0123456789abcdef"
+
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t unknown_perf_cmd =
+ (kernel_ulong_t) 0xbadc0dedfeed24edULL;
+ static const kernel_ulong_t magic =
+ (kernel_ulong_t) 0xdeadbeefbadc0dedULL;
+ static const uint64_t magic64 = 0xfacefeeddeadc0deULL;
+ static const char str[] = STR16 STR16 STR16 STR16;
+
+ static struct {
+ unsigned int cmd;
+ const char *str;
+ } flag_iocs[] = {
+ { ARG_STR(PERF_EVENT_IOC_ENABLE) },
+ { ARG_STR(PERF_EVENT_IOC_DISABLE) },
+ { ARG_STR(PERF_EVENT_IOC_RESET) },
+ };
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, u64_ptr);
+ uint64_t *const u64_efault = u64_ptr + 1;
+ uint32_t *const u32_arr = tail_alloc(sizeof(uint32_t) * 4);
+ uint32_t *const u32_efault = u32_arr + 4;
+ char *const str_ptr = tail_memdup(str, sizeof(str));
+ char *const str_efault = str_ptr + sizeof(str);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct perf_event_attr, pea_ptr);
+
+ *u64_ptr = magic64;
+ fill_memory_ex(pea_ptr, sizeof(*pea_ptr), 0xaa, 0x55);
+
+ /* Unknown perf commands */
+ sys_ioctl(-1, unknown_perf_cmd, magic);
+ printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x24, %#x, %#x), "
+ "%#lx) = -1 EBADF (%m)\n",
+ _IOC_DIR((unsigned int) unknown_perf_cmd) & _IOC_NONE ?
+ "|_IOC_NONE" : "",
+ _IOC_NR((unsigned int) unknown_perf_cmd),
+ _IOC_SIZE((unsigned int) unknown_perf_cmd),
+ (unsigned long) magic);
+
+ sys_ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1, magic);
+ printf("ioctl(-1, _IOC(_IOC_WRITE, 0x24, %#x, %#x), %#lx)"
+ " = -1 EBADF (%m)\n",
+ (unsigned int) _IOC_NR(PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1),
+ (unsigned int) _IOC_SIZE(PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1),
+ (unsigned long) magic);
+
+ /* PERF_EVENT_IOC_{ENABLE,DISABLE,RESET} */
+ for (unsigned i = 0; i < ARRAY_SIZE(flag_iocs); i++) {
+ ioctl(-1, flag_iocs[i].cmd, 0);
+ printf("ioctl(-1, %s, 0) = -1 EBADF (%m)\n", flag_iocs[i].str);
+
+ ioctl(-1, flag_iocs[i].cmd, 1);
+ printf("ioctl(-1, %s, PERF_IOC_FLAG_GROUP) = -1 EBADF (%m)\n",
+ flag_iocs[i].str);
+
+ ioctl(-1, flag_iocs[i].cmd, 2);
+ printf("ioctl(-1, %s, 0x2 /* PERF_IOC_FLAG_??? */) "
+ "= -1 EBADF (%m)\n",
+ flag_iocs[i].str);
+
+ sys_ioctl(-1, flag_iocs[i].cmd, magic);
+ printf("ioctl(-1, %s, PERF_IOC_FLAG_GROUP|%#x) "
+ "= -1 EBADF (%m)\n",
+ flag_iocs[i].str, (unsigned int) magic & ~1U);
+ }
+
+ /* PERF_EVENT_IOC_REFRESH */
+ sys_ioctl(-1, PERF_EVENT_IOC_REFRESH, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_REFRESH, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_PERIOD */
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, u64_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, %p) = -1 EBADF (%m)\n",
+ u64_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, u64_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, [%" PRIu64 "])"
+ " = -1 EBADF (%m)\n",
+ magic64);
+
+ /* PERF_EVENT_IOC_SET_OUTPUT */
+ sys_ioctl(-1, PERF_EVENT_IOC_SET_OUTPUT, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_OUTPUT, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_SET_FILTER */
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, %p) = -1 EBADF (%m)\n",
+ str_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, \"%.32s\"...)"
+ " = -1 EBADF (%m)\n",
+ str_ptr);
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr + 40);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, \"%.32s\")"
+ " = -1 EBADF (%m)\n",
+ str_ptr + 40);
+
+ str_ptr[sizeof(str) - 1] = '0';
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr + 40);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, %p)"
+ " = -1 EBADF (%m)\n",
+ str_ptr + 40);
+
+ /* PERF_EVENT_IOC_ID */
+ ioctl(-1, PERF_EVENT_IOC_ID, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_ID, u64_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = -1 EBADF (%m)\n",
+ u64_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_ID, u64_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = -1 EBADF (%m)\n",
+ u64_ptr);
+
+ /* PERF_EVENT_IOC_SET_BPF */
+ sys_ioctl(-1, PERF_EVENT_IOC_SET_BPF, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_BPF, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_PAUSE_OUTPUT */
+ sys_ioctl(-1, PERF_EVENT_IOC_PAUSE_OUTPUT, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_PAUSE_OUTPUT, %lu) = -1 EBADF (%m)\n",
+ (unsigned long) magic);
+
+ /* PERF_EVENT_IOC_QUERY_BPF */
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, %p) = -1 EBADF (%m)\n",
+ u32_efault);
+
+ u32_arr[0] = 0xbadc0ded;
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661, ...})"
+ " = -1 EBADF (%m)\n");
+
+ /* PERF_EVENT_IOC_MODIFY_ATTRIBUTES */
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, NULL)"
+ " = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, pea_ptr + 1);
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, %p)"
+ " = -1 EBADF (%m)\n",
+ pea_ptr + 1);
+
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES"
+ ", {type=%#x /* PERF_TYPE_??? */"
+ ", size=%#x /* PERF_ATTR_SIZE_??? */"
+ ", config=%#llx, ...}) = -1 EBADF (%m)\n",
+ (unsigned int) pea_ptr->type,
+ (unsigned int) pea_ptr->size,
+ (unsigned long long) pea_ptr->config);
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, pea_ptr);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H");
+
+#endif
diff --git a/tests-mx32/ioctl_perf.gen.test b/tests-mx32/ioctl_perf.gen.test
new file mode 100755
index 0000000..0264f34
--- /dev/null
+++ b/tests-mx32/ioctl_perf.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_perf +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests-mx32/ioctl_ptp.c b/tests-mx32/ioctl_ptp.c
new file mode 100644
index 0000000..1c82919
--- /dev/null
+++ b/tests-mx32/ioctl_ptp.c
@@ -0,0 +1,131 @@
+/*
+ * Check decoding of PTP_* commands of ioctl syscall.
+ *
+ * Copyright (c) 2018 Harsha Sharma <[email protected]>
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_STRUCT_PTP_SYS_OFFSET
+
+#include <errno.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <linux/ptp_clock.h>
+
+#include "xlat.h"
+#include "xlat/ptp_flags_options.h"
+
+static void
+test_no_device(void)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_clock_caps, caps);
+ fill_memory(caps, sizeof(*caps));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_sys_offset, sysoff);
+ fill_memory(sysoff, sizeof(*sysoff));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_extts_request, extts);
+ fill_memory(extts, sizeof(*extts));
+
+ 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);
+
+ /* 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);
+
+ /* 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");
+
+ /* 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;
+ 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");
+
+ /* 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;
+ 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");
+
+ /* 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);
+
+ 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);
+}
+
+int
+main(void)
+{
+ test_no_device();
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_STRUCT_PTP_SYS_OFFSET")
+
+#endif /* HAVE_STRUCT_PTP_SYS_OFFSET */
diff --git a/tests-mx32/ioctl_ptp.gen.test b/tests-mx32/ioctl_ptp.gen.test
new file mode 100755
index 0000000..6c0b0a9
--- /dev/null
+++ b/tests-mx32/ioctl_ptp.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_ptp +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests-mx32/ioctl_v4l2.c b/tests-mx32/ioctl_v4l2.c
index 2736b39..a7dcc49 100644
--- a/tests-mx32/ioctl_v4l2.c
+++ b/tests-mx32/ioctl_v4l2.c
@@ -842,6 +842,21 @@
printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_USER"
", count=%u}) = -1 EBADF (%m)\n", 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"
+ ", count=%u, controls=%p}) = -1 EBADF (%m)\n",
+ 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_??? */"
+ ", count=%u, controls=%p}) = -1 EBADF (%m)\n",
+ 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);
@@ -883,7 +898,7 @@
", {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\"}"
- ", %p]}) = -1 EBADF (%m)\n",
+ ", ... /* %p */]}) = -1 EBADF (%m)\n",
p_ext_controls->count,
p_ext_controls->controls[0].value,
(long long) p_ext_controls->controls[0].value64,
diff --git a/tests-mx32/ipc.sh b/tests-mx32/ipc.sh
index 5943c1a..ef55073 100644
--- a/tests-mx32/ipc.sh
+++ b/tests-mx32/ipc.sh
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-run_strace -eipc $args > "$EXP"
+run_strace -eipc "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
exit 0
diff --git a/tests-mx32/ipc_msg-Xabbrev.c b/tests-mx32/ipc_msg-Xabbrev.c
new file mode 100644
index 0000000..f4535e8
--- /dev/null
+++ b/tests-mx32/ipc_msg-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_msg.c"
diff --git a/tests-mx32/ipc_msg-Xabbrev.gen.test b/tests-mx32/ipc_msg-Xabbrev.gen.test
new file mode 100755
index 0000000..0969ee1
--- /dev/null
+++ b/tests-mx32/ipc_msg-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26); do not edit.
+set -- -Xabbrev -a26
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_msg-Xraw.c b/tests-mx32/ipc_msg-Xraw.c
new file mode 100644
index 0000000..9c016d3
--- /dev/null
+++ b/tests-mx32/ipc_msg-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_msg.c"
diff --git a/tests-mx32/ipc_msg-Xraw.gen.test b/tests-mx32/ipc_msg-Xraw.gen.test
new file mode 100755
index 0000000..5d5d732
--- /dev/null
+++ b/tests-mx32/ipc_msg-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xraw +ipc.sh -Xraw -a16); do not edit.
+set -- -Xraw -a16
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_msg-Xverbose.c b/tests-mx32/ipc_msg-Xverbose.c
new file mode 100644
index 0000000..3f59f98
--- /dev/null
+++ b/tests-mx32/ipc_msg-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_msg.c"
diff --git a/tests-mx32/ipc_msg-Xverbose.gen.test b/tests-mx32/ipc_msg-Xverbose.gen.test
new file mode 100755
index 0000000..88c79a0
--- /dev/null
+++ b/tests-mx32/ipc_msg-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xverbose +ipc.sh -Xverbose -a34); do not edit.
+set -- -Xverbose -a34
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_msg.c b/tests-mx32/ipc_msg.c
index b493843..a74dba5 100644
--- a/tests-mx32/ipc_msg.c
+++ b/tests-mx32/ipc_msg.c
@@ -1,6 +1,7 @@
/*
* Copyright (c) 2015 Elvira Khabirova <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,6 +36,10 @@
#include "xlat.h"
#include "xlat/resource_flags.h"
+#ifndef MSG_STAT_ANY
+# define MSG_STAT_ANY 13
+#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)
@@ -52,13 +57,50 @@
# define TEST_MSGCTL_BOGUS_ADDR 1
#endif
+#if XLAT_RAW
+# define str_ipc_excl_nowait "0xface1c00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_msg_stat "0xb"
+# define str_msg_info "0xc"
+# define str_msg_stat_any "0xd"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_excl_nowait \
+ "0xface1c00 /\\* 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_msg_stat "0xb /\\* MSG_STAT \\*/"
+# define str_msg_info "0xc /\\* MSG_INFO \\*/"
+# define str_msg_stat_any "0xd /\\* MSG_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#else
+# define str_ipc_excl_nowait "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_msg_stat "MSG_STAT"
+# define str_msg_info "MSG_INFO"
+# define str_msg_stat_any "MSG_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
msgctl(id, IPC_RMID, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) += 0\n", id);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) += 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -67,7 +109,7 @@
{
static const key_t private_key =
(key_t) (0xffffffff00000000ULL | IPC_PRIVATE);
- static const key_t bogus_key = (key_t) 0xeca86420fdb97531ULL;
+ static const key_t bogus_key = (key_t) 0xeca86420fdb9f531ULL;
static const int bogus_msgid = 0xfdb97531;
static const int bogus_cmd = 0xdeadbeef;
#if TEST_MSGCTL_BOGUS_ADDR
@@ -79,37 +121,36 @@
struct msqid_ds ds;
rc = msgget(bogus_key, bogus_flags);
- printf("msgget\\(%#llx, %s%s%s%#x\\|%#04o\\) += %s\n",
+ printf("msgget\\(%#llx, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key),
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
+ str_ipc_excl_nowait,
bogus_flags & 0777, sprintrc_grep(rc));
id = msgget(private_key, 0600);
if (id < 0)
perror_msg_and_skip("msgget");
- printf("msgget\\(IPC_PRIVATE, 0600\\) += %d\n", id);
+ printf("msgget\\(%s, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = msgctl(bogus_msgid, bogus_cmd, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?%#x /\\* MSG_\\?\\?\\? \\*/, NULL\\)"
- " += %s\n", bogus_msgid, bogus_cmd, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
#if TEST_MSGCTL_BOGUS_ADDR
rc = msgctl(bogus_msgid, IPC_SET, bogus_addr);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, %p\\) += %s\n",
- bogus_msgid, bogus_addr, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_ipc_set, bogus_addr,
+ sprintrc_grep(rc));
#endif
if (msgctl(id, IPC_STAT, &ds))
perror_msg_and_skip("msgctl IPC_STAT");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{msg_perm=\\{uid=%u"
+ 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, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
+ ", 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,
@@ -119,18 +160,22 @@
if (msgctl(id, IPC_SET, &ds))
perror_msg_and_skip("msgctl IPC_SET");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, \\{msg_perm=\\{uid=%u"
- ", gid=%u, mode=%#o\\}, ...\\}\\) += 0\n",
- id, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
- (unsigned) ds.msg_perm.mode);
+ 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);
rc = msgctl(0, MSG_INFO, &ds);
- printf("msgctl\\(0, (IPC_64\\|)?MSG_INFO, %p\\) += %s\n",
- &ds, sprintrc_grep(rc));
+ printf("msgctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_msg_info, &ds, sprintrc_grep(rc));
rc = msgctl(id, MSG_STAT, &ds);
- printf("msgctl\\(%d, (IPC_64\\|)?MSG_STAT, %p\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_msg_stat, &ds, sprintrc_grep(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));
return 0;
}
diff --git a/tests-mx32/ipc_msg.gen.test b/tests-mx32/ipc_msg.gen.test
index b1f1f7e..8202619 100755
--- a/tests-mx32/ipc_msg.gen.test
+++ b/tests-mx32/ipc_msg.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg +ipc.sh ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg +ipc.sh -a26); do not edit.
+set -- -a26
. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_msgbuf-Xabbrev.c b/tests-mx32/ipc_msgbuf-Xabbrev.c
new file mode 100644
index 0000000..e2f09eb
--- /dev/null
+++ b/tests-mx32/ipc_msgbuf-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_msgbuf.c"
diff --git a/tests-mx32/ipc_msgbuf-Xabbrev.gen.test b/tests-mx32/ipc_msgbuf-Xabbrev.gen.test
new file mode 100755
index 0000000..402d804
--- /dev/null
+++ b/tests-mx32/ipc_msgbuf-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev); do not edit.
+set -- -Xabbrev
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests-mx32/ipc_msgbuf-Xraw.c b/tests-mx32/ipc_msgbuf-Xraw.c
new file mode 100644
index 0000000..c6f8a31
--- /dev/null
+++ b/tests-mx32/ipc_msgbuf-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_msgbuf.c"
diff --git a/tests-mx32/ipc_msgbuf-Xraw.gen.test b/tests-mx32/ipc_msgbuf-Xraw.gen.test
new file mode 100755
index 0000000..c1112cb
--- /dev/null
+++ b/tests-mx32/ipc_msgbuf-Xraw.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests-mx32/ipc_msgbuf-Xverbose.c b/tests-mx32/ipc_msgbuf-Xverbose.c
new file mode 100644
index 0000000..ae09a4a
--- /dev/null
+++ b/tests-mx32/ipc_msgbuf-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_msgbuf.c"
diff --git a/tests-mx32/ipc_msgbuf-Xverbose.gen.test b/tests-mx32/ipc_msgbuf-Xverbose.gen.test
new file mode 100755
index 0000000..2c72eb7
--- /dev/null
+++ b/tests-mx32/ipc_msgbuf-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose); do not edit.
+set -- -Xverbose
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests-mx32/ipc_msgbuf.c b/tests-mx32/ipc_msgbuf.c
index c4af1be..e439c49 100644
--- a/tests-mx32/ipc_msgbuf.c
+++ b/tests-mx32/ipc_msgbuf.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2015 Elvira Khabirova <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,7 +28,10 @@
*/
#include "tests.h"
+#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
+#include <asm/unistd.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/stat.h>
@@ -38,22 +41,54 @@
static int msqid = -1;
+#if XLAT_RAW
+# define str_ipc_creat "0x200"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_64 "0x100"
+#elif XLAT_VERBOSE
+# define str_ipc_creat "0x200 /\\* IPC_CREAT \\*/"
+# define str_ipc_private "0 /\\* IPC_PRIVATE \\*/"
+# define str_ipc_rmid "0 /\\* IPC_RMID \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+#else
+# define str_ipc_creat "IPC_CREAT"
+# define str_ipc_private "IPC_PRIVATE"
+# define str_ipc_rmid "IPC_RMID"
+# define str_ipc_64 "IPC_64"
+#endif
+
static int
cleanup(void)
{
if (msqid != -1) {
int rc = msgctl(msqid, IPC_RMID, 0);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ msqid, str_ipc_64, str_ipc_rmid);
msqid = -1;
if (rc == -1)
return 77;
+ puts("\\+\\+\\+ exited with 0 \\+\\+\\+");
}
return 0;
}
int
+sys_msgrcv(int msqid, void *msgp, size_t sz, kernel_long_t msgtyp,
+ int msgflg)
+{
+#if defined __x86_64__ && defined __ILP32__
+ return syscall(__NR_msgrcv, msqid, msgp, sz, msgtyp, msgflg);
+#else
+ return msgrcv(msqid, msgp, sz, msgtyp, msgflg);
+#endif
+}
+
+int
main(void)
{
- const long mtype = 0xdefaced;
+ /* mtype has to be positive */
+ const kernel_long_t mtype = (kernel_long_t) 0x7facefed5adc0dedULL;
struct {
kernel_long_t mtype;
char mtext[msgsz];
@@ -64,11 +99,23 @@
msqid = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU);
if (msqid == -1)
perror_msg_and_skip("msgget");
+ printf("msgget\\(%s, %s\\|0700\\) = %d\n",
+ str_ipc_private, str_ipc_creat, msqid);
+
typedef void (*atexit_func)(void);
atexit((atexit_func) cleanup);
+
+ printf("msgsnd\\(%d, \\{%lld, \"" text_string "\\\\0\"\\}, 14, 0\\)"
+ " = 0\n",
+ msqid, (long long) mtype);
if (msgsnd(msqid, &msg, msgsz, 0) == -1)
perror_msg_and_skip("msgsnd");
- if (msgrcv(msqid, &msg, msgsz, mtype, 0) != msgsz)
+
+ if (sys_msgrcv(msqid, &msg, msgsz, -mtype, 0) != msgsz)
perror_msg_and_skip("msgrcv");
+ printf("msgrcv\\(%d, \\{%lld, \"" text_string "\\\\0\"\\}, 14, %lld"
+ ", 0\\) = 14\n",
+ msqid, (long long) mtype, -(long long) mtype);
+
return cleanup();
}
diff --git a/tests-mx32/ipc_msgbuf.test b/tests-mx32/ipc_msgbuf.test
index d0b65d1..9e78785 100755
--- a/tests-mx32/ipc_msgbuf.test
+++ b/tests-mx32/ipc_msgbuf.test
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
run_prog
-run_strace -v -e msgget,msgsnd,msgrcv,msgctl $args
-match_grep
+run_strace -a26 -v -e msgget,msgsnd,msgrcv,msgctl "$@" $args > "$EXP"
+match_grep "$LOG" "$EXP"
exit 0
diff --git a/tests-mx32/ipc_sem-Xabbrev.c b/tests-mx32/ipc_sem-Xabbrev.c
new file mode 100644
index 0000000..727005a
--- /dev/null
+++ b/tests-mx32/ipc_sem-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_sem.c"
diff --git a/tests-mx32/ipc_sem-Xabbrev.gen.test b/tests-mx32/ipc_sem-Xabbrev.gen.test
new file mode 100755
index 0000000..0757a48
--- /dev/null
+++ b/tests-mx32/ipc_sem-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29); do not edit.
+set -- -Xabbrev -a29
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_sem-Xraw.c b/tests-mx32/ipc_sem-Xraw.c
new file mode 100644
index 0000000..0a57c0a
--- /dev/null
+++ b/tests-mx32/ipc_sem-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_sem.c"
diff --git a/tests-mx32/ipc_sem-Xraw.gen.test b/tests-mx32/ipc_sem-Xraw.gen.test
new file mode 100755
index 0000000..07d59e5
--- /dev/null
+++ b/tests-mx32/ipc_sem-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xraw +ipc.sh -Xraw -a19); do not edit.
+set -- -Xraw -a19
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_sem-Xverbose.c b/tests-mx32/ipc_sem-Xverbose.c
new file mode 100644
index 0000000..56e8380
--- /dev/null
+++ b/tests-mx32/ipc_sem-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_sem.c"
diff --git a/tests-mx32/ipc_sem-Xverbose.gen.test b/tests-mx32/ipc_sem-Xverbose.gen.test
new file mode 100755
index 0000000..43a61d0
--- /dev/null
+++ b/tests-mx32/ipc_sem-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xverbose +ipc.sh -Xverbose -a36); do not edit.
+set -- -Xverbose -a36
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_sem.c b/tests-mx32/ipc_sem.c
index c883272..8cbbfaa 100644
--- a/tests-mx32/ipc_sem.c
+++ b/tests-mx32/ipc_sem.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2015 Andreas Schwab <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,43 @@
#include "xlat.h"
#include "xlat/resource_flags.h"
+#ifndef SEM_STAT_ANY
+# define SEM_STAT_ANY 20
+#endif
+
+#if XLAT_RAW
+# define str_ipc_flags "0xface1e00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_stat "0x2"
+# define str_sem_stat "0x12"
+# define str_sem_info "0x13"
+# define str_sem_stat_any "0x14"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "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_stat "0x2 /\\* IPC_STAT \\*/"
+# define str_sem_stat "0x12 /\\* SEM_STAT \\*/"
+# define str_sem_info "0x13 /\\* SEM_INFO \\*/"
+# define str_sem_stat_any "0x14 /\\* SEM_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#else
+# 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_stat "IPC_STAT"
+# define str_sem_stat "SEM_STAT"
+# define str_sem_info "SEM_INFO"
+# define str_sem_stat_any "SEM_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#endif
+
union semun {
int val; /* Value for SETVAL */
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
@@ -50,8 +87,8 @@
cleanup(void)
{
semctl(id, 0, IPC_RMID, 0);
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_RMID, \\[?NULL\\]?\\) += 0\n",
- id);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?NULL\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -75,42 +112,41 @@
struct seminfo info;
rc = semget(bogus_key, bogus_size, bogus_flags);
- printf("semget\\(%#llx, %d, %s%s%s%#x\\|%#04o\\) += %s\n",
+ printf("semget\\(%#llx, %d, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
- bogus_flags & 0777, sprintrc_grep(rc));
+ str_ipc_flags, bogus_flags & 0777, sprintrc_grep(rc));
id = semget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("semget");
- printf("semget\\(IPC_PRIVATE, 1, 0600\\) += %d\n", id);
+ printf("semget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = semctl(bogus_semid, bogus_semnum, bogus_cmd, bogus_arg);
#define SEMCTL_BOGUS_ARG_FMT "(%#lx|\\[(%#lx|NULL)\\]|NULL)"
- printf("semctl\\(%d, %d, (IPC_64\\|)?%#x /\\* SEM_\\?\\?\\? \\*/"
- ", " SEMCTL_BOGUS_ARG_FMT "\\) += %s\n",
- bogus_semid, bogus_semnum, bogus_cmd,
+ printf("semctl\\(%d, %d, (%s\\|)?%s, " SEMCTL_BOGUS_ARG_FMT "\\) = %s\n",
+ bogus_semid, bogus_semnum, str_ipc_64, str_bogus_cmd,
bogus_arg, bogus_arg, sprintrc_grep(rc));
un.buf = &ds;
if (semctl(id, 0, IPC_STAT, un))
perror_msg_and_skip("semctl IPC_STAT");
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_STAT, \\[?%p\\]?\\) += 0\n",
- id, &ds);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_stat, &ds);
un.__buf = &info;
rc = semctl(0, 0, SEM_INFO, un);
- printf("semctl\\(0, 0, (IPC_64\\|)?SEM_INFO, \\[?%p\\]?\\) += %s\n",
- &info, sprintrc_grep(rc));
+ printf("semctl\\(0, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ str_ipc_64, str_sem_info, &info, sprintrc_grep(rc));
un.buf = &ds;
rc = semctl(id, 0, SEM_STAT, un);
- printf("semctl\\(%d, 0, (IPC_64\\|)?SEM_STAT, \\[?%p\\]?\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ id, str_ipc_64, str_sem_stat, &ds, sprintrc_grep(rc));
+
+ 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));
return 0;
}
diff --git a/tests-mx32/ipc_sem.gen.test b/tests-mx32/ipc_sem.gen.test
index a1c03d2..173b3af 100755
--- a/tests-mx32/ipc_sem.gen.test
+++ b/tests-mx32/ipc_sem.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem +ipc.sh ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem +ipc.sh -a29); do not edit.
+set -- -a29
. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_shm-Xabbrev.c b/tests-mx32/ipc_shm-Xabbrev.c
new file mode 100644
index 0000000..c191aea
--- /dev/null
+++ b/tests-mx32/ipc_shm-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_shm.c"
diff --git a/tests-mx32/ipc_shm-Xabbrev.gen.test b/tests-mx32/ipc_shm-Xabbrev.gen.test
new file mode 100755
index 0000000..d68c246
--- /dev/null
+++ b/tests-mx32/ipc_shm-Xabbrev.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_shm-Xraw.c b/tests-mx32/ipc_shm-Xraw.c
new file mode 100644
index 0000000..08e09ac
--- /dev/null
+++ b/tests-mx32/ipc_shm-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_shm.c"
diff --git a/tests-mx32/ipc_shm-Xraw.gen.test b/tests-mx32/ipc_shm-Xraw.gen.test
new file mode 100755
index 0000000..071eef6
--- /dev/null
+++ b/tests-mx32/ipc_shm-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xraw +ipc.sh -Xraw -a19); do not edit.
+set -- -Xraw -a19
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_shm-Xverbose.c b/tests-mx32/ipc_shm-Xverbose.c
new file mode 100644
index 0000000..b936785
--- /dev/null
+++ b/tests-mx32/ipc_shm-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_shm.c"
diff --git a/tests-mx32/ipc_shm-Xverbose.gen.test b/tests-mx32/ipc_shm-Xverbose.gen.test
new file mode 100755
index 0000000..170adee
--- /dev/null
+++ b/tests-mx32/ipc_shm-Xverbose.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/ipc_shm.c b/tests-mx32/ipc_shm.c
index 6586c8a..f5802cc 100644
--- a/tests-mx32/ipc_shm.c
+++ b/tests-mx32/ipc_shm.c
@@ -41,16 +41,62 @@
# define SHM_HUGE_MASK 0x3f
#endif
+#ifndef SHM_STAT_ANY
+# define SHM_STAT_ANY 15
+#endif
+
#include "xlat.h"
#include "xlat/shm_resource_flags.h"
+#if XLAT_RAW
+# define str_ipc_flags "0x2ce1e00"
+# define str_shm_huge "21<<26"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_shm_stat "0xd"
+# define str_shm_info "0xe"
+# define str_shm_stat_any "0xf"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdefaced2"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "0x2ce1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE" \
+ "\\|0x2ce0000 \\*/"
+# define str_shm_huge "21<<26 /\\* SHM_HUGE_SHIFT \\*/"
+# 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_shm_stat "0xd /\\* SHM_STAT \\*/"
+# define str_shm_info "0xe /\\* SHM_INFO \\*/"
+# define str_shm_stat_any "0xf /\\* SHM_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#else
+# define str_ipc_flags \
+ "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE\\|0x2ce0000"
+# define str_shm_huge "21<<SHM_HUGE_SHIFT"
+# 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_shm_stat "SHM_STAT"
+# define str_shm_info "SHM_INFO"
+# define str_shm_stat_any "SHM_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
shmctl(id, IPC_RMID, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) += 0\n", id);
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -82,68 +128,67 @@
struct shmid_ds ds;
rc = shmget(bogus_key, bogus_size, 0);
- printf("shmget\\(%#llx, %zu, 000\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, 000\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
sprintrc_grep(rc));
rc = shmget(bogus_key, bogus_size, huge_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "21<<SHM_HUGE_SHIFT", 0, sprintrc_grep(rc));
+ str_shm_huge, 0, sprintrc_grep(rc));
bogus_flags = 0xface1e55 & ~(bogus_ipc_shm_flags | huge_mask);
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %#x\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %#x\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
bogus_flags & ~0777,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags |= bogus_ipc_shm_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags),
+ str_ipc_flags,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags |= huge_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_ipc_flags, str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags &= ~bogus_ipc_shm_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %#x\\|%s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %#x\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
bogus_flags & ~(0777 | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
id = shmget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("shmget");
- printf("shmget\\(IPC_PRIVATE, 1, 0600\\) += %d\n", id);
+ printf("shmget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = shmctl(bogus_id, bogus_cmd, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?%#x /\\* SHM_\\?\\?\\? \\*/, NULL\\)"
- " += %s\n", bogus_id, bogus_cmd, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_id, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
rc = shmctl(bogus_id, IPC_STAT, bogus_addr);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, %p\\) += %s\n",
- bogus_id, bogus_addr, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_id, str_ipc_64, str_ipc_stat, bogus_addr,
+ sprintrc_grep(rc));
if (shmctl(id, IPC_STAT, &ds))
perror_msg_and_skip("shmctl IPC_STAT");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{shm_perm=\\{uid=%u, gid=%u, "
+ 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, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ "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,
@@ -153,18 +198,23 @@
if (shmctl(id, IPC_SET, &ds))
perror_msg_and_skip("shmctl IPC_SET");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_SET, \\{shm_perm=\\{uid=%u, gid=%u"
- ", mode=%#o\\}, ...\\}\\) += 0\n",
- id, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u"
+ ", 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);
rc = shmctl(0, SHM_INFO, &ds);
- printf("shmctl\\(0, (IPC_64\\|)?SHM_INFO, %p\\) += %s\n",
- &ds, sprintrc_grep(rc));
+ printf("shmctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_shm_info, &ds, sprintrc_grep(rc));
rc = shmctl(id, SHM_STAT, &ds);
- printf("shmctl\\(%d, (IPC_64\\|)?SHM_STAT, %p\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_shm_stat, &ds, sprintrc_grep(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));
return 0;
}
diff --git a/tests-mx32/ipc_shm.gen.test b/tests-mx32/ipc_shm.gen.test
index 8c6df9b..2e697d3 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 ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a29); do not edit.
+set -- -a29
. "${srcdir=.}/ipc.sh"
diff --git a/tests-mx32/kcmp.c b/tests-mx32/kcmp.c
index 60cd300..a6a05c5 100644
--- a/tests-mx32/kcmp.c
+++ b/tests-mx32/kcmp.c
@@ -2,6 +2,7 @@
* Check decoding of kcmp syscall.
*
* Copyright (c) 2016-2017 Eugene Syromyatnikov <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -167,7 +168,7 @@
int fd;
unsigned i;
- struct kcmp_epoll_slot *slot = tail_alloc(sizeof(*slot));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct kcmp_epoll_slot, slot);
/* Open some files to test printpidfd */
fd = open(null_path, O_RDONLY);
diff --git a/tests-mx32/kexec_load.c b/tests-mx32/kexec_load.c
index 2a6b441..ff4507c 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -129,7 +129,7 @@
printf("{buf=%p, bufsz=%zu, mem=%p, memsz=%zu}, ",
segms[i].buf, segms[i].bufsz,
segms[i].mem, segms[i].memsz);
- printf("%p], %s%s) = %s\n",
+ printf("... /* %p */], %s%s) = %s\n",
segms + NUM_SEGMS,
sizeof(long) == 8 ? flags[0].str64 : flags[0].str32,
flags[0].str, errstr);
diff --git a/tests-mx32/keyctl-Xabbrev.c b/tests-mx32/keyctl-Xabbrev.c
new file mode 100644
index 0000000..7b6b0dc
--- /dev/null
+++ b/tests-mx32/keyctl-Xabbrev.c
@@ -0,0 +1 @@
+#include "keyctl.c"
diff --git a/tests-mx32/keyctl-Xabbrev.gen.test b/tests-mx32/keyctl-Xabbrev.gen.test
new file mode 100755
index 0000000..0068a03
--- /dev/null
+++ b/tests-mx32/keyctl-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xabbrev -a31 -s10 -e trace=keyctl -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a31 -s10 -e trace=keyctl -Xabbrev
diff --git a/tests-mx32/keyctl-Xraw.c b/tests-mx32/keyctl-Xraw.c
new file mode 100644
index 0000000..202c22a
--- /dev/null
+++ b/tests-mx32/keyctl-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "keyctl.c"
diff --git a/tests-mx32/keyctl-Xraw.gen.test b/tests-mx32/keyctl-Xraw.gen.test
new file mode 100755
index 0000000..2d89ea7
--- /dev/null
+++ b/tests-mx32/keyctl-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xraw -a13 -s10 -e trace=keyctl -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a13 -s10 -e trace=keyctl -Xraw
diff --git a/tests-mx32/keyctl-Xverbose.c b/tests-mx32/keyctl-Xverbose.c
new file mode 100644
index 0000000..9f9d744
--- /dev/null
+++ b/tests-mx32/keyctl-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "keyctl.c"
diff --git a/tests-mx32/keyctl-Xverbose.gen.test b/tests-mx32/keyctl-Xverbose.gen.test
new file mode 100755
index 0000000..a0cdd7d
--- /dev/null
+++ b/tests-mx32/keyctl-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xverbose -a41 -s10 -e trace=keyctl -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a41 -s10 -e trace=keyctl -Xverbose
diff --git a/tests-mx32/keyctl.c b/tests-mx32/keyctl.c
index 5d46ab7..881f24b 100644
--- a/tests-mx32/keyctl.c
+++ b/tests-mx32/keyctl.c
@@ -89,6 +89,14 @@
/* From ioctl_dm.c */
# define STR32 "AbCdEfGhIjKlMnOpQrStUvWxYz012345"
+#if XLAT_RAW
+# define XARG_STR(v_) (v_), STRINGIFY(v_)
+#elif XLAT_VERBOSE
+# define XARG_STR(v_) (v_), STRINGIFY(v_) " /* " #v_ " */"
+#else
+# define XARG_STR ARG_STR
+#endif
+
/*
* When this is called with positive size, the buffer provided is an "out"
* argument and rc contains resulting size (globally defined nul_terminated_buf
@@ -187,7 +195,13 @@
long rc = syscall(__NR_keyctl, cmd, args[0], args[1], args[2], args[3]);
const char *errstr = sprintrc(rc);
+#if XLAT_RAW
+ printf("keyctl(%#x", (unsigned) cmd);
+#elif XLAT_VERBOSE
+ printf("keyctl(%#x /* %s */", (unsigned) cmd, cmd_str);
+#else
printf("keyctl(%s", cmd_str);
+#endif
for (i = 0; i < cnt; i++) {
printf(", ");
print_arg(args[i], arg_str[i], arg_fmt[i], arg_sz[i], rc);
@@ -299,8 +313,20 @@
static const struct keyctl_dh_params kcdhp_data = {
KEY_SPEC_GROUP_KEYRING, 1234567890, 3141592653U };
- static const char *kcdhp_str = "{private=KEY_SPEC_GROUP_KEYRING, "
- "prime=1234567890, base=-1153374643}";
+ static const char *kcdhp_str = "{private="
+#if XLAT_RAW || XLAT_VERBOSE
+ "-6"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
+ "KEY_SPEC_GROUP_KEYRING"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ ", prime=1234567890, base=-1153374643}";
/*
* It's bigger than current hash name size limit, but since it's
@@ -418,7 +444,15 @@
/* Invalid command */
do_keyctl((kernel_ulong_t) 0xbadc0dedfacefeedULL,
- "0xfacefeed /* KEYCTL_??? */",
+#if XLAT_VERBOSE
+ "KEYCTL_???"
+#else
+ "0xfacefeed"
+# if !XLAT_RAW
+ " /* KEYCTL_??? */"
+# endif
+#endif
+ ,
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xdeadfee1badc0de5ULL, NULL,
kulong_fmt,
@@ -440,7 +474,7 @@
(kernel_ulong_t) 0xbadc0dedffffffffLLU, "-1", NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_KEYRING_ID),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), "%d",
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), "%d",
sizeof(int), 3141592653U, NULL, "%d", NULL,
0UL);
@@ -469,7 +503,7 @@
buf_in_arg = true;
do_keyctl(ARG_STR(KEYCTL_UPDATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 0, NULL, ksize_fmt,
0UL);
@@ -498,7 +532,7 @@
/* KEYCTL_REVOKE */
do_keyctl(ARG_STR(KEYCTL_REVOKE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_REVOKE),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -513,7 +547,7 @@
/* KEYCTL_CHOWN */
do_keyctl(ARG_STR(KEYCTL_CHOWN),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(uid_t), ARG_STR(-1), NULL,
sizeof(gid_t), ARG_STR(-1), NULL,
0UL);
@@ -526,8 +560,15 @@
/* KEYCTL_SETPERM */
do_keyctl(ARG_STR(KEYCTL_SETPERM),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQKEY_AUTH_KEY), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQKEY_AUTH_KEY), NULL,
sizeof(uint32_t), 0xffffffffU,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xffffffff"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"KEY_POS_VIEW|KEY_POS_READ|KEY_POS_WRITE|"
"KEY_POS_SEARCH|KEY_POS_LINK|KEY_POS_SETATTR|"
"KEY_USR_VIEW|KEY_USR_READ|KEY_USR_WRITE|"
@@ -536,7 +577,12 @@
"KEY_GRP_SEARCH|KEY_GRP_LINK|KEY_GRP_SETATTR|"
"KEY_OTH_VIEW|KEY_OTH_READ|KEY_OTH_WRITE|"
"KEY_OTH_SEARCH|KEY_OTH_LINK|KEY_OTH_SETATTR|"
- "0xc0c0c0c0", NULL,
+ "0xc0c0c0c0"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ , NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_SETPERM),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -544,7 +590,12 @@
0UL);
do_keyctl(ARG_STR(KEYCTL_SETPERM),
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
- sizeof(uint32_t), 0xc0c0c0c0, "0xc0c0c0c0 /* KEY_??? */",
+ sizeof(uint32_t), 0xc0c0c0c0,
+ "0xc0c0c0c0"
+#if !XLAT_RAW
+ " /* KEY_??? */"
+#endif
+ ,
NULL,
0UL);
@@ -563,17 +614,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -581,7 +632,7 @@
/* KEYCTL_CLEAR */
do_keyctl(ARG_STR(KEYCTL_CLEAR),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_CLEAR),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -597,14 +648,14 @@
/* KEYCTL_LINK */
do_keyctl(ARG_STR(KEYCTL_LINK),
sizeof(int32_t), bogus_key1, NULL, "%d",
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_LINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(int32_t), bogus_key2, NULL, "%d",
0UL);
do_keyctl(ARG_STR(KEYCTL_LINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
0UL);
@@ -612,14 +663,14 @@
/* KEYCTL_UNLINK */
do_keyctl(ARG_STR(KEYCTL_UNLINK),
sizeof(int32_t), bogus_key1, NULL, "%d",
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_UNLINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(int32_t), bogus_key2, NULL, "%d",
0UL);
do_keyctl(ARG_STR(KEYCTL_UNLINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
0UL);
@@ -628,7 +679,7 @@
buf_in_arg = true;
do_keyctl(ARG_STR(KEYCTL_SEARCH),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(int32_t), 0, NULL, "%d");
@@ -636,7 +687,7 @@
sizeof(int32_t), bogus_key1, NULL, "%d",
sizeof(char *), (char *) 0xfffffacefffffeedULL, NULL, ptr_fmt,
sizeof(char *), (char *) 0xfffff00dfffff157ULL, NULL, ptr_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_USER_SESSION_KEYRING),
+ sizeof(int32_t), XARG_STR(KEY_SPEC_USER_SESSION_KEYRING),
NULL);
do_keyctl(ARG_STR(KEYCTL_SEARCH),
sizeof(int32_t), bogus_key2, NULL, "%d",
@@ -657,7 +708,7 @@
/* KEYCTL_RESTRICT_KEYRING */
do_keyctl(ARG_STR(KEYCTL_RESTRICT_KEYRING),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
NULL);
@@ -705,17 +756,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -751,11 +802,11 @@
ksize_fmt,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
do_keyctl(ARG_STR(KEYCTL_INSTANTIATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
sizeof(long_type_str), long_desc, NULL, NULL,
sizeof(kernel_ulong_t),
(kernel_ulong_t) sizeof(long_type_str), NULL, ksize_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
buf_in_arg = false;
@@ -788,7 +839,7 @@
/* KEYCTL_SET_REQKEY_KEYRING */
do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
- sizeof(int32_t), ARG_STR(KEY_REQKEY_DEFL_NO_CHANGE), NULL,
+ sizeof(int32_t), XARG_STR(KEY_REQKEY_DEFL_NO_CHANGE), NULL,
0UL);
/*
* Keep it commented out until proper way of faking syscalls is not
@@ -796,11 +847,15 @@
*/
/* do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
sizeof(int32_t),
- ARG_STR(KEY_REQKEY_DEFL_REQUESTOR_KEYRING), NULL, 0UL); */
+ XARG_STR(KEY_REQKEY_DEFL_REQUESTOR_KEYRING), NULL, 0UL); */
do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xfeedf157badc0dedLLU,
- "0xbadc0ded /* KEY_REQKEY_DEFL_??? */", NULL, 0UL);
+ "-1159983635"
+#if !XLAT_RAW
+ " /* KEY_REQKEY_DEFL_??? */"
+#endif
+ , NULL, 0UL);
/* KEYCTL_SET_TIMEOUT */
@@ -822,7 +877,7 @@
/* KEYCTL_ASSUME_AUTHORITY */
do_keyctl(ARG_STR(KEYCTL_ASSUME_AUTHORITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_ASSUME_AUTHORITY),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -848,17 +903,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -893,7 +948,7 @@
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xfeedf157badc0dedLLU, "3134983661",
NULL,
- sizeof(uint32_t), ARG_STR(ENODEV), NULL,
+ sizeof(uint32_t), XARG_STR(ENODEV), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
@@ -923,16 +978,16 @@
ksize_fmt,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
do_keyctl(ARG_STR(KEYCTL_INSTANTIATE_IOV),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
sizeof(key_iov), key_iov, key_iov_str2, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) IOV_SIZE, NULL,
ksize_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
/* KEYCTL_INVALIDATE */
do_keyctl(ARG_STR(KEYCTL_INVALIDATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_INVALIDATE),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -948,7 +1003,7 @@
/* KEYCTL_GET_PERSISTENT */
do_keyctl(ARG_STR(KEYCTL_GET_PERSISTENT),
sizeof(uid_t), ARG_STR(-1), NULL,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_PERSISTENT),
sizeof(uid_t), 2718281828U, NULL, "%u",
diff --git a/tests-mx32/mknod.c b/tests-mx32/mknod.c
index b387149..4bcc274 100644
--- a/tests-mx32/mknod.c
+++ b/tests-mx32/mknod.c
@@ -59,7 +59,7 @@
rc = call_mknod(mode, dev);
printf("mknod(\"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho"
", makedev(%u, %u)) = %ld %s (%m)\n",
- sample, mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX),
+ sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)),
major((unsigned) dev), minor((unsigned) dev),
rc, errno2name());
diff --git a/tests-mx32/mknodat.c b/tests-mx32/mknodat.c
index 756e277..318dc5a 100644
--- a/tests-mx32/mknodat.c
+++ b/tests-mx32/mknodat.c
@@ -59,7 +59,7 @@
rc = call_mknodat(mode, dev);
printf("mknodat(-1, \"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho"
", makedev(%u, %u)) = %ld %s (%m)\n",
- sample, mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX),
+ sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)),
major((unsigned) dev), minor((unsigned) dev),
rc, errno2name());
diff --git a/tests-mx32/mmap-Xabbrev.c b/tests-mx32/mmap-Xabbrev.c
new file mode 100644
index 0000000..b31ce42
--- /dev/null
+++ b/tests-mx32/mmap-Xabbrev.c
@@ -0,0 +1 @@
+#include "mmap.c"
diff --git a/tests-mx32/mmap-Xabbrev.gen.test b/tests-mx32/mmap-Xabbrev.gen.test
new file mode 100755
index 0000000..b11a84f
--- /dev/null
+++ b/tests-mx32/mmap-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xabbrev +mmap.test abbrev); do not edit.
+set -- abbrev
+. "${srcdir=.}/mmap.test"
diff --git a/tests-mx32/mmap-Xraw.c b/tests-mx32/mmap-Xraw.c
new file mode 100644
index 0000000..ef25c03
--- /dev/null
+++ b/tests-mx32/mmap-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mmap.c"
diff --git a/tests-mx32/mmap-Xraw.gen.test b/tests-mx32/mmap-Xraw.gen.test
new file mode 100755
index 0000000..3caca91
--- /dev/null
+++ b/tests-mx32/mmap-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xraw +mmap.test raw 14); do not edit.
+set -- raw 14
+. "${srcdir=.}/mmap.test"
diff --git a/tests-mx32/mmap-Xverbose.c b/tests-mx32/mmap-Xverbose.c
new file mode 100644
index 0000000..08e9e30
--- /dev/null
+++ b/tests-mx32/mmap-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mmap.c"
diff --git a/tests-mx32/mmap-Xverbose.gen.test b/tests-mx32/mmap-Xverbose.gen.test
new file mode 100755
index 0000000..99b41c0
--- /dev/null
+++ b/tests-mx32/mmap-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xverbose +mmap.test verbose); do not edit.
+set -- verbose
+. "${srcdir=.}/mmap.test"
diff --git a/tests-mx32/mmap.c b/tests-mx32/mmap.c
index 0321bf5..e9f587e 100644
--- a/tests-mx32/mmap.c
+++ b/tests-mx32/mmap.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -58,25 +58,60 @@
(void) close(0);
(void) close(0);
+#if XLAT_RAW
+ printf("%s(NULL, 0, %#x, %#x, 0, 0) = -1 EBADF (%m)\n",
+ name, PROT_NONE, MAP_FILE);
+#elif XLAT_VERBOSE
+ printf("%s(NULL, 0, %#x /* PROT_NONE */, %#x /* MAP_FILE */, 0, 0) "
+ "= -1 EBADF (%m)\n",
+ name, PROT_NONE, MAP_FILE);
+#else
printf("%s(NULL, 0, PROT_NONE, MAP_FILE, 0, 0) = -1 EBADF (%m)\n",
name);
+#endif
mmap(NULL, 0, PROT_NONE, MAP_FILE, 0, 0);
p = mmap(addr, length1, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, fd, offset);
if (MAP_FAILED == p)
perror_msg_and_fail("mmap");
+#if XLAT_RAW
+ printf("%s(%p, %lu, %#x, "
+ "%#x|%#x, %d, %#jx) = %p\n",
+ name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
+ MAP_ANONYMOUS, fd, uoffset, p);
+#elif XLAT_VERBOSE
+ printf("%s(%p, %lu, %#x /* PROT_READ|PROT_WRITE */, "
+ "%#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */, %d, %#jx) "
+ "= %p\n",
+ name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
+ MAP_ANONYMOUS, fd, uoffset, p);
+#else
printf("%s(%p, %lu, PROT_READ|PROT_WRITE, "
"MAP_PRIVATE|MAP_ANONYMOUS, %d, %#jx) = %p\n",
name, addr, length1, fd, uoffset, p);
+#endif
if (msync(p, length1, MS_SYNC))
perror_msg_and_fail("msync");
+#if XLAT_RAW
+ printf("msync(%p, %lu, %#x) = 0\n", p, length1, MS_SYNC);
+#elif XLAT_VERBOSE
+ printf("msync(%p, %lu, %#x /* MS_SYNC */) = 0\n", p, length1, MS_SYNC);
+#else
printf("msync(%p, %lu, MS_SYNC) = 0\n", p, length1);
+#endif
if (mprotect(p, length1, PROT_NONE))
perror_msg_and_fail("mprotect");
+#if XLAT_RAW
+ printf("mprotect(%p, %lu, %#x) = 0\n", p, length1, PROT_NONE);
+#elif XLAT_VERBOSE
+ printf("mprotect(%p, %lu, %#x /* PROT_NONE */) = 0\n",
+ p, length1, PROT_NONE);
+#else
printf("mprotect(%p, %lu, PROT_NONE) = 0\n", p, length1);
+#endif
addr = mremap(p, length1, length2, 0);
if (MAP_FAILED == addr)
@@ -87,8 +122,19 @@
addr + length2);
if (MAP_FAILED == p)
perror_msg_and_fail("mremap");
+#if XLAT_RAW
+ printf("mremap(%p, %lu, %lu, %#x, %p) = %p\n",
+ addr, length2, length3, MREMAP_MAYMOVE | MREMAP_FIXED,
+ addr + length2, p);
+#elif XLAT_VERBOSE
+ printf("mremap(%p, %lu, %lu, %#x /* MREMAP_MAYMOVE|MREMAP_FIXED */"
+ ", %p) = %p\n",
+ addr, length2, length3, MREMAP_MAYMOVE | MREMAP_FIXED,
+ addr + length2, p);
+#else
printf("mremap(%p, %lu, %lu, MREMAP_MAYMOVE|MREMAP_FIXED"
", %p) = %p\n", addr, length2, length3, addr + length2, p);
+#endif
if (munmap(p, length3))
perror_msg_and_fail("munmap");
@@ -96,7 +142,13 @@
if (mlockall(MCL_FUTURE))
perror_msg_and_fail("mlockall");
+#if XLAT_RAW
+ printf("mlockall(%#x) = 0\n", MCL_FUTURE);
+#elif XLAT_VERBOSE
+ printf("mlockall(%#x /* MCL_FUTURE */) = 0\n", MCL_FUTURE);
+#else
puts("mlockall(MCL_FUTURE) = 0");
+#endif
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests-mx32/mmap.test b/tests-mx32/mmap.test
index 7ba664e..7fa2c70 100755
--- a/tests-mx32/mmap.test
+++ b/tests-mx32/mmap.test
@@ -4,7 +4,7 @@
# syscalls decoding.
#
# Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2015-2017 The strace developers.
+# Copyright (c) 2015-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,15 +35,20 @@
check_prog sed
run_prog > /dev/null
+xlat_opt=""
+[ "$#" -gt 0 ] && xlat_opt="-X$1"
+align=20
+[ "$#" -gt 1 ] && align="$2"
+
syscall=
for n in mmap mmap2; do
$STRACE -e$n -h > /dev/null && syscall=$syscall,$n
done
run_strace -e$syscall $args > /dev/null
-if grep '^mmap(NULL, 0, PROT_NONE,' < "$LOG" > /dev/null; then
+if grep '^mmap(NULL, 0, \(0 /* PROT_NONE */\|0\|PROT_NONE\),' < "$LOG" > /dev/null; then
mmap=mmap
-elif grep '^mmap2(NULL, 0, PROT_NONE,' < "$LOG" > /dev/null; then
+elif grep '^mmap2(NULL, 0, \(0 \/\* PROT_NONE \*\/\|0\|PROT_NONE\),' < "$LOG" > /dev/null; then
mmap=mmap2
else
dump_log_and_fail_with "mmap/mmap2 not found in $STRACE $args output"
@@ -52,6 +57,6 @@
syscall=$mmap,madvise,mlockall,mprotect,mremap,msync,munmap
run_prog "../$NAME" $mmap > /dev/null
-run_strace -a20 -e$syscall $args > "$EXP"
-sed -n "/^$mmap(NULL, 0, PROT_NONE,/,\$p" < "$LOG" > "$OUT"
+run_strace -a$align -e$syscall $xlat_opt $args > "$EXP"
+sed -n "/^$mmap(NULL, 0, \(0 \/\* PROT_NONE \*\/\|0\|PROT_NONE\),/,\$p" < "$LOG" > "$OUT"
match_diff "$OUT" "$EXP"
diff --git a/tests-mx32/mmap64-Xabbrev.c b/tests-mx32/mmap64-Xabbrev.c
new file mode 100644
index 0000000..cbd7789
--- /dev/null
+++ b/tests-mx32/mmap64-Xabbrev.c
@@ -0,0 +1 @@
+#include "mmap64.c"
diff --git a/tests-mx32/mmap64-Xabbrev.gen.test b/tests-mx32/mmap64-Xabbrev.gen.test
new file mode 100755
index 0000000..3e2c94b
--- /dev/null
+++ b/tests-mx32/mmap64-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xabbrev +mmap.test abbrev); do not edit.
+set -- abbrev
+. "${srcdir=.}/mmap.test"
diff --git a/tests-mx32/mmap64-Xraw.c b/tests-mx32/mmap64-Xraw.c
new file mode 100644
index 0000000..f75f235
--- /dev/null
+++ b/tests-mx32/mmap64-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mmap64.c"
diff --git a/tests-mx32/mmap64-Xraw.gen.test b/tests-mx32/mmap64-Xraw.gen.test
new file mode 100755
index 0000000..7aeed02
--- /dev/null
+++ b/tests-mx32/mmap64-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xraw +mmap.test raw 14); do not edit.
+set -- raw 14
+. "${srcdir=.}/mmap.test"
diff --git a/tests-mx32/mmap64-Xverbose.c b/tests-mx32/mmap64-Xverbose.c
new file mode 100644
index 0000000..f72513e
--- /dev/null
+++ b/tests-mx32/mmap64-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mmap64.c"
diff --git a/tests-mx32/mmap64-Xverbose.gen.test b/tests-mx32/mmap64-Xverbose.gen.test
new file mode 100755
index 0000000..0d675d9
--- /dev/null
+++ b/tests-mx32/mmap64-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xverbose +mmap.test verbose); do not edit.
+set -- verbose
+. "${srcdir=.}/mmap.test"
diff --git a/tests-mx32/mmsg_name.c b/tests-mx32/mmsg_name.c
index 8c54a48..c17b13d 100644
--- a/tests-mx32/mmsg_name.c
+++ b/tests-mx32/mmsg_name.c
@@ -3,7 +3,7 @@
* of sendmmsg and recvmmsg syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -152,7 +152,7 @@
printf("sendmmsg(-1, [{msg_hdr=");
print_msghdr(&send_mh[IOV_MAX].msg_hdr, 0);
errno = saved_errno;
- printf("}, %p], %u, MSG_DONTWAIT) = %d %s (%m)\n",
+ printf("}, ... /* %p */], %u, MSG_DONTWAIT) = %d %s (%m)\n",
&send_mh[IOV_MAX1], 2, rc, errno2name());
rc = send_mmsg(send_fd, send_mh, IOV_MAX1, MSG_DONTWAIT);
diff --git a/tests-mx32/modify_ldt.c b/tests-mx32/modify_ldt.c
index 1e26bda..2d527ac 100644
--- a/tests-mx32/modify_ldt.c
+++ b/tests-mx32/modify_ldt.c
@@ -67,8 +67,8 @@
static const kernel_ulong_t bogus_bytecount =
(kernel_ulong_t) 0xdeadfacefa57beefULL;
- struct user_desc *us = tail_alloc(sizeof(*us));
- unsigned int *bogus_int = tail_alloc(sizeof(*bogus_int));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, us);
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, bogus_int);
long rc;
fill_memory(us, sizeof(*us));
diff --git a/tests-mx32/mount-Xabbrev.c b/tests-mx32/mount-Xabbrev.c
new file mode 100644
index 0000000..0f6fecd
--- /dev/null
+++ b/tests-mx32/mount-Xabbrev.c
@@ -0,0 +1 @@
+#include "mount.c"
diff --git a/tests-mx32/mount-Xabbrev.gen.test b/tests-mx32/mount-Xabbrev.gen.test
new file mode 100755
index 0000000..10e261f
--- /dev/null
+++ b/tests-mx32/mount-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xabbrev -a33 -e trace=mount -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xabbrev
diff --git a/tests-mx32/mount-Xraw.c b/tests-mx32/mount-Xraw.c
new file mode 100644
index 0000000..3aa1f08
--- /dev/null
+++ b/tests-mx32/mount-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mount.c"
diff --git a/tests-mx32/mount-Xraw.gen.test b/tests-mx32/mount-Xraw.gen.test
new file mode 100755
index 0000000..ce852f8
--- /dev/null
+++ b/tests-mx32/mount-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xraw -a33 -e trace=mount -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xraw
diff --git a/tests-mx32/mount-Xverbose.c b/tests-mx32/mount-Xverbose.c
new file mode 100644
index 0000000..0b211c7
--- /dev/null
+++ b/tests-mx32/mount-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mount.c"
diff --git a/tests-mx32/mount-Xverbose.gen.test b/tests-mx32/mount-Xverbose.gen.test
new file mode 100755
index 0000000..c780070
--- /dev/null
+++ b/tests-mx32/mount-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xverbose -a33 -e trace=mount -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xverbose
diff --git a/tests-mx32/mount.c b/tests-mx32/mount.c
index cbfe42f8..2e58571 100644
--- a/tests-mx32/mount.c
+++ b/tests-mx32/mount.c
@@ -2,6 +2,7 @@
* Check decoding of mount syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,7 +41,34 @@
# define MS_RELATIME (1ul << 21)
#endif
-#define str_ro_nosuid_nodev_noexec "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC"
+#if XLAT_RAW
+# define str_unknown "0x300"
+# define str_submount_200 "0x4000200"
+# define str_mgc_val "0xc0ed0000"
+# define str_remount "0x20"
+# define str_bind "0x1000"
+# define str_ro_nosuid_nodev_noexec "0xf"
+# define str_ro_nosuid_nodev_noexec_relatime "0x20000f"
+#elif XLAT_VERBOSE
+# define str_unknown "0x300 /* MS_??? */"
+# define str_submount_200 "0x4000200 /* MS_SUBMOUNT|0x200 */"
+# define str_mgc_val "0xc0ed0000 /* MS_MGC_VAL */"
+# define str_remount "0x20 /* MS_REMOUNT */"
+# define str_bind "0x1000 /* MS_BIND */"
+# define str_ro_nosuid_nodev_noexec \
+ "0xf /* MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC */"
+# define str_ro_nosuid_nodev_noexec_relatime \
+ "0x20000f /* MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_RELATIME */"
+#else /* !XLAT_RAW && !XLAT_VERBOSE */
+# define str_unknown "0x300 /* MS_??? */"
+# define str_submount_200 "MS_SUBMOUNT|0x200"
+# define str_mgc_val "MS_MGC_VAL"
+# define str_remount "MS_REMOUNT"
+# define str_bind "MS_BIND"
+# define str_ro_nosuid_nodev_noexec "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC"
+# define str_ro_nosuid_nodev_noexec_relatime \
+ "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_RELATIME"
+#endif /* XLAT_RAW, XLAT_VERBOSE */
int
main(void)
@@ -49,35 +77,59 @@
static const char target[] = "mount_target";
static const char fstype[] = "mount_fstype";
static const char data[] = "mount_data";
+ TAIL_ALLOC_OBJECT_CONST_PTR(char, bogus);
- int rc = mount(source, target, fstype, 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ bogus[0] = 'a';
+
+ int rc = mount(NULL, NULL, NULL, 0, NULL);
+ printf("mount(NULL, NULL, NULL, 0, NULL) = %s\n",
+ sprintrc(rc));
+
+ rc = mount(bogus, bogus, bogus, 768, bogus);
+ printf("mount(%p, %p, %p, %s, %p) = %s\n",
+ bogus, bogus, bogus, str_unknown, bogus, sprintrc(rc));
+
+ rc = mount(bogus + 1, bogus + 1, bogus + 1, 0x4000200, bogus + 1);
+ printf("mount(%p, %p, %p, %s, %p) = %s\n",
+ bogus + 1, bogus + 1, bogus + 1, str_submount_200,
+ bogus + 1, sprintrc(rc));
+
+ rc = mount(source, target, fstype, 15, data);
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype, str_ro_nosuid_nodev_noexec,
- data, rc, errno2name());
+ data, sprintrc(rc));
rc = mount(source, target, fstype, MS_RELATIME | 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype,
- str_ro_nosuid_nodev_noexec "|MS_RELATIME",
- data, rc, errno2name());
+ str_ro_nosuid_nodev_noexec_relatime,
+ data, sprintrc(rc));
rc = mount(source, target, fstype, MS_MGC_VAL, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
- source, target, fstype, "MS_MGC_VAL", data, rc, errno2name());
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
+ source, target, fstype, str_mgc_val, data, sprintrc(rc));
rc = mount(source, target, fstype, MS_MGC_VAL | 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype,
- "MS_MGC_VAL|" str_ro_nosuid_nodev_noexec,
- data, rc, errno2name());
+ str_mgc_val "|" str_ro_nosuid_nodev_noexec,
+ data, sprintrc(rc));
+
+ rc = mount(source, target, NULL, MS_REMOUNT, data);
+ printf("mount(\"%s\", \"%s\", NULL, %s, \"%s\") = %s\n",
+ source, target, str_remount, data, sprintrc(rc));
rc = mount(source, target, fstype, MS_REMOUNT, data);
- printf("mount(\"%s\", \"%s\", %p, %s, \"%s\") = %d %s (%m)\n",
- source, target, fstype, "MS_REMOUNT", data, rc, errno2name());
+ printf("mount(\"%s\", \"%s\", %p, %s, \"%s\") = %s\n",
+ source, target, fstype, str_remount, data, sprintrc(rc));
- rc = mount(source, target, fstype, MS_BIND, data);
- printf("mount(\"%s\", \"%s\", %p, %s, %p) = %d %s (%m)\n",
- source, target, fstype, "MS_BIND", data, rc, errno2name());
+ rc = mount(source, target, NULL, MS_BIND, data);
+ printf("mount(\"%s\", \"%s\", NULL, %s, %p) = %s\n",
+ source, target, str_bind, data, sprintrc(rc));
+
+ rc = mount(source, target, fstype, MS_BIND, NULL);
+ printf("mount(\"%s\", \"%s\", %p, %s, NULL) = %s\n",
+ source, target, fstype, str_bind, sprintrc(rc));
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests-mx32/mount.gen.test b/tests-mx32/mount.gen.test
index 69bc99b..2a3639c 100755
--- a/tests-mx32/mount.gen.test
+++ b/tests-mx32/mount.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount -a33 ); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff
+run_strace_match_diff -a33
diff --git a/tests-mx32/move_pages.c b/tests-mx32/move_pages.c
index 5ec25aa..851a8c7 100644
--- a/tests-mx32/move_pages.c
+++ b/tests-mx32/move_pages.c
@@ -2,7 +2,7 @@
* Check decoding of move_pages syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,7 @@
break;
}
} else {
- printf("%p", pages + i);
+ printf("... /* %p */", pages + i);
break;
}
const void *const addr = pages[i];
@@ -99,7 +99,7 @@
break;
}
} else {
- printf("%p", nodes + i);
+ printf("... /* %p */", nodes + i);
break;
}
printf("%d", nodes[i]);
diff --git a/tests-mx32/msg_control.c b/tests-mx32/msg_control.c
index 48b7347..01786d7 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -132,7 +132,7 @@
print_fds(cmsg, src_len);
printf("}");
if (aligned_cms_len < msg_controllen)
- printf(", %p", (void *) cmsg + aligned_cms_len);
+ printf(", ... /* %p */", (void *) cmsg + aligned_cms_len);
printf("]");
}
@@ -195,7 +195,7 @@
print_fds(cmsg[1], src1_len);
printf("}");
if (aligned_cms_len[1] < msg_controllen1)
- printf(", %p", (void *) cmsg[1] + aligned_cms_len[1]);
+ printf(", ... /* %p */", (void *) cmsg[1] + aligned_cms_len[1]);
printf("]");
errno = saved_errno;
@@ -425,7 +425,7 @@
print_security(cmsg, src_len);
printf("}");
if (aligned_cms_len < msg_controllen)
- printf(", %p", (void *) cmsg + aligned_cms_len);
+ printf(", ... /* %p */", (void *) cmsg + aligned_cms_len);
printf("]");
errno = saved_errno;
diff --git a/tests-mx32/net-sockaddr.c b/tests-mx32/net-sockaddr.c
index fe933d4..22cbb26 100644
--- a/tests-mx32/net-sockaddr.c
+++ b/tests-mx32/net-sockaddr.c
@@ -2,7 +2,7 @@
* Check decoding of sockaddr structures
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -436,25 +436,86 @@
{
const unsigned short h_psm = 12345;
const unsigned short h_cid = 13579;
- const struct sockaddr_l2 c_l2 = {
+ struct sockaddr_l2 c_l2 = {
.l2_family = AF_BLUETOOTH,
.l2_psm = htobs(h_psm),
.l2_bdaddr.b = "abcdef",
.l2_cid = htobs(h_cid),
- .l2_bdaddr_type = 42
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ .l2_bdaddr_type = 0xce,
+#endif
};
void *l2 = tail_memdup(&c_l2, sizeof(c_l2));
unsigned int len = sizeof(c_l2);
+
int ret = connect(-1, l2, len);
printf("connect(-1, {sa_family=AF_BLUETOOTH"
- ", l2_psm=htobs(%hu)"
+ ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)"
", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
- ", l2_cid=htobs(%hu), l2_bdaddr_type=%u}"
- ", %u) = %d EBADF (%m)\n", h_psm,
+ ", l2_cid=htobs(L2CAP_CID_DYN_START + %hu)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=0xce /* BDADDR_??? */"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ (short) (h_psm - 0x1001),
c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
- h_cid, c_l2.l2_bdaddr_type, len, ret);
+ (short) (h_cid - 0x40), len, ret);
+
+ c_l2.l2_psm = htobs(1);
+ c_l2.l2_cid = htobs(1);
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ c_l2.l2_bdaddr_type = BDADDR_LE_RANDOM;
+#endif
+ memcpy(l2, &c_l2, sizeof(c_l2));
+ ret = connect(-1, l2, len);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(L2CAP_PSM_SDP)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(L2CAP_CID_SIGNALING)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=BDADDR_LE_RANDOM"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ len, ret);
+
+ c_l2.l2_psm = htobs(0xbad);
+ c_l2.l2_cid = htobs(8);
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ c_l2.l2_bdaddr_type = 3;
+#endif
+ memcpy(l2, &c_l2, sizeof(c_l2));
+ ret = connect(-1, l2, len);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(0x8 /* L2CAP_CID_??? */)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=0x3 /* BDADDR_??? */"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ len, ret);
+
+ c_l2.l2_psm = htobs(0x10ff);
+ c_l2.l2_cid = htobs(0xffff);
+ memcpy(l2, &c_l2, 12);
+ ret = connect(-1, l2, 12);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(L2CAP_PSM_AUTO_END)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(L2CAP_CID_DYN_END)"
+ "}, 12) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ ret);
}
#endif
diff --git a/tests-mx32/netlink_crypto.c b/tests-mx32/netlink_crypto.c
index d15c17c..5c3dc04 100644
--- a/tests-mx32/netlink_crypto.c
+++ b/tests-mx32/netlink_crypto.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -98,8 +98,6 @@
static void
test_crypto_msg_newalg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
struct crypto_user_alg alg = {
.cru_name = "abcd",
.cru_driver_name = "efgh",
@@ -109,6 +107,8 @@
.cru_refcnt = 0xbcacfacd,
.cru_flags = 0xefacdbad
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(alg));
+
TEST_NETLINK_OBJECT_EX(fd, nlh0,
CRYPTO_MSG_NEWALG, NLM_F_REQUEST,
alg, print_quoted_memory,
@@ -149,7 +149,7 @@
static void
test_crypto_msg_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, 4);
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* CRYPTO_MSG_??? */",
diff --git a/tests-mx32/netlink_kobject_uevent.c b/tests-mx32/netlink_kobject_uevent.c
index 7edacd7..b28af49 100644
--- a/tests-mx32/netlink_kobject_uevent.c
+++ b/tests-mx32/netlink_kobject_uevent.c
@@ -27,9 +27,12 @@
*/
#include "tests.h"
+#include <string.h>
#include <stdio.h>
#include <sys/socket.h>
+#include <arpa/inet.h>
#include "netlink.h"
+#include "netlink_kobject_uevent.h"
static const char *errstr;
@@ -41,6 +44,94 @@
return rc;
}
+static void
+test_nlmsg_type_udev(const int fd)
+{
+ static const char extra[] = "12345678";
+ struct udev_monitor_netlink_header uh = {
+ .prefix = "libudev",
+ .magic = htonl(0xfeedcafe),
+ .header_size = sizeof(uh),
+ .properties_off = 40,
+ .properties_len = 299,
+ .filter_subsystem_hash = htonl(0xc370b302),
+ .filter_devtype_hash = htonl(0x10800000),
+ .filter_tag_bloom_hi = htonl(0x2000400),
+ .filter_tag_bloom_lo = htonl(0x10800000),
+ };
+ const unsigned int extra_len = LENGTH_OF(extra);
+ const unsigned int uh_len = sizeof(uh);
+
+ char *const buf = tail_alloc(uh_len + extra_len);
+ memcpy(buf + extra_len, &uh, uh_len);
+
+ sys_send(fd, buf + extra_len, uh_len);
+ printf("sendto(%d, {{prefix=\"%s\", magic=htonl(%#x)"
+ ", header_size=%u, properties_off=%u, properties_len=%u"
+ ", filter_subsystem_hash=htonl(%#x)"
+ ", filter_devtype_hash=htonl(%#x)"
+ ", filter_tag_bloom_hi=htonl(%#x)"
+ ", filter_tag_bloom_lo=htonl(%#x)}}, %u, MSG_DONTWAIT, NULL, "
+ "0) = %s\n"
+ , fd, uh.prefix,
+ ntohl(uh.magic), uh.header_size, uh.properties_off,
+ uh.properties_len, ntohl(uh.filter_subsystem_hash),
+ ntohl(uh.filter_devtype_hash), ntohl(uh.filter_tag_bloom_hi),
+ ntohl(uh.filter_tag_bloom_lo), uh_len, errstr);
+
+ memcpy(buf, &uh, uh_len);
+ memcpy(buf + uh_len, extra, extra_len);
+ sys_send(fd, buf, uh_len + extra_len);
+ printf("sendto(%d, {{prefix=\"%s\", magic=htonl(%#x)"
+ ", header_size=%u, properties_off=%u, properties_len=%u"
+ ", filter_subsystem_hash=htonl(%#x)"
+ ", filter_devtype_hash=htonl(%#x)"
+ ", filter_tag_bloom_hi=htonl(%#x)"
+ ", filter_tag_bloom_lo=htonl(%#x)}, "
+ , fd, uh.prefix,
+ ntohl(uh.magic), uh.header_size, uh.properties_off,
+ uh.properties_len, ntohl(uh.filter_subsystem_hash),
+ ntohl(uh.filter_devtype_hash), ntohl(uh.filter_tag_bloom_hi),
+ ntohl(uh.filter_tag_bloom_lo));
+ print_quoted_memory(buf + uh_len, extra_len);
+ printf("}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ uh_len + extra_len, errstr);
+
+ memcpy(buf + extra_len + 1, &uh, uh_len - 1);
+ sys_send(fd, buf + extra_len + 1, uh_len);
+ printf("sendto(%d, ", fd);
+ print_quoted_memory(&uh, MIN(uh_len - 1, DEFAULT_STRLEN));
+ printf("%s, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ (uh_len - 1 > DEFAULT_STRLEN ? "..." : ""),
+ uh_len, errstr);
+}
+
+static void
+test_nlmsg_type_kernel(const int fd)
+{
+ struct udev_monitor_netlink_header uh = {
+ .prefix = "change@",
+ .magic = htonl(0xfeedcafe),
+ .header_size = sizeof(uh),
+ .properties_off = 10,
+ .properties_len = 299,
+ .filter_subsystem_hash = htonl(0xfffffff),
+ .filter_devtype_hash = htonl(0x10000000),
+ .filter_tag_bloom_hi = htonl(0x2000400),
+ };
+ const unsigned int uh_len = sizeof(uh);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct udev_monitor_netlink_header, p);
+ memcpy(p, &uh, uh_len);
+
+ sys_send(fd, p, uh_len);
+ printf("sendto(%d, ", fd);
+ print_quoted_memory(&uh, MIN(uh_len, DEFAULT_STRLEN));
+ printf("%s, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ (uh_len > DEFAULT_STRLEN ? "..." : ""),
+ uh_len, errstr);
+}
+
int
main(void)
{
@@ -48,6 +139,8 @@
int fd = create_nl_socket(NETLINK_KOBJECT_UEVENT);
+ test_nlmsg_type_udev(fd);
+ test_nlmsg_type_kernel(fd);
/* test using data that looks like a zero-length C string */
char *const buf = tail_alloc(DEFAULT_STRLEN + 1);
buf[0] = '=';
diff --git a/tests-mx32/netlink_netfilter.c b/tests-mx32/netlink_netfilter.c
index 57532f5..2842e15 100644
--- a/tests-mx32/netlink_netfilter.c
+++ b/tests-mx32/netlink_netfilter.c
@@ -88,8 +88,8 @@
static void
test_nlmsg_done(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const int num = 0xabcdefad;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
TEST_NETLINK(fd, nlh0, NLMSG_DONE, NLM_F_REQUEST,
sizeof(num), &num, sizeof(num),
@@ -99,13 +99,21 @@
static void
test_nfgenmsg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ static const struct nlattr nla = {
+ .nla_len = sizeof(nla),
+ .nla_type = 0x0bcd
+ };
struct nfgenmsg msg = {
.nfgen_family = AF_UNIX,
.version = NFNETLINK_V0,
.res_id = NFNL_SUBSYS_NFTABLES
};
+ char str_buf[NLMSG_ALIGN(sizeof(msg)) + 4];
+ char nla_buf[NLMSG_ALIGN(sizeof(msg)) + sizeof(nla)];
+
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN,
+ MAX(sizeof(str_buf), sizeof(nla_buf)));
TEST_NETLINK_OBJECT_EX_(fd, nlh0,
NFNL_SUBSYS_NFTABLES << 8 | NFT_MSG_NEWTABLE,
@@ -150,8 +158,6 @@
printf(", version=NFNETLINK_V0");
printf(", res_id=htons(%d)", NFNL_SUBSYS_NFTABLES));
- char str_buf[NLMSG_ALIGN(sizeof(msg)) + 4];
-
msg.res_id = htons(0xabcd);
memcpy(str_buf, &msg, sizeof(msg));
memcpy(str_buf + NLMSG_ALIGN(sizeof(msg)), "1234", 4);
@@ -165,12 +171,6 @@
", \"\\x31\\x32\\x33\\x34\"", 0xabcd));
# endif /* NFNL_MSG_BATCH_BEGIN */
- static const struct nlattr nla = {
- .nla_len = sizeof(nla),
- .nla_type = 0x0bcd
- };
- char nla_buf[NLMSG_ALIGN(sizeof(msg)) + sizeof(nla)];
-
msg.res_id = htons(NFNL_SUBSYS_NFTABLES);
memcpy(nla_buf, &msg, sizeof(msg));
memcpy(nla_buf + NLMSG_ALIGN(sizeof(msg)), &nla, sizeof(nla));
diff --git a/tests-mx32/netlink_netlink_diag.c b/tests-mx32/netlink_netlink_diag.c
index 855e404..a682f7c 100644
--- a/tests-mx32/netlink_netlink_diag.c
+++ b/tests-mx32/netlink_netlink_diag.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Fabien Siron <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -55,8 +55,7 @@
},
.ndr = {
.sdiag_family = AF_NETLINK,
- .sdiag_protocol = NDIAG_PROTO_ALL,
- .ndiag_show = NDIAG_SHOW_MEMINFO
+ .sdiag_protocol = NDIAG_PROTO_ALL
}
};
struct iovec iov = {
diff --git a/tests-mx32/netlink_protocol.c b/tests-mx32/netlink_protocol.c
index be1a652..47f0e92 100644
--- a/tests-mx32/netlink_protocol.c
+++ b/tests-mx32/netlink_protocol.c
@@ -3,6 +3,7 @@
*
* Copyright (c) 2014-2017 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Fabien Siron <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -125,7 +126,8 @@
struct req req1;
char padding[NLMSG_ALIGN(sizeof(struct req)) - sizeof(struct req)];
struct req req2;
- } *const reqs = tail_alloc(sizeof(*reqs));
+ };
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct reqs, reqs);
memcpy(&reqs->req1, &c_req, sizeof(c_req));
memcpy(&reqs->req2, &c_req, sizeof(c_req));
@@ -144,7 +146,7 @@
rc = sendto(fd, efault2, sizeof(*reqs), MSG_DONTWAIT, NULL, 0);
printf("sendto(%d, [{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
", seq=0, pid=0}, \"\\x61\\x62\\x63\\x64\"}"
- ", %p], %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ ", ... /* %p */], %u, MSG_DONTWAIT, NULL, 0) = %s\n",
fd, reqs->req1.nlh.nlmsg_len, NLM_F_DUMP,
&((struct reqs *) efault2)->req2, (unsigned) sizeof(*reqs),
sprintrc(rc));
@@ -203,7 +205,7 @@
{
struct nlmsgerr *err;
struct nlmsghdr *nlh;
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(*err) + 4);
long rc;
/* error message without enough room for the error code */
@@ -318,9 +320,9 @@
test_nlmsg_done(const int fd)
{
struct nlmsghdr *nlh;
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
- long rc;
const int num = 0xfacefeed;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
+ long rc;
/* NLMSG_DONE message without enough room for an integer payload */
nlh = nlh0;
diff --git a/tests-mx32/netlink_route.c b/tests-mx32/netlink_route.c
index a1c7d1f..a3fbac9 100644
--- a/tests-mx32/netlink_route.c
+++ b/tests-mx32/netlink_route.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -143,8 +144,8 @@
static void
test_nlmsg_done(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const int num = 0xabcdefad;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
TEST_NETLINK(fd, nlh0, NLMSG_DONE, NLM_F_REQUEST,
sizeof(num), &num, sizeof(num),
@@ -154,10 +155,11 @@
static void
test_rtnl_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* RTM_??? */",
NLM_F_REQUEST, "NLM_F_REQUEST",
@@ -180,7 +182,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -204,7 +205,6 @@
static void
test_rtnl_link(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifinfomsg ifinfo = {
.ifi_family = AF_UNIX,
.ifi_type = ARPHRD_LOOPBACK,
@@ -212,6 +212,7 @@
.ifi_flags = IFF_UP,
.ifi_change = 0xfabcdeba
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(ifinfo));
TEST_NL_ROUTE(fd, nlh0, RTM_GETLINK, ifinfo,
printf("{ifi_family=AF_UNIX"),
@@ -225,7 +226,6 @@
static void
test_rtnl_addr(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifaddrmsg msg = {
.ifa_family = AF_UNIX,
.ifa_prefixlen = 0xde,
@@ -233,6 +233,7 @@
.ifa_scope = RT_SCOPE_UNIVERSE,
.ifa_index = ifindex_lo()
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETADDR, msg,
printf("{ifa_family=AF_UNIX"),
@@ -246,7 +247,6 @@
static void
test_rtnl_route(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct rtmsg msg = {
.rtm_family = AF_UNIX,
.rtm_dst_len = 0xaf,
@@ -258,6 +258,7 @@
.rtm_type = RTN_LOCAL,
.rtm_flags = RTM_F_NOTIFY
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETROUTE, msg,
printf("{rtm_family=AF_UNIX"),
@@ -275,7 +276,6 @@
static void
test_rtnl_rule(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct rtmsg msg = {
.rtm_family = AF_UNIX,
.rtm_dst_len = 0xaf,
@@ -285,6 +285,7 @@
.rtm_type = FR_ACT_TO_TBL,
.rtm_flags = FIB_RULE_INVERT
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETRULE, msg,
printf("{family=AF_UNIX"),
@@ -301,7 +302,6 @@
static void
test_rtnl_neigh(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ndmsg msg = {
.ndm_family = AF_UNIX,
.ndm_ifindex = ifindex_lo(),
@@ -309,6 +309,7 @@
.ndm_flags = NTF_PROXY,
.ndm_type = RTN_UNSPEC
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETNEIGH, msg,
printf("{ndm_family=AF_UNIX"),
@@ -321,10 +322,10 @@
static void
test_rtnl_neightbl(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct ndtmsg msg = {
.ndtm_family = AF_NETLINK
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNEIGHTBL, NLM_F_REQUEST,
@@ -335,7 +336,6 @@
static void
test_rtnl_tc(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct tcmsg msg = {
.tcm_family = AF_UNIX,
.tcm_ifindex = ifindex_lo(),
@@ -343,6 +343,7 @@
.tcm_parent = 0xafbcadab,
.tcm_info = 0xbcaedafa
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETQDISC, msg,
printf("{tcm_family=AF_UNIX"),
@@ -356,10 +357,10 @@
static void
test_rtnl_tca(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct tcamsg msg = {
.tca_family = AF_INET
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETACTION, NLM_F_REQUEST,
@@ -371,7 +372,6 @@
static void
test_rtnl_addrlabel(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifaddrlblmsg msg = {
.ifal_family = AF_UNIX,
.ifal_prefixlen = 0xaf,
@@ -379,6 +379,7 @@
.ifal_index = ifindex_lo(),
.ifal_seq = 0xfadcdafb
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETADDRLABEL, msg,
printf("{ifal_family=AF_UNIX"),
@@ -394,11 +395,11 @@
static void
test_rtnl_dcb(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct dcbmsg msg = {
.dcb_family = AF_UNIX,
.cmd = DCB_CMD_UNDEFINED
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETDCB, msg,
printf("{dcb_family=AF_UNIX"),
@@ -410,10 +411,10 @@
static void
test_rtnl_netconf(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct netconfmsg msg = {
.ncm_family = AF_INET
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNETCONF, NLM_F_REQUEST,
@@ -426,11 +427,11 @@
static void
test_rtnl_mdb(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct br_port_msg msg = {
.family = AF_UNIX,
.ifindex = ifindex_lo()
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETMDB, msg,
printf("{family=AF_UNIX"),
@@ -442,10 +443,10 @@
static void
test_rtnl_nsid(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct rtgenmsg msg = {
.rtgen_family = AF_UNIX
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNSID, NLM_F_REQUEST,
diff --git a/tests-mx32/netlink_selinux.c b/tests-mx32/netlink_selinux.c
index 2d76822..57cf8a5 100644
--- a/tests-mx32/netlink_selinux.c
+++ b/tests-mx32/netlink_selinux.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +54,7 @@
static void
test_selnl_msg_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, 4);
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* SELNL_MSG_??? */",
@@ -65,11 +66,11 @@
static void
test_selnl_msg_setenforce(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
static const struct selnl_msg_setenforce msg = {
.val = 0xfbdcdfab
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
+
TEST_NETLINK_OBJECT(fd, nlh0,
SELNL_MSG_SETENFORCE, NLM_F_REQUEST, msg,
PRINT_FIELD_D("{", msg, val);
@@ -79,11 +80,11 @@
static void
test_selnl_msg_policyload(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
static const struct selnl_msg_policyload msg = {
.seqno = 0xabdcfabc
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
+
TEST_NETLINK_OBJECT(fd, nlh0,
SELNL_MSG_POLICYLOAD, NLM_F_REQUEST, msg,
PRINT_FIELD_U("{", msg, seqno);
diff --git a/tests-mx32/netlink_sock_diag.c b/tests-mx32/netlink_sock_diag.c
index c2ebf12..880069f 100644
--- a/tests-mx32/netlink_sock_diag.c
+++ b/tests-mx32/netlink_sock_diag.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2016 Fabien Siron <[email protected]>
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -127,10 +127,11 @@
static void
test_odd_family_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK(fd, nlh0,
SOCK_DIAG_BY_FAMILY,
NLM_F_REQUEST,
@@ -153,7 +154,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -177,10 +177,11 @@
static void
test_odd_family_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK(fd, nlh0,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP,
sizeof(family), &family, sizeof(family),
@@ -200,7 +201,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -222,7 +222,6 @@
static void
test_unix_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct unix_diag_req req = {
.sdiag_family = AF_UNIX,
.sdiag_protocol = 253,
@@ -231,6 +230,7 @@
.udiag_show = UDIAG_SHOW_NAME,
.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_UNIX,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_UNIX"),
@@ -245,7 +245,6 @@
static void
test_unix_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct unix_diag_msg msg = {
.udiag_family = AF_UNIX,
.udiag_type = SOCK_STREAM,
@@ -253,6 +252,7 @@
.udiag_ino = 0xfacefeed,
.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_UNIX,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{udiag_family=AF_UNIX"),
@@ -266,7 +266,6 @@
static void
test_netlink_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct netlink_diag_req req = {
.sdiag_family = AF_NETLINK,
.sdiag_protocol = NDIAG_PROTO_ALL,
@@ -274,6 +273,7 @@
.ndiag_show = NDIAG_SHOW_MEMINFO,
.ndiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_NETLINK,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_NETLINK"),
@@ -298,7 +298,6 @@
static void
test_netlink_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct netlink_diag_msg msg = {
.ndiag_family = AF_NETLINK,
.ndiag_type = SOCK_RAW,
@@ -310,6 +309,7 @@
.ndiag_ino = 0xdaeefacd,
.ndiag_cookie = { 0xbadc0ded, 0xdeadbeef }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_NETLINK,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{ndiag_family=AF_NETLINK"),
@@ -327,7 +327,6 @@
static void
test_packet_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct packet_diag_req req = {
.sdiag_family = AF_PACKET,
.sdiag_protocol = ETH_P_LOOP,
@@ -335,6 +334,7 @@
.pdiag_show = PACKET_SHOW_INFO,
.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_PACKET,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_PACKET"),
@@ -348,7 +348,6 @@
static void
test_packet_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct packet_diag_msg msg = {
.pdiag_family = AF_PACKET,
.pdiag_type = SOCK_STREAM,
@@ -356,6 +355,7 @@
.pdiag_ino = 0xfacefeed,
.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_PACKET,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{pdiag_family=AF_PACKET"),
@@ -371,7 +371,6 @@
{
const char address[] = "12.34.56.78";
const char address6[] = "12:34:56:78:90:ab:cd:ef";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req_v2 req = {
.sdiag_family = AF_INET,
.idiag_ext = 1 << (INET_DIAG_CONG - 1),
@@ -384,6 +383,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -435,7 +435,6 @@
test_inet_diag_req(const int fd)
{
const char address[] = "12.34.56.78";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req req = {
.idiag_family = AF_INET,
.idiag_src_len = 0xde,
@@ -450,6 +449,7 @@
.idiag_states = 1 << TCP_LAST_ACK,
.idiag_dbs = 0xfacefeed,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -479,7 +479,6 @@
test_inet_diag_req_v2(const int fd)
{
const char address[] = "87.65.43.21";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req_v2 req = {
.sdiag_family = AF_INET,
.idiag_ext = 1 << (INET_DIAG_CONG - 1),
@@ -492,6 +491,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -519,7 +519,6 @@
test_inet_diag_msg(const int fd)
{
const char address[] = "11.22.33.44";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_msg msg = {
.idiag_family = AF_INET,
.idiag_state = TCP_LISTEN,
@@ -537,6 +536,7 @@
.idiag_uid = 0xdecefaeb,
.idiag_inode = 0xbadc0ded,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
if (!inet_pton(AF_INET, address, &msg.id.idiag_src) ||
!inet_pton(AF_INET, address, &msg.id.idiag_dst))
@@ -570,7 +570,6 @@
test_smc_diag_req(const int fd)
{
const char address[] = "43.21.56.78";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct smc_diag_req req = {
.diag_family = AF_SMC,
.diag_ext = 1 << (SMC_DIAG_CONNINFO - 1),
@@ -581,6 +580,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -606,7 +606,6 @@
test_smc_diag_msg(const int fd)
{
const char address[] = "34.87.12.90";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct smc_diag_msg msg = {
.diag_family = AF_SMC,
.diag_state = SMC_ACTIVE,
@@ -621,6 +620,7 @@
.diag_uid = 0xadcdfafc,
.diag_inode = 0xbadc0ded,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
if (!inet_pton(AF_INET, address, &msg.id.idiag_src) ||
!inet_pton(AF_INET, address, &msg.id.idiag_dst))
diff --git a/tests-mx32/nlattr.c b/tests-mx32/nlattr.c
index 41923c0..8556f68 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -172,7 +172,7 @@
", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
- ", nla_type=UNIX_DIAG_NAME}, %p]}, %u"
+ ", nla_type=UNIX_DIAG_NAME}, ... /* %p */]}, %u"
", MSG_DONTWAIT, NULL, 0) = %s\n",
fd, msg_len, NLA_HDRLEN, nla + 1, msg_len, sprintrc(rc));
diff --git a/tests-mx32/nlattr_br_port_msg.c b/tests-mx32/nlattr_br_port_msg.c
index a2a4792..d339414 100644
--- a/tests-mx32/nlattr_br_port_msg.c
+++ b/tests-mx32/nlattr_br_port_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct br_port_msg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_crypto_user_alg.c b/tests-mx32/nlattr_crypto_user_alg.c
index 2482b33..b8ceba6 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -72,7 +72,12 @@
const int fd = create_nl_socket(NETLINK_CRYPTO);
const unsigned int hdrlen = sizeof(struct crypto_user_alg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ /*
+ * There are also other structures, but they are not bigger than
+ * DEFAULT_STRLEN so far.
+ */
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + DEFAULT_STRLEN);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_dcbmsg.c b/tests-mx32/nlattr_dcbmsg.c
index cd63bb6..b6eb772 100644
--- a/tests-mx32/nlattr_dcbmsg.c
+++ b/tests-mx32/nlattr_dcbmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct dcbmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_fib_rule_hdr.c b/tests-mx32/nlattr_fib_rule_hdr.c
index 394ab10..96ebadf 100644
--- a/tests-mx32/nlattr_fib_rule_hdr.c
+++ b/tests-mx32/nlattr_fib_rule_hdr.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,12 +34,24 @@
# include <inttypes.h>
# include "test_nlattr.h"
# include <linux/fib_rules.h>
+# include <linux/in.h>
# include <linux/ip.h>
# include <linux/rtnetlink.h>
#define FRA_TUN_ID 12
#define FRA_TABLE 15
#define FRA_UID_RANGE 20
+#define FRA_PROTOCOL 21
+#define FRA_IP_PROTO 22
+#define FRA_SPORT_RANGE 23
+#define FRA_DPORT_RANGE 24
+
+# ifndef HAVE_STRUCT_FIB_RULE_PORT_RANGE
+struct fib_rule_port_range {
+ uint16_t start;
+ uint16_t end;
+};
+# endif /* HAVE_STRUCT_FIB_RULE_PORT_RANGE */
static void
init_rtmsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
@@ -80,7 +92,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
@@ -125,6 +137,62 @@
printf("htobe64(%" PRIu64 ")", be64toh(tun_id)));
#endif
+ uint8_t proto;
+
+ static const struct {
+ uint8_t arg;
+ const char *str;
+ } proto_args[] = {
+ { ARG_STR(RTPROT_UNSPEC) },
+ { 5, "0x5 /* RTPROT_??? */" },
+ { 17, "RTPROT_MROUTED" },
+ { 42, "RTPROT_BABEL" },
+ { 43, "0x2b /* RTPROT_??? */" },
+ { ARG_STR(0xde) " /* RTPROT_??? */" },
+ };
+
+ for (unsigned i = 0; i < ARRAY_SIZE(proto_args); i++) {
+ proto = proto_args[i].arg;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_PROTOCOL, pattern, proto,
+ printf("%s", proto_args[i].str));
+ }
+
+ static const struct {
+ uint8_t arg;
+ const char *str;
+ } ipproto_args[] = {
+ { ARG_STR(IPPROTO_TCP) },
+ { 254, "0xfe /* IPPROTO_??? */" },
+ { ARG_STR(IPPROTO_RAW) },
+ };
+
+ for (unsigned i = 0; i < ARRAY_SIZE(ipproto_args); i++) {
+ proto = ipproto_args[i].arg;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_IP_PROTO, pattern, proto,
+ printf("%s", ipproto_args[i].str));
+ }
+
+ static const struct fib_rule_port_range prange = {
+ .start = 0xabcd,
+ .end = 0xfeed,
+ };
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_SPORT_RANGE, pattern, prange,
+ PRINT_FIELD_U("{", prange, start);
+ PRINT_FIELD_U(", ", prange, end);
+ printf("}"));
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_DPORT_RANGE, pattern, prange,
+ PRINT_FIELD_U("{", prange, start);
+ PRINT_FIELD_U(", ", prange, end);
+ printf("}"));
+
puts("+++ exited with 0 +++");
return 0;
}
diff --git a/tests-mx32/nlattr_ifaddrlblmsg.c b/tests-mx32/nlattr_ifaddrlblmsg.c
index 6003634..53a928d 100644
--- a/tests-mx32/nlattr_ifaddrlblmsg.c
+++ b/tests-mx32/nlattr_ifaddrlblmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ifaddrlblmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_ifaddrmsg.c b/tests-mx32/nlattr_ifaddrmsg.c
index 93fbef1..c71ebb1 100644
--- a/tests-mx32/nlattr_ifaddrmsg.c
+++ b/tests-mx32/nlattr_ifaddrmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -83,9 +83,23 @@
{
skip_if_unavailable("/proc/self/fd/");
+ static const char address4[] = "12.34.56.78";
+ static const char address6[] = "12:34:56:78:90:ab:cd:ef";
+ static const struct ifa_cacheinfo ci = {
+ .ifa_prefered = 0xabcdefac,
+ .ifa_valid = 0xbcdadbca,
+ .cstamp = 0xcdabedba,
+ .tstamp = 0xdebabdac
+ };
+
+ struct in_addr a4;
+ struct in6_addr a6;
+ const uint32_t ifa_flags = IFA_F_SECONDARY | IFA_F_PERMANENT;
+
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ifaddrmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + MAX(sizeof(ci), sizeof(a6)));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
@@ -106,8 +120,6 @@
print_quoted_hex(pattern, 4));
SET_IFA_FAMILY(AF_INET);
- static const char address4[] = "12.34.56.78";
- struct in_addr a4;
if (!inet_pton(AF_INET, address4, &a4))
perror_msg_and_skip("inet_pton");
@@ -118,8 +130,6 @@
printf("%s", address4));
SET_IFA_FAMILY(AF_INET6);
- static const char address6[] = "12:34:56:78:90:ab:cd:ef";
- struct in6_addr a6;
if (!inet_pton(AF_INET6, address6, &a6))
perror_msg_and_skip("inet_pton");
@@ -129,12 +139,6 @@
IFA_ADDRESS, pattern, a6,
printf("%s", address6));
- static const struct ifa_cacheinfo ci = {
- .ifa_prefered = 0xabcdefac,
- .ifa_valid = 0xbcdadbca,
- .cstamp = 0xcdabedba,
- .tstamp = 0xdebabdac
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifaddrmsg, print_ifaddrmsg,
IFA_CACHEINFO, pattern, ci,
@@ -144,7 +148,6 @@
PRINT_FIELD_U(", ", ci, tstamp);
printf("}"));
- const uint32_t ifa_flags = IFA_F_SECONDARY | IFA_F_PERMANENT;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifaddrmsg, print_ifaddrmsg,
IFA_FLAGS, pattern, ifa_flags,
diff --git a/tests-mx32/nlattr_ifinfomsg.c b/tests-mx32/nlattr_ifinfomsg.c
index 1fff52c..71b1bab 100644
--- a/tests-mx32/nlattr_ifinfomsg.c
+++ b/tests-mx32/nlattr_ifinfomsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -46,6 +46,7 @@
# define IFLA_VF_PORTS 24
#endif
#define IFLA_LINK_NETNSID 37
+#define IFLA_EVENT 44
#ifndef IFLA_INFO_KIND
# define IFLA_INFO_KIND 1
@@ -89,28 +90,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_ROUTE);
- const unsigned int hdrlen = sizeof(struct ifinfomsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- 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 /* IFLA_??? */", nla_type);
- TEST_NLATTR_(fd, nlh0, hdrlen,
- init_ifinfomsg, print_ifinfomsg,
- nla_type, nla_type_str,
- 4, pattern, 4,
- print_quoted_hex(pattern, 4));
-
- const int32_t netnsid = 0xacbdabda;
- TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_ifinfomsg, print_ifinfomsg,
- IFLA_LINK_NETNSID, pattern, netnsid,
- printf("%d", netnsid));
-
static const struct rtnl_link_stats st = {
.rx_packets = 0xabcdefac,
.tx_packets = 0xbcdacdab,
@@ -136,6 +115,29 @@
.rx_compressed = 0xdeffadbd,
.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));
+
+ 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 /* IFLA_??? */", nla_type);
+ TEST_NLATTR_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ nla_type, nla_type_str,
+ 4, pattern, 4,
+ print_quoted_hex(pattern, 4));
+
+ const int32_t netnsid = 0xacbdabda;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_LINK_NETNSID, pattern, netnsid,
+ printf("%d", netnsid));
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_STATS, pattern, st,
@@ -343,6 +345,22 @@
printf("{nla_len=%u, nla_type=IFLA_VF_PORT}",
nla.nla_len));
+ static const struct {
+ uint32_t val;
+ const char *str;
+ } ifla_events[] = {
+ { 0, "IFLA_EVENT_NONE" },
+ { 6, "IFLA_EVENT_BONDING_OPTIONS" },
+ { ARG_STR(0x7) " /* IFLA_EVENT_??? */" },
+ { ARG_STR(0xdeadfeed) " /* IFLA_EVENT_??? */" },
+ };
+ for (size_t i = 0; i < ARRAY_SIZE(ifla_events); i++) {
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_EVENT, pattern, ifla_events[i].val,
+ printf("%s", ifla_events[i].str));
+ }
+
puts("+++ exited with 0 +++");
return 0;
}
diff --git a/tests-mx32/nlattr_ifla.h b/tests-mx32/nlattr_ifla.h
new file mode 100644
index 0000000..6989225
--- /dev/null
+++ b/tests-mx32/nlattr_ifla.h
@@ -0,0 +1,78 @@
+/*
+ * netlink attribute ifinfomsg common code.
+ *
+ * Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_TESTS_NLATTR_IFLA_H
+#define STRACE_TESTS_NLATTR_IFLA_H
+
+#include "tests.h"
+
+#ifndef IFLA_ATTR
+# error "Please define IFLA_ATTR before including this file"
+#endif
+
+static const unsigned int hdrlen = sizeof(struct ifinfomsg);
+
+static void
+init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+ SET_STRUCT(struct nlmsghdr, nlh,
+ .nlmsg_len = msg_len,
+ .nlmsg_type = RTM_GETLINK,
+ .nlmsg_flags = NLM_F_DUMP
+ );
+
+ struct ifinfomsg *const msg = NLMSG_DATA(nlh);
+ SET_STRUCT(struct ifinfomsg, msg,
+ .ifi_family = AF_UNIX,
+ .ifi_type = ARPHRD_LOOPBACK,
+ .ifi_index = ifindex_lo(),
+ .ifi_flags = IFF_UP,
+ );
+
+ struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
+ SET_STRUCT(struct nlattr, nla,
+ .nla_len = msg_len - NLMSG_SPACE(hdrlen),
+ .nla_type = IFLA_ATTR
+ );
+}
+
+static void
+print_ifinfomsg(const unsigned int msg_len)
+{
+ printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
+ ", seq=0, pid=0}, {ifi_family=AF_UNIX"
+ ", ifi_type=ARPHRD_LOOPBACK"
+ ", ifi_index=" IFINDEX_LO_STR
+ ", ifi_flags=IFF_UP, ifi_change=0}"
+ ", {{nla_len=%u, nla_type=" STRINGIFY_VAL(IFLA_ATTR) "}",
+ msg_len, msg_len - NLMSG_SPACE(hdrlen));
+}
+
+#endif /* STRACE_TESTS_NLATTR_IFLA_H */
diff --git a/tests-mx32/nlattr_ifla_af_spec.c b/tests-mx32/nlattr_ifla_af_spec.c
new file mode 100644
index 0000000..24f55af
--- /dev/null
+++ b/tests-mx32/nlattr_ifla_af_spec.c
@@ -0,0 +1,322 @@
+/*
+ * IFLA_AF_SPEC netlink attribute decoding check.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stddef.h>
+#include "test_nlattr.h"
+
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#ifdef HAVE_LINUX_IF_LINK_H
+# include <linux/if_link.h>
+#endif
+#include <linux/rtnetlink.h>
+
+#if !HAVE_DECL_IFLA_AF_SPEC
+enum { IFLA_AF_SPEC = 26 };
+#endif
+
+#define XLAT_MACROS_ONLY
+# include "xlat/rtnl_ifla_af_spec_inet_attrs.h"
+# include "xlat/rtnl_ifla_af_spec_inet6_attrs.h"
+#undef XLAT_MACROS_ONLY
+
+#ifndef HAVE_STRUCT_IFLA_CACHEINFO
+struct ifla_cacheinfo {
+ uint32_t max_reasm_len;
+ uint32_t tstamp;
+ uint32_t reachable_time;
+ uint32_t retrans_time;
+};
+#endif
+
+#define IFLA_ATTR IFLA_AF_SPEC
+#include "nlattr_ifla.h"
+
+#define AF_SPEC_FUNCS(family_) \
+ static void \
+ init_##family_##_msg(struct nlmsghdr *const nlh, \
+ const unsigned int msg_len) \
+ { \
+ init_ifinfomsg(nlh, msg_len); \
+ \
+ struct nlattr *nla = NLMSG_ATTR(nlh, hdrlen); \
+ nla += 1; \
+ SET_STRUCT(struct nlattr, nla, \
+ .nla_len = msg_len - NLMSG_SPACE(hdrlen) \
+ - NLA_HDRLEN, \
+ .nla_type = family_, \
+ ); \
+ } \
+ \
+ static void \
+ print_##family_##_msg(const unsigned int msg_len) \
+ { \
+ print_ifinfomsg(msg_len); \
+ printf(", {{nla_len=%u, nla_type=" #family_ "}", \
+ msg_len - NLMSG_SPACE(hdrlen) - NLA_HDRLEN); \
+ } \
+ /* end of AF_SPEC_FUNCS definition */
+
+AF_SPEC_FUNCS(AF_INET)
+AF_SPEC_FUNCS(AF_INET6)
+
+static void
+print_arr_val(uint32_t *val, size_t idx, const char *idx_str)
+{
+ if (idx_str)
+ printf("[%s] = ", idx_str);
+ else
+ printf("[%zu] = ", idx);
+
+ printf("%d", *val);
+}
+
+static void
+print_arr_uval(uint64_t *val, size_t idx, const char *idx_str)
+{
+ if (idx_str)
+ printf("[%s] = ", idx_str);
+ else
+ printf("[%zu] = ", idx);
+
+ printf("%" PRIu64, *val);
+}
+
+static void
+print_inet_conf_val(uint32_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "IPV4_DEVCONF_FORWARDING-1",
+ "IPV4_DEVCONF_MC_FORWARDING-1",
+ };
+
+ print_arr_val(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+
+static void
+print_inet6_conf_val(uint32_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "DEVCONF_FORWARDING",
+ "DEVCONF_HOPLIMIT",
+ };
+
+ print_arr_val(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+static void
+print_inet6_stats_val(uint64_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "IPSTATS_MIB_NUM",
+ "IPSTATS_MIB_INPKTS",
+ };
+
+ print_arr_uval(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+static void
+print_icmp6_stats_val(uint64_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "ICMP6_MIB_NUM",
+ "ICMP6_MIB_INMSGS",
+ "ICMP6_MIB_INERRORS",
+ "ICMP6_MIB_OUTMSGS",
+ "ICMP6_MIB_OUTERRORS",
+ "ICMP6_MIB_CSUMERRORS",
+ "6 /* ICMP6_MIB_??? */",
+ };
+
+ print_arr_uval(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+int
+main(void)
+{
+ static const uint8_t unknown_msg[] = { 0xab, 0xac, 0xdb, 0xcd };
+
+ skip_if_unavailable("/proc/self/fd/");
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ const unsigned int hdrlen = sizeof(struct ifinfomsg);
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 3 * NLA_HDRLEN + 256);
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+
+ /* unknown AF_* */
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ AF_UNIX, pattern, unknown_msg,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ 0, "IFLA_INET_UNSPEC", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ 2, "0x2 /* IFLA_INET_??? */", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET: IFLA_INET_CONF */
+ uint32_t inet_conf_vals[] = { 0xdeadc0de, 0xda7aface };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ IFLA_INET_CONF, pattern,
+ inet_conf_vals, 2, print_inet_conf_val);
+
+ /* AF_INET6 */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 0, "IFLA_INET6_UNSPEC", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 9, "0x9 /* IFLA_INET6_??? */", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET6: IFLA_INET6_FLAGS */
+ static const struct {
+ uint32_t flags;
+ const char *str;
+ } inet6_flags[] = {
+ { 0xf, "0xf /* IF_??? */" },
+ { 0x10, "IF_RS_SENT" },
+ { 0xc0, "IF_RA_MANAGED|IF_RA_OTHERCONF" },
+ { 0xdeadc0de, "IF_RS_SENT|IF_RA_MANAGED|IF_RA_OTHERCONF"
+ "|IF_READY|0x5eadc00e" },
+ };
+
+ for (size_t i = 0; i < ARRAY_SIZE(inet6_flags); i++) {
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg,
+ print_AF_INET6_msg,
+ 1, "IFLA_INET6_FLAGS", pattern,
+ inet6_flags[i].flags,
+ print_quoted_hex, 2,
+ printf("%s", inet6_flags[i].str));
+ }
+
+ /* AF_INET6: IFLA_INET6_CONF */
+ uint32_t inet6_conf_vals[] = { 0xdeadc0de, 0xda7aface };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_CONF, pattern,
+ inet6_conf_vals, 2, print_inet6_conf_val);
+
+ /* AF_INET6: IFLA_INET6_STATS */
+ uint64_t inet6_stats_vals[] = { 0xdeadc0deda7aface, 0xdec0deedbadc0ded };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_STATS, pattern,
+ inet6_stats_vals, 2, print_inet6_stats_val);
+
+ /* AF_INET6: IFLA_INET6_MCAST */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 4, "IFLA_INET6_MCAST", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET6: IFLA_INET6_CACHEINFO */
+ static const struct ifla_cacheinfo ci = {
+ 0xbadc0ded, 0xfacebeef, 0xdecafeed, 0xdeadfeed,
+ };
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 5, "IFLA_INET6_CACHEINFO", pattern,
+ ci, print_quoted_hex, 2,
+ PRINT_FIELD_U("{", ci, max_reasm_len);
+ PRINT_FIELD_U(", ", ci, tstamp);
+ PRINT_FIELD_U(", ", ci, reachable_time);
+ PRINT_FIELD_U(", ", ci, retrans_time);
+ printf("}"));
+
+ /* AF_INET6: IFLA_INET6_ICMP6STATS */
+ uint64_t icmp6_stats_vals[] = {
+ 0xdeadc0deda7aface, 0xdec0deedbadc0ded, 0xfacebeefdeadfeed,
+ 0xdeadc0deda7afacd, 0xdec0deedbadc0dee, 0xfacebeefdeadfeef,
+ 0xdeadc0deda7afacc
+ };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_ICMP6STATS, pattern,
+ icmp6_stats_vals, 2, print_icmp6_stats_val);
+
+ /* AF_INET6: IFLA_INET6_TOKEN */
+ uint8_t inet6_addr[16] = {
+ 0xba, 0xdc, 0x0d, 0xed, 0xfa, 0xce, 0xbe, 0xef,
+ 0xde, 0xca, 0xfe, 0xed, 0xde, 0xad, 0xfe, 0xed,
+ };
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 7, "IFLA_INET6_TOKEN", pattern,
+ inet6_addr, print_quoted_hex, 2,
+ printf("badc:ded:face:beef:deca:feed"
+ ":dead:feed"));
+
+ /* AF_INET6: IFLA_INET6_ */
+ static const struct {
+ uint8_t flags;
+ const char *str;
+ } agms[] = {
+ { 0x0, "IN6_ADDR_GEN_MODE_EUI64" },
+ { 0x3, "IN6_ADDR_GEN_MODE_RANDOM" },
+ { 0x4, "0x4 /* IN6_ADDR_GEN_MODE_??? */" },
+ { 0xff, "0xff /* IN6_ADDR_GEN_MODE_??? */" },
+ };
+
+ for (size_t i = 0; i < ARRAY_SIZE(agms); i++) {
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg,
+ print_AF_INET6_msg,
+ 8, "IFLA_INET6_ADDR_GEN_MODE",
+ pattern, agms[i].flags,
+ print_quoted_hex, 2,
+ printf("%s", agms[i].str));
+ }
+
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-mx32/nlattr_ifla_af_spec.gen.test b/tests-mx32/nlattr_ifla_af_spec.gen.test
new file mode 100755
index 0000000..601eeb2
--- /dev/null
+++ b/tests-mx32/nlattr_ifla_af_spec.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_af_spec +netlink_sock_diag.test ); do not edit.
+set --
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/nlattr_ifla_brport.c b/tests-mx32/nlattr_ifla_brport.c
index ae7c9da..1968426 100644
--- a/tests-mx32/nlattr_ifla_brport.c
+++ b/tests-mx32/nlattr_ifla_brport.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,65 +38,35 @@
#endif
#include <linux/rtnetlink.h>
+#if !HAVE_DECL_IFLA_PROTINFO
+enum { IFLA_PROTINFO = 12 };
+#endif
+
#define IFLA_BRPORT_PRIORITY 2
#define IFLA_BRPORT_MESSAGE_AGE_TIMER 21
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_PROTINFO
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_PROTINFO}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_PROTINFO
+#include "nlattr_ifla.h"
int
main(void)
{
skip_if_unavailable("/proc/self/fd/");
+ const uint16_t u16 = 0xabcd;
+ const uint64_t u64 = 0xabcdedeeefeafeab;
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN * 2 + sizeof(u64));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
- const uint16_t u16 = 0xabcd;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_BRPORT_PRIORITY, pattern, u16,
printf("%u", u16));
- const uint64_t u64 = 0xabcdedeeefeafeab;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_BRPORT_MESSAGE_AGE_TIMER, pattern, u64,
diff --git a/tests-mx32/nlattr_ifla_linkinfo.c b/tests-mx32/nlattr_ifla_linkinfo.c
new file mode 100644
index 0000000..1bf1bef
--- /dev/null
+++ b/tests-mx32/nlattr_ifla_linkinfo.c
@@ -0,0 +1,711 @@
+/*
+ * IFLA_LINKINFO netlink attribute decoding check.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stddef.h>
+#include <arpa/inet.h>
+
+#include "test_nlattr.h"
+
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#ifdef HAVE_LINUX_IF_LINK_H
+# include <linux/if_link.h>
+#endif
+#include <linux/rtnetlink.h>
+
+#define XLAT_MACROS_ONLY
+# include <xlat/rtnl_link_attrs.h>
+# include <xlat/rtnl_ifla_info_attrs.h>
+#undef XLAT_MACROS_ONLY
+
+#define IFLA_ATTR IFLA_LINKINFO
+#include "nlattr_ifla.h"
+
+#define COMMA ,
+#define TEST_UNKNOWN_TUNNELS(fd_, nlh0_, objtype_, objtype_str_, \
+ obj_, objsz_, arrstrs_, ...) \
+ do { \
+ /* 64 is guestimate for maximum unknown type len */ \
+ char buf[8 * 2 + 64 + objsz_]; \
+ const char **arrstrs[] = arrstrs_; \
+ const char ***arrstrs_pos = arrstrs; \
+ const char **arrstr = *arrstrs_pos; \
+ const char *type = NULL; \
+ \
+ for (type = arrstr ? arrstr[0] : NULL; type && arrstr; \
+ type = (++arrstr)[0] ? arrstr[0] \
+ : (++arrstrs_pos)[0] \
+ ? (arrstr = arrstrs_pos[0])[0] \
+ : NULL) \
+ { \
+ size_t type_len = strlen(type) + 1; \
+ \
+ if (type_len > 64) \
+ error_msg_and_fail("Unexpectedly long " \
+ "unknown type: \"%s\" " \
+ "(length is %zu)", \
+ type, type_len); \
+ \
+ struct nlattr obj_nla = { \
+ .nla_len = NLA_HDRLEN + (objsz_), \
+ .nla_type = (objtype_), \
+ }; \
+ \
+ char *pos = buf; \
+ memcpy(pos, type, type_len); \
+ pos += NLA_ALIGN(type_len); \
+ memcpy(pos, &obj_nla, sizeof(obj_nla)); \
+ pos += sizeof(obj_nla); \
+ memcpy(pos, (obj_), (objsz_)); \
+ \
+ TEST_NLATTR_EX_((fd_), \
+ (nlh0_) - hdrlen - (pos - buf), \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ type_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf), \
+ printf("\"%s\"}", type); \
+ printf(", {{nla_len=%zu" \
+ ", nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (objtype_str_)); \
+ \
+ { __VA_ARGS__; } \
+ \
+ printf("}")); \
+ } \
+ } while (0)
+
+#define TEST_LINKINFO_(fd_, nlh0_, nla_type_, nla_type_str_, tuntype_, \
+ obj_, objsz_, pattern_, fallback_func_, ...) \
+ do { \
+ size_t tuntype_len = strlen(tuntype_) + 1; \
+ char *buf = tail_alloc(NLA_ALIGN(tuntype_len) \
+ + NLA_HDRLEN + (objsz_)); \
+ char *pos = buf; \
+ \
+ struct nlattr obj_nla = { \
+ .nla_len = NLA_HDRLEN + (objsz_), \
+ .nla_type = (nla_type_), \
+ }; \
+ \
+ memcpy(pos, (tuntype_), tuntype_len); \
+ pos += NLA_ALIGN(tuntype_len); \
+ memcpy(pos, &obj_nla, sizeof(obj_nla)); \
+ pos += sizeof(obj_nla); \
+ memcpy(pos, &(obj_), (objsz_)); \
+ \
+ if (fallback_func_ == print_quoted_hex) { \
+ TEST_NLATTR_EX_((fd_), \
+ (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, \
+ objsz_ + (pos - buf) - 1, \
+ buf, objsz_ + (pos - buf) - 1, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu" \
+ ", nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ (fallback_func_)((obj_), \
+ (objsz_) - 1); \
+ printf("}")); \
+ } \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf) - 1, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ printf("%p}", \
+ RTA_DATA(NLMSG_ATTR(nlh, \
+ (hdrlen + NLA_HDRLEN + (pos - buf)))) \
+ ) \
+ ); \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf), \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ \
+ { __VA_ARGS__; } \
+ \
+ printf("}")); \
+ } while (0)
+
+#define TEST_LINKINFO(fd_, nlh0_, nla_type_, tuntype_, \
+ obj_, pattern_, fallback_func_, ...) \
+ TEST_LINKINFO_((fd_), (nlh0_), nla_type_, #nla_type_, (tuntype_), \
+ (obj_), sizeof(obj_), pattern_, fallback_func_, \
+ __VA_ARGS__)
+
+#define TEST_NESTED_LINKINFO(fd_, nlh0_, \
+ nla_type_, nla_type_str_, tuntype_, \
+ subnla_type_, subnla_type_str_, \
+ obj_, pattern_, ...) \
+ do { \
+ size_t tuntype_len = strlen(tuntype_) + 1; \
+ struct { \
+ size_t sz; \
+ const char *str; \
+ } attrs[] = { __VA_ARGS__ }; \
+ size_t tunhdrlen; \
+ size_t buflen = NLA_ALIGN(tuntype_len) + NLA_HDRLEN; \
+ size_t attrsz = 0; \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) \
+ attrsz += NLA_HDRLEN + NLA_ALIGN(attrs[i].sz); \
+ \
+ buflen += attrsz; \
+ \
+ char *buf = tail_alloc(buflen); \
+ char *pos = buf; \
+ \
+ struct nlattr nla = { \
+ .nla_len = NLA_HDRLEN + attrsz, \
+ .nla_type = (nla_type_), \
+ }; \
+ \
+ memcpy(pos, (tuntype_), tuntype_len); \
+ pos += NLA_ALIGN(tuntype_len); \
+ memcpy(pos, &nla, sizeof(nla)); \
+ pos += sizeof(nla); \
+ \
+ tunhdrlen = pos - buf; \
+ \
+ nla.nla_type = subnla_type_; \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) { \
+ nla.nla_len = NLA_HDRLEN + attrs[i].sz; \
+ memcpy(pos, &nla, sizeof(nla)); \
+ pos += sizeof(nla); \
+ \
+ memcpy(pos, &(obj_), MIN(sizeof(obj_), attrs[i].sz)); \
+ \
+ if (attrs[i].sz > sizeof(obj_)) \
+ memcpy(pos + sizeof(obj_), \
+ &(pattern_), \
+ attrs[i].sz - sizeof(obj_)); \
+ \
+ pos += NLA_ALIGN(attrs[i].sz); \
+ } \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - hdrlen - tunhdrlen, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, buflen, \
+ buf, buflen, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, [", \
+ attrsz + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) \
+ printf("%s%s{nla_len=%zu" \
+ ", nla_type=%s}%s%s%s", \
+ i ? ", " : "", \
+ attrs[i].str ? "{": "", \
+ attrs[i].sz + NLA_HDRLEN, \
+ subnla_type_str_, \
+ attrs[i].str ? ", ": "", \
+ attrs[i].str ?: "", \
+ attrs[i].str ? "}" : ""); \
+ \
+ printf("]}")); \
+ } while (0)
+
+int
+main(void)
+{
+ static const uint8_t unknown_msg[] = { 0xab, 0xac, 0xdb, 0xcd };
+ static const char *unsupported_tunnel_types[] = {
+ "batadv", "bond",
+ "caif", "cfhsi",
+ "dummy",
+ "erspan",
+ "geneve", "gre", "gretap", "gtp",
+ "hsr",
+ "ifb", "ip6erspan", "ip6gre", "ip6gretap", "ip6tnl",
+ "ipip", "ipoib", "ipvlan", "ipvtap",
+ "lowpan",
+ "macsec", "macvlan", "macvtap",
+ "netdevsim", "nlmon",
+ "openvswitch",
+ "ppp",
+ "rmnet",
+ "sit",
+ "team",
+ "vcan", "veth", "vlan", "vrf", "vsockmon",
+ "vti", "vti6", "vxcan", "vxlan",
+ NULL
+ };
+ static const char *unsupported_xstats_types[] = {
+ "bridge",
+ "tun",
+ NULL
+ };
+ static const char *unsupported_data_types[] = {
+ "can",
+ NULL
+ };
+
+ skip_if_unavailable("/proc/self/fd/");
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ const unsigned int hdrlen = sizeof(struct ifinfomsg);
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 2 * NLA_HDRLEN + 256);
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+
+ /* unknown AF_INFO_* type */
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_INFO_UNSPEC, pattern, unknown_msg,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ 6, "0x6 /* IFLA_INFO_??? */", pattern,
+ unknown_msg, print_quoted_hex, 1,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", pattern,
+ unknown_msg, print_quoted_stringn, 1,
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_UNSPEC */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_UNSPEC, "IFLA_INFO_UNSPEC",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_KIND */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_KIND, "IFLA_INFO_KIND",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_DATA */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_DATA, "IFLA_INFO_DATA",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ struct val_name {
+ unsigned int val;
+ const char *name;
+ };
+
+ static const uint64_t u64_val = 0xdeadc0defacefeedULL;
+ static const uint32_t u32_val = 0xbadc0dedU;
+ static const uint16_t u16_val = 0xdeed;
+ static const uint8_t u8_val = 0xa1;
+
+ /* 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" },
+ { 45, "0x2d /* IFLA_BR_??? */" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(und_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ und_br_attrs[k].val, und_br_attrs[k].name,
+ unknown_msg, pattern,
+ { 2, "\"\\xab\\xac\"" },
+ { 4, "\"\\xab\\xac\\xdb\\xcd\"" },
+ { 6,
+ "\"\\xab\\xac\\xdb\\xcd\\x61\\x62\"" },
+ { 8, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\"" },
+ { 10, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\\x65\\x66\"" });
+ }
+
+ static const struct val_name u64_br_attrs[] = {
+ { 16, "IFLA_BR_HELLO_TIMER" },
+ { 17, "IFLA_BR_TCN_TIMER" },
+ { 18, "IFLA_BR_TOPOLOGY_CHANGE_TIMER" },
+ { 19, "IFLA_BR_GC_TIMER" },
+ { 30, "IFLA_BR_MCAST_LAST_MEMBER_INTVL" },
+ { 31, "IFLA_BR_MCAST_MEMBERSHIP_INTVL" },
+ { 32, "IFLA_BR_MCAST_QUERIER_INTVL" },
+ { 33, "IFLA_BR_MCAST_QUERY_INTVL" },
+ { 34, "IFLA_BR_MCAST_QUERY_RESPONSE_INTVL" },
+ { 35, "IFLA_BR_MCAST_STARTUP_QUERY_INTVL" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u64_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u64_br_attrs[k].val, u64_br_attrs[k].name,
+ u64_val, pattern,
+ { 7, "\""
+#if WORDS_BIGENDIAN
+ "\\xde\\xad\\xc0\\xde\\xfa\\xce\\xfe"
+#else
+ "\\xed\\xfe\\xce\\xfa\\xde\\xc0\\xad"
+#endif
+ "\"" },
+ { 8, "16045693111314087661" },
+ { 9, "16045693111314087661" });
+ }
+
+ static const struct val_name u32_br_attrs[] = {
+ { 1, "IFLA_BR_FORWARD_DELAY" },
+ { 2, "IFLA_BR_HELLO_TIME" },
+ { 3, "IFLA_BR_MAX_AGE" },
+ { 4, "IFLA_BR_AGEING_TIME" },
+ { 5, "IFLA_BR_STP_STATE" },
+ { 13, "IFLA_BR_ROOT_PATH_COST" },
+ { 26, "IFLA_BR_MCAST_HASH_ELASTICITY" },
+ { 27, "IFLA_BR_MCAST_HASH_MAX" },
+ { 28, "IFLA_BR_MCAST_LAST_MEMBER_CNT" },
+ { 29, "IFLA_BR_MCAST_STARTUP_QUERY_CNT" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u32_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u32_br_attrs[k].val, u32_br_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+ }
+
+ static const struct val_name u16_br_attrs[] = {
+ { 6, "IFLA_BR_PRIORITY" },
+ { 12, "IFLA_BR_ROOT_PORT" },
+ { 39, "IFLA_BR_VLAN_DEFAULT_PVID" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u16_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u16_br_attrs[k].val, u16_br_attrs[k].name,
+ u16_val, pattern,
+ { 1, "\""
+#if WORDS_BIGENDIAN
+ "\\xde"
+#else
+ "\\xed"
+#endif
+ "\"" },
+ { 2, "57069" },
+ { 3, "57069" });
+ }
+
+
+ static const struct val_name x16_br_attrs[] = {
+ { 9, "IFLA_BR_GROUP_FWD_MASK" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(x16_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ x16_br_attrs[k].val, x16_br_attrs[k].name,
+ u16_val, pattern,
+ { 1, "\""
+#if WORDS_BIGENDIAN
+ "\\xde"
+#else
+ "\\xed"
+#endif
+ "\"" },
+ { 2, "0xdeed" },
+ { 3, "0xdeed" });
+ }
+
+ static const struct val_name u8_br_attrs[] = {
+ { 7, "IFLA_BR_VLAN_FILTERING" },
+ { 14, "IFLA_BR_TOPOLOGY_CHANGE" },
+ { 15, "IFLA_BR_TOPOLOGY_CHANGE_DETECTED" },
+ { 22, "IFLA_BR_MCAST_ROUTER" },
+ { 23, "IFLA_BR_MCAST_SNOOPING" },
+ { 24, "IFLA_BR_MCAST_QUERY_USE_IFADDR" },
+ { 25, "IFLA_BR_MCAST_QUERIER" },
+ { 36, "IFLA_BR_NF_CALL_IPTABLES" },
+ { 37, "IFLA_BR_NF_CALL_IP6TABLES" },
+ { 38, "IFLA_BR_NF_CALL_ARPTABLES" },
+ { 41, "IFLA_BR_VLAN_STATS_ENABLED" },
+ { 42, "IFLA_BR_MCAST_STATS_ENABLED" },
+ { 43, "IFLA_BR_MCAST_IGMP_VERSION" },
+ { 44, "IFLA_BR_MCAST_MLD_VERSION" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u8_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u8_br_attrs[k].val, u8_br_attrs[k].name,
+ u8_val, pattern,
+ { 0, NULL },
+ { 1, "161" },
+ { 2, "161" });
+ }
+
+ unsigned short eth_p = htons(0x88C7);
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ 8, "IFLA_BR_VLAN_PROTOCOL",
+ eth_p, pattern,
+ { 1, "\"\\x88\"" },
+ { 2, "htons(ETH_P_PREAUTH)" },
+ { 2, "htons(ETH_P_PREAUTH)" });
+
+ static const uint8_t bridge_id[]
+ = { 0xbe, 0xef, 0xfa, 0xce, 0xde, 0xc0, 0xde, 0xad };
+ static const struct val_name br_id_attrs[] = {
+ { 10, "IFLA_BR_ROOT_ID" },
+ { 11, "IFLA_BR_BRIDGE_ID" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(br_id_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ br_id_attrs[k].val, br_id_attrs[k].name,
+ bridge_id, pattern,
+ { 7, "\"\\xbe\\xef\\xfa\\xce"
+ "\\xde\\xc0\\xde\"" },
+ { 8, "{prio=[190, 239]"
+ ", addr=fa:ce:de:c0:de:ad}" },
+ { 9, "{prio=[190, 239]"
+ ", addr=fa:ce:de:c0:de:ad}" });
+ }
+
+ /* tun attrs */
+ static const struct val_name u8_tun_attrs[] = {
+ { 4, "IFLA_TUN_PI" },
+ { 5, "IFLA_TUN_VNET_HDR" },
+ { 6, "IFLA_TUN_PERSIST" },
+ { 7, "IFLA_TUN_MULTI_QUEUE" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u8_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ u8_tun_attrs[k].val, u8_tun_attrs[k].name,
+ u8_val, pattern,
+ { 0, NULL },
+ { 1, "161" },
+ { 2, "161" });
+ }
+
+ static const struct val_name u32_tun_attrs[] = {
+ { 8, "IFLA_TUN_NUM_QUEUES" },
+ { 9, "IFLA_TUN_NUM_DISABLED_QUEUES" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u32_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ u32_tun_attrs[k].val,
+ u32_tun_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+ }
+
+ static const struct val_name und_tun_attrs[] = {
+ { 0, "IFLA_TUN_UNSPEC" },
+ { 10, "0xa /* IFLA_TUN_??? */" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(und_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ und_tun_attrs[k].val,
+ und_tun_attrs[k].name,
+ unknown_msg, pattern,
+ { 2, "\"\\xab\\xac\"" },
+ { 4, "\"\\xab\\xac\\xdb\\xcd\"" },
+ { 6,
+ "\"\\xab\\xac\\xdb\\xcd\\x61\\x62\"" },
+ { 8, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\"" },
+ { 10, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\\x65\\x66\"" });
+ }
+
+ static const uint32_t minus_one = 0xffffffffU;
+ static const struct val_name uid_tun_attrs[] = {
+ { 1, "IFLA_TUN_OWNER" },
+ { 2, "IFLA_TUN_GROUP" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(uid_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ uid_tun_attrs[k].val,
+ uid_tun_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ uid_tun_attrs[k].val,
+ uid_tun_attrs[k].name,
+ minus_one, pattern,
+ { 3, "\"\\xff\\xff\\xff\"" },
+ { 4, "-1" },
+ { 5, "-1" });
+ }
+
+ static const struct {
+ uint8_t val;
+ const char *str;
+ } tun_types[] = {
+ { 0, "0 /* IFF_??? */"},
+ { 1, "IFF_TUN"},
+ { 2, "IFF_TAP"},
+ { 3, "0x3 /* IFF_??? */"},
+ { 0xda, "0xda /* IFF_??? */"},
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(tun_types); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ 3, "IFLA_TUN_TYPE",
+ tun_types[k].val, pattern,
+ { 0, NULL },
+ { 1, tun_types[k].str },
+ { 2, tun_types[k].str });
+ }
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_XSTATS */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_XSTATS, "IFLA_INFO_XSTATS",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ /*
+ * can decoder decodes its data only if it's big
+ * enough.
+ */
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ uint32_t can_stats_data[] = {
+ 0xbadc0de0, 0xbadc0de1, 0xbadc0de2, 0xbadc0de3,
+ 0xbadc0de4, 0xbadc0de5,
+ };
+
+ TEST_LINKINFO(fd, nlh0, IFLA_INFO_XSTATS, "can",
+ can_stats_data, pattern, print_quoted_hex,
+ printf("{bus_error=3134983648"
+ ", error_warning=3134983649"
+ ", error_passive=3134983650"
+ ", bus_off=3134983651"
+ ", arbitration_lost=3134983652"
+ ", restarts=3134983653}"));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_SLVAE_KIND */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0,
+ IFLA_INFO_SLAVE_KIND, "IFLA_INFO_SLAVE_KIND",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_SLAVE_DATA */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0,
+ IFLA_INFO_SLAVE_DATA, "IFLA_INFO_SLAVE_DATA",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND + unknown type */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, 6, "0x6 /* IFLA_INFO_??? */",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests-mx32/nlattr_ifla_linkinfo.gen.test b/tests-mx32/nlattr_ifla_linkinfo.gen.test
new file mode 100755
index 0000000..816ba99
--- /dev/null
+++ b/tests-mx32/nlattr_ifla_linkinfo.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_linkinfo +netlink_sock_diag.test ); do not edit.
+set --
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/nlattr_ifla_port.c b/tests-mx32/nlattr_ifla_port.c
index 61e90fe..e6cb6a4 100644
--- a/tests-mx32/nlattr_ifla_port.c
+++ b/tests-mx32/nlattr_ifla_port.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,50 +37,15 @@
#endif
#include <linux/rtnetlink.h>
-#ifndef IFLA_PORT_SELF
-# define IFLA_PORT_SELF 25
+#if !HAVE_DECL_IFLA_PORT_SELF
+enum { IFLA_PORT_SELF = 25 };
#endif
#ifndef IFLA_PORT_VF
# define IFLA_PORT_VF 1
#endif
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_PORT_SELF
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_PORT_SELF}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_PORT_SELF
+#include "nlattr_ifla.h"
int
main(void)
@@ -88,7 +53,7 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 2 * NLA_HDRLEN + 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_ifla_xdp.c b/tests-mx32/nlattr_ifla_xdp.c
index cca5219..93149fa 100644
--- a/tests-mx32/nlattr_ifla_xdp.c
+++ b/tests-mx32/nlattr_ifla_xdp.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,63 +37,29 @@
#endif
#include <linux/rtnetlink.h>
-#ifndef IFLA_XDP
-# define IFLA_XDP 43
+#if !HAVE_DECL_IFLA_XDP
+enum { IFLA_XDP = 43 };
#endif
#ifndef IFLA_XDP_FD
# define IFLA_XDP_FD 1
#endif
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_XDP
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_XDP}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_XDP
+#include "nlattr_ifla.h"
int
main(void)
{
skip_if_unavailable("/proc/self/fd/");
+ const int32_t num = 0xabacdbcd;
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(num));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
- const int32_t num = 0xabacdbcd;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_XDP_FD, pattern, num,
diff --git a/tests-mx32/nlattr_inet_diag_msg.c b/tests-mx32/nlattr_inet_diag_msg.c
index ccc62ae..5984ee2 100644
--- a/tests-mx32/nlattr_inet_diag_msg.c
+++ b/tests-mx32/nlattr_inet_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,18 @@
#include <linux/inet_diag.h>
#include <linux/sock_diag.h>
+static const char * const sk_meminfo_strs[] = {
+ "SK_MEMINFO_RMEM_ALLOC",
+ "SK_MEMINFO_RCVBUF",
+ "SK_MEMINFO_WMEM_ALLOC",
+ "SK_MEMINFO_SNDBUF",
+ "SK_MEMINFO_FWD_ALLOC",
+ "SK_MEMINFO_WMEM_QUEUED",
+ "SK_MEMINFO_OPTMEM",
+ "SK_MEMINFO_BACKLOG",
+ "SK_MEMINFO_DROPS",
+};
+
static const char address[] = "10.11.12.13";
static void
@@ -77,9 +89,14 @@
}
static void
-print_uint(const unsigned int *p)
+print_uint(const unsigned int *p, size_t i)
{
- printf("%u", *p);
+ if (i >= ARRAY_SIZE(sk_meminfo_strs))
+ printf("[%zu /* SK_MEMINFO_??? */", i);
+ else
+ printf("[%s", sk_meminfo_strs[i]);
+
+ printf("] = %u", *p);
}
int
@@ -87,19 +104,46 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct inet_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct inet_diag_meminfo minfo = {
.idiag_rmem = 0xfadcacdb,
.idiag_wmem = 0xbdabcada,
.idiag_fmem = 0xbadbfafb,
.idiag_tmem = 0xfdacdadf
};
+ static const struct tcpvegas_info vegas = {
+ .tcpv_enabled = 0xfadcacdb,
+ .tcpv_rttcnt = 0xbdabcada,
+ .tcpv_rtt = 0xbadbfafb,
+ .tcpv_minrtt = 0xfdacdadf
+ };
+ static const struct tcp_dctcp_info dctcp = {
+ .dctcp_enabled = 0xfdac,
+ .dctcp_ce_state = 0xfadc,
+ .dctcp_alpha = 0xbdabcada,
+ .dctcp_ab_ecn = 0xbadbfafb,
+ .dctcp_ab_tot = 0xfdacdadf
+ };
+ static const struct tcp_bbr_info bbr = {
+ .bbr_bw_lo = 0xfdacdadf,
+ .bbr_bw_hi = 0xfadcacdb,
+ .bbr_min_rtt = 0xbdabcada,
+ .bbr_pacing_gain = 0xbadbfafb,
+ .bbr_cwnd_gain = 0xfdacdadf
+ };
+ static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
+ static uint32_t bigmem[SK_MEMINFO_VARS + 1];
+ static const uint32_t mark = 0xabdfadca;
+ static const uint8_t shutdown = 0xcd;
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct inet_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(bigmem), DEFAULT_STRLEN));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_MEMINFO, pattern, minfo,
@@ -109,12 +153,6 @@
PRINT_FIELD_U(", ", minfo, idiag_tmem);
printf("}"));
- static const struct tcpvegas_info vegas = {
- .tcpv_enabled = 0xfadcacdb,
- .tcpv_rttcnt = 0xbdabcada,
- .tcpv_rtt = 0xbadbfafb,
- .tcpv_minrtt = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_VEGASINFO, pattern, vegas,
@@ -125,13 +163,6 @@
printf("}"));
- static const struct tcp_dctcp_info dctcp = {
- .dctcp_enabled = 0xfdac,
- .dctcp_ce_state = 0xfadc,
- .dctcp_alpha = 0xbdabcada,
- .dctcp_ab_ecn = 0xbadbfafb,
- .dctcp_ab_tot = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_DCTCPINFO, pattern, dctcp,
@@ -142,13 +173,6 @@
PRINT_FIELD_U(", ", dctcp, dctcp_ab_tot);
printf("}"));
- static const struct tcp_bbr_info bbr = {
- .bbr_bw_lo = 0xfdacdadf,
- .bbr_bw_hi = 0xfadcacdb,
- .bbr_min_rtt = 0xbdabcada,
- .bbr_pacing_gain = 0xbadbfafb,
- .bbr_cwnd_gain = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_BBRINFO, pattern, bbr,
@@ -159,24 +183,16 @@
PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain);
printf("}"));
- static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_SKMEMINFO, pattern, mem, print_uint);
- static uint32_t bigmem[SK_MEMINFO_VARS + 1];
memcpy(bigmem, pattern, sizeof(bigmem));
- TEST_NLATTR(fd, nlh0, hdrlen, init_inet_diag_msg, print_inet_diag_msg,
- INET_DIAG_SKMEMINFO, sizeof(bigmem), bigmem, sizeof(bigmem),
- size_t i;
- for (i = 0; i < SK_MEMINFO_VARS; ++i) {
- printf(i ? ", " : "[");
- print_uint(&bigmem[i]);
- }
- printf(", ...]"));
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_inet_diag_msg, print_inet_diag_msg,
+ INET_DIAG_SKMEMINFO, pattern, bigmem, print_uint);
- static const uint32_t mark = 0xabdfadca;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_MARK, pattern, mark,
@@ -187,7 +203,6 @@
INET_DIAG_CLASS_ID, pattern, mark,
printf("%u", mark));
- static const uint8_t shutdown = 0xcd;
TEST_NLATTR(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_SHUTDOWN,
sizeof(shutdown), &shutdown, sizeof(shutdown),
diff --git a/tests-mx32/nlattr_inet_diag_req_compat.c b/tests-mx32/nlattr_inet_diag_req_compat.c
index b0b2171..52fd53f 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -86,7 +86,7 @@
int fd = create_nl_socket(NETLINK_SOCK_DIAG);
const unsigned int hdrlen = sizeof(struct inet_diag_req);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_inet_diag_req_v2.c b/tests-mx32/nlattr_inet_diag_req_v2.c
index 1e09abe..cf19c60 100644
--- a/tests-mx32/nlattr_inet_diag_req_v2.c
+++ b/tests-mx32/nlattr_inet_diag_req_v2.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -407,7 +407,10 @@
skip_if_unavailable("/proc/self/fd/");
int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN +
+ sizeof(struct inet_diag_bc_op) +
+ sizeof(struct inet_diag_hostcond) +
+ sizeof(struct in6_addr) + DEFAULT_STRLEN);
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
test_inet_diag_bc_op(fd);
diff --git a/tests-mx32/nlattr_mdba_mdb_entry.c b/tests-mx32/nlattr_mdba_mdb_entry.c
index 124fe1d..61bded2 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,12 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4
+# ifdef HAVE_STRUCT_BR_MDB_ENTRY
+ - 4 + NLA_HDRLEN * 2 + sizeof(struct nlattr)
+ + sizeof(struct br_mdb_entry)
+# endif
+ );
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_mdba_router_port.c b/tests-mx32/nlattr_mdba_router_port.c
index af908cd..a6621ca 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -87,25 +87,27 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_ROUTE);
-
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
const uint32_t ifindex = ifindex_lo();
- TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_br_port_msg, print_br_port_msg,
- MDBA_ROUTER_PORT, pattern, ifindex,
- printf(IFINDEX_LO_STR));
-
const uint8_t type = MDB_RTR_TYPE_DISABLED;
static const struct nlattr nla = {
.nla_len = NLA_HDRLEN + sizeof(type),
.nla_type = MDBA_ROUTER_PATTR_TYPE
};
char buf[NLMSG_ALIGN(ifindex) + NLA_HDRLEN + sizeof(type)];
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(buf));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_br_port_msg, print_br_port_msg,
+ MDBA_ROUTER_PORT, pattern, ifindex,
+ printf(IFINDEX_LO_STR));
+
memcpy(buf, &ifindex, sizeof(ifindex));
memcpy(buf + NLMSG_ALIGN(ifindex), &nla, sizeof(nla));
memcpy(buf + NLMSG_ALIGN(ifindex) + NLA_HDRLEN, &type, sizeof(type));
diff --git a/tests-mx32/nlattr_ndmsg.c b/tests-mx32/nlattr_ndmsg.c
index 8538a82..aa28a57 100644
--- a/tests-mx32/nlattr_ndmsg.c
+++ b/tests-mx32/nlattr_ndmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,8 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ndmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(struct nda_cacheinfo));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_ndtmsg.c b/tests-mx32/nlattr_ndtmsg.c
index d3f1bdb..d120059 100644
--- a/tests-mx32/nlattr_ndtmsg.c
+++ b/tests-mx32/nlattr_ndtmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ndtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 11 * 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_netconfmsg.c b/tests-mx32/nlattr_netconfmsg.c
index 6866adc..f5f5993 100644
--- a/tests-mx32/nlattr_netconfmsg.c
+++ b/tests-mx32/nlattr_netconfmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,7 +66,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct netconfmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_netlink_diag_msg.c b/tests-mx32/nlattr_netlink_diag_msg.c
index 76a2d19..b598899 100644
--- a/tests-mx32/nlattr_netlink_diag_msg.c
+++ b/tests-mx32/nlattr_netlink_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,7 +66,7 @@
}
static void
-print_xlong(const unsigned long *p)
+print_xlong(const unsigned long *p, size_t i)
{
printf("%#lx", *p);
}
@@ -76,27 +76,32 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const unsigned long groups[] = {
(unsigned long) 0xdeadbeefbadc0dedULL,
(unsigned long) 0xdeadbeefbadc0dedULL
};
- TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
- init_netlink_diag_msg, print_netlink_diag_msg,
- NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
-
static const struct netlink_diag_ring ndr = {
.ndr_block_size = 0xfabfabdc,
.ndr_block_nr = 0xabcdabda,
.ndr_frame_size = 0xcbadbafa,
.ndr_frame_nr = 0xdbcafadb
};
+ static const uint32_t flags =
+ NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(groups), sizeof(ndr)));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_netlink_diag_msg, print_netlink_diag_msg,
+ NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_netlink_diag_msg, print_netlink_diag_msg,
NETLINK_DIAG_RX_RING, pattern, ndr,
@@ -106,8 +111,6 @@
PRINT_FIELD_U(", ", ndr, ndr_frame_nr);
printf("}"));
- static const uint32_t flags =
- NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_netlink_diag_msg, print_netlink_diag_msg,
NETLINK_DIAG_FLAGS, pattern, flags,
diff --git a/tests-mx32/nlattr_nlmsgerr.c b/tests-mx32/nlattr_nlmsgerr.c
index 837283c..073fde2 100644
--- a/tests-mx32/nlattr_nlmsgerr.c
+++ b/tests-mx32/nlattr_nlmsgerr.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,11 +69,13 @@
{
skip_if_unavailable("/proc/self/fd/");
+ static const uint8_t cookie[] = { 0xab, 0xfe };
+
const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
const unsigned int hdrlen = sizeof(struct nlmsgerr);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(cookie));
- static const uint8_t cookie[] = { 0xab, 0xfe };
TEST_NLATTR(fd, nlh0, hdrlen,
init_nlmsgerr, print_nlmsgerr,
NLMSGERR_ATTR_COOKIE,
diff --git a/tests-mx32/nlattr_packet_diag_msg.c b/tests-mx32/nlattr_packet_diag_msg.c
index 4211e20..016d052 100644
--- a/tests-mx32/nlattr_packet_diag_msg.c
+++ b/tests-mx32/nlattr_packet_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@
}
static void
-print_packet_diag_mclist(const struct packet_diag_mclist *const dml)
+print_packet_diag_mclist(const struct packet_diag_mclist *const dml, size_t i)
{
printf("{pdmc_index=" IFINDEX_LO_STR);
PRINT_FIELD_U(", ", *dml, pdmc_count);
@@ -84,7 +84,7 @@
};
static void
-print_sock_filter(const struct sock_filter *const f)
+print_sock_filter(const struct sock_filter *const f, size_t i)
{
if (f == filter)
printf("BPF_STMT(BPF_LD|BPF_B|BPF_ABS"
@@ -98,13 +98,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct packet_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct packet_diag_info pinfo = {
.pdi_index = 0xabcddafa,
.pdi_version = 0xbabcdafb,
@@ -113,16 +106,6 @@
.pdi_tstamp = 0xeafbaadf,
.pdi_flags = PDI_RUNNING
};
- TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_packet_diag_msg, print_packet_diag_msg,
- PACKET_DIAG_INFO, pattern, pinfo,
- PRINT_FIELD_U("{", pinfo, pdi_index);
- PRINT_FIELD_U(", ", pinfo, pdi_version);
- PRINT_FIELD_U(", ", pinfo, pdi_reserve);
- PRINT_FIELD_U(", ", pinfo, pdi_copy_thresh);
- PRINT_FIELD_U(", ", pinfo, pdi_tstamp);
- printf(", pdi_flags=PDI_RUNNING}"));
-
const struct packet_diag_mclist dml[] = {
{
.pdmc_index = ifindex_lo(),
@@ -139,11 +122,6 @@
.pdmc_addr = "5678"
}
};
- TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
- init_packet_diag_msg, print_packet_diag_msg,
- PACKET_DIAG_MCLIST, pattern, dml,
- print_packet_diag_mclist);
-
static const struct packet_diag_ring pdr = {
.pdr_block_size = 0xabcdafed,
.pdr_block_nr = 0xbcadefae,
@@ -153,6 +131,30 @@
.pdr_sizeof_priv = 0xfeadeacd,
.pdr_features = 0xadebadea
};
+
+ int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct packet_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(dml));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_packet_diag_msg, print_packet_diag_msg,
+ PACKET_DIAG_INFO, pattern, pinfo,
+ PRINT_FIELD_U("{", pinfo, pdi_index);
+ PRINT_FIELD_U(", ", pinfo, pdi_version);
+ PRINT_FIELD_U(", ", pinfo, pdi_reserve);
+ PRINT_FIELD_U(", ", pinfo, pdi_copy_thresh);
+ PRINT_FIELD_U(", ", pinfo, pdi_tstamp);
+ printf(", pdi_flags=PDI_RUNNING}"));
+
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_packet_diag_msg, print_packet_diag_msg,
+ PACKET_DIAG_MCLIST, pattern, dml,
+ print_packet_diag_mclist);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_packet_diag_msg, print_packet_diag_msg,
PACKET_DIAG_RX_RING, pattern, pdr,
diff --git a/tests-mx32/nlattr_rtgenmsg.c b/tests-mx32/nlattr_rtgenmsg.c
index ceb061d..bac21ef 100644
--- a/tests-mx32/nlattr_rtgenmsg.c
+++ b/tests-mx32/nlattr_rtgenmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,13 +66,14 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtgenmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ const unsigned int nla_type = 0xffff & NLA_TYPE_MASK;
+ char nla_type_str[256];
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(nla_type_str));
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 /* NETNSA_??? */", nla_type);
TEST_NLATTR_(fd, nlh0, hdrlen,
init_rtgenmsg, print_rtgenmsg,
diff --git a/tests-mx32/nlattr_rtmsg.c b/tests-mx32/nlattr_rtmsg.c
index 5f29f0c..db02929 100644
--- a/tests-mx32/nlattr_rtmsg.c
+++ b/tests-mx32/nlattr_rtmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -81,13 +81,14 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ const unsigned int nla_type = 0xffff & NLA_TYPE_MASK;
+ char nla_type_str[256];
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(nla_type_str));
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 /* RTA_??? */", nla_type);
TEST_NLATTR_(fd, nlh0, hdrlen,
init_rtmsg, print_rtmsg,
diff --git a/tests-mx32/nlattr_smc_diag_msg.c b/tests-mx32/nlattr_smc_diag_msg.c
index a06ad62..2e65ebd 100644
--- a/tests-mx32/nlattr_smc_diag_msg.c
+++ b/tests-mx32/nlattr_smc_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -97,13 +97,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct smc_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct smc_diag_conninfo cinfo = {
.token = 0xabcdefac,
.sndbuf_size = 0xbcdaefad,
@@ -149,6 +142,25 @@
.count = 0xcdedbad7
}
};
+ static const struct smc_diag_lgrinfo linfo = {
+ .lnk[0] = {
+ .link_id = 0xaf,
+ .ibport = 0xfa,
+ .ibname = "123",
+ .gid = "456",
+ .peer_gid = "789"
+ },
+ .role = SMC_CLNT
+ };
+
+ int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct smc_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(cinfo), sizeof(linfo)));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_smc_diag_msg, print_smc_diag_msg,
@@ -170,16 +182,6 @@
PRINT_FIELD_SMC_DIAG_CURSOR(", ", cinfo, tx_fin);
printf("}"));
- static const struct smc_diag_lgrinfo linfo = {
- .lnk[0] = {
- .link_id = 0xaf,
- .ibport = 0xfa,
- .ibname = "123",
- .gid = "456",
- .peer_gid = "789"
- },
- .role = SMC_CLNT
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_smc_diag_msg, print_smc_diag_msg,
SMC_DIAG_LGRINFO, pattern, linfo,
diff --git a/tests-mx32/nlattr_tc_stats.c b/tests-mx32/nlattr_tc_stats.c
index dd76cc7..8003ed3 100644
--- a/tests-mx32/nlattr_tc_stats.c
+++ b/tests-mx32/nlattr_tc_stats.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 8 * 5);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_tca_stab.c b/tests-mx32/nlattr_tca_stab.c
index de6d356..9889050 100644
--- a/tests-mx32/nlattr_tca_stab.c
+++ b/tests-mx32/nlattr_tca_stab.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
#ifndef TCA_STAB
# define TCA_STAB 8
#endif
-#ifndef TCA_STAB_DATA
-# define TCA_STAB_DATA 2
+#if !HAVE_DECL_TCA_STAB_DATA
+enum { TCA_STAB_DATA = 2 };
#endif
const unsigned int hdrlen = sizeof(struct tcmsg);
@@ -76,7 +76,7 @@
}
static void
-print_uint16(const uint16_t *p)
+print_uint16(const uint16_t *p, size_t idx)
{
printf("%u", *p);
}
@@ -87,7 +87,11 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4
+#ifdef HAVE_STRUCT_TC_SIZESPEC
+ - 4 + sizeof(struct tc_sizespec)
+#endif
+ );
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_tcamsg.c b/tests-mx32/nlattr_tcamsg.c
index 7f61153..43715d2 100644
--- a/tests-mx32/nlattr_tcamsg.c
+++ b/tests-mx32/nlattr_tcamsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,7 +62,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct tcamsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_tcmsg.c b/tests-mx32/nlattr_tcmsg.c
index 32ce479..da88a45 100644
--- a/tests-mx32/nlattr_tcmsg.c
+++ b/tests-mx32/nlattr_tcmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,8 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct tcmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(struct tc_stats));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests-mx32/nlattr_unix_diag_msg.c b/tests-mx32/nlattr_unix_diag_msg.c
index 2295404..180b8cd 100644
--- a/tests-mx32/nlattr_unix_diag_msg.c
+++ b/tests-mx32/nlattr_unix_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -65,7 +65,7 @@
}
static void
-print_uint(const unsigned int *p)
+print_uint(const unsigned int *p, size_t i)
{
printf("%u", *p);
}
@@ -75,17 +75,24 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct unix_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct unix_diag_vfs uv = {
.udiag_vfs_dev = 0xabcddafa,
.udiag_vfs_ino = 0xbafabcda
};
+ static const struct unix_diag_rqlen rql = {
+ .udiag_rqueue = 0xfabdcdad,
+ .udiag_wqueue = 0xbacdadcf
+ };
+ static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct unix_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(inode));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_VFS, pattern, uv,
@@ -95,10 +102,6 @@
PRINT_FIELD_U(", ", uv, udiag_vfs_ino);
printf("}"));
- static const struct unix_diag_rqlen rql = {
- .udiag_rqueue = 0xfabdcdad,
- .udiag_wqueue = 0xbacdadcf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_RQLEN, pattern, rql,
@@ -106,7 +109,6 @@
PRINT_FIELD_U(", ", rql, udiag_wqueue);
printf("}"));
- static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_ICONS, pattern, inode, print_uint);
diff --git a/tests-mx32/nsyscalls.c b/tests-mx32/nsyscalls.c
index 9f74867..681fb31 100644
--- a/tests-mx32/nsyscalls.c
+++ b/tests-mx32/nsyscalls.c
@@ -86,14 +86,14 @@
a[0], a[1], a[2], a[3], a[4], a[5], rc);
#else
printf("syscall_%#lx(%#llx, %#llx, %#llx, %#llx, %#llx, %#llx)"
- " = %ld (errno %d)\n", nr | SYSCALL_BIT,
+ " = %ld ENOSYS (%m)\n", nr | SYSCALL_BIT,
(unsigned long long) a[0],
(unsigned long long) a[1],
(unsigned long long) a[2],
(unsigned long long) a[3],
(unsigned long long) a[4],
(unsigned long long) a[5],
- rc, errno);
+ rc);
#endif
}
diff --git a/tests-mx32/old_mmap-Xabbrev.c b/tests-mx32/old_mmap-Xabbrev.c
new file mode 100644
index 0000000..033503c
--- /dev/null
+++ b/tests-mx32/old_mmap-Xabbrev.c
@@ -0,0 +1 @@
+#include "old_mmap.c"
diff --git a/tests-mx32/old_mmap-Xabbrev.gen.test b/tests-mx32/old_mmap-Xabbrev.gen.test
new file mode 100755
index 0000000..0ee5608
--- /dev/null
+++ b/tests-mx32/old_mmap-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xabbrev -a11 -e trace=mmap -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xabbrev
diff --git a/tests-mx32/old_mmap-Xraw.c b/tests-mx32/old_mmap-Xraw.c
new file mode 100644
index 0000000..06de40b
--- /dev/null
+++ b/tests-mx32/old_mmap-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "old_mmap.c"
diff --git a/tests-mx32/old_mmap-Xraw.gen.test b/tests-mx32/old_mmap-Xraw.gen.test
new file mode 100755
index 0000000..6d7d3cf
--- /dev/null
+++ b/tests-mx32/old_mmap-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xraw -a11 -e trace=mmap -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xraw
diff --git a/tests-mx32/old_mmap-Xverbose.c b/tests-mx32/old_mmap-Xverbose.c
new file mode 100644
index 0000000..b141fec
--- /dev/null
+++ b/tests-mx32/old_mmap-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "old_mmap.c"
diff --git a/tests-mx32/old_mmap-Xverbose.gen.test b/tests-mx32/old_mmap-Xverbose.gen.test
new file mode 100755
index 0000000..6534a93
--- /dev/null
+++ b/tests-mx32/old_mmap-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xverbose -a11 -e trace=mmap -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xverbose
diff --git a/tests-mx32/old_mmap.c b/tests-mx32/old_mmap.c
index 35ec428..07d572c 100644
--- a/tests-mx32/old_mmap.c
+++ b/tests-mx32/old_mmap.c
@@ -79,17 +79,41 @@
void *args = tail_memdup(args1_c, sizeof(args1_c));
rc = syscall(__NR_mmap, args);
+# if XLAT_RAW
+ printf("mmap(%#lx, %lu, %#x, %#x|%#x, %d, %#lx) = %ld %s (%m)\n",
+ args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+ (int) args1_c[4], args1_c[5], rc, errno2name());
+# elif XLAT_VERBOSE
+ printf("mmap(%#lx, %lu, %#x /* PROT_READ|PROT_EXEC */"
+ ", %#x /* MAP_FILE */|%#x /* MAP_FIXED */"
+ ", %d, %#lx) = %ld %s (%m)\n",
+ args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+ (int) args1_c[4], args1_c[5], rc, errno2name());
+# else
printf("mmap(%#lx, %lu, PROT_READ|PROT_EXEC, MAP_FILE|MAP_FIXED"
", %d, %#lx) = %ld %s (%m)\n",
args1_c[0], args1_c[1], (int) args1_c[4], args1_c[5],
rc, errno2name());
+# endif
memcpy(args, args2_c, sizeof(args2_c));
rc = syscall(__NR_mmap, args);
# ifndef PATH_TRACING
+# if XLAT_RAW
+ printf("mmap(NULL, %lu, %#x, %#x|%#x, %d, %#lx) = %#lx\n",
+ args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+ (int) args2_c[4], args2_c[5], rc);
+# elif XLAT_VERBOSE
+ printf("mmap(NULL, %lu, %#x /* PROT_READ|PROT_WRITE */"
+ ", %#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */"
+ ", %d, %#lx) = %#lx\n",
+ args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+ (int) args2_c[4], args2_c[5], rc);
+# 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);
+# endif
# endif
void *addr = (void *) rc;
diff --git a/tests-mx32/opipe.test b/tests-mx32/opipe.test
index f622045..db449bb 100755
--- a/tests-mx32/opipe.test
+++ b/tests-mx32/opipe.test
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
check_prog grep
-run_prog grep chdir $srcdir/umovestr.expected > "$EXP"
+grep chdir $srcdir/umovestr.expected > "$EXP"
run_prog ../umovestr
$STRACE -o "|cat > $LOG && $SLEEP_A_BIT && grep chdir < $LOG > $OUT" -e chdir $args ||
diff --git a/tests-mx32/options-syntax.test b/tests-mx32/options-syntax.test
index af7002b..1a290d0 100755
--- a/tests-mx32/options-syntax.test
+++ b/tests-mx32/options-syntax.test
@@ -56,6 +56,40 @@
check_h "invalid -s argument: '-42'" -s -42
check_h "invalid -s argument: '1073741824'" -s 1073741824
check_h "invalid -I argument: '5'" -I 5
+check_h "invalid -X argument: 'test'" -Xtest
+check_h "invalid -X argument: 'a'" -Xa
+check_h "invalid -X argument: 'abbreviated'" -X abbreviated
+
+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_e "invalid system call '/getcwd@ohmy'" -e trace=/getcwd@ohmy
+
+case "$STRACE_NATIVE_ARCH" in
+x86_64)
+ 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 "must have PROG [ARGS] or -p PID" -e trace=getcwd@x32
+ ;;
+x32)
+ check_h "incorrect personality designator '64' in qualification 'getcwd@64'" -e trace=getcwd@64
+ 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)
+ 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
+ ;;
+*)
+ pers="$((SIZEOF_LONG * 8))"
+ inv_pers="$((96 - pers))"
+ check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@"$pers"
+ check_h "incorrect personality designator '$inv_pers' in qualification 'getcwd@$inv_pers'" -e trace=getcwd@"$inv_pers"
+ check_h "incorrect personality designator 'x32' in qualification 'getcwd@x32'" -e trace=getcwd@x32
+esac
../zeroargc "$STRACE_EXE" /bin/true 2> "$LOG" &&
dump_log_and_fail_with \
diff --git a/tests-mx32/personality-Xabbrev.c b/tests-mx32/personality-Xabbrev.c
new file mode 100644
index 0000000..2e993dc
--- /dev/null
+++ b/tests-mx32/personality-Xabbrev.c
@@ -0,0 +1 @@
+#include "personality.c"
diff --git a/tests-mx32/personality-Xabbrev.gen.test b/tests-mx32/personality-Xabbrev.gen.test
new file mode 100755
index 0000000..df93e6c
--- /dev/null
+++ b/tests-mx32/personality-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xabbrev +personality.test -Xabbrev); do not edit.
+set -- -Xabbrev
+. "${srcdir=.}/personality.test"
diff --git a/tests-mx32/personality-Xraw.c b/tests-mx32/personality-Xraw.c
new file mode 100644
index 0000000..59702f8
--- /dev/null
+++ b/tests-mx32/personality-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "personality.c"
diff --git a/tests-mx32/personality-Xraw.gen.test b/tests-mx32/personality-Xraw.gen.test
new file mode 100755
index 0000000..559f0f3
--- /dev/null
+++ b/tests-mx32/personality-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xraw +personality.test -a15 -Xraw); do not edit.
+set -- -a15 -Xraw
+. "${srcdir=.}/personality.test"
diff --git a/tests-mx32/personality-Xverbose.c b/tests-mx32/personality-Xverbose.c
new file mode 100644
index 0000000..545ebe7
--- /dev/null
+++ b/tests-mx32/personality-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "personality.c"
diff --git a/tests-mx32/personality-Xverbose.gen.test b/tests-mx32/personality-Xverbose.gen.test
new file mode 100755
index 0000000..b6ce209
--- /dev/null
+++ b/tests-mx32/personality-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xverbose +personality.test -Xverbose); do not edit.
+set -- -Xverbose
+. "${srcdir=.}/personality.test"
diff --git a/tests-mx32/personality.c b/tests-mx32/personality.c
index 7a279a1..5d84807 100644
--- a/tests-mx32/personality.c
+++ b/tests-mx32/personality.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,51 +29,76 @@
#include <stdio.h>
#include <sys/personality.h>
+#if XLAT_RAW
+# define linux_type_str "0"
+# define good_type_str "0x6"
+# define bad_type_str "0x1f"
+# define good_flags_str "0x7000000"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str "0x7010000"
+#elif XLAT_VERBOSE
+# define linux_type_str "0 /\\* PER_LINUX \\*/"
+# define good_type_str "0x6 /\\* PER_BSD \\*/"
+# define bad_type_str "0x1f /\\* PER_\\?\\?\\? \\*/"
+# define good_flags_str \
+ "0x7000000 /\\* SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS \\*/"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str \
+ "0x7010000 /\\* SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS" \
+ "\\|0x10000 \\*/"
+#else
+# define linux_type_str "PER_LINUX"
+# define good_type_str "PER_BSD"
+# define bad_type_str "0x1f /\\* PER_\\?\\?\\? \\*/"
+# define good_flags_str "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str \
+ "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS\\|0x10000"
+#endif
+
int main(void)
{
const unsigned int good_type = PER_BSD;
- const char *good_type_str = "PER_BSD";
const unsigned int bad_type = 0x1f;
- const char *bad_type_str = "0x1f /\\* PER_\\?\\?\\? \\*/";
const unsigned int good_flags =
SHORT_INODE | WHOLE_SECONDS | STICKY_TIMEOUTS;
- const char *good_flags_str =
- "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS";
const unsigned int bad_flags = 0x10000;
- const char *bad_flags_str = "0x10000";
const unsigned int saved_pers = personality(0xffffffff);
printf("personality\\(0xffffffff\\) = %#x \\([^)]*\\)\n", saved_pers);
/* PER_LINUX */
personality(PER_LINUX);
- printf("personality\\(PER_LINUX\\) = %#x \\([^)]*\\)\n", saved_pers);
+ printf("personality\\(%s\\) = %#x \\([^)]*\\)\n",
+ linux_type_str, saved_pers);
personality(0xffffffff);
- puts("personality\\(0xffffffff\\) = 0 \\(PER_LINUX\\)");
+ printf("personality\\(0xffffffff\\) = 0 \\(%s\\)\n", linux_type_str);
personality(good_flags);
- printf("personality\\(PER_LINUX\\|%s\\) = 0 \\(PER_LINUX\\)\n",
- good_flags_str);
+ printf("personality\\(%s\\|%s\\) = 0 \\(%s\\)\n",
+ linux_type_str, good_flags_str, linux_type_str);
personality(bad_flags);
- printf("personality\\(PER_LINUX\\|%s\\)"
- " = %#x \\(PER_LINUX\\|%s\\)\n",
- bad_flags_str, good_flags, good_flags_str);
+ printf("personality\\(%s\\|%s\\)"
+ " = %#x \\(%s\\|%s\\)\n",
+ linux_type_str, bad_flags_str,
+ good_flags, linux_type_str, good_flags_str);
personality(good_flags | bad_flags);
- printf("personality\\(PER_LINUX\\|%s\\|%s\\)"
- " = %#x \\(PER_LINUX\\|%s\\)\n",
- good_flags_str, bad_flags_str, bad_flags, bad_flags_str);
+ printf("personality\\(%s\\|%s\\)"
+ " = %#x \\(%s\\|%s\\)\n",
+ linux_type_str, good_bad_flags_str,
+ bad_flags, linux_type_str, bad_flags_str);
/* another valid type */
personality(good_type);
- printf("personality\\(%s\\) = %#x \\(PER_LINUX\\|%s\\|%s\\)\n",
+ printf("personality\\(%s\\) = %#x \\(%s\\|%s\\)\n",
good_type_str, good_flags | bad_flags,
- good_flags_str, bad_flags_str);
+ linux_type_str, good_bad_flags_str);
personality(good_type | good_flags);
printf("personality\\(%s\\|%s\\) = %#x \\(%s\\)\n",
@@ -84,16 +110,16 @@
good_type_str, good_flags_str);
personality(good_type | good_flags | bad_flags);
- printf("personality\\(%s\\|%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
- good_type_str, good_flags_str, bad_flags_str,
+ printf("personality\\(%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
+ good_type_str, good_bad_flags_str,
good_type | bad_flags,
good_type_str, bad_flags_str);
/* invalid type */
personality(bad_type);
- printf("personality\\(%s\\) = %#x \\(%s\\|%s\\|%s\\)\n",
+ printf("personality\\(%s\\) = %#x \\(%s\\|%s\\)\n",
bad_type_str, good_type | good_flags | bad_flags,
- good_type_str, good_flags_str, bad_flags_str);
+ good_type_str, good_bad_flags_str);
personality(bad_type | good_flags);
printf("personality\\(%s\\|%s\\) = %#x \\(%s\\)\n",
@@ -105,14 +131,14 @@
bad_type_str, good_flags_str);
personality(bad_type | good_flags | bad_flags);
- printf("personality\\(%s\\|%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
- bad_type_str, good_flags_str, bad_flags_str,
+ printf("personality\\(%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
+ bad_type_str, good_bad_flags_str,
bad_type | bad_flags, bad_type_str, bad_flags_str);
personality(saved_pers);
- printf("personality\\([^)]*\\) = %#x \\(%s\\|%s\\|%s\\)\n",
+ printf("personality\\([^)]*\\) = %#x \\(%s\\|%s\\)\n",
bad_type | good_flags | bad_flags,
- bad_type_str, good_flags_str, bad_flags_str);
+ bad_type_str, good_bad_flags_str);
return 0;
}
diff --git a/tests-mx32/personality.test b/tests-mx32/personality.test
index ab2faf4..d279bd1 100755
--- a/tests-mx32/personality.test
+++ b/tests-mx32/personality.test
@@ -5,5 +5,5 @@
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-run_strace -a20 -epersonality $args > "$EXP"
+run_strace -a20 -epersonality "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
diff --git a/tests-mx32/poll.c b/tests-mx32/poll.c
index c5930a3..9624bd3 100644
--- a/tests-mx32/poll.c
+++ b/tests-mx32/poll.c
@@ -95,7 +95,7 @@
if (i)
tprintf(", ");
if (i >= valid) {
- tprintf("%p", &pfd[i]);
+ tprintf("... /* %p */", &pfd[i]);
break;
}
if (i >= abbrev) {
diff --git a/tests-mx32/prctl-spec-inject.c b/tests-mx32/prctl-spec-inject.c
new file mode 100644
index 0000000..593c3a6
--- /dev/null
+++ b/tests-mx32/prctl-spec-inject.c
@@ -0,0 +1,153 @@
+/*
+ * Check decoding of PR_SET_SPECULATION_CTRL and PR_GET_SPECULATION_CTRL
+ * prctl operations.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_prctl
+
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+# include <linux/prctl.h>
+
+static long injected_val;
+
+long
+do_prctl(kernel_ulong_t cmd, kernel_ulong_t arg2, kernel_ulong_t arg3)
+{
+ long rc = syscall(__NR_prctl, cmd, arg2, arg3);
+
+ if (rc != injected_val)
+ error_msg_and_fail("Return value (%ld) differs from expected "
+ "injected value (%ld)",
+ rc, injected_val);
+
+ return rc;
+}
+
+int
+main(int argc, char **argv)
+{
+ static const kernel_ulong_t bogus_arg2 =
+ (kernel_ulong_t) 0xdeadfacebadc0dedULL;
+ static const kernel_ulong_t bogus_arg3 =
+ (kernel_ulong_t) 0xdecafeedbeefda7eULL;
+ static const struct {
+ long arg;
+ const char *str;
+ } get_strs[] = {
+ { -1, "" },
+ { 0, " (PR_SPEC_NOT_AFFECTED)" },
+ { 1, " (PR_SPEC_PRCTL)" },
+ { 3, " (PR_SPEC_PRCTL|PR_SPEC_ENABLE)" },
+ { 8, " (PR_SPEC_FORCE_DISABLE)" },
+ { 16, " (0x10)" },
+ { 42, " (PR_SPEC_ENABLE|PR_SPEC_FORCE_DISABLE|0x20)" },
+ };
+ static const struct {
+ kernel_ulong_t arg;
+ const char *str;
+ } set_strs[] = {
+ { 0, "0 /* PR_SPEC_??? */" },
+ { 1, "0x1 /* PR_SPEC_??? */" },
+ { 2, "PR_SPEC_ENABLE" },
+ { 3, "0x3 /* PR_SPEC_??? */" },
+ { 8, "PR_SPEC_FORCE_DISABLE" },
+ { 16, "0x10 /* PR_SPEC_??? */" },
+ { (kernel_ulong_t) 0xdecafeedbeefda7eULL, "0x"
+# if SIZEOF_KERNEL_LONG_T == 8
+ "decafeed"
+# endif
+ "beefda7e /* PR_SPEC_??? */" },
+ };
+
+ long rc;
+ const char *str = NULL;
+
+ if (argc < 2)
+ error_msg_and_fail("Usage: %s INJECTED_VAL", argv[0]);
+
+ injected_val = strtol(argv[1], NULL, 0);
+
+ /* PR_GET_SPECULATION_CTRL */
+ rc = do_prctl(52, 1, bogus_arg3);
+ printf("prctl(PR_GET_SPECULATION_CTRL, 0x1 /* PR_SPEC_??? */) "
+ "= %s (INJECTED)\n", sprintrc(rc));
+
+ rc = do_prctl(52, bogus_arg2, bogus_arg3);
+ printf("prctl(PR_GET_SPECULATION_CTRL, %#llx /* PR_SPEC_??? */) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg2, sprintrc(rc));
+
+ rc = do_prctl(52, 0, bogus_arg3);
+
+ for (unsigned i = 0; i < ARRAY_SIZE(get_strs); i++) {
+ if (get_strs[i].arg == rc) {
+ str = get_strs[i].str;
+ break;
+ }
+ }
+ if (!str)
+ error_msg_and_fail("Unknown return value: %ld", rc);
+
+ printf("prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS) "
+ "= %s%s (INJECTED)\n", sprintrc(rc), str);
+
+
+ /* PR_SET_SPECULATION_CTRL*/
+ rc = do_prctl(53, 1, bogus_arg3);
+ printf("prctl(PR_SET_SPECULATION_CTRL, 0x1 /* PR_SPEC_??? */, %#llx) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg3, sprintrc(rc));
+
+ rc = do_prctl(53, bogus_arg2, bogus_arg3);
+ printf("prctl(PR_SET_SPECULATION_CTRL, %#llx /* PR_SPEC_??? */, %#llx) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg2,
+ (unsigned long long) bogus_arg3,
+ sprintrc(rc));
+
+ for (unsigned i = 0; i < ARRAY_SIZE(set_strs); i++) {
+ rc = do_prctl(53, 0, set_strs[i].arg);
+ printf("prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS"
+ ", %s) = %s (INJECTED)\n",
+ set_strs[i].str, sprintrc(rc));
+ }
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_prctl")
+
+#endif
diff --git a/tests-mx32/prctl-spec-inject.test b/tests-mx32/prctl-spec-inject.test
new file mode 100755
index 0000000..c8fbe97
--- /dev/null
+++ b/tests-mx32/prctl-spec-inject.test
@@ -0,0 +1,55 @@
+#!/bin/sh -efu
+#
+# Check decoding of PR_SET_SPECULATION_CTRL and PR_GET_SPECULATION_CTRL
+# prctl operations.
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${srcdir=.}/scno_tampering.sh"
+
+fault_args='-a53 -e trace=prctl -e inject=prctl:'
+prog="../$NAME"
+
+test_run_rval()
+{
+ local run rval injexpr
+ run="$1"; shift
+ rval="$1"; shift
+ injexpr="$1"; shift
+
+ run_strace $fault_args$injexpr $prog $rval > "$EXP"
+ LC_ALL=C grep -Ev '^prctl\(PR_[GS]ET_([^S][^P][^E][^C]])' \
+ < "$LOG" > "$OUT"
+ match_diff "$OUT" "$EXP"
+}
+
+test_run_rval 0 -1 "error=ENOTTY"
+test_run_rval 1 0 "retval=0"
+test_run_rval 2 1 "retval=1"
+test_run_rval 3 3 "retval=3"
+test_run_rval 4 8 "retval=8"
+test_run_rval 5 16 "retval=16"
+test_run_rval 6 42 "retval=42"
diff --git a/tests-mx32/preadv-pwritev.c b/tests-mx32/preadv-pwritev.c
index 44ed23a..57a08ad 100644
--- a/tests-mx32/preadv-pwritev.c
+++ b/tests-mx32/preadv-pwritev.c
@@ -2,7 +2,7 @@
* Check decoding of preadv and pwritev syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,7 @@
tprintf("pwritev(1, [], 0, 0) = 0\n");
rc = pwritev(1, w_iov + ARRAY_SIZE(w_iov_) - 1, 2, 0);
- tprintf("pwritev(1, [{iov_base=\"%s\", iov_len=%u}, %p], 2, 0)"
+ tprintf("pwritev(1, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2, 0)"
" = %ld %s (%m)\n",
w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests-mx32/preadv2-pwritev2.c b/tests-mx32/preadv2-pwritev2.c
index 89f37dd..7874b7a 100644
--- a/tests-mx32/preadv2-pwritev2.c
+++ b/tests-mx32/preadv2-pwritev2.c
@@ -2,7 +2,7 @@
* Check decoding of preadv2 and pwritev2 syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -104,7 +104,7 @@
tprintf("pwritev2(1, [], 0, 0, 0) = 0\n");
rc = pw(1, w_iov + ARRAY_SIZE(w_iov_) - 1, 2, 0);
- tprintf("pwritev2(1, [{iov_base=\"%s\", iov_len=%u}, %p], 2, 0, 0)"
+ tprintf("pwritev2(1, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2, 0, 0)"
" = %ld %s (%m)\n",
w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests-mx32/print_quoted_string.c b/tests-mx32/print_quoted_string.c
index 3ca5631..a58b69a 100644
--- a/tests-mx32/print_quoted_string.c
+++ b/tests-mx32/print_quoted_string.c
@@ -33,6 +33,18 @@
}
}
+void
+print_quoted_stringn(const char *instr, const size_t size)
+{
+ const size_t len = strnlen(instr, size);
+ if (len < size) {
+ print_quoted_memory(instr, len);
+ } else {
+ print_quoted_memory(instr, size);
+ printf("...");
+ }
+}
+
static void
print_octal(unsigned char c, char next)
{
diff --git a/tests-mx32/process_vm_readv_writev.c b/tests-mx32/process_vm_readv_writev.c
index 5ee801b..328dc9f 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -135,7 +135,7 @@
}
if (arg->addr_term)
- printf(", %p", iov + arg->count);
+ printf(", ... /* %p */", iov + arg->count);
printf("]");
}
diff --git a/tests-mx32/ptrace.c b/tests-mx32/ptrace.c
index 5c09fa3..2ca9ceb 100644
--- a/tests-mx32/ptrace.c
+++ b/tests-mx32/ptrace.c
@@ -60,10 +60,11 @@
printf("ptrace(PTRACE_PEEKSIGINFO, %u, NULL, %#lx) = %s\n",
(unsigned) pid, bad_request, errstr);
- struct {
+ struct psi {
unsigned long long off;
unsigned int flags, nr;
- } *const psi = tail_alloc(sizeof(*psi));
+ };
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct psi, psi);
psi->off = 0xdeadbeeffacefeedULL;
psi->flags = 1;
@@ -179,7 +180,7 @@
const unsigned long pid =
(unsigned long) 0xdefaced00000000ULL | (unsigned) getpid();
- uint64_t *filter_off = tail_alloc(sizeof(*filter_off));
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, filter_off);
const unsigned int sigset_size = get_sigset_size();
diff --git a/tests-mx32/pure_executables.am b/tests-mx32/pure_executables.am
index bbb3ad9..c65f4ca 100644
--- a/tests-mx32/pure_executables.am
+++ b/tests-mx32/pure_executables.am
@@ -8,9 +8,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -43,6 +48,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -105,10 +113,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -121,15 +132,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -154,11 +180,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -205,7 +240,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -230,6 +267,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -241,6 +281,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -357,7 +400,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
diff --git a/tests-mx32/pure_executables.list b/tests-mx32/pure_executables.list
index d78bd4d..39565d0 100755
--- a/tests-mx32/pure_executables.list
+++ b/tests-mx32/pure_executables.list
@@ -7,9 +7,14 @@
add_key
adjtimex
aio
+aio_pgetevents
alarm
bpf
bpf-v
+bpf-obj_get_info_by_fd
+bpf-obj_get_info_by_fd-v
+bpf-obj_get_info_by_fd-prog
+bpf-obj_get_info_by_fd-prog-v
brk
btrfs
caps
@@ -42,6 +47,9 @@
fallocate
fanotify_init
fanotify_mark
+fanotify_mark-Xabbrev
+fanotify_mark-Xraw
+fanotify_mark-Xverbose
fchdir
fchmod
fchmodat
@@ -104,10 +112,13 @@
ioctl_block
ioctl_dm
ioctl_evdev
+ioctl_inotify
ioctl_kvm_run
ioctl_loop
ioctl_mtd
ioctl_rtc
+ioctl_perf
+ioctl_ptp
ioctl_scsi
ioctl_sg_io_v3
ioctl_sg_io_v4
@@ -120,15 +131,30 @@
ip_mreq
ipc
ipc_msg
+ipc_msg-Xabbrev
+ipc_msg-Xraw
+ipc_msg-Xverbose
ipc_msgbuf
+ipc_msgbuf-Xabbrev
+ipc_msgbuf-Xraw
+ipc_msgbuf-Xverbose
ipc_sem
+ipc_sem-Xabbrev
+ipc_sem-Xraw
+ipc_sem-Xverbose
ipc_shm
+ipc_shm-Xabbrev
+ipc_shm-Xraw
+ipc_shm-Xverbose
kcmp
kcmp-y
kern_features
kexec_file_load
kexec_load
keyctl
+keyctl-Xabbrev
+keyctl-Xraw
+keyctl-Xverbose
kill
lchown
lchown32
@@ -153,11 +179,20 @@
mlock2
mlockall
mmap
+mmap-Xabbrev
+mmap-Xraw
+mmap-Xverbose
mmap64
+mmap64-Xabbrev
+mmap64-Xraw
+mmap64-Xverbose
mmsg
mmsg_name
modify_ldt
mount
+mount-Xabbrev
+mount-Xraw
+mount-Xverbose
move_pages
mq
mq_sendrecv
@@ -204,7 +239,9 @@
nlattr_ifaddrlblmsg
nlattr_ifaddrmsg
nlattr_ifinfomsg
+nlattr_ifla_af_spec
nlattr_ifla_brport
+nlattr_ifla_linkinfo
nlattr_ifla_port
nlattr_ifla_xdp
nlattr_inet_diag_msg
@@ -229,6 +266,9 @@
old_mmap
old_mmap-P
old_mmap-v-none
+old_mmap-Xabbrev
+old_mmap-Xraw
+old_mmap-Xverbose
oldfstat
oldlstat
oldselect
@@ -240,6 +280,9 @@
pause
perf_event_open
personality
+personality-Xabbrev
+personality-Xraw
+personality-Xverbose
pipe
pipe2
pkey_alloc
@@ -356,7 +399,13 @@
sigsuspend
so_linger
so_peercred
+so_peercred-Xabbrev
+so_peercred-Xraw
+so_peercred-Xverbose
sock_filter-v
+sock_filter-v-Xabbrev
+sock_filter-v-Xraw
+sock_filter-v-Xverbose
socketcall
sockopt-sol_netlink
splice
diff --git a/tests-mx32/pwritev.c b/tests-mx32/pwritev.c
index 58e5b41..3c2bdb6 100644
--- a/tests-mx32/pwritev.c
+++ b/tests-mx32/pwritev.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -65,7 +66,7 @@
if (i)
fputs(", ", stdout);
if (i == size) {
- printf("%p", &iov[i]);
+ printf("... /* %p */", &iov[i]);
break;
}
if (i == LIM) {
diff --git a/tests-mx32/qual_fault-syntax.test b/tests-mx32/qual_fault-syntax.test
index 43ade76..7f7a515 100755
--- a/tests-mx32/qual_fault-syntax.test
+++ b/tests-mx32/qual_fault-syntax.test
@@ -86,6 +86,12 @@
chdir:retval=0 \
chdir:signal=1 \
chdir:error=1:error=2 \
+ chdir:syscall=invalid \
+ chdir:syscall=chdir \
+ chdir:syscall=%file \
+ chdir:syscall=-42 \
+ chdir:syscall=42 \
+ chdir:syscall=gettid:syscall=gettid \
; do
$STRACE -e fault="$arg" true 2> "$LOG" &&
fail_with "$arg"
diff --git a/tests-mx32/qual_fault-syscall.test b/tests-mx32/qual_fault-syscall.test
new file mode 100755
index 0000000..cae97f5
--- /dev/null
+++ b/tests-mx32/qual_fault-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_fault
+. "${srcdir=.}/qual_fault.test"
diff --git a/tests-mx32/qual_fault.c b/tests-mx32/qual_fault.c
index 670d9fe..d5d78bc 100644
--- a/tests-mx32/qual_fault.c
+++ b/tests-mx32/qual_fault.c
@@ -77,8 +77,9 @@
err, rc, errno);
if (is_raw)
- tprintf("writev(%#x, %p, 0x1) = -1 (errno %d)"
- " (INJECTED)\n", got_fd, &io, err);
+ tprintf("writev(%#x, %p, 0x1)"
+ " = -1 %s (%m) (INJECTED)\n",
+ got_fd, &io, errstr);
else
tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
" = -1 %s (%m) (INJECTED)\n",
diff --git a/tests-mx32/qual_fault.test b/tests-mx32/qual_fault.test
index 12b0a85..e166ffd 100755
--- a/tests-mx32/qual_fault.test
+++ b/tests-mx32/qual_fault.test
@@ -1,9 +1,9 @@
-#!/bin/sh
+#!/bin/sh -efu
#
# Check that fault injection works properly.
#
# Copyright (c) 2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2016-2017 The strace developers.
+# Copyright (c) 2016-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,9 @@
N=100
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
check_fault_injection()
{
local trace fault err first step procs extra
@@ -79,7 +82,7 @@
outpid="$NAME.pid"
run_strace -a11 -ff -e trace=$trace \
- "$@" -e fault=$fault$when$error $extra \
+ "$@" -e fault=$fault$when$error$suffix $extra \
../$NAME $raw "$err" "$first" "$step" $N \
"$procs" "$outexp" "$outgot" "$outout" "$outpid"
@@ -87,8 +90,8 @@
do
pid=$(cat "$outpid.$i")
- match_diff "$outout.$i" "$LOG.$pid"
- match_diff "$outexp.$i" "$outgot.$i"
+ match_diff "$LOG.$pid" "$outout.$i"
+ match_diff "$outgot.$i" "$outexp.$i"
done
}
diff --git a/tests-mx32/qual_inject-error-signal-syscall.test b/tests-mx32/qual_inject-error-signal-syscall.test
new file mode 100755
index 0000000..0adb35d
--- /dev/null
+++ b/tests-mx32/qual_inject-error-signal-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-error-signal
+. "${srcdir=.}/qual_inject-error-signal.test"
diff --git a/tests-mx32/qual_inject-error-signal.test b/tests-mx32/qual_inject-error-signal.test
index 1fe4612..93d8321 100755
--- a/tests-mx32/qual_inject-error-signal.test
+++ b/tests-mx32/qual_inject-error-signal.test
@@ -3,6 +3,10 @@
# Check fault injection along with signal injection.
. "${srcdir=.}/scno_tampering.sh"
-run_strace -a12 -echdir,exit_group -einject=chdir:error=ENOENT:signal=USR1 \
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
+run_strace -a12 -echdir,exit_group \
+ -einject=chdir:error=ENOENT:signal=USR1"$suffix" \
"../$NAME"
match_diff
diff --git a/tests-mx32/qual_inject-retval-syscall.test b/tests-mx32/qual_inject-retval-syscall.test
new file mode 100755
index 0000000..fca9354
--- /dev/null
+++ b/tests-mx32/qual_inject-retval-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-retval
+. "${srcdir=.}/qual_inject-retval.test"
diff --git a/tests-mx32/qual_inject-retval.test b/tests-mx32/qual_inject-retval.test
index 5a4efd1..239ab0a 100755
--- a/tests-mx32/qual_inject-retval.test
+++ b/tests-mx32/qual_inject-retval.test
@@ -4,6 +4,9 @@
. "${srcdir=.}/scno_tampering.sh"
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
check_injection()
{
local syscall rval
@@ -11,7 +14,7 @@
syscall=chdir
rval="$1"; shift
- run_strace -a12 -e$syscall -einject="$syscall:retval=$rval" "$@" \
+ run_strace -a12 -e$syscall -einject="$syscall:retval=$rval$suffix" "$@" \
../qual_inject-retval "$rval" > "$EXP"
match_diff "$LOG" "$EXP"
}
diff --git a/tests-mx32/qual_inject-signal-syscall.test b/tests-mx32/qual_inject-signal-syscall.test
new file mode 100755
index 0000000..42e9a26
--- /dev/null
+++ b/tests-mx32/qual_inject-signal-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-signal
+. "${srcdir=.}/qual_inject-signal.test"
diff --git a/tests-mx32/qual_inject-signal.test b/tests-mx32/qual_inject-signal.test
index f17e5a0..7f75a8e 100755
--- a/tests-mx32/qual_inject-signal.test
+++ b/tests-mx32/qual_inject-signal.test
@@ -3,6 +3,9 @@
# Check signal injection.
. "${srcdir=.}/init.sh"
-run_strace -a12 -echdir,exit_group -einject=chdir:signal=USR1 \
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
+run_strace -a12 -echdir,exit_group -einject=chdir:signal=USR1"$suffix" \
../$NAME
match_diff
diff --git a/tests-mx32/qual_inject-syntax.test b/tests-mx32/qual_inject-syntax.test
index 20bc0c3..a53b01c 100755
--- a/tests-mx32/qual_inject-syntax.test
+++ b/tests-mx32/qual_inject-syntax.test
@@ -102,6 +102,12 @@
chdir:delay_exit=3:delay_exit=4 \
chdir:delay_enter=5:delay_exit=6:delay_enter=7 \
chdir:delay_exit=8:delay_enter=9:delay_exit=10 \
+ chdir:syscall=invalid \
+ chdir:syscall=chdir \
+ chdir:syscall=%file \
+ chdir:syscall=-42 \
+ chdir:syscall=42 \
+ chdir:syscall=gettid:syscall=gettid \
; do
$STRACE -e inject="$arg" true 2> "$LOG" &&
fail_with "$arg"
diff --git a/tests-mx32/qualify_personality.sh b/tests-mx32/qualify_personality.sh
new file mode 100644
index 0000000..7b19a2e
--- /dev/null
+++ b/tests-mx32/qualify_personality.sh
@@ -0,0 +1,94 @@
+#! /bin/sh -efu
+#
+# Common code for per-personality qualification tests
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${srcdir=.}/init.sh"
+
+[ 2 -le "$#" ] ||
+ fail_ 'No personality designation ("64", "32", "x32") specified'
+
+pers="$1"
+shift
+trace_expr="$1"
+shift
+skip="${1-}"
+
+case "$STRACE_NATIVE_ARCH" in
+x86_64)
+ supported_pers='64 32 x32'
+ ;;
+x32)
+ supported_pers='x32 32'
+ ;;
+aarch64|powerpc64|riscv|s390x|sparc64|tile)
+ supported_pers='64 32'
+ ;;
+*)
+ supported_pers="$(($SIZEOF_LONG * 8))"
+ ;;
+esac
+
+# Detect current personality designation
+if [ "x$STRACE_NATIVE_ARCH" = "x$STRACE_ARCH" ]; then
+ case "$STRACE_NATIVE_ARCH" in
+ x32)
+ cur_pers=x32
+ ;;
+ *)
+ cur_pers="$(($SIZEOF_LONG * 8))"
+ ;;
+ esac
+else
+ if [ "x$SIZEOF_KERNEL_LONG_T" = "x$SIZEOF_LONG" ]; then
+ [ 4 -eq "$SIZEOF_LONG" ] ||
+ fail_ "sizeof(long) = $SIZEOF_LONG != 4"
+ cur_pers=32
+ else
+ [ 8 -eq "$SIZEOF_KERNEL_LONG_T" ] ||
+ fail_ "sizeof(kernel_long_t) = $SIZEOF_KERNEL_LONG_T != 8"
+ [ 4 -eq "$SIZEOF_LONG" ] ||
+ fail_ "sizeof(long) = $SIZEOF_LONG != 4"
+ cur_pers=x32
+ fi
+fi
+
+pers_found=0
+set -- $supported_pers
+for i; do
+ [ "x$pers" != "x$i" ] || pers_found=1
+done
+
+[ "$pers_found" = 1 ] ||
+ skip_ "Personality '$pers' is not supported on architecture" \
+ "'$STRACE_NATIVE_ARCH' (supported personalities: $supported_pers)"
+
+# If tested personality is not equivalent to current personality, reset $NAME,
+# so "$NAME.in", which is used by test_trace_expr, points to an empty file.
+[ "x$pers" = "x$cur_pers" ] || NAME=qualify_personality_empty
+
+test_trace_expr "$skip" -e trace="${trace_expr}@${pers}"
diff --git a/tests-mx32/qualify_personality_empty.in b/tests-mx32/qualify_personality_empty.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests-mx32/qualify_personality_empty.in
diff --git a/tests-mx32/readv.c b/tests-mx32/readv.c
index 8430ca5..cae4e6b 100644
--- a/tests-mx32/readv.c
+++ b/tests-mx32/readv.c
@@ -2,7 +2,7 @@
* Check decoding of readv and writev syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -89,7 +89,7 @@
fds[1], (long) writev(fds[1], w_iov, 0));
rc = writev(fds[1], w_iov + ARRAY_SIZE(w_iov_) - 1, 2);
- tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%u}, %p], 2)"
+ tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2)"
" = %ld %s (%m)\n",
fds[1], w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests-mx32/request_key.c b/tests-mx32/request_key.c
index 866fe76..ce9b724 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -101,7 +101,7 @@
{ bogus_desc, NULL },
{ ARG_STR("\25\26\27\30\31") },
{ ARG_STR("desc") },
- { "overly long description", _STR("overly long ") "..." },
+ { "overly long description", STRINGIFY("overly long ") "..." },
};
struct {
@@ -113,7 +113,7 @@
{ bogus_info, NULL },
{ ARG_STR("\32\33\34\35\36") },
{ ARG_STR("info") },
- { "overly long info", _STR("overly long ") "..." },
+ { "overly long info", STRINGIFY("overly long ") "..." },
};
struct {
diff --git a/tests-mx32/s390_guarded_storage.c b/tests-mx32/s390_guarded_storage.c
index 69ac166..97475bb 100644
--- a/tests-mx32/s390_guarded_storage.c
+++ b/tests-mx32/s390_guarded_storage.c
@@ -175,8 +175,8 @@
static const kernel_ulong_t bogus_addr =
(kernel_ulong_t) 0xfacefeedac0ffeedULL;
- struct gs_cb *gscb = tail_alloc(sizeof(*gscb));
- struct gs_epl *gsepl = tail_alloc(sizeof(*gsepl));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct gs_cb, gscb);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct gs_epl, gsepl);
long rc;
diff --git a/tests-mx32/s390_runtime_instr.c b/tests-mx32/s390_runtime_instr.c
index 861bbd4..5d368a1 100644
--- a/tests-mx32/s390_runtime_instr.c
+++ b/tests-mx32/s390_runtime_instr.c
@@ -44,10 +44,11 @@
kernel_ulong_t cmd;
const char * cmd_str;
} cmd_args[] = {
- { 0, "???" },
- { 4, "???" },
- { (kernel_ulong_t) 0xdeafbeefdeadc0deULL, "???" },
- { 2, "STOP", },
+ { 0, "0 /* S390_RUNTIME_INSTR_??? */" },
+ { 4, "4 /* S390_RUNTIME_INSTR_??? */" },
+ { (kernel_ulong_t) 0xdeafbeefdeadc0deULL,
+ "-559038242 /* S390_RUNTIME_INSTR_??? */" },
+ { 2, "S390_RUNTIME_INSTR_STOP" },
};
static struct {
@@ -66,10 +67,8 @@
for (i = 0; i < ARRAY_SIZE(cmd_args); i++) {
rc = syscall(__NR_s390_runtime_instr, cmd_args[i].cmd, 0xdead);
- printf("s390_runtime_instr(%d /* S390_RUNTIME_INSTR_%s */) = "
- "%s\n",
- (int) cmd_args[i].cmd, cmd_args[i].cmd_str,
- sprintrc(rc));
+ printf("s390_runtime_instr(%s) = %s\n",
+ cmd_args[i].cmd_str, sprintrc(rc));
}
for (i = 0; i < ARRAY_SIZE(start_sig_args); i++) {
@@ -77,7 +76,7 @@
rc = syscall(__NR_s390_runtime_instr, 1, start_sig_args[i].sig);
saved_errno = errno;
- printf("s390_runtime_instr(1 /* S390_RUNTIME_INSTR_START */, ");
+ printf("s390_runtime_instr(S390_RUNTIME_INSTR_START, ");
if (start_sig_args[i].sig_str)
printf("%s", start_sig_args[i].sig_str);
diff --git a/tests-mx32/s390_runtime_instr.gen.test b/tests-mx32/s390_runtime_instr.gen.test
index 9197dc3..83e8150 100755
--- a/tests-mx32/s390_runtime_instr.gen.test
+++ b/tests-mx32/s390_runtime_instr.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (s390_runtime_instr -a50 ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (s390_runtime_instr -a44 ); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff -a50
+run_strace_match_diff -a44
diff --git a/tests-mx32/s390_sthyi.c b/tests-mx32/s390_sthyi.c
index 8f6bbfb..b7066e5 100644
--- a/tests-mx32/s390_sthyi.c
+++ b/tests-mx32/s390_sthyi.c
@@ -741,7 +741,7 @@
(kernel_ulong_t) 0xfee1deadfa57beefULL;
unsigned char *buf = tail_alloc(PAGE_SIZE);
- uint64_t *ret = tail_alloc(sizeof(*ret));
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, ret);
long rc;
diff --git a/tests-mx32/seccomp-filter-v.c b/tests-mx32/seccomp-filter-v.c
index 34ab3b5..38def28 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -118,7 +118,7 @@
prog->len = 3;
syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, 0, prog);
tprintf("seccomp(SECCOMP_SET_MODE_FILTER, 0, {len=%u"
- ", filter=[%s, %p]}) = -1 EFAULT (%m)\n",
+ ", filter=[%s, ... /* %p */]}) = -1 EFAULT (%m)\n",
prog->len, kill_stmt_txt, filter + ARRAY_SIZE(filter_c));
prog->len = 0;
@@ -136,7 +136,8 @@
prog->filter = big_filter;
prog->len = BPF_MAXINSNS + 1;
tprintf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=[",
- "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|0xfffffffc",
+ "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|"
+ "SECCOMP_FILTER_FLAG_SPEC_ALLOW|0xfffffff8",
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 7bc7656..53f8363 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -56,12 +56,13 @@
rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -1, prog);
printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=%p})"
" = %ld %s (%m)\n",
- "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|0xfffffffc",
+ "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|"
+ "SECCOMP_FILTER_FLAG_SPEC_ALLOW|0xfffffff8",
prog->len, prog->filter, rc, errno2name());
- rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -4L, efault);
+ rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -8L, efault);
printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, %p) = %ld %s (%m)\n",
- "0xfffffffc /* SECCOMP_FILTER_FLAG_??? */",
+ "0xfffffff8 /* SECCOMP_FILTER_FLAG_??? */",
efault, rc, errno2name());
puts("+++ exited with 0 +++");
diff --git a/tests-mx32/semop.c b/tests-mx32/semop.c
index 2366d38..4b14882 100644
--- a/tests-mx32/semop.c
+++ b/tests-mx32/semop.c
@@ -64,11 +64,11 @@
sem_b2->sem_flg = 0xbeef;
rc = semop(bogus_semid, sem_b2, 2);
- printf("semop(%d, [{%hu, %hd, %s%s%#hx}, %p], %u) = %s\n",
+ 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|" : "",
- sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT),
+ (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)),
sem_b2 + 1, 2, sprintrc(rc));
if (semop(id, sem_b, 1))
@@ -91,12 +91,12 @@
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"
+ 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|" : "",
- sem_b2->sem_flg & ~(SEM_UNDO | 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));
diff --git a/tests-mx32/set_mempolicy.c b/tests-mx32/set_mempolicy.c
index f3261a0..96ad7db 100644
--- a/tests-mx32/set_mempolicy.c
+++ b/tests-mx32/set_mempolicy.c
@@ -2,6 +2,7 @@
* Check decoding of set_mempolicy syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -76,7 +77,7 @@
printf("%#0*lx", (int) sizeof(long) * 2 + 2,
nodemask[i]);
} else {
- printf("%p", nodemask + i);
+ printf("... /* %p */", nodemask + i);
break;
}
}
diff --git a/tests-mx32/setgroups.c b/tests-mx32/setgroups.c
index 5645c22..a2851be 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -115,7 +115,7 @@
errstr = sprintrc(rc);
printf("%s(2, [", SYSCALL_NAME);
printuid(*g1);
- printf(", %p]) = %s\n", g1 + 1, errstr);
+ printf(", ... /* %p */]) = %s\n", g1 + 1, errstr);
g2[0] = -2;
g2[1] = -3;
@@ -133,7 +133,7 @@
printuid(g2[0]);
printf(", ");
printuid(g2[1]);
- printf(", %p]) = %s\n", g2 + 2, errstr);
+ printf(", ... /* %p */]) = %s\n", g2 + 2, errstr);
g3[0] = 0;
g3[1] = 1;
diff --git a/tests-mx32/signal_receive.c b/tests-mx32/signal_receive.c
index 01c52e8..a464b8c 100644
--- a/tests-mx32/signal_receive.c
+++ b/tests-mx32/signal_receive.c
@@ -1,43 +1,127 @@
+/*
+ * Check decoding of signal delivery.
+ *
+ * Copyright (c) 2016-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
#include "tests.h"
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
-void sig_print(const char *signame, const int pid, const int uid)
-{
- printf("kill(%d, %s) = 0\n"
- "--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d"
- ", si_uid=%d} ---\n",
- pid, signame, signame, signame, pid, uid);
-}
+static volatile int s_sig, s_code, s_pid, s_uid;
static void
-handler(int sig)
+handler(int sig, siginfo_t *info, void *ucontext)
{
+ s_sig = info->si_signo;
+ s_code = info->si_code;
+ s_pid = info->si_pid;
+ s_uid = info->si_uid;
}
int
main(void)
{
- int sig, pid = getpid(), uid = getuid();
- const struct sigaction act = { .sa_handler = handler };
- sigset_t mask;
- sigemptyset(&mask);
+ static const char prefix[] = "KERNEL BUG";
+ int printed = 0;
- for (sig = 1; sig <= 31; sig++) {
- if (sig != SIGKILL && sig != SIGSTOP) {
- sigaction(sig, &act, NULL);
- sigaddset(&mask, sig);
+ const int pid = getpid();
+ const int uid = geteuid();
+
+ for (int sig = 1; sig <= 31; ++sig) {
+ if (sig == SIGKILL || sig == SIGSTOP)
+ continue;
+
+ sigset_t mask;
+ sigemptyset(&mask);
+ sigaddset(&mask, sig);
+ if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+ perror_msg_and_fail("sigprocmask");
+
+ static const struct sigaction act = {
+ .sa_sigaction = handler,
+ .sa_flags = SA_SIGINFO
+ };
+ if (sigaction(sig, &act, NULL))
+ perror_msg_and_fail("sigaction: %d", sig);
+
+ if (kill(pid, sig) != 0)
+ perror_msg_and_fail("kill: %d", sig);
+
+#ifdef MPERS_IS_m32
+ /*
+ * The tracee has received a compat siginfo_t but
+ * the tracer has received a native siginfo_t.
+ */
+ const int e_sig = sig;
+ const int e_pid = pid;
+ const int e_uid = uid;
+#else
+ /*
+ * If the tracee is a native process,
+ * then the tracer is also native.
+ * If the tracee is a compat process,
+ * then the tracer is also compat.
+ * Anyway, both the tracee and the tracer
+ * have received the same siginfo_t.
+ */
+ const int e_sig = s_sig;
+ 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"
+ ", si_uid=%d} ---\n",
+ signal2name(sig), signal2name(e_sig), e_pid, e_uid);
+
+ if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) {
+ /*
+ * The kernel has failed to initialize siginfo_t
+ * properly. There is nothing that could be done
+ * on the strace side to workaround the kernel bug,
+ * so just print some useful diagnostics.
+ */
+ if (!printed) {
+ printed = 1;
+ fprintf(stderr, "%s: siginfo_t\n", prefix);
+ }
+ fprintf(stderr,
+ "%s: expected: si_signo=%d, si_code=%d"
+ ", si_pid=%d, 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);
}
}
- sigprocmask(SIG_UNBLOCK, &mask, NULL);
- for (sig = 1; sig <= 31; sig++) {
- if (sig != SIGKILL && sig != SIGSTOP) {
- if (kill(pid, sig) != 0)
- perror_msg_and_fail("kill: %d", sig);
- sig_print(signal2name(sig), pid, uid);
- }
+ if (printed) {
+ fprintf(stderr, "%s: end of diagnostics\n"
+ "*** PLEASE FIX THE KERNEL ***\n", prefix);
}
puts("+++ exited with 0 +++");
diff --git a/tests-mx32/so_peercred-Xabbrev.c b/tests-mx32/so_peercred-Xabbrev.c
new file mode 100644
index 0000000..a7056a6
--- /dev/null
+++ b/tests-mx32/so_peercred-Xabbrev.c
@@ -0,0 +1 @@
+#include "so_peercred.c"
diff --git a/tests-mx32/so_peercred-Xabbrev.gen.test b/tests-mx32/so_peercred-Xabbrev.gen.test
new file mode 100755
index 0000000..64a5538
--- /dev/null
+++ b/tests-mx32/so_peercred-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xabbrev -e trace=getsockopt -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xabbrev
diff --git a/tests-mx32/so_peercred-Xraw.c b/tests-mx32/so_peercred-Xraw.c
new file mode 100644
index 0000000..e45f2df
--- /dev/null
+++ b/tests-mx32/so_peercred-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "so_peercred.c"
diff --git a/tests-mx32/so_peercred-Xraw.gen.test b/tests-mx32/so_peercred-Xraw.gen.test
new file mode 100755
index 0000000..471ae59
--- /dev/null
+++ b/tests-mx32/so_peercred-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xraw -e trace=getsockopt -Xraw -a39); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xraw -a39
diff --git a/tests-mx32/so_peercred-Xverbose.c b/tests-mx32/so_peercred-Xverbose.c
new file mode 100644
index 0000000..1bb47e9
--- /dev/null
+++ b/tests-mx32/so_peercred-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "so_peercred.c"
diff --git a/tests-mx32/so_peercred-Xverbose.gen.test b/tests-mx32/so_peercred-Xverbose.gen.test
new file mode 100755
index 0000000..2926517
--- /dev/null
+++ b/tests-mx32/so_peercred-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xverbose -e trace=getsockopt -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xverbose
diff --git a/tests-mx32/so_peercred.c b/tests-mx32/so_peercred.c
index 53bf071..6eac846 100644
--- a/tests-mx32/so_peercred.c
+++ b/tests-mx32/so_peercred.c
@@ -2,6 +2,7 @@
* Check decoding of SO_PEERCRED socket option.
*
* Copyright (c) 2017 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -46,6 +47,28 @@
return rc;
}
+static const char *
+so_str(void)
+{
+ static char buf[256];
+
+ if (!buf[0]) {
+#if XLAT_RAW
+ snprintf(buf, sizeof(buf),
+ "%#x, %#x", SOL_SOCKET, SO_PEERCRED);
+#elif XLAT_VERBOSE
+ snprintf(buf, sizeof(buf),
+ "%#x /* SOL_SOCKET */, %#x /* SO_PEERCRED */",
+ SOL_SOCKET, SO_PEERCRED);
+#else
+ snprintf(buf, sizeof(buf),
+ "SOL_SOCKET, SO_PEERCRED");
+#endif
+ }
+
+ return buf;
+}
+
int
main(void)
{
@@ -59,7 +82,7 @@
/* classic getsockopt */
*len = sizeof(*peercred);
get_peercred(sv[0], peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", sv[0]);
+ printf("getsockopt(%d, %s", sv[0], so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
PRINT_FIELD_UID(", ", *peercred, gid);
@@ -72,7 +95,7 @@
/* getsockopt with optlen larger than necessary - shortened */
*len = sizeof(*peercred) + 1;
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
PRINT_FIELD_UID(", ", *peercred, gid);
@@ -82,14 +105,14 @@
/* getsockopt with optlen smaller than usual - truncated to ucred.pid */
*len = sizeof(peercred->pid);
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
printf("}, [%d]) = %s\n", *len, errstr);
/* getsockopt with optlen smaller than usual - truncated to ucred.uid */
*len = offsetof(struct ucred, gid);
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
printf("}, [%d]) = %s\n", *len, errstr);
@@ -97,20 +120,20 @@
/* getsockopt with optlen larger than usual - truncated to raw */
*len = sizeof(*peercred) - 1;
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, ", fd);
+ printf("getsockopt(%d, %s, ", fd, so_str());
print_quoted_hex(peercred, *len);
printf(", [%d]) = %s\n", *len, errstr);
/* getsockopt optval EFAULT */
*len = sizeof(*peercred);
get_peercred(fd, &peercred->uid, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, %p, [%d]) = %s\n",
- fd, &peercred->uid, *len, errstr);
+ printf("getsockopt(%d, %s, %p, [%d]) = %s\n",
+ fd, so_str(), &peercred->uid, *len, errstr);
/* getsockopt optlen EFAULT */
get_peercred(fd, peercred, len + 1);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, %p, %p) = %s\n",
- fd, peercred, len + 1, errstr);
+ printf("getsockopt(%d, %s, %p, %p) = %s\n",
+ fd, so_str(), peercred, len + 1, errstr);
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests-mx32/sock_filter-v-Xabbrev.c b/tests-mx32/sock_filter-v-Xabbrev.c
new file mode 100644
index 0000000..ac680e2
--- /dev/null
+++ b/tests-mx32/sock_filter-v-Xabbrev.c
@@ -0,0 +1 @@
+#include "sock_filter-v.c"
diff --git a/tests-mx32/sock_filter-v-Xabbrev.gen.test b/tests-mx32/sock_filter-v-Xabbrev.gen.test
new file mode 100755
index 0000000..e52763f
--- /dev/null
+++ b/tests-mx32/sock_filter-v-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xabbrev -v -e trace=getsockopt,setsockopt -X abbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -v -e trace=getsockopt,setsockopt -X abbrev
diff --git a/tests-mx32/sock_filter-v-Xraw.c b/tests-mx32/sock_filter-v-Xraw.c
new file mode 100644
index 0000000..e85309c
--- /dev/null
+++ b/tests-mx32/sock_filter-v-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "sock_filter-v.c"
diff --git a/tests-mx32/sock_filter-v-Xraw.gen.test b/tests-mx32/sock_filter-v-Xraw.gen.test
new file mode 100755
index 0000000..3c7df81
--- /dev/null
+++ b/tests-mx32/sock_filter-v-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xraw -a 37 -v -e trace=getsockopt,setsockopt -X raw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a 37 -v -e trace=getsockopt,setsockopt -X raw
diff --git a/tests-mx32/sock_filter-v-Xverbose.c b/tests-mx32/sock_filter-v-Xverbose.c
new file mode 100644
index 0000000..59d76bd
--- /dev/null
+++ b/tests-mx32/sock_filter-v-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "sock_filter-v.c"
diff --git a/tests-mx32/sock_filter-v-Xverbose.gen.test b/tests-mx32/sock_filter-v-Xverbose.gen.test
new file mode 100755
index 0000000..b58c5b5
--- /dev/null
+++ b/tests-mx32/sock_filter-v-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xverbose -v -e trace=getsockopt,setsockopt -X verbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -v -e trace=getsockopt,setsockopt -X verbose
diff --git a/tests-mx32/sock_filter-v.c b/tests-mx32/sock_filter-v.c
index 16d5c1c..6829786 100644
--- a/tests-mx32/sock_filter-v.c
+++ b/tests-mx32/sock_filter-v.c
@@ -2,6 +2,7 @@
* Check decoding of socket filters.
*
* Copyright (c) 2017 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,16 +36,30 @@
#include <sys/socket.h>
#include <linux/filter.h>
-#define PRINT_STMT_SYM(pfx, code, k) PRINT_STMT_SYM_(pfx, #code, #k)
-#define PRINT_STMT_SYM_(pfx, code, k) \
- printf("%sBPF_STMT(%s, %s)", pfx, code, k)
-#define PRINT_STMT_VAL(pfx, code, k) PRINT_STMT_VAL_(pfx, #code, k)
-#define PRINT_STMT_VAL_(pfx, code, k) \
- printf("%sBPF_STMT(%s, %#x)", pfx, code, k)
+/* SO_GET_FILTER was introduced by Linux commit v3.8-rc1~139^2~518 */
+#ifndef SO_GET_FILTER
+# define SO_GET_FILTER SO_ATTACH_FILTER
+#endif
-#define PRINT_JUMP(pfx, code, k, jt, jf) PRINT_JUMP_(pfx, #code, k, jt, jf)
-#define PRINT_JUMP_(pfx, code, k, jt, jf) \
- printf("%sBPF_JUMP(%s, %#x, %#x, %#x)", pfx, code, k, jt, jf)
+#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__)
+
+#define PRINT_JUMP(pfx, code_fmt, k, jt, jf, ...) \
+ printf("%sBPF_JUMP(" code_fmt ", %#x, %#x, %#x)", \
+ pfx, __VA_ARGS__, k, jt, jf)
static const struct sock_filter bpf_filter[] = {
BPF_STMT(BPF_LD|BPF_B|BPF_ABS, SKF_LL_OFF+4),
@@ -62,16 +77,43 @@
static void
print_filter(void)
{
- PRINT_STMT_SYM("[", BPF_LD|BPF_B|BPF_ABS, SKF_LL_OFF+4);
- PRINT_STMT_SYM(", ", BPF_LD|BPF_B|BPF_ABS, SKF_NET_OFF+8);
- PRINT_STMT_SYM(", ", BPF_LD|BPF_B|BPF_ABS, SKF_AD_OFF+SKF_AD_PROTOCOL);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JEQ, IPPROTO_UDP, 0, 5);
- PRINT_STMT_VAL(", ", BPF_LD|BPF_W|BPF_LEN, 0);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JGE, 100, 0, 3);
- PRINT_STMT_VAL(", ", BPF_LD|BPF_B|BPF_ABS, 42);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JEQ, 'a', 0, 1);
- PRINT_STMT_VAL(", ", BPF_RET|BPF_K, -1U);
- PRINT_STMT_VAL(", ", BPF_RET|BPF_K, 0);
+ PRINT_STMT("[", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+4",
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_LL_OFF));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+8",
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_NET_OFF));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+" XLAT_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_AD_OFF), XLAT_ARGS(SKF_AD_PROTOCOL));
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ IPPROTO_UDP, 0, 5,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JEQ));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_W), XLAT_ARGS(BPF_LEN),
+ 0);
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ 100, 0, 3,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JGE));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ 42);
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ 'a', 0, 1,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JEQ));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_RET), XLAT_ARGS(BPF_K),
+ -1U);
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_RET), XLAT_ARGS(BPF_K),
+ 0);
putchar(']');
}
@@ -80,7 +122,7 @@
static int
get_filter(int fd, void *val, socklen_t *len)
{
- int rc = getsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, val, len);
+ int rc = getsockopt(fd, SOL_SOCKET, SO_GET_FILTER, val, len);
errstr = sprintrc(rc);
return rc;
}
@@ -114,35 +156,41 @@
*len = BPF_MAXINSNS;
rc = get_filter(fd, NULL, len);
if (rc)
- perror_msg_and_skip("getsockopt SOL_SOCKET SO_ATTACH_FILTER");
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER"
- ", NULL, [%u->0]) = 0\n", fd, BPF_MAXINSNS);
+ perror_msg_and_skip("getsockopt SOL_SOCKET SO_GET_FILTER");
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", NULL, [%u->0]) "
+ "= 0\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER),
+ BPF_MAXINSNS);
/* getsockopt NULL optlen - EFAULT */
rc = get_filter(fd, NULL, NULL);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, NULL, NULL)"
- " = %s\n", fd, errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", NULL, NULL) "
+ "= %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), errstr);
/* attach a filter */
rc = set_filter(fd, prog, sizeof(*prog));
if (rc)
perror_msg_and_skip("setsockopt SOL_SOCKET SO_ATTACH_FILTER");
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, {len=%u, filter=",
- fd, prog->len);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", {len=%u, filter=",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_FILTER),
+ prog->len);
print_filter();
printf("}, %u) = 0\n", (unsigned int) sizeof(*prog));
/* setsockopt optlen is too small - EINVAL */
rc = set_filter(fd, prog, sizeof(*prog) - 4);
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p, %u) = %s\n",
- fd, prog, (unsigned int) sizeof(*prog) - 4, errstr);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, %u) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_FILTER), prog,
+ (unsigned int) sizeof(*prog) - 4, errstr);
#ifdef SO_ATTACH_REUSEPORT_CBPF
rc = setsockopt(fd, SOL_SOCKET, SO_ATTACH_REUSEPORT_CBPF,
prog, sizeof(*prog));
errstr = sprintrc(rc);
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_REUSEPORT_CBPF"
- ", {len=%u, filter=", fd, prog->len);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", {len=%u, filter=",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_REUSEPORT_CBPF),
+ prog->len);
print_filter();
printf("}, %u) = %s\n", (unsigned int) sizeof(*prog), errstr);
#endif
@@ -150,28 +198,30 @@
/* query sock_filter program length -> ARRAY_SIZE(bpf_filter) */
*len = 0;
rc = get_filter(fd, efault, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [0->%u]) = %s\n",
- fd, efault, (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [0->%u]) "
+ "= %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), efault,
+ (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
/* getsockopt optlen is too small - EINVAL */
*len = ARRAY_SIZE(bpf_filter) - 1;
rc = get_filter(fd, efault, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [%u]) = %s\n",
- fd, efault, (unsigned int) ARRAY_SIZE(bpf_filter) - 1, errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [%u]) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), efault,
+ (unsigned int) ARRAY_SIZE(bpf_filter) - 1, errstr);
/* getsockopt optval EFAULT */
*len = ARRAY_SIZE(bpf_filter);
rc = get_filter(fd, filter + 1, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [%u]) = %s\n", fd, filter + 1,
- (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [%u]) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER),
+ filter + 1, (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
/* getsockopt optlen is too large - truncated */
*len = ARRAY_SIZE(bpf_filter) + 1;
rc = get_filter(fd, filter, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, ", fd);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", ",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER));
print_filter();
printf(", [%u->%d]) = %s\n",
(unsigned int) ARRAY_SIZE(bpf_filter) + 1, *len, errstr);
diff --git a/tests-mx32/strace-V.test b/tests-mx32/strace-V.test
index eb05e86..a0274c2 100755
--- a/tests-mx32/strace-V.test
+++ b/tests-mx32/strace-V.test
@@ -38,7 +38,8 @@
exit 1
}
-option_unwind=$(getoption USE_LIBUNWIND " stack-unwind")
+option_unwind=$(getoption ENABLE_STACKTRACE \
+ " stack-trace=$(getstr USE_UNWINDER)")
option_demangle=$(getoption USE_DEMANGLE " stack-demangle")
option_m32=
diff --git a/tests-mx32/strace-k-demangle.expected b/tests-mx32/strace-k-demangle.expected
new file mode 100644
index 0000000..e42e78f
--- /dev/null
+++ b/tests-mx32/strace-k-demangle.expected
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid ns::f3\(int\) ns::f2\(int\) ns::f1\(int\) ns::f0\(int\) main
diff --git a/tests-mx32/strace-k-demangle.test b/tests-mx32/strace-k-demangle.test
index 1616449..106a700 100755
--- a/tests-mx32/strace-k-demangle.test
+++ b/tests-mx32/strace-k-demangle.test
@@ -2,6 +2,5 @@
# Check strace -k symbol names demangling.
test_prog=../stack-fcall-mangled
-expected='getpid ns::f3(int) ns::f2(int) ns::f1(int) ns::f0(int) main '
. "${srcdir=.}"/strace-k.test
diff --git a/tests-mx32/strace-k.expected b/tests-mx32/strace-k.expected
new file mode 100644
index 0000000..840d648
--- /dev/null
+++ b/tests-mx32/strace-k.expected
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
diff --git a/tests-mx32/strace-k.test b/tests-mx32/strace-k.test
index 2a21a9d..fb1e2b3 100755
--- a/tests-mx32/strace-k.test
+++ b/tests-mx32/strace-k.test
@@ -4,7 +4,7 @@
#
# Copyright (c) 2014 Masatake YAMATO <[email protected]>
# Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2014-2017 The strace developers.
+# Copyright (c) 2014-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,20 +35,41 @@
[ -f /proc/self/maps ] ||
framework_skip_ '/proc/self/maps is not available'
+check_prog grep
check_prog sed
check_prog tr
-: ${test_prog=../stack-fcall}
-: ${expected='getpid f3 f2 f1 f0 main '}
-
-run_prog "$test_prog"
+run_prog "${test_prog=../stack-fcall}"
run_strace -e getpid -k $args
-result=$(sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
- tr '\n' ' ')
+expected="$srcdir/$NAME.expected"
+sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
+ tr '\n' ' ' |sed 's/ $//' > "$OUT"
-test "$result" = "$expected" || {
- echo "expected: \"$expected\""
- echo "result: \"$result\""
+LC_ALL=C grep -E -x -f "$expected" < "$OUT" > /dev/null || {
+ cat >&2 <<__EOF__
+Failed pattern of expected output: $(cat "$expected")
+Actual output: $(cat "$OUT")
+__EOF__
+
+ pattern=
+ case "$STRACE_ARCH" in
+ aarch64|i386|ppc*|s390*|sparc*|x32|x86*)
+ # These architectures are supported by elfutils libdw,
+ # see grep '\<HOOK\>.*\<abi_cfi\>' elfutils/backends
+ ;;
+ arm) pattern='No DWARF information found'
+ # This is also supported by elfutils libdw
+ # but the latter needs debuginfo for unwinding.
+ ;;
+ *) pattern='Unwinding not supported for this architecture'
+ ;;
+ esac
+ if [ -n "$pattern" ] &&
+ LC_ALL=C grep -x " > $pattern" < "$LOG" > /dev/null; then
+ cat < "$LOG" >&2
+ skip_ "stack tracing is not fully supported on $STRACE_ARCH yet"
+ fi
+
dump_log_and_fail_with "$STRACE $args output mismatch"
}
diff --git a/tests-mx32/struct_flock.c b/tests-mx32/struct_flock.c
deleted file mode 100644
index 428c038..0000000
--- a/tests-mx32/struct_flock.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include "flock.h"
-
-#define FILE_LEN 4096
-
-#define TEST_FLOCK_EINVAL(cmd) test_flock_einval(cmd, #cmd)
-
-#ifdef HAVE_TYPEOF
-# define TYPEOF_FLOCK_OFF_T typeof(((struct_kernel_flock *) NULL)->l_len)
-#else
-# define TYPEOF_FLOCK_OFF_T off_t
-#endif
-
-static long
-invoke_test_syscall(const unsigned int cmd, void *const p)
-{
- const kernel_ulong_t fd = F8ILL_KULONG_MASK;
- const kernel_ulong_t op = F8ILL_KULONG_MASK | cmd;
-
- return syscall(TEST_SYSCALL_NR, fd, op, (unsigned long) p);
-}
-
-static void
-test_flock_einval(const int cmd, const char *name)
-{
- struct_kernel_flock fl = {
- .l_type = F_RDLCK,
- .l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL,
- .l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL
- };
- long rc = invoke_test_syscall(cmd, &fl);
- 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, sprintrc(rc));
-}
-
-static void
-test_flock(void)
-{
- TEST_FLOCK_EINVAL(F_SETLK);
- TEST_FLOCK_EINVAL(F_SETLKW);
-
- struct_kernel_flock fl = {
- .l_type = F_RDLCK,
- .l_len = FILE_LEN
- };
- long rc = invoke_test_syscall(F_SETLK, &fl);
- 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, sprintrc(rc));
- if (rc)
- return;
-
- invoke_test_syscall(F_GETLK, &fl);
- 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(F_SETLK, &fl);
- printf("%s(0, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
- ", l_start=0, l_len=%d}) = 0\n",
- TEST_SYSCALL_STR, FILE_LEN);
-}
-
-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))
- perror_msg_and_fail("ftruncate");
-}
diff --git a/tests-mx32/test_nlattr.h b/tests-mx32/test_nlattr.h
index 43f467f..9038c0e 100644
--- a/tests-mx32/test_nlattr.h
+++ b/tests-mx32/test_nlattr.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -51,15 +51,17 @@
}
static void
-print_nlattr(const unsigned int nla_len, const char *const nla_type)
+print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_data)
{
- printf(", {{nla_len=%u, nla_type=%s}, ", nla_len, nla_type);
+ printf(", %s{{nla_len=%u, nla_type=%s}, ",
+ add_data ? "[" : "", nla_len, nla_type);
}
-#define TEST_NLATTR_(fd_, nlh0_, hdrlen_, \
+#define TEST_NLATTR_EX_(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, nla_type_str_, \
- nla_data_len_, src_, slen_, ...) \
+ nla_data_len_, nla_total_len_, \
+ src_, slen_, ...) \
do { \
struct nlmsghdr *const nlh = \
(nlh0_) - (NLA_HDRLEN + (slen_)); \
@@ -68,7 +70,7 @@
const unsigned int nla_len = \
NLA_HDRLEN + (nla_data_len_); \
const unsigned int msg_len = \
- NLMSG_SPACE(hdrlen_) + nla_len; \
+ NLMSG_SPACE(hdrlen_) + NLA_HDRLEN + (nla_total_len_); \
\
(init_msg_)(nlh, msg_len); \
init_nlattr(TEST_NLATTR_nla, nla_len, (nla_type_), \
@@ -80,14 +82,28 @@
\
printf("sendto(%d, {", (fd_)); \
(print_msg_)(msg_len); \
- print_nlattr(nla_len, (nla_type_str_)); \
+ print_nlattr(nla_len, (nla_type_str_), \
+ (nla_total_len_) > (nla_data_len_)); \
\
{ __VA_ARGS__; } \
\
+ if ((nla_total_len_) > (nla_data_len_)) \
+ printf("]"); \
+ \
printf("}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", \
msg_len, errstr); \
} while (0)
+#define TEST_NLATTR_(fd_, nlh0_, hdrlen_, \
+ init_msg_, print_msg_, \
+ nla_type_, nla_type_str_, \
+ nla_data_len_, src_, slen_, ...) \
+ TEST_NLATTR_EX_((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ (nla_data_len_), (nla_data_len_), \
+ (src_), (slen_), __VA_ARGS__)
+
#define TEST_NLATTR(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, \
@@ -106,11 +122,12 @@
sizeof(obj_) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
/* len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
- (init_msg_), (print_msg_), \
- (nla_type_), (nla_type_str_), \
- plen, (pattern_), plen, \
- (fallback_func)((pattern_), plen)); \
+ if (plen > 0) \
+ TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ plen, (pattern_), plen, \
+ (fallback_func)((pattern_), plen)); \
/* short read of sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
@@ -170,7 +187,7 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
printf("]")); \
/* short read of sizeof(obj_) */ \
@@ -183,11 +200,11 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf(", %p]", \
+ printf(", ... /* %p */]", \
RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_))) \
- + sizeof((obj_)[0]))); \
+ + sizeof(obj_) - sizeof((obj_)[0]))); \
/* sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
@@ -198,7 +215,7 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_); ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
printf("]")); \
} while (0)
@@ -206,21 +223,23 @@
#define TEST_NESTED_NLATTR_OBJECT_EX_(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, nla_type_str_, \
- pattern_, obj_, depth_, ...) \
+ pattern_, obj_, fallback_func, \
+ depth_, ...) \
do { \
const unsigned int plen = \
sizeof(obj_) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
/* len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
- (hdrlen_) + NLA_HDRLEN * depth_, \
- (init_msg_), (print_msg_), \
- (nla_type_), (nla_type_str_), \
- plen, (pattern_), plen, \
- print_quoted_hex((pattern_), plen); \
- size_t i; \
- for (i = 0; i < depth_; ++i) \
- printf("}")); \
+ if (plen > 0) \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ plen, (pattern_), plen, \
+ (fallback_func)((pattern_), plen); \
+ size_t i; \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* short read of sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
(hdrlen_) + NLA_HDRLEN * depth_, \
@@ -252,7 +271,8 @@
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
- (pattern_), (obj_), (depth_), \
+ (pattern_), (obj_), \
+ print_quoted_hex, (depth_), \
__VA_ARGS__)
#define TEST_NESTED_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \
@@ -261,27 +281,30 @@
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
- (pattern_), (obj_), 1, \
+ (pattern_), (obj_), \
+ print_quoted_hex, 1, \
__VA_ARGS__)
-#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
+#define TEST_NESTED_NLATTR_ARRAY_EX(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
- nla_type_, pattern_, obj_, print_elem_)\
+ nla_type_, pattern_, obj_, depth_, \
+ print_elem_) \
do { \
const unsigned int plen = \
sizeof((obj_)[0]) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof((obj_)[0]) - 1; \
/* len < sizeof((obj_)[0]) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
plen, (pattern_), plen, \
print_quoted_hex((pattern_), plen); \
- printf("}")); \
+ for (size_t i = 0; i < depth_; ++i) \
+ printf("}")); \
/* sizeof((obj_)[0]) < len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_) - 1, \
@@ -290,12 +313,14 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf("]}")); \
+ printf("]"); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* short read of sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_), \
@@ -304,14 +329,16 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf(", %p]}", \
+ printf(", ... /* %p */]", \
RTA_DATA(TEST_NLATTR_nla) \
- + sizeof((obj_)[0]))); \
+ + sizeof(obj_) - sizeof((obj_)[0])); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_), \
@@ -320,7 +347,17 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_); ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf("]}")); \
+ printf("]"); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
} while (0)
+
+#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
+ init_msg_, print_msg_, \
+ nla_type_, pattern_, obj_, print_elem_)\
+ TEST_NESTED_NLATTR_ARRAY_EX((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ nla_type_, (pattern_), (obj_), 1, \
+ (print_elem_))
diff --git a/tests-mx32/tests.h b/tests-mx32/tests.h
index 3bf454d..248e341 100644
--- a/tests-mx32/tests.h
+++ b/tests-mx32/tests.h
@@ -62,6 +62,14 @@
# define VERBOSE 0
#endif
+/* xlat verbosity defaults */
+#ifndef XLAT_RAW
+# define XLAT_RAW 0
+#endif
+#ifndef XLAT_VERBOSE
+# define XLAT_VERBOSE 0
+#endif
+
#ifndef DEFAULT_STRLEN
/* Default maximum # of bytes printed in printstr et al. */
# define DEFAULT_STRLEN 32
@@ -109,6 +117,9 @@
void *tail_memdup(const void *, const size_t)
ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE((2));
+#define midtail_alloc(after_, before_) \
+ ((void *) ((char *) tail_alloc(((before_) + (after_))) + (before_)))
+
/*
* Allocate an object of the specified type at the end
* of a mapped memory region.
@@ -163,6 +174,12 @@
*/
void print_quoted_cstring(const char *str, size_t size);
+/*
+ * Print a NUL-terminated string `str' of length up to `size'
+ * in a quoted form.
+ */
+void print_quoted_stringn(const char *str, size_t size);
+
/* Print memory in a quoted form with optional escape characters. */
void print_quoted_memory_ex(const void *, size_t, bool quote,
const char *escape_chars);
@@ -277,7 +294,6 @@
#endif
#define LL_VAL_TO_PAIR(llval) LL_PAIR((long) ((llval) >> 32), (long) (llval))
-#define _STR(_arg) #_arg
#define ARG_STR(_arg) (_arg), #_arg
#define ARG_ULL_STR(_arg) _arg##ULL, #_arg
diff --git a/tests-mx32/trace_personality_32.gen.test b/tests-mx32/trace_personality_32.gen.test
new file mode 100755
index 0000000..a5f5c7d
--- /dev/null
+++ b/tests-mx32/trace_personality_32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_32 +qualify_personality.sh 32 'getcwd' 'fsync-y'); do not edit.
+set -- 32 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-mx32/trace_personality_32.in b/tests-mx32/trace_personality_32.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests-mx32/trace_personality_32.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests-mx32/trace_personality_64.gen.test b/tests-mx32/trace_personality_64.gen.test
new file mode 100755
index 0000000..5b961ef
--- /dev/null
+++ b/tests-mx32/trace_personality_64.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_64 +qualify_personality.sh 64 'getcwd' 'fsync-y'); do not edit.
+set -- 64 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-mx32/trace_personality_64.in b/tests-mx32/trace_personality_64.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests-mx32/trace_personality_64.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests-mx32/trace_personality_regex_32.gen.test b/tests-mx32/trace_personality_regex_32.gen.test
new file mode 100755
index 0000000..f2800d2
--- /dev/null
+++ b/tests-mx32/trace_personality_regex_32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_32 +qualify_personality.sh 32 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- 32 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-mx32/trace_personality_regex_32.in b/tests-mx32/trace_personality_regex_32.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests-mx32/trace_personality_regex_32.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests-mx32/trace_personality_regex_64.gen.test b/tests-mx32/trace_personality_regex_64.gen.test
new file mode 100755
index 0000000..4b19f1b
--- /dev/null
+++ b/tests-mx32/trace_personality_regex_64.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_64 +qualify_personality.sh 64 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- 64 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-mx32/trace_personality_regex_64.in b/tests-mx32/trace_personality_regex_64.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests-mx32/trace_personality_regex_64.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests-mx32/trace_personality_regex_x32.gen.test b/tests-mx32/trace_personality_regex_x32.gen.test
new file mode 100755
index 0000000..7f41671
--- /dev/null
+++ b/tests-mx32/trace_personality_regex_x32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_x32 +qualify_personality.sh x32 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- x32 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-mx32/trace_personality_regex_x32.in b/tests-mx32/trace_personality_regex_x32.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests-mx32/trace_personality_regex_x32.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests-mx32/trace_personality_x32.gen.test b/tests-mx32/trace_personality_x32.gen.test
new file mode 100755
index 0000000..724499a
--- /dev/null
+++ b/tests-mx32/trace_personality_x32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_x32 +qualify_personality.sh x32 'getcwd' 'fsync-y'); do not edit.
+set -- x32 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests-mx32/trace_personality_x32.in b/tests-mx32/trace_personality_x32.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests-mx32/trace_personality_x32.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests-mx32/xet_thread_area_x86.c b/tests-mx32/xet_thread_area_x86.c
index 36591ec..d5be69f 100644
--- a/tests-mx32/xet_thread_area_x86.c
+++ b/tests-mx32/xet_thread_area_x86.c
@@ -152,9 +152,9 @@
int main(void)
{
- struct user_desc *ta1 = tail_alloc(sizeof(*ta1));
- struct user_desc *ta2 = tail_alloc(sizeof(*ta2));
- unsigned *bogus_entry_number = tail_alloc(sizeof(*bogus_entry_number));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, ta1);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, ta2);
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, bogus_entry_number);
long set_rc = -1;
diff --git a/tests/Makefile b/tests/Makefile
index 3637df7..09d6bfa 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -139,7 +139,11 @@
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) caps-abbrev$(EXEEXT) \
+ block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
@@ -147,7 +151,8 @@
getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \
inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
- ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \
+ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
is_linux_mips_n64$(EXEEXT) ksysent$(EXEEXT) \
list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
@@ -159,18 +164,19 @@
perf_event_open_nonverbose$(EXEEXT) \
perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
- print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
- qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
- qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
- quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
- redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
- run_expect_termsig$(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) \
+ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
+ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
+ qual_signal$(EXEEXT) quotactl-v$(EXEEXT) \
+ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
+ restart_syscall$(EXEEXT) run_expect_termsig$(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) \
unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
##am__append_1 = strace-k-demangle.test
@@ -181,7 +187,10 @@
$(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -223,18 +232,25 @@
libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
- adjtimex$(EXEEXT) aio$(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) copy_file_range$(EXEEXT) creat$(EXEEXT) \
- delete_module$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \
- dup2$(EXEEXT) dup3$(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) fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
- fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
+ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \
+ alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
+ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \
+ dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(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) \
+ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
+ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \
+ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \
+ fanotify_mark-Xverbose$(EXEEXT) fchdir$(EXEEXT) \
fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \
@@ -255,49 +271,62 @@
getxxid$(EXEEXT) group_req$(EXEEXT) inet-cmsg$(EXEEXT) \
init_module$(EXEEXT) inotify$(EXEEXT) inotify_init1$(EXEEXT) \
ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \
- ioctl_evdev$(EXEEXT) ioctl_kvm_run$(EXEEXT) \
- ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) \
+ ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \
+ ioctl_kvm_run$(EXEEXT) ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) \
+ ioctl_rtc$(EXEEXT) ioctl_perf$(EXEEXT) ioctl_ptp$(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) ip_mreq$(EXEEXT) ipc$(EXEEXT) \
- ipc_msg$(EXEEXT) ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) \
- ipc_shm$(EXEEXT) kcmp$(EXEEXT) kcmp-y$(EXEEXT) \
- kern_features$(EXEEXT) kexec_file_load$(EXEEXT) \
- kexec_load$(EXEEXT) keyctl$(EXEEXT) kill$(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) \
- memfd_create$(EXEEXT) migrate_pages$(EXEEXT) mincore$(EXEEXT) \
- mkdir$(EXEEXT) mkdirat$(EXEEXT) mknod$(EXEEXT) \
- mknodat$(EXEEXT) mlock$(EXEEXT) mlock2$(EXEEXT) \
- mlockall$(EXEEXT) mmap$(EXEEXT) mmap64$(EXEEXT) mmsg$(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) \
+ ipc_sem$(EXEEXT) ipc_sem-Xabbrev$(EXEEXT) \
+ ipc_sem-Xraw$(EXEEXT) ipc_sem-Xverbose$(EXEEXT) \
+ ipc_shm$(EXEEXT) ipc_shm-Xabbrev$(EXEEXT) \
+ ipc_shm-Xraw$(EXEEXT) ipc_shm-Xverbose$(EXEEXT) kcmp$(EXEEXT) \
+ kcmp-y$(EXEEXT) kern_features$(EXEEXT) \
+ kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) keyctl$(EXEEXT) \
+ keyctl-Xabbrev$(EXEEXT) keyctl-Xraw$(EXEEXT) \
+ keyctl-Xverbose$(EXEEXT) kill$(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) memfd_create$(EXEEXT) \
+ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
+ mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
+ mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
+ mmap-Xabbrev$(EXEEXT) mmap-Xraw$(EXEEXT) \
+ mmap-Xverbose$(EXEEXT) mmap64$(EXEEXT) mmap64-Xabbrev$(EXEEXT) \
+ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \
mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \
- move_pages$(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-sockaddr$(EXEEXT) net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
- net-yy-inet6$(EXEEXT) net-yy-netlink$(EXEEXT) \
- net-yy-unix$(EXEEXT) netlink_audit$(EXEEXT) \
- netlink_crypto$(EXEEXT) netlink_generic$(EXEEXT) \
- netlink_kobject_uevent$(EXEEXT) netlink_netfilter$(EXEEXT) \
- netlink_protocol$(EXEEXT) netlink_route$(EXEEXT) \
- netlink_selinux$(EXEEXT) netlink_sock_diag$(EXEEXT) \
- netlink_xfrm$(EXEEXT) newfstatat$(EXEEXT) \
- nfnetlink_acct$(EXEEXT) nfnetlink_cthelper$(EXEEXT) \
- nfnetlink_ctnetlink$(EXEEXT) nfnetlink_ctnetlink_exp$(EXEEXT) \
- nfnetlink_cttimeout$(EXEEXT) nfnetlink_nft_compat$(EXEEXT) \
- nfnetlink_nftables$(EXEEXT) nfnetlink_ipset$(EXEEXT) \
- nfnetlink_osf$(EXEEXT) nfnetlink_queue$(EXEEXT) \
- nfnetlink_ulog$(EXEEXT) nlattr$(EXEEXT) \
- nlattr_crypto_user_alg$(EXEEXT) nlattr_br_port_msg$(EXEEXT) \
- nlattr_dcbmsg$(EXEEXT) nlattr_fib_rule_hdr$(EXEEXT) \
- nlattr_ifaddrlblmsg$(EXEEXT) nlattr_ifaddrmsg$(EXEEXT) \
- nlattr_ifinfomsg$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
- nlattr_ifla_port$(EXEEXT) nlattr_ifla_xdp$(EXEEXT) \
- nlattr_inet_diag_msg$(EXEEXT) \
+ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \
+ mount-Xverbose$(EXEEXT) move_pages$(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-sockaddr$(EXEEXT) \
+ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \
+ net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
+ netlink_audit$(EXEEXT) netlink_crypto$(EXEEXT) \
+ netlink_generic$(EXEEXT) netlink_kobject_uevent$(EXEEXT) \
+ netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+ netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+ netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+ newfstatat$(EXEEXT) nfnetlink_acct$(EXEEXT) \
+ nfnetlink_cthelper$(EXEEXT) nfnetlink_ctnetlink$(EXEEXT) \
+ nfnetlink_ctnetlink_exp$(EXEEXT) nfnetlink_cttimeout$(EXEEXT) \
+ nfnetlink_nft_compat$(EXEEXT) nfnetlink_nftables$(EXEEXT) \
+ nfnetlink_ipset$(EXEEXT) nfnetlink_osf$(EXEEXT) \
+ nfnetlink_queue$(EXEEXT) nfnetlink_ulog$(EXEEXT) \
+ nlattr$(EXEEXT) nlattr_crypto_user_alg$(EXEEXT) \
+ nlattr_br_port_msg$(EXEEXT) nlattr_dcbmsg$(EXEEXT) \
+ nlattr_fib_rule_hdr$(EXEEXT) nlattr_ifaddrlblmsg$(EXEEXT) \
+ nlattr_ifaddrmsg$(EXEEXT) nlattr_ifinfomsg$(EXEEXT) \
+ nlattr_ifla_af_spec$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
+ nlattr_ifla_linkinfo$(EXEEXT) nlattr_ifla_port$(EXEEXT) \
+ nlattr_ifla_xdp$(EXEEXT) nlattr_inet_diag_msg$(EXEEXT) \
nlattr_inet_diag_req_compat$(EXEEXT) \
nlattr_inet_diag_req_v2$(EXEEXT) \
nlattr_mdba_mdb_entry$(EXEEXT) \
@@ -309,11 +338,14 @@
nlattr_tc_stats$(EXEEXT) nlattr_tca_stab$(EXEEXT) \
nlattr_tcamsg$(EXEEXT) nlattr_tcmsg$(EXEEXT) \
nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
- old_mmap-P$(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) pipe$(EXEEXT) pipe2$(EXEEXT) \
+ old_mmap-P$(EXEEXT) old_mmap-v-none$(EXEEXT) \
+ old_mmap-Xabbrev$(EXEEXT) old_mmap-Xraw$(EXEEXT) \
+ old_mmap-Xverbose$(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) 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) \
@@ -361,7 +393,10 @@
sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
sigreturn$(EXEEXT) sigsuspend$(EXEEXT) so_linger$(EXEEXT) \
- so_peercred$(EXEEXT) sock_filter-v$(EXEEXT) \
+ so_peercred$(EXEEXT) so_peercred-Xabbrev$(EXEEXT) \
+ so_peercred-Xraw$(EXEEXT) so_peercred-Xverbose$(EXEEXT) \
+ sock_filter-v$(EXEEXT) sock_filter-v-Xabbrev$(EXEEXT) \
+ sock_filter-v-Xraw$(EXEEXT) sock_filter-v-Xverbose$(EXEEXT) \
socketcall$(EXEEXT) sockopt-sol_netlink$(EXEEXT) \
splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
@@ -418,6 +453,10 @@
aio_OBJECTS = aio.$(OBJEXT)
aio_LDADD = $(LDADD)
aio_DEPENDENCIES = libtests.a
+aio_pgetevents_SOURCES = aio_pgetevents.c
+aio_pgetevents_OBJECTS = aio_pgetevents.$(OBJEXT)
+aio_pgetevents_LDADD = $(LDADD)
+aio_pgetevents_DEPENDENCIES = libtests.a
alarm_SOURCES = alarm.c
alarm_OBJECTS = alarm.$(OBJEXT)
alarm_LDADD = $(LDADD)
@@ -449,6 +488,33 @@
bpf_OBJECTS = bpf.$(OBJEXT)
bpf_LDADD = $(LDADD)
bpf_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_SOURCES = bpf-obj_get_info_by_fd.c
+bpf_obj_get_info_by_fd_OBJECTS = bpf-obj_get_info_by_fd.$(OBJEXT)
+bpf_obj_get_info_by_fd_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_SOURCES = bpf-obj_get_info_by_fd-prog.c
+bpf_obj_get_info_by_fd_prog_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_v_SOURCES = \
+ bpf-obj_get_info_by_fd-prog-v.c
+bpf_obj_get_info_by_fd_prog_v_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_v_SOURCES = bpf-obj_get_info_by_fd-v.c
+bpf_obj_get_info_by_fd_v_OBJECTS = bpf-obj_get_info_by_fd-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_v_DEPENDENCIES = libtests.a
+bpf_success_SOURCES = bpf-success.c
+bpf_success_OBJECTS = bpf-success.$(OBJEXT)
+bpf_success_LDADD = $(LDADD)
+bpf_success_DEPENDENCIES = libtests.a
+bpf_success_v_SOURCES = bpf-success-v.c
+bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT)
+bpf_success_v_LDADD = $(LDADD)
+bpf_success_v_DEPENDENCIES = libtests.a
bpf_v_SOURCES = bpf-v.c
bpf_v_OBJECTS = bpf-v.$(OBJEXT)
bpf_v_LDADD = $(LDADD)
@@ -616,6 +682,18 @@
fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
fanotify_mark_LDADD = $(LDADD)
fanotify_mark_DEPENDENCIES = libtests.a
+fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+fanotify_mark_Xabbrev_LDADD = $(LDADD)
+fanotify_mark_Xabbrev_DEPENDENCIES = libtests.a
+fanotify_mark_Xraw_SOURCES = fanotify_mark-Xraw.c
+fanotify_mark_Xraw_OBJECTS = fanotify_mark-Xraw.$(OBJEXT)
+fanotify_mark_Xraw_LDADD = $(LDADD)
+fanotify_mark_Xraw_DEPENDENCIES = libtests.a
+fanotify_mark_Xverbose_SOURCES = fanotify_mark-Xverbose.c
+fanotify_mark_Xverbose_OBJECTS = fanotify_mark-Xverbose.$(OBJEXT)
+fanotify_mark_Xverbose_LDADD = $(LDADD)
+fanotify_mark_Xverbose_DEPENDENCIES = libtests.a
fchdir_SOURCES = fchdir.c
fchdir_OBJECTS = fchdir.$(OBJEXT)
fchdir_LDADD = $(LDADD)
@@ -895,6 +973,10 @@
ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
ioctl_evdev_v_LDADD = $(LDADD)
ioctl_evdev_v_DEPENDENCIES = libtests.a
+ioctl_inotify_SOURCES = ioctl_inotify.c
+ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT)
+ioctl_inotify_LDADD = $(LDADD)
+ioctl_inotify_DEPENDENCIES = libtests.a
ioctl_kvm_run_SOURCES = ioctl_kvm_run.c
ioctl_kvm_run_OBJECTS = ioctl_kvm_run.$(OBJEXT)
ioctl_kvm_run_LDADD = $(LDADD)
@@ -919,6 +1001,18 @@
ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
ioctl_nsfs_LDADD = $(LDADD)
ioctl_nsfs_DEPENDENCIES = libtests.a
+ioctl_perf_SOURCES = ioctl_perf.c
+ioctl_perf_OBJECTS = ioctl_perf.$(OBJEXT)
+ioctl_perf_LDADD = $(LDADD)
+ioctl_perf_DEPENDENCIES = libtests.a
+ioctl_perf_success_SOURCES = ioctl_perf-success.c
+ioctl_perf_success_OBJECTS = ioctl_perf-success.$(OBJEXT)
+ioctl_perf_success_LDADD = $(LDADD)
+ioctl_perf_success_DEPENDENCIES = libtests.a
+ioctl_ptp_SOURCES = ioctl_ptp.c
+ioctl_ptp_OBJECTS = ioctl_ptp.$(OBJEXT)
+ioctl_ptp_LDADD = $(LDADD)
+ioctl_ptp_DEPENDENCIES = libtests.a
ioctl_rtc_SOURCES = ioctl_rtc.c
ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
ioctl_rtc_LDADD = $(LDADD)
@@ -975,18 +1069,66 @@
ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
ipc_msg_LDADD = $(LDADD)
ipc_msg_DEPENDENCIES = libtests.a
+ipc_msg_Xabbrev_SOURCES = ipc_msg-Xabbrev.c
+ipc_msg_Xabbrev_OBJECTS = ipc_msg-Xabbrev.$(OBJEXT)
+ipc_msg_Xabbrev_LDADD = $(LDADD)
+ipc_msg_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msg_Xraw_SOURCES = ipc_msg-Xraw.c
+ipc_msg_Xraw_OBJECTS = ipc_msg-Xraw.$(OBJEXT)
+ipc_msg_Xraw_LDADD = $(LDADD)
+ipc_msg_Xraw_DEPENDENCIES = libtests.a
+ipc_msg_Xverbose_SOURCES = ipc_msg-Xverbose.c
+ipc_msg_Xverbose_OBJECTS = ipc_msg-Xverbose.$(OBJEXT)
+ipc_msg_Xverbose_LDADD = $(LDADD)
+ipc_msg_Xverbose_DEPENDENCIES = libtests.a
ipc_msgbuf_SOURCES = ipc_msgbuf.c
ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
ipc_msgbuf_LDADD = $(LDADD)
ipc_msgbuf_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xabbrev_SOURCES = ipc_msgbuf-Xabbrev.c
+ipc_msgbuf_Xabbrev_OBJECTS = ipc_msgbuf-Xabbrev.$(OBJEXT)
+ipc_msgbuf_Xabbrev_LDADD = $(LDADD)
+ipc_msgbuf_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xraw_SOURCES = ipc_msgbuf-Xraw.c
+ipc_msgbuf_Xraw_OBJECTS = ipc_msgbuf-Xraw.$(OBJEXT)
+ipc_msgbuf_Xraw_LDADD = $(LDADD)
+ipc_msgbuf_Xraw_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xverbose_SOURCES = ipc_msgbuf-Xverbose.c
+ipc_msgbuf_Xverbose_OBJECTS = ipc_msgbuf-Xverbose.$(OBJEXT)
+ipc_msgbuf_Xverbose_LDADD = $(LDADD)
+ipc_msgbuf_Xverbose_DEPENDENCIES = libtests.a
ipc_sem_SOURCES = ipc_sem.c
ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
ipc_sem_LDADD = $(LDADD)
ipc_sem_DEPENDENCIES = libtests.a
+ipc_sem_Xabbrev_SOURCES = ipc_sem-Xabbrev.c
+ipc_sem_Xabbrev_OBJECTS = ipc_sem-Xabbrev.$(OBJEXT)
+ipc_sem_Xabbrev_LDADD = $(LDADD)
+ipc_sem_Xabbrev_DEPENDENCIES = libtests.a
+ipc_sem_Xraw_SOURCES = ipc_sem-Xraw.c
+ipc_sem_Xraw_OBJECTS = ipc_sem-Xraw.$(OBJEXT)
+ipc_sem_Xraw_LDADD = $(LDADD)
+ipc_sem_Xraw_DEPENDENCIES = libtests.a
+ipc_sem_Xverbose_SOURCES = ipc_sem-Xverbose.c
+ipc_sem_Xverbose_OBJECTS = ipc_sem-Xverbose.$(OBJEXT)
+ipc_sem_Xverbose_LDADD = $(LDADD)
+ipc_sem_Xverbose_DEPENDENCIES = libtests.a
ipc_shm_SOURCES = ipc_shm.c
ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
ipc_shm_LDADD = $(LDADD)
ipc_shm_DEPENDENCIES = libtests.a
+ipc_shm_Xabbrev_SOURCES = ipc_shm-Xabbrev.c
+ipc_shm_Xabbrev_OBJECTS = ipc_shm-Xabbrev.$(OBJEXT)
+ipc_shm_Xabbrev_LDADD = $(LDADD)
+ipc_shm_Xabbrev_DEPENDENCIES = libtests.a
+ipc_shm_Xraw_SOURCES = ipc_shm-Xraw.c
+ipc_shm_Xraw_OBJECTS = ipc_shm-Xraw.$(OBJEXT)
+ipc_shm_Xraw_LDADD = $(LDADD)
+ipc_shm_Xraw_DEPENDENCIES = libtests.a
+ipc_shm_Xverbose_SOURCES = ipc_shm-Xverbose.c
+ipc_shm_Xverbose_OBJECTS = ipc_shm-Xverbose.$(OBJEXT)
+ipc_shm_Xverbose_LDADD = $(LDADD)
+ipc_shm_Xverbose_DEPENDENCIES = libtests.a
is_linux_mips_n64_SOURCES = is_linux_mips_n64.c
is_linux_mips_n64_OBJECTS = is_linux_mips_n64.$(OBJEXT)
is_linux_mips_n64_LDADD = $(LDADD)
@@ -1015,6 +1157,18 @@
keyctl_OBJECTS = keyctl.$(OBJEXT)
keyctl_LDADD = $(LDADD)
keyctl_DEPENDENCIES = libtests.a
+keyctl_Xabbrev_SOURCES = keyctl-Xabbrev.c
+keyctl_Xabbrev_OBJECTS = keyctl-Xabbrev.$(OBJEXT)
+keyctl_Xabbrev_LDADD = $(LDADD)
+keyctl_Xabbrev_DEPENDENCIES = libtests.a
+keyctl_Xraw_SOURCES = keyctl-Xraw.c
+keyctl_Xraw_OBJECTS = keyctl-Xraw.$(OBJEXT)
+keyctl_Xraw_LDADD = $(LDADD)
+keyctl_Xraw_DEPENDENCIES = libtests.a
+keyctl_Xverbose_SOURCES = keyctl-Xverbose.c
+keyctl_Xverbose_OBJECTS = keyctl-Xverbose.$(OBJEXT)
+keyctl_Xverbose_LDADD = $(LDADD)
+keyctl_Xverbose_DEPENDENCIES = libtests.a
kill_SOURCES = kill.c
kill_OBJECTS = kill.$(OBJEXT)
kill_LDADD = $(LDADD)
@@ -1122,10 +1276,34 @@
mmap_OBJECTS = mmap.$(OBJEXT)
mmap_LDADD = $(LDADD)
mmap_DEPENDENCIES = libtests.a
+mmap_Xabbrev_SOURCES = mmap-Xabbrev.c
+mmap_Xabbrev_OBJECTS = mmap-Xabbrev.$(OBJEXT)
+mmap_Xabbrev_LDADD = $(LDADD)
+mmap_Xabbrev_DEPENDENCIES = libtests.a
+mmap_Xraw_SOURCES = mmap-Xraw.c
+mmap_Xraw_OBJECTS = mmap-Xraw.$(OBJEXT)
+mmap_Xraw_LDADD = $(LDADD)
+mmap_Xraw_DEPENDENCIES = libtests.a
+mmap_Xverbose_SOURCES = mmap-Xverbose.c
+mmap_Xverbose_OBJECTS = mmap-Xverbose.$(OBJEXT)
+mmap_Xverbose_LDADD = $(LDADD)
+mmap_Xverbose_DEPENDENCIES = libtests.a
mmap64_SOURCES = mmap64.c
mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
mmap64_LDADD = $(LDADD)
mmap64_DEPENDENCIES = libtests.a
+mmap64_Xabbrev_SOURCES = mmap64-Xabbrev.c
+mmap64_Xabbrev_OBJECTS = mmap64_Xabbrev-mmap64-Xabbrev.$(OBJEXT)
+mmap64_Xabbrev_LDADD = $(LDADD)
+mmap64_Xabbrev_DEPENDENCIES = libtests.a
+mmap64_Xraw_SOURCES = mmap64-Xraw.c
+mmap64_Xraw_OBJECTS = mmap64_Xraw-mmap64-Xraw.$(OBJEXT)
+mmap64_Xraw_LDADD = $(LDADD)
+mmap64_Xraw_DEPENDENCIES = libtests.a
+mmap64_Xverbose_SOURCES = mmap64-Xverbose.c
+mmap64_Xverbose_OBJECTS = mmap64_Xverbose-mmap64-Xverbose.$(OBJEXT)
+mmap64_Xverbose_LDADD = $(LDADD)
+mmap64_Xverbose_DEPENDENCIES = libtests.a
mmsg_SOURCES = mmsg.c
mmsg_OBJECTS = mmsg.$(OBJEXT)
mmsg_LDADD = $(LDADD)
@@ -1150,6 +1328,18 @@
mount_OBJECTS = mount.$(OBJEXT)
mount_LDADD = $(LDADD)
mount_DEPENDENCIES = libtests.a
+mount_Xabbrev_SOURCES = mount-Xabbrev.c
+mount_Xabbrev_OBJECTS = mount-Xabbrev.$(OBJEXT)
+mount_Xabbrev_LDADD = $(LDADD)
+mount_Xabbrev_DEPENDENCIES = libtests.a
+mount_Xraw_SOURCES = mount-Xraw.c
+mount_Xraw_OBJECTS = mount-Xraw.$(OBJEXT)
+mount_Xraw_LDADD = $(LDADD)
+mount_Xraw_DEPENDENCIES = libtests.a
+mount_Xverbose_SOURCES = mount-Xverbose.c
+mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT)
+mount_Xverbose_LDADD = $(LDADD)
+mount_Xverbose_DEPENDENCIES = libtests.a
move_pages_SOURCES = move_pages.c
move_pages_OBJECTS = move_pages.$(OBJEXT)
move_pages_LDADD = $(LDADD)
@@ -1353,10 +1543,18 @@
nlattr_ifinfomsg_OBJECTS = nlattr_ifinfomsg.$(OBJEXT)
nlattr_ifinfomsg_LDADD = $(LDADD)
nlattr_ifinfomsg_DEPENDENCIES = libtests.a
+nlattr_ifla_af_spec_SOURCES = nlattr_ifla_af_spec.c
+nlattr_ifla_af_spec_OBJECTS = nlattr_ifla_af_spec.$(OBJEXT)
+nlattr_ifla_af_spec_LDADD = $(LDADD)
+nlattr_ifla_af_spec_DEPENDENCIES = libtests.a
nlattr_ifla_brport_SOURCES = nlattr_ifla_brport.c
nlattr_ifla_brport_OBJECTS = nlattr_ifla_brport.$(OBJEXT)
nlattr_ifla_brport_LDADD = $(LDADD)
nlattr_ifla_brport_DEPENDENCIES = libtests.a
+nlattr_ifla_linkinfo_SOURCES = nlattr_ifla_linkinfo.c
+nlattr_ifla_linkinfo_OBJECTS = nlattr_ifla_linkinfo.$(OBJEXT)
+nlattr_ifla_linkinfo_LDADD = $(LDADD)
+nlattr_ifla_linkinfo_DEPENDENCIES = libtests.a
nlattr_ifla_port_SOURCES = nlattr_ifla_port.c
nlattr_ifla_port_OBJECTS = nlattr_ifla_port.$(OBJEXT)
nlattr_ifla_port_LDADD = $(LDADD)
@@ -1458,6 +1656,18 @@
old_mmap_P_OBJECTS = old_mmap-P.$(OBJEXT)
old_mmap_P_LDADD = $(LDADD)
old_mmap_P_DEPENDENCIES = libtests.a
+old_mmap_Xabbrev_SOURCES = old_mmap-Xabbrev.c
+old_mmap_Xabbrev_OBJECTS = old_mmap-Xabbrev.$(OBJEXT)
+old_mmap_Xabbrev_LDADD = $(LDADD)
+old_mmap_Xabbrev_DEPENDENCIES = libtests.a
+old_mmap_Xraw_SOURCES = old_mmap-Xraw.c
+old_mmap_Xraw_OBJECTS = old_mmap-Xraw.$(OBJEXT)
+old_mmap_Xraw_LDADD = $(LDADD)
+old_mmap_Xraw_DEPENDENCIES = libtests.a
+old_mmap_Xverbose_SOURCES = old_mmap-Xverbose.c
+old_mmap_Xverbose_OBJECTS = old_mmap-Xverbose.$(OBJEXT)
+old_mmap_Xverbose_LDADD = $(LDADD)
+old_mmap_Xverbose_DEPENDENCIES = libtests.a
old_mmap_v_none_SOURCES = old_mmap-v-none.c
old_mmap_v_none_OBJECTS = old_mmap-v-none.$(OBJEXT)
old_mmap_v_none_LDADD = $(LDADD)
@@ -1526,6 +1736,18 @@
personality_OBJECTS = personality.$(OBJEXT)
personality_LDADD = $(LDADD)
personality_DEPENDENCIES = libtests.a
+personality_Xabbrev_SOURCES = personality-Xabbrev.c
+personality_Xabbrev_OBJECTS = personality-Xabbrev.$(OBJEXT)
+personality_Xabbrev_LDADD = $(LDADD)
+personality_Xabbrev_DEPENDENCIES = libtests.a
+personality_Xraw_SOURCES = personality-Xraw.c
+personality_Xraw_OBJECTS = personality-Xraw.$(OBJEXT)
+personality_Xraw_LDADD = $(LDADD)
+personality_Xraw_DEPENDENCIES = libtests.a
+personality_Xverbose_SOURCES = personality-Xverbose.c
+personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT)
+personality_Xverbose_LDADD = $(LDADD)
+personality_Xverbose_DEPENDENCIES = libtests.a
pipe_SOURCES = pipe.c
pipe_OBJECTS = pipe.$(OBJEXT)
pipe_LDADD = $(LDADD)
@@ -1598,6 +1820,10 @@
prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
prctl_securebits_LDADD = $(LDADD)
prctl_securebits_DEPENDENCIES = libtests.a
+prctl_spec_inject_SOURCES = prctl-spec-inject.c
+prctl_spec_inject_OBJECTS = prctl-spec-inject.$(OBJEXT)
+prctl_spec_inject_LDADD = $(LDADD)
+prctl_spec_inject_DEPENDENCIES = libtests.a
prctl_tid_address_SOURCES = prctl-tid_address.c
prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
prctl_tid_address_LDADD = $(LDADD)
@@ -2088,10 +2314,34 @@
so_peercred_OBJECTS = so_peercred.$(OBJEXT)
so_peercred_LDADD = $(LDADD)
so_peercred_DEPENDENCIES = libtests.a
+so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+so_peercred_Xabbrev_LDADD = $(LDADD)
+so_peercred_Xabbrev_DEPENDENCIES = libtests.a
+so_peercred_Xraw_SOURCES = so_peercred-Xraw.c
+so_peercred_Xraw_OBJECTS = so_peercred-Xraw.$(OBJEXT)
+so_peercred_Xraw_LDADD = $(LDADD)
+so_peercred_Xraw_DEPENDENCIES = libtests.a
+so_peercred_Xverbose_SOURCES = so_peercred-Xverbose.c
+so_peercred_Xverbose_OBJECTS = so_peercred-Xverbose.$(OBJEXT)
+so_peercred_Xverbose_LDADD = $(LDADD)
+so_peercred_Xverbose_DEPENDENCIES = libtests.a
sock_filter_v_SOURCES = sock_filter-v.c
sock_filter_v_OBJECTS = sock_filter-v.$(OBJEXT)
sock_filter_v_LDADD = $(LDADD)
sock_filter_v_DEPENDENCIES = libtests.a
+sock_filter_v_Xabbrev_SOURCES = sock_filter-v-Xabbrev.c
+sock_filter_v_Xabbrev_OBJECTS = sock_filter-v-Xabbrev.$(OBJEXT)
+sock_filter_v_Xabbrev_LDADD = $(LDADD)
+sock_filter_v_Xabbrev_DEPENDENCIES = libtests.a
+sock_filter_v_Xraw_SOURCES = sock_filter-v-Xraw.c
+sock_filter_v_Xraw_OBJECTS = sock_filter-v-Xraw.$(OBJEXT)
+sock_filter_v_Xraw_LDADD = $(LDADD)
+sock_filter_v_Xraw_DEPENDENCIES = libtests.a
+sock_filter_v_Xverbose_SOURCES = sock_filter-v-Xverbose.c
+sock_filter_v_Xverbose_OBJECTS = sock_filter-v-Xverbose.$(OBJEXT)
+sock_filter_v_Xverbose_LDADD = $(LDADD)
+sock_filter_v_Xverbose_DEPENDENCIES = libtests.a
socketcall_SOURCES = socketcall.c
socketcall_OBJECTS = socketcall.$(OBJEXT)
socketcall_LDADD = $(LDADD)
@@ -2402,45 +2652,58 @@
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
- accept4.c access.c acct.c add_key.c adjtimex.c aio.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-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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 \
+ 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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2456,59 +2719,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2526,44 +2794,57 @@
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 \
- 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-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 \
+ 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 \
+ 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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2579,59 +2860,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2879,12 +3165,12 @@
b='$*';; \
esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing aclocal-1.14
+ACLOCAL = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing aclocal-1.14
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
-AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoconf
-AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing autoheader
-AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing automake-1.14
+AUTOCONF = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoconf
+AUTOHEADER = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing autoheader
+AUTOMAKE = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing automake-1.14
AWK = gawk
BUILD_EXEEXT =
BUILD_OBJEXT =
@@ -2905,7 +3191,7 @@
CPPFLAGS_FOR_BUILD =
CPP_FOR_BUILD = gcc -E
CYGPATH_W = echo
-DEB_CHANGELOGTIME = Thu, 14 Jun 2018 16:29:09 -0700
+DEB_CHANGELOGTIME = Fri, 15 Jun 2018 17:54:18 +0000
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
@@ -2932,23 +3218,23 @@
LIBS =
LTLIBOBJS =
MAINT = #
-MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/missing makeinfo
-MANPAGE_DATE = 2018-04-04
+MAKEINFO = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/missing makeinfo
+MANPAGE_DATE = 2018-06-13
MIPS_ABI =
MKDIR_P = /bin/mkdir -p
OBJEXT = o
PACKAGE = strace
PACKAGE_BUGREPORT = [email protected]
PACKAGE_NAME = strace
-PACKAGE_STRING = strace 4.22
+PACKAGE_STRING = strace 4.23
PACKAGE_TARNAME = strace
PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.22
+PACKAGE_VERSION = 4.23
PATH_SEPARATOR = :
PERL = /usr/bin/perl
RANLIB = aarch64-linux-android-ranlib
READELF = aarch64-linux-android-readelf
-RPM_CHANGELOGTIME = Thu Jun 14 2018
+RPM_CHANGELOGTIME = Fri Jun 15 2018
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
@@ -2957,13 +3243,13 @@
STRIP = aarch64-linux-android-strip
VALGRIND = valgrind
VALGRIND_ENABLED = yes
-VERSION = 4.22
+VERSION = 4.23
WARN_CFLAGS = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Winit-self -Wnested-externs -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
WARN_CFLAGS_FOR_BUILD = -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
-abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22/tests
-abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22/tests
-abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
-abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.22
+abs_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23/tests
+abs_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23/tests
+abs_top_builddir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
+abs_top_srcdir = /usr/local/google/ndkports/.out/strace/package/strace-4.23
ac_ct_CC =
ac_ct_CC_FOR_BUILD = gcc
am__include = include
@@ -2999,8 +3285,12 @@
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.22/install-sh
+install_sh = ${SHELL} /usr/local/google/ndkports/.out/strace/package/strace-4.23/install-sh
libdir = ${exec_prefix}/lib
+libdw_CFLAGS =
+libdw_CPPFLAGS =
+libdw_LDFLAGS =
+libdw_LIBS =
libexecdir = ${exec_prefix}/libexec
libiberty_CPPFLAGS =
libiberty_LDFLAGS =
@@ -3095,9 +3385,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -3130,6 +3425,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -3192,10 +3490,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -3208,15 +3509,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -3241,11 +3557,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -3292,7 +3617,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -3317,6 +3644,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -3328,6 +3658,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -3444,7 +3777,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
@@ -3515,6 +3854,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -3539,10 +3881,14 @@
# 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 alarm.gen.test \
- bpf.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 \
+ add_key.gen.test adjtimex.gen.test aio.gen.test \
+ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
+ bpf-v.gen.test bpf-obj_get_info_by_fd.gen.test \
+ bpf-obj_get_info_by_fd-v.gen.test \
+ bpf-obj_get_info_by_fd-prog.gen.test \
+ bpf-obj_get_info_by_fd-prog-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 \
@@ -3550,70 +3896,85 @@
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 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 fstat64.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 int_0x80.gen.test \
- ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \
- ioctl_evdev.gen.test ioctl_evdev-v.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 fstat64.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 \
+ int_0x80.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_loop.gen.test \
ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \
- ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test \
- ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test \
- kcmp-y.gen.test kern_features.gen.test \
- kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
- kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test \
+ ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test \
+ ioctl_ptp.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 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 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 \
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 \
- mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test \
- nlattr_br_port_msg.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_brport.gen.test nlattr_ifla_port.gen.test \
- nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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 \
@@ -3625,16 +3986,19 @@
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-v-none.gen.test oldfstat.gen.test \
- oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test \
+ old_mmap-P.gen.test old_mmap-v-none.gen.test \
+ old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test \
+ old_mmap-Xverbose.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 \
osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
perf_event_open_nonverbose.gen.test \
- perf_event_open_unabbrev.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 \
+ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ personality-Xraw.gen.test personality-Xverbose.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 \
printstr.gen.test printpath-umovestr.gen.test \
printpath-umovestr-peekdata.gen.test \
@@ -3675,22 +4039,29 @@
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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test \
- socketcall.gen.test sockopt-sol_netlink.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_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 \
+ 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 socketcall.gen.test \
+ sockopt-sol_netlink.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_x32.gen.test \
+ trace_personality_regex_32.gen.test \
+ trace_personality_regex_64.gen.test \
+ trace_personality_regex_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 utimes.gen.test \
@@ -3700,13 +4071,20 @@
xattr-strings.gen.test xet_robust_list.gen.test \
xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
xettimeofday.gen.test
-LIBUNWIND_TESTS =
-#LIBUNWIND_TESTS = strace-k.test $(am__append_1)
+STACKTRACE_TESTS =
+#STACKTRACE_TESTS = strace-k.test \
+# $(am__append_1)
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -3716,6 +4094,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -3742,6 +4121,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -3790,9 +4170,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -3816,8 +4200,8 @@
# end of MISC_TESTS
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -3838,6 +4222,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -3848,12 +4233,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -3861,6 +4246,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -3878,16 +4265,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
@@ -4001,6 +4395,10 @@
@rm -f aio$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
+aio_pgetevents$(EXEEXT): $(aio_pgetevents_OBJECTS) $(aio_pgetevents_DEPENDENCIES) $(EXTRA_aio_pgetevents_DEPENDENCIES)
+ @rm -f aio_pgetevents$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(aio_pgetevents_OBJECTS) $(aio_pgetevents_LDADD) $(LIBS)
+
alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES)
@rm -f alarm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
@@ -4033,6 +4431,30 @@
@rm -f bpf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
+bpf-obj_get_info_by_fd$(EXEEXT): $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog-v$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-v$(EXEEXT): $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_LDADD) $(LIBS)
+
+bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA_bpf_success_DEPENDENCIES)
+ @rm -f bpf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_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)
+
bpf-v$(EXEEXT): $(bpf_v_OBJECTS) $(bpf_v_DEPENDENCIES) $(EXTRA_bpf_v_DEPENDENCIES)
@rm -f bpf-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_v_OBJECTS) $(bpf_v_LDADD) $(LIBS)
@@ -4201,6 +4623,18 @@
@rm -f fanotify_mark$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
+fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES)
+ @rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+
+fanotify_mark-Xraw$(EXEEXT): $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_DEPENDENCIES) $(EXTRA_fanotify_mark_Xraw_DEPENDENCIES)
+ @rm -f fanotify_mark-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_LDADD) $(LIBS)
+
+fanotify_mark-Xverbose$(EXEEXT): $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_DEPENDENCIES) $(EXTRA_fanotify_mark_Xverbose_DEPENDENCIES)
+ @rm -f fanotify_mark-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_LDADD) $(LIBS)
+
fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES)
@rm -f fchdir$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
@@ -4481,6 +4915,10 @@
@rm -f ioctl_evdev-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_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)
+
ioctl_kvm_run$(EXEEXT): $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_DEPENDENCIES) $(EXTRA_ioctl_kvm_run_DEPENDENCIES)
@rm -f ioctl_kvm_run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_LDADD) $(LIBS)
@@ -4505,6 +4943,18 @@
@rm -f ioctl_nsfs$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
+ioctl_perf$(EXEEXT): $(ioctl_perf_OBJECTS) $(ioctl_perf_DEPENDENCIES) $(EXTRA_ioctl_perf_DEPENDENCIES)
+ @rm -f ioctl_perf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_OBJECTS) $(ioctl_perf_LDADD) $(LIBS)
+
+ioctl_perf-success$(EXEEXT): $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_DEPENDENCIES) $(EXTRA_ioctl_perf_success_DEPENDENCIES)
+ @rm -f ioctl_perf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_LDADD) $(LIBS)
+
+ioctl_ptp$(EXEEXT): $(ioctl_ptp_OBJECTS) $(ioctl_ptp_DEPENDENCIES) $(EXTRA_ioctl_ptp_DEPENDENCIES)
+ @rm -f ioctl_ptp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_ptp_OBJECTS) $(ioctl_ptp_LDADD) $(LIBS)
+
ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES)
@rm -f ioctl_rtc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
@@ -4561,18 +5011,66 @@
@rm -f ipc_msg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
+ipc_msg-Xabbrev$(EXEEXT): $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msg_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msg-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_LDADD) $(LIBS)
+
+ipc_msg-Xraw$(EXEEXT): $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_DEPENDENCIES) $(EXTRA_ipc_msg_Xraw_DEPENDENCIES)
+ @rm -f ipc_msg-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_LDADD) $(LIBS)
+
+ipc_msg-Xverbose$(EXEEXT): $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msg_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msg-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_LDADD) $(LIBS)
+
ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES)
@rm -f ipc_msgbuf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
+ipc_msgbuf-Xabbrev$(EXEEXT): $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_LDADD) $(LIBS)
+
+ipc_msgbuf-Xraw$(EXEEXT): $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xraw_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_LDADD) $(LIBS)
+
+ipc_msgbuf-Xverbose$(EXEEXT): $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_LDADD) $(LIBS)
+
ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES)
@rm -f ipc_sem$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
+ipc_sem-Xabbrev$(EXEEXT): $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_sem_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_sem-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_LDADD) $(LIBS)
+
+ipc_sem-Xraw$(EXEEXT): $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_DEPENDENCIES) $(EXTRA_ipc_sem_Xraw_DEPENDENCIES)
+ @rm -f ipc_sem-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_LDADD) $(LIBS)
+
+ipc_sem-Xverbose$(EXEEXT): $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_DEPENDENCIES) $(EXTRA_ipc_sem_Xverbose_DEPENDENCIES)
+ @rm -f ipc_sem-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_LDADD) $(LIBS)
+
ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES)
@rm -f ipc_shm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
+ipc_shm-Xabbrev$(EXEEXT): $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_shm_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_shm-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_LDADD) $(LIBS)
+
+ipc_shm-Xraw$(EXEEXT): $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_DEPENDENCIES) $(EXTRA_ipc_shm_Xraw_DEPENDENCIES)
+ @rm -f ipc_shm-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_LDADD) $(LIBS)
+
+ipc_shm-Xverbose$(EXEEXT): $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_DEPENDENCIES) $(EXTRA_ipc_shm_Xverbose_DEPENDENCIES)
+ @rm -f ipc_shm-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_LDADD) $(LIBS)
+
is_linux_mips_n64$(EXEEXT): $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_DEPENDENCIES) $(EXTRA_is_linux_mips_n64_DEPENDENCIES)
@rm -f is_linux_mips_n64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_LDADD) $(LIBS)
@@ -4601,6 +5099,18 @@
@rm -f keyctl$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
+keyctl-Xabbrev$(EXEEXT): $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_DEPENDENCIES) $(EXTRA_keyctl_Xabbrev_DEPENDENCIES)
+ @rm -f keyctl-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_LDADD) $(LIBS)
+
+keyctl-Xraw$(EXEEXT): $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_DEPENDENCIES) $(EXTRA_keyctl_Xraw_DEPENDENCIES)
+ @rm -f keyctl-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_LDADD) $(LIBS)
+
+keyctl-Xverbose$(EXEEXT): $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_DEPENDENCIES) $(EXTRA_keyctl_Xverbose_DEPENDENCIES)
+ @rm -f keyctl-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_LDADD) $(LIBS)
+
kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES)
@rm -f kill$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
@@ -4709,10 +5219,34 @@
@rm -f mmap$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
+mmap-Xabbrev$(EXEEXT): $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_DEPENDENCIES) $(EXTRA_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_LDADD) $(LIBS)
+
+mmap-Xraw$(EXEEXT): $(mmap_Xraw_OBJECTS) $(mmap_Xraw_DEPENDENCIES) $(EXTRA_mmap_Xraw_DEPENDENCIES)
+ @rm -f mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xraw_OBJECTS) $(mmap_Xraw_LDADD) $(LIBS)
+
+mmap-Xverbose$(EXEEXT): $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_DEPENDENCIES) $(EXTRA_mmap_Xverbose_DEPENDENCIES)
+ @rm -f mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_LDADD) $(LIBS)
+
mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES)
@rm -f mmap64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
+mmap64-Xabbrev$(EXEEXT): $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_DEPENDENCIES) $(EXTRA_mmap64_Xabbrev_DEPENDENCIES)
+ @rm -f mmap64-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_LDADD) $(LIBS)
+
+mmap64-Xraw$(EXEEXT): $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_DEPENDENCIES) $(EXTRA_mmap64_Xraw_DEPENDENCIES)
+ @rm -f mmap64-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_LDADD) $(LIBS)
+
+mmap64-Xverbose$(EXEEXT): $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_DEPENDENCIES) $(EXTRA_mmap64_Xverbose_DEPENDENCIES)
+ @rm -f mmap64-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_LDADD) $(LIBS)
+
mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES)
@rm -f mmsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
@@ -4737,6 +5271,18 @@
@rm -f mount$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
+mount-Xabbrev$(EXEEXT): $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_DEPENDENCIES) $(EXTRA_mount_Xabbrev_DEPENDENCIES)
+ @rm -f mount-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_LDADD) $(LIBS)
+
+mount-Xraw$(EXEEXT): $(mount_Xraw_OBJECTS) $(mount_Xraw_DEPENDENCIES) $(EXTRA_mount_Xraw_DEPENDENCIES)
+ @rm -f mount-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xraw_OBJECTS) $(mount_Xraw_LDADD) $(LIBS)
+
+mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES) $(EXTRA_mount_Xverbose_DEPENDENCIES)
+ @rm -f mount-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_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)
@@ -4941,10 +5487,18 @@
@rm -f nlattr_ifinfomsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifinfomsg_OBJECTS) $(nlattr_ifinfomsg_LDADD) $(LIBS)
+nlattr_ifla_af_spec$(EXEEXT): $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_DEPENDENCIES) $(EXTRA_nlattr_ifla_af_spec_DEPENDENCIES)
+ @rm -f nlattr_ifla_af_spec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_LDADD) $(LIBS)
+
nlattr_ifla_brport$(EXEEXT): $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_DEPENDENCIES) $(EXTRA_nlattr_ifla_brport_DEPENDENCIES)
@rm -f nlattr_ifla_brport$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_LDADD) $(LIBS)
+nlattr_ifla_linkinfo$(EXEEXT): $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_DEPENDENCIES) $(EXTRA_nlattr_ifla_linkinfo_DEPENDENCIES)
+ @rm -f nlattr_ifla_linkinfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_LDADD) $(LIBS)
+
nlattr_ifla_port$(EXEEXT): $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_DEPENDENCIES) $(EXTRA_nlattr_ifla_port_DEPENDENCIES)
@rm -f nlattr_ifla_port$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_LDADD) $(LIBS)
@@ -5045,6 +5599,18 @@
@rm -f old_mmap-P$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_P_OBJECTS) $(old_mmap_P_LDADD) $(LIBS)
+old_mmap-Xabbrev$(EXEEXT): $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_DEPENDENCIES) $(EXTRA_old_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f old_mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_LDADD) $(LIBS)
+
+old_mmap-Xraw$(EXEEXT): $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_DEPENDENCIES) $(EXTRA_old_mmap_Xraw_DEPENDENCIES)
+ @rm -f old_mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_LDADD) $(LIBS)
+
+old_mmap-Xverbose$(EXEEXT): $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_DEPENDENCIES) $(EXTRA_old_mmap_Xverbose_DEPENDENCIES)
+ @rm -f old_mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_LDADD) $(LIBS)
+
old_mmap-v-none$(EXEEXT): $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_DEPENDENCIES) $(EXTRA_old_mmap_v_none_DEPENDENCIES)
@rm -f old_mmap-v-none$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_LDADD) $(LIBS)
@@ -5113,6 +5679,18 @@
@rm -f personality$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
+personality-Xabbrev$(EXEEXT): $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_DEPENDENCIES) $(EXTRA_personality_Xabbrev_DEPENDENCIES)
+ @rm -f personality-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_LDADD) $(LIBS)
+
+personality-Xraw$(EXEEXT): $(personality_Xraw_OBJECTS) $(personality_Xraw_DEPENDENCIES) $(EXTRA_personality_Xraw_DEPENDENCIES)
+ @rm -f personality-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xraw_OBJECTS) $(personality_Xraw_LDADD) $(LIBS)
+
+personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xverbose_DEPENDENCIES) $(EXTRA_personality_Xverbose_DEPENDENCIES)
+ @rm -f personality-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS)
+
pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES)
@rm -f pipe$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
@@ -5185,6 +5763,10 @@
@rm -f prctl-securebits$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
+prctl-spec-inject$(EXEEXT): $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_DEPENDENCIES) $(EXTRA_prctl_spec_inject_DEPENDENCIES)
+ @rm -f prctl-spec-inject$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_LDADD) $(LIBS)
+
prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES)
@rm -f prctl-tid_address$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
@@ -5669,10 +6251,34 @@
@rm -f so_peercred$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_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)
+
+so_peercred-Xraw$(EXEEXT): $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_DEPENDENCIES) $(EXTRA_so_peercred_Xraw_DEPENDENCIES)
+ @rm -f so_peercred-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_LDADD) $(LIBS)
+
+so_peercred-Xverbose$(EXEEXT): $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_DEPENDENCIES) $(EXTRA_so_peercred_Xverbose_DEPENDENCIES)
+ @rm -f so_peercred-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_LDADD) $(LIBS)
+
sock_filter-v$(EXEEXT): $(sock_filter_v_OBJECTS) $(sock_filter_v_DEPENDENCIES) $(EXTRA_sock_filter_v_DEPENDENCIES)
@rm -f sock_filter-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(sock_filter_v_OBJECTS) $(sock_filter_v_LDADD) $(LIBS)
+sock_filter-v-Xabbrev$(EXEEXT): $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_DEPENDENCIES) $(EXTRA_sock_filter_v_Xabbrev_DEPENDENCIES)
+ @rm -f sock_filter-v-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_LDADD) $(LIBS)
+
+sock_filter-v-Xraw$(EXEEXT): $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_DEPENDENCIES) $(EXTRA_sock_filter_v_Xraw_DEPENDENCIES)
+ @rm -f sock_filter-v-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_LDADD) $(LIBS)
+
+sock_filter-v-Xverbose$(EXEEXT): $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_DEPENDENCIES) $(EXTRA_sock_filter_v_Xverbose_DEPENDENCIES)
+ @rm -f sock_filter-v-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_LDADD) $(LIBS)
+
socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES)
@rm -f socketcall$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
@@ -5960,6 +6566,7 @@
include ./$(DEPDIR)/add_key.Po
include ./$(DEPDIR)/adjtimex.Po
include ./$(DEPDIR)/aio.Po
+include ./$(DEPDIR)/aio_pgetevents.Po
include ./$(DEPDIR)/alarm.Po
include ./$(DEPDIR)/answer.Po
include ./$(DEPDIR)/attach-f-p-cmd.Po
@@ -5967,6 +6574,12 @@
include ./$(DEPDIR)/attach-p-cmd-cmd.Po
include ./$(DEPDIR)/attach-p-cmd-p.Po
include ./$(DEPDIR)/block_reset_raise_run.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po
+include ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po
+include ./$(DEPDIR)/bpf-success-v.Po
+include ./$(DEPDIR)/bpf-success.Po
include ./$(DEPDIR)/bpf-v.Po
include ./$(DEPDIR)/bpf.Po
include ./$(DEPDIR)/brk.Po
@@ -6009,6 +6622,9 @@
include ./$(DEPDIR)/fadvise64_64.Po
include ./$(DEPDIR)/fallocate.Po
include ./$(DEPDIR)/fanotify_init.Po
+include ./$(DEPDIR)/fanotify_mark-Xabbrev.Po
+include ./$(DEPDIR)/fanotify_mark-Xraw.Po
+include ./$(DEPDIR)/fanotify_mark-Xverbose.Po
include ./$(DEPDIR)/fanotify_mark.Po
include ./$(DEPDIR)/fchdir.Po
include ./$(DEPDIR)/fchmod.Po
@@ -6080,12 +6696,16 @@
include ./$(DEPDIR)/ioctl_dm.Po
include ./$(DEPDIR)/ioctl_evdev-v.Po
include ./$(DEPDIR)/ioctl_evdev.Po
+include ./$(DEPDIR)/ioctl_inotify.Po
include ./$(DEPDIR)/ioctl_kvm_run.Po
include ./$(DEPDIR)/ioctl_loop-nv.Po
include ./$(DEPDIR)/ioctl_loop-v.Po
include ./$(DEPDIR)/ioctl_loop.Po
include ./$(DEPDIR)/ioctl_mtd.Po
include ./$(DEPDIR)/ioctl_nsfs.Po
+include ./$(DEPDIR)/ioctl_perf-success.Po
+include ./$(DEPDIR)/ioctl_perf.Po
+include ./$(DEPDIR)/ioctl_ptp.Po
include ./$(DEPDIR)/ioctl_rtc-v.Po
include ./$(DEPDIR)/ioctl_rtc.Po
include ./$(DEPDIR)/ioctl_scsi.Po
@@ -6099,9 +6719,21 @@
include ./$(DEPDIR)/ioprio.Po
include ./$(DEPDIR)/ip_mreq.Po
include ./$(DEPDIR)/ipc.Po
+include ./$(DEPDIR)/ipc_msg-Xabbrev.Po
+include ./$(DEPDIR)/ipc_msg-Xraw.Po
+include ./$(DEPDIR)/ipc_msg-Xverbose.Po
include ./$(DEPDIR)/ipc_msg.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xraw.Po
+include ./$(DEPDIR)/ipc_msgbuf-Xverbose.Po
include ./$(DEPDIR)/ipc_msgbuf.Po
+include ./$(DEPDIR)/ipc_sem-Xabbrev.Po
+include ./$(DEPDIR)/ipc_sem-Xraw.Po
+include ./$(DEPDIR)/ipc_sem-Xverbose.Po
include ./$(DEPDIR)/ipc_sem.Po
+include ./$(DEPDIR)/ipc_shm-Xabbrev.Po
+include ./$(DEPDIR)/ipc_shm-Xraw.Po
+include ./$(DEPDIR)/ipc_shm-Xverbose.Po
include ./$(DEPDIR)/ipc_shm.Po
include ./$(DEPDIR)/is_linux_mips_n64.Po
include ./$(DEPDIR)/kcmp-y.Po
@@ -6109,6 +6741,9 @@
include ./$(DEPDIR)/kern_features.Po
include ./$(DEPDIR)/kexec_file_load.Po
include ./$(DEPDIR)/kexec_load.Po
+include ./$(DEPDIR)/keyctl-Xabbrev.Po
+include ./$(DEPDIR)/keyctl-Xraw.Po
+include ./$(DEPDIR)/keyctl-Xverbose.Po
include ./$(DEPDIR)/keyctl.Po
include ./$(DEPDIR)/kill.Po
include ./$(DEPDIR)/ksysent.Po
@@ -6162,13 +6797,22 @@
include ./$(DEPDIR)/mlock.Po
include ./$(DEPDIR)/mlock2.Po
include ./$(DEPDIR)/mlockall.Po
+include ./$(DEPDIR)/mmap-Xabbrev.Po
+include ./$(DEPDIR)/mmap-Xraw.Po
+include ./$(DEPDIR)/mmap-Xverbose.Po
include ./$(DEPDIR)/mmap.Po
include ./$(DEPDIR)/mmap64-mmap64.Po
+include ./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+include ./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+include ./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
include ./$(DEPDIR)/mmsg-silent.Po
include ./$(DEPDIR)/mmsg.Po
include ./$(DEPDIR)/mmsg_name-v.Po
include ./$(DEPDIR)/mmsg_name.Po
include ./$(DEPDIR)/modify_ldt.Po
+include ./$(DEPDIR)/mount-Xabbrev.Po
+include ./$(DEPDIR)/mount-Xraw.Po
+include ./$(DEPDIR)/mount-Xverbose.Po
include ./$(DEPDIR)/mount.Po
include ./$(DEPDIR)/move_pages.Po
include ./$(DEPDIR)/mq.Po
@@ -6221,7 +6865,9 @@
include ./$(DEPDIR)/nlattr_ifaddrlblmsg.Po
include ./$(DEPDIR)/nlattr_ifaddrmsg.Po
include ./$(DEPDIR)/nlattr_ifinfomsg.Po
+include ./$(DEPDIR)/nlattr_ifla_af_spec.Po
include ./$(DEPDIR)/nlattr_ifla_brport.Po
+include ./$(DEPDIR)/nlattr_ifla_linkinfo.Po
include ./$(DEPDIR)/nlattr_ifla_port.Po
include ./$(DEPDIR)/nlattr_ifla_xdp.Po
include ./$(DEPDIR)/nlattr_inet_diag_msg.Po
@@ -6246,6 +6892,9 @@
include ./$(DEPDIR)/nsyscalls-d.Po
include ./$(DEPDIR)/nsyscalls.Po
include ./$(DEPDIR)/old_mmap-P.Po
+include ./$(DEPDIR)/old_mmap-Xabbrev.Po
+include ./$(DEPDIR)/old_mmap-Xraw.Po
+include ./$(DEPDIR)/old_mmap-Xverbose.Po
include ./$(DEPDIR)/old_mmap-v-none.Po
include ./$(DEPDIR)/old_mmap.Po
include ./$(DEPDIR)/oldfstat.Po
@@ -6263,6 +6912,9 @@
include ./$(DEPDIR)/perf_event_open.Po
include ./$(DEPDIR)/perf_event_open_nonverbose.Po
include ./$(DEPDIR)/perf_event_open_unabbrev.Po
+include ./$(DEPDIR)/personality-Xabbrev.Po
+include ./$(DEPDIR)/personality-Xraw.Po
+include ./$(DEPDIR)/personality-Xverbose.Po
include ./$(DEPDIR)/personality.Po
include ./$(DEPDIR)/pipe.Po
include ./$(DEPDIR)/pipe2.Po
@@ -6282,6 +6934,7 @@
include ./$(DEPDIR)/prctl-seccomp-filter-v.Po
include ./$(DEPDIR)/prctl-seccomp-strict.Po
include ./$(DEPDIR)/prctl-securebits.Po
+include ./$(DEPDIR)/prctl-spec-inject.Po
include ./$(DEPDIR)/prctl-tid_address.Po
include ./$(DEPDIR)/prctl-tsc.Po
include ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
@@ -6402,7 +7055,13 @@
include ./$(DEPDIR)/sigsuspend.Po
include ./$(DEPDIR)/sleep.Po
include ./$(DEPDIR)/so_linger.Po
+include ./$(DEPDIR)/so_peercred-Xabbrev.Po
+include ./$(DEPDIR)/so_peercred-Xraw.Po
+include ./$(DEPDIR)/so_peercred-Xverbose.Po
include ./$(DEPDIR)/so_peercred.Po
+include ./$(DEPDIR)/sock_filter-v-Xabbrev.Po
+include ./$(DEPDIR)/sock_filter-v-Xraw.Po
+include ./$(DEPDIR)/sock_filter-v-Xverbose.Po
include ./$(DEPDIR)/sock_filter-v.Po
include ./$(DEPDIR)/socketcall.Po
include ./$(DEPDIR)/sockopt-sol_netlink.Po
@@ -6929,6 +7588,48 @@
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
+mmap64_Xabbrev-mmap64-Xabbrev.o: mmap64-Xabbrev.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.o -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+# $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-Xabbrev.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+
+mmap64_Xabbrev-mmap64-Xabbrev.obj: mmap64-Xabbrev.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.obj -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+# $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-Xabbrev.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+
+mmap64_Xraw-mmap64-Xraw.o: mmap64-Xraw.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.o -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+# $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-Xraw.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+
+mmap64_Xraw-mmap64-Xraw.obj: mmap64-Xraw.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.obj -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+# $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-Xraw.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+
+mmap64_Xverbose-mmap64-Xverbose.o: mmap64-Xverbose.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.o -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+# $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-Xverbose.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+
+mmap64_Xverbose-mmap64-Xverbose.obj: mmap64-Xverbose.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.obj -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+# $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-Xverbose.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+
newfstatat-newfstatat.o: newfstatat.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
@@ -7480,6 +8181,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7489,6 +8193,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7576,6 +8292,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7768,6 +8493,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7786,6 +8514,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7828,12 +8562,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7852,6 +8622,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7915,9 +8694,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7936,6 +8733,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -8062,9 +8868,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8137,6 +8949,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8179,6 +9000,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -8509,9 +9339,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8593,6 +9441,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d88a09b..34b08a9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -93,6 +93,12 @@
attach-p-cmd-cmd \
attach-p-cmd-p \
block_reset_raise_run \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
+ bpf-success \
+ bpf-success-v \
caps-abbrev \
check_sigblock \
check_sigign \
@@ -115,6 +121,7 @@
ioctl_loop-nv \
ioctl_loop-v \
ioctl_nsfs \
+ ioctl_perf-success \
ioctl_rtc-v \
is_linux_mips_n64 \
ksysent \
@@ -137,6 +144,7 @@
ppoll-v \
prctl-seccomp-filter-v \
prctl-seccomp-strict \
+ prctl-spec-inject \
print_maxfd \
qual_fault \
qual_inject-error-signal \
@@ -179,6 +187,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -202,20 +213,26 @@
include gen_tests.am
-if USE_LIBUNWIND
-LIBUNWIND_TESTS = strace-k.test
+if ENABLE_STACKTRACE
+STACKTRACE_TESTS = strace-k.test
if USE_DEMANGLE
-LIBUNWIND_TESTS += strace-k-demangle.test
+STACKTRACE_TESTS += strace-k-demangle.test
endif
else
-LIBUNWIND_TESTS =
+STACKTRACE_TESTS =
endif
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -225,6 +242,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -251,6 +269,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -299,9 +318,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -324,11 +347,11 @@
threads-execve.test \
# end of MISC_TESTS
-TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
+TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(STACKTRACE_TESTS)
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -352,6 +375,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -362,12 +386,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -375,6 +399,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -392,16 +418,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 01cf6f4..4b8dee9 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -139,7 +139,11 @@
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) caps-abbrev$(EXEEXT) \
+ block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
@@ -147,7 +151,8 @@
getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \
inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
- ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \
+ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
is_linux_mips_n64$(EXEEXT) ksysent$(EXEEXT) \
list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
@@ -159,21 +164,22 @@
perf_event_open_nonverbose$(EXEEXT) \
perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
- print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
- qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
- qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
- quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
- redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
- run_expect_termsig$(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) \
+ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
+ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
+ qual_signal$(EXEEXT) quotactl-v$(EXEEXT) \
+ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
+ restart_syscall$(EXEEXT) run_expect_termsig$(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) \
unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
-@USE_DEMANGLE_TRUE@@USE_LIBUNWIND_TRUE@am__append_1 = strace-k-demangle.test
+@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
@@ -181,7 +187,10 @@
$(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_libunwind.m4 \
$(top_srcdir)/m4/st_save_restore_var.m4 \
+ $(top_srcdir)/m4/st_stacktrace.m4 \
$(top_srcdir)/m4/st_warn_cflags.m4 \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -223,18 +232,25 @@
libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
- adjtimex$(EXEEXT) aio$(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) copy_file_range$(EXEEXT) creat$(EXEEXT) \
- delete_module$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \
- dup2$(EXEEXT) dup3$(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) fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
- fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
+ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \
+ alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd$(EXEEXT) \
+ bpf-obj_get_info_by_fd-v$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog$(EXEEXT) \
+ bpf-obj_get_info_by_fd-prog-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) \
+ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \
+ dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(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) \
+ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
+ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \
+ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \
+ fanotify_mark-Xverbose$(EXEEXT) fchdir$(EXEEXT) \
fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \
@@ -255,49 +271,62 @@
getxxid$(EXEEXT) group_req$(EXEEXT) inet-cmsg$(EXEEXT) \
init_module$(EXEEXT) inotify$(EXEEXT) inotify_init1$(EXEEXT) \
ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \
- ioctl_evdev$(EXEEXT) ioctl_kvm_run$(EXEEXT) \
- ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) \
+ ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \
+ ioctl_kvm_run$(EXEEXT) ioctl_loop$(EXEEXT) ioctl_mtd$(EXEEXT) \
+ ioctl_rtc$(EXEEXT) ioctl_perf$(EXEEXT) ioctl_ptp$(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) ip_mreq$(EXEEXT) ipc$(EXEEXT) \
- ipc_msg$(EXEEXT) ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) \
- ipc_shm$(EXEEXT) kcmp$(EXEEXT) kcmp-y$(EXEEXT) \
- kern_features$(EXEEXT) kexec_file_load$(EXEEXT) \
- kexec_load$(EXEEXT) keyctl$(EXEEXT) kill$(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) \
- memfd_create$(EXEEXT) migrate_pages$(EXEEXT) mincore$(EXEEXT) \
- mkdir$(EXEEXT) mkdirat$(EXEEXT) mknod$(EXEEXT) \
- mknodat$(EXEEXT) mlock$(EXEEXT) mlock2$(EXEEXT) \
- mlockall$(EXEEXT) mmap$(EXEEXT) mmap64$(EXEEXT) mmsg$(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) \
+ ipc_sem$(EXEEXT) ipc_sem-Xabbrev$(EXEEXT) \
+ ipc_sem-Xraw$(EXEEXT) ipc_sem-Xverbose$(EXEEXT) \
+ ipc_shm$(EXEEXT) ipc_shm-Xabbrev$(EXEEXT) \
+ ipc_shm-Xraw$(EXEEXT) ipc_shm-Xverbose$(EXEEXT) kcmp$(EXEEXT) \
+ kcmp-y$(EXEEXT) kern_features$(EXEEXT) \
+ kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) keyctl$(EXEEXT) \
+ keyctl-Xabbrev$(EXEEXT) keyctl-Xraw$(EXEEXT) \
+ keyctl-Xverbose$(EXEEXT) kill$(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) memfd_create$(EXEEXT) \
+ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
+ mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
+ mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
+ mmap-Xabbrev$(EXEEXT) mmap-Xraw$(EXEEXT) \
+ mmap-Xverbose$(EXEEXT) mmap64$(EXEEXT) mmap64-Xabbrev$(EXEEXT) \
+ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \
mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \
- move_pages$(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-sockaddr$(EXEEXT) net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
- net-yy-inet6$(EXEEXT) net-yy-netlink$(EXEEXT) \
- net-yy-unix$(EXEEXT) netlink_audit$(EXEEXT) \
- netlink_crypto$(EXEEXT) netlink_generic$(EXEEXT) \
- netlink_kobject_uevent$(EXEEXT) netlink_netfilter$(EXEEXT) \
- netlink_protocol$(EXEEXT) netlink_route$(EXEEXT) \
- netlink_selinux$(EXEEXT) netlink_sock_diag$(EXEEXT) \
- netlink_xfrm$(EXEEXT) newfstatat$(EXEEXT) \
- nfnetlink_acct$(EXEEXT) nfnetlink_cthelper$(EXEEXT) \
- nfnetlink_ctnetlink$(EXEEXT) nfnetlink_ctnetlink_exp$(EXEEXT) \
- nfnetlink_cttimeout$(EXEEXT) nfnetlink_nft_compat$(EXEEXT) \
- nfnetlink_nftables$(EXEEXT) nfnetlink_ipset$(EXEEXT) \
- nfnetlink_osf$(EXEEXT) nfnetlink_queue$(EXEEXT) \
- nfnetlink_ulog$(EXEEXT) nlattr$(EXEEXT) \
- nlattr_crypto_user_alg$(EXEEXT) nlattr_br_port_msg$(EXEEXT) \
- nlattr_dcbmsg$(EXEEXT) nlattr_fib_rule_hdr$(EXEEXT) \
- nlattr_ifaddrlblmsg$(EXEEXT) nlattr_ifaddrmsg$(EXEEXT) \
- nlattr_ifinfomsg$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
- nlattr_ifla_port$(EXEEXT) nlattr_ifla_xdp$(EXEEXT) \
- nlattr_inet_diag_msg$(EXEEXT) \
+ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \
+ mount-Xverbose$(EXEEXT) move_pages$(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-sockaddr$(EXEEXT) \
+ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \
+ net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
+ netlink_audit$(EXEEXT) netlink_crypto$(EXEEXT) \
+ netlink_generic$(EXEEXT) netlink_kobject_uevent$(EXEEXT) \
+ netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+ netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+ netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+ newfstatat$(EXEEXT) nfnetlink_acct$(EXEEXT) \
+ nfnetlink_cthelper$(EXEEXT) nfnetlink_ctnetlink$(EXEEXT) \
+ nfnetlink_ctnetlink_exp$(EXEEXT) nfnetlink_cttimeout$(EXEEXT) \
+ nfnetlink_nft_compat$(EXEEXT) nfnetlink_nftables$(EXEEXT) \
+ nfnetlink_ipset$(EXEEXT) nfnetlink_osf$(EXEEXT) \
+ nfnetlink_queue$(EXEEXT) nfnetlink_ulog$(EXEEXT) \
+ nlattr$(EXEEXT) nlattr_crypto_user_alg$(EXEEXT) \
+ nlattr_br_port_msg$(EXEEXT) nlattr_dcbmsg$(EXEEXT) \
+ nlattr_fib_rule_hdr$(EXEEXT) nlattr_ifaddrlblmsg$(EXEEXT) \
+ nlattr_ifaddrmsg$(EXEEXT) nlattr_ifinfomsg$(EXEEXT) \
+ nlattr_ifla_af_spec$(EXEEXT) nlattr_ifla_brport$(EXEEXT) \
+ nlattr_ifla_linkinfo$(EXEEXT) nlattr_ifla_port$(EXEEXT) \
+ nlattr_ifla_xdp$(EXEEXT) nlattr_inet_diag_msg$(EXEEXT) \
nlattr_inet_diag_req_compat$(EXEEXT) \
nlattr_inet_diag_req_v2$(EXEEXT) \
nlattr_mdba_mdb_entry$(EXEEXT) \
@@ -309,11 +338,14 @@
nlattr_tc_stats$(EXEEXT) nlattr_tca_stab$(EXEEXT) \
nlattr_tcamsg$(EXEEXT) nlattr_tcmsg$(EXEEXT) \
nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
- old_mmap-P$(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) pipe$(EXEEXT) pipe2$(EXEEXT) \
+ old_mmap-P$(EXEEXT) old_mmap-v-none$(EXEEXT) \
+ old_mmap-Xabbrev$(EXEEXT) old_mmap-Xraw$(EXEEXT) \
+ old_mmap-Xverbose$(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) 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) \
@@ -361,7 +393,10 @@
sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
sigreturn$(EXEEXT) sigsuspend$(EXEEXT) so_linger$(EXEEXT) \
- so_peercred$(EXEEXT) sock_filter-v$(EXEEXT) \
+ so_peercred$(EXEEXT) so_peercred-Xabbrev$(EXEEXT) \
+ so_peercred-Xraw$(EXEEXT) so_peercred-Xverbose$(EXEEXT) \
+ sock_filter-v$(EXEEXT) sock_filter-v-Xabbrev$(EXEEXT) \
+ sock_filter-v-Xraw$(EXEEXT) sock_filter-v-Xverbose$(EXEEXT) \
socketcall$(EXEEXT) sockopt-sol_netlink$(EXEEXT) \
splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
@@ -418,6 +453,10 @@
aio_OBJECTS = aio.$(OBJEXT)
aio_LDADD = $(LDADD)
aio_DEPENDENCIES = libtests.a
+aio_pgetevents_SOURCES = aio_pgetevents.c
+aio_pgetevents_OBJECTS = aio_pgetevents.$(OBJEXT)
+aio_pgetevents_LDADD = $(LDADD)
+aio_pgetevents_DEPENDENCIES = libtests.a
alarm_SOURCES = alarm.c
alarm_OBJECTS = alarm.$(OBJEXT)
alarm_LDADD = $(LDADD)
@@ -449,6 +488,33 @@
bpf_OBJECTS = bpf.$(OBJEXT)
bpf_LDADD = $(LDADD)
bpf_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_SOURCES = bpf-obj_get_info_by_fd.c
+bpf_obj_get_info_by_fd_OBJECTS = bpf-obj_get_info_by_fd.$(OBJEXT)
+bpf_obj_get_info_by_fd_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_SOURCES = bpf-obj_get_info_by_fd-prog.c
+bpf_obj_get_info_by_fd_prog_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_prog_v_SOURCES = \
+ bpf-obj_get_info_by_fd-prog-v.c
+bpf_obj_get_info_by_fd_prog_v_OBJECTS = \
+ bpf-obj_get_info_by_fd-prog-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_prog_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES = libtests.a
+bpf_obj_get_info_by_fd_v_SOURCES = bpf-obj_get_info_by_fd-v.c
+bpf_obj_get_info_by_fd_v_OBJECTS = bpf-obj_get_info_by_fd-v.$(OBJEXT)
+bpf_obj_get_info_by_fd_v_LDADD = $(LDADD)
+bpf_obj_get_info_by_fd_v_DEPENDENCIES = libtests.a
+bpf_success_SOURCES = bpf-success.c
+bpf_success_OBJECTS = bpf-success.$(OBJEXT)
+bpf_success_LDADD = $(LDADD)
+bpf_success_DEPENDENCIES = libtests.a
+bpf_success_v_SOURCES = bpf-success-v.c
+bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT)
+bpf_success_v_LDADD = $(LDADD)
+bpf_success_v_DEPENDENCIES = libtests.a
bpf_v_SOURCES = bpf-v.c
bpf_v_OBJECTS = bpf-v.$(OBJEXT)
bpf_v_LDADD = $(LDADD)
@@ -616,6 +682,18 @@
fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
fanotify_mark_LDADD = $(LDADD)
fanotify_mark_DEPENDENCIES = libtests.a
+fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+fanotify_mark_Xabbrev_LDADD = $(LDADD)
+fanotify_mark_Xabbrev_DEPENDENCIES = libtests.a
+fanotify_mark_Xraw_SOURCES = fanotify_mark-Xraw.c
+fanotify_mark_Xraw_OBJECTS = fanotify_mark-Xraw.$(OBJEXT)
+fanotify_mark_Xraw_LDADD = $(LDADD)
+fanotify_mark_Xraw_DEPENDENCIES = libtests.a
+fanotify_mark_Xverbose_SOURCES = fanotify_mark-Xverbose.c
+fanotify_mark_Xverbose_OBJECTS = fanotify_mark-Xverbose.$(OBJEXT)
+fanotify_mark_Xverbose_LDADD = $(LDADD)
+fanotify_mark_Xverbose_DEPENDENCIES = libtests.a
fchdir_SOURCES = fchdir.c
fchdir_OBJECTS = fchdir.$(OBJEXT)
fchdir_LDADD = $(LDADD)
@@ -895,6 +973,10 @@
ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
ioctl_evdev_v_LDADD = $(LDADD)
ioctl_evdev_v_DEPENDENCIES = libtests.a
+ioctl_inotify_SOURCES = ioctl_inotify.c
+ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT)
+ioctl_inotify_LDADD = $(LDADD)
+ioctl_inotify_DEPENDENCIES = libtests.a
ioctl_kvm_run_SOURCES = ioctl_kvm_run.c
ioctl_kvm_run_OBJECTS = ioctl_kvm_run.$(OBJEXT)
ioctl_kvm_run_LDADD = $(LDADD)
@@ -919,6 +1001,18 @@
ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
ioctl_nsfs_LDADD = $(LDADD)
ioctl_nsfs_DEPENDENCIES = libtests.a
+ioctl_perf_SOURCES = ioctl_perf.c
+ioctl_perf_OBJECTS = ioctl_perf.$(OBJEXT)
+ioctl_perf_LDADD = $(LDADD)
+ioctl_perf_DEPENDENCIES = libtests.a
+ioctl_perf_success_SOURCES = ioctl_perf-success.c
+ioctl_perf_success_OBJECTS = ioctl_perf-success.$(OBJEXT)
+ioctl_perf_success_LDADD = $(LDADD)
+ioctl_perf_success_DEPENDENCIES = libtests.a
+ioctl_ptp_SOURCES = ioctl_ptp.c
+ioctl_ptp_OBJECTS = ioctl_ptp.$(OBJEXT)
+ioctl_ptp_LDADD = $(LDADD)
+ioctl_ptp_DEPENDENCIES = libtests.a
ioctl_rtc_SOURCES = ioctl_rtc.c
ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
ioctl_rtc_LDADD = $(LDADD)
@@ -975,18 +1069,66 @@
ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
ipc_msg_LDADD = $(LDADD)
ipc_msg_DEPENDENCIES = libtests.a
+ipc_msg_Xabbrev_SOURCES = ipc_msg-Xabbrev.c
+ipc_msg_Xabbrev_OBJECTS = ipc_msg-Xabbrev.$(OBJEXT)
+ipc_msg_Xabbrev_LDADD = $(LDADD)
+ipc_msg_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msg_Xraw_SOURCES = ipc_msg-Xraw.c
+ipc_msg_Xraw_OBJECTS = ipc_msg-Xraw.$(OBJEXT)
+ipc_msg_Xraw_LDADD = $(LDADD)
+ipc_msg_Xraw_DEPENDENCIES = libtests.a
+ipc_msg_Xverbose_SOURCES = ipc_msg-Xverbose.c
+ipc_msg_Xverbose_OBJECTS = ipc_msg-Xverbose.$(OBJEXT)
+ipc_msg_Xverbose_LDADD = $(LDADD)
+ipc_msg_Xverbose_DEPENDENCIES = libtests.a
ipc_msgbuf_SOURCES = ipc_msgbuf.c
ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
ipc_msgbuf_LDADD = $(LDADD)
ipc_msgbuf_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xabbrev_SOURCES = ipc_msgbuf-Xabbrev.c
+ipc_msgbuf_Xabbrev_OBJECTS = ipc_msgbuf-Xabbrev.$(OBJEXT)
+ipc_msgbuf_Xabbrev_LDADD = $(LDADD)
+ipc_msgbuf_Xabbrev_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xraw_SOURCES = ipc_msgbuf-Xraw.c
+ipc_msgbuf_Xraw_OBJECTS = ipc_msgbuf-Xraw.$(OBJEXT)
+ipc_msgbuf_Xraw_LDADD = $(LDADD)
+ipc_msgbuf_Xraw_DEPENDENCIES = libtests.a
+ipc_msgbuf_Xverbose_SOURCES = ipc_msgbuf-Xverbose.c
+ipc_msgbuf_Xverbose_OBJECTS = ipc_msgbuf-Xverbose.$(OBJEXT)
+ipc_msgbuf_Xverbose_LDADD = $(LDADD)
+ipc_msgbuf_Xverbose_DEPENDENCIES = libtests.a
ipc_sem_SOURCES = ipc_sem.c
ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
ipc_sem_LDADD = $(LDADD)
ipc_sem_DEPENDENCIES = libtests.a
+ipc_sem_Xabbrev_SOURCES = ipc_sem-Xabbrev.c
+ipc_sem_Xabbrev_OBJECTS = ipc_sem-Xabbrev.$(OBJEXT)
+ipc_sem_Xabbrev_LDADD = $(LDADD)
+ipc_sem_Xabbrev_DEPENDENCIES = libtests.a
+ipc_sem_Xraw_SOURCES = ipc_sem-Xraw.c
+ipc_sem_Xraw_OBJECTS = ipc_sem-Xraw.$(OBJEXT)
+ipc_sem_Xraw_LDADD = $(LDADD)
+ipc_sem_Xraw_DEPENDENCIES = libtests.a
+ipc_sem_Xverbose_SOURCES = ipc_sem-Xverbose.c
+ipc_sem_Xverbose_OBJECTS = ipc_sem-Xverbose.$(OBJEXT)
+ipc_sem_Xverbose_LDADD = $(LDADD)
+ipc_sem_Xverbose_DEPENDENCIES = libtests.a
ipc_shm_SOURCES = ipc_shm.c
ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
ipc_shm_LDADD = $(LDADD)
ipc_shm_DEPENDENCIES = libtests.a
+ipc_shm_Xabbrev_SOURCES = ipc_shm-Xabbrev.c
+ipc_shm_Xabbrev_OBJECTS = ipc_shm-Xabbrev.$(OBJEXT)
+ipc_shm_Xabbrev_LDADD = $(LDADD)
+ipc_shm_Xabbrev_DEPENDENCIES = libtests.a
+ipc_shm_Xraw_SOURCES = ipc_shm-Xraw.c
+ipc_shm_Xraw_OBJECTS = ipc_shm-Xraw.$(OBJEXT)
+ipc_shm_Xraw_LDADD = $(LDADD)
+ipc_shm_Xraw_DEPENDENCIES = libtests.a
+ipc_shm_Xverbose_SOURCES = ipc_shm-Xverbose.c
+ipc_shm_Xverbose_OBJECTS = ipc_shm-Xverbose.$(OBJEXT)
+ipc_shm_Xverbose_LDADD = $(LDADD)
+ipc_shm_Xverbose_DEPENDENCIES = libtests.a
is_linux_mips_n64_SOURCES = is_linux_mips_n64.c
is_linux_mips_n64_OBJECTS = is_linux_mips_n64.$(OBJEXT)
is_linux_mips_n64_LDADD = $(LDADD)
@@ -1015,6 +1157,18 @@
keyctl_OBJECTS = keyctl.$(OBJEXT)
keyctl_LDADD = $(LDADD)
keyctl_DEPENDENCIES = libtests.a
+keyctl_Xabbrev_SOURCES = keyctl-Xabbrev.c
+keyctl_Xabbrev_OBJECTS = keyctl-Xabbrev.$(OBJEXT)
+keyctl_Xabbrev_LDADD = $(LDADD)
+keyctl_Xabbrev_DEPENDENCIES = libtests.a
+keyctl_Xraw_SOURCES = keyctl-Xraw.c
+keyctl_Xraw_OBJECTS = keyctl-Xraw.$(OBJEXT)
+keyctl_Xraw_LDADD = $(LDADD)
+keyctl_Xraw_DEPENDENCIES = libtests.a
+keyctl_Xverbose_SOURCES = keyctl-Xverbose.c
+keyctl_Xverbose_OBJECTS = keyctl-Xverbose.$(OBJEXT)
+keyctl_Xverbose_LDADD = $(LDADD)
+keyctl_Xverbose_DEPENDENCIES = libtests.a
kill_SOURCES = kill.c
kill_OBJECTS = kill.$(OBJEXT)
kill_LDADD = $(LDADD)
@@ -1122,10 +1276,34 @@
mmap_OBJECTS = mmap.$(OBJEXT)
mmap_LDADD = $(LDADD)
mmap_DEPENDENCIES = libtests.a
+mmap_Xabbrev_SOURCES = mmap-Xabbrev.c
+mmap_Xabbrev_OBJECTS = mmap-Xabbrev.$(OBJEXT)
+mmap_Xabbrev_LDADD = $(LDADD)
+mmap_Xabbrev_DEPENDENCIES = libtests.a
+mmap_Xraw_SOURCES = mmap-Xraw.c
+mmap_Xraw_OBJECTS = mmap-Xraw.$(OBJEXT)
+mmap_Xraw_LDADD = $(LDADD)
+mmap_Xraw_DEPENDENCIES = libtests.a
+mmap_Xverbose_SOURCES = mmap-Xverbose.c
+mmap_Xverbose_OBJECTS = mmap-Xverbose.$(OBJEXT)
+mmap_Xverbose_LDADD = $(LDADD)
+mmap_Xverbose_DEPENDENCIES = libtests.a
mmap64_SOURCES = mmap64.c
mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
mmap64_LDADD = $(LDADD)
mmap64_DEPENDENCIES = libtests.a
+mmap64_Xabbrev_SOURCES = mmap64-Xabbrev.c
+mmap64_Xabbrev_OBJECTS = mmap64_Xabbrev-mmap64-Xabbrev.$(OBJEXT)
+mmap64_Xabbrev_LDADD = $(LDADD)
+mmap64_Xabbrev_DEPENDENCIES = libtests.a
+mmap64_Xraw_SOURCES = mmap64-Xraw.c
+mmap64_Xraw_OBJECTS = mmap64_Xraw-mmap64-Xraw.$(OBJEXT)
+mmap64_Xraw_LDADD = $(LDADD)
+mmap64_Xraw_DEPENDENCIES = libtests.a
+mmap64_Xverbose_SOURCES = mmap64-Xverbose.c
+mmap64_Xverbose_OBJECTS = mmap64_Xverbose-mmap64-Xverbose.$(OBJEXT)
+mmap64_Xverbose_LDADD = $(LDADD)
+mmap64_Xverbose_DEPENDENCIES = libtests.a
mmsg_SOURCES = mmsg.c
mmsg_OBJECTS = mmsg.$(OBJEXT)
mmsg_LDADD = $(LDADD)
@@ -1150,6 +1328,18 @@
mount_OBJECTS = mount.$(OBJEXT)
mount_LDADD = $(LDADD)
mount_DEPENDENCIES = libtests.a
+mount_Xabbrev_SOURCES = mount-Xabbrev.c
+mount_Xabbrev_OBJECTS = mount-Xabbrev.$(OBJEXT)
+mount_Xabbrev_LDADD = $(LDADD)
+mount_Xabbrev_DEPENDENCIES = libtests.a
+mount_Xraw_SOURCES = mount-Xraw.c
+mount_Xraw_OBJECTS = mount-Xraw.$(OBJEXT)
+mount_Xraw_LDADD = $(LDADD)
+mount_Xraw_DEPENDENCIES = libtests.a
+mount_Xverbose_SOURCES = mount-Xverbose.c
+mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT)
+mount_Xverbose_LDADD = $(LDADD)
+mount_Xverbose_DEPENDENCIES = libtests.a
move_pages_SOURCES = move_pages.c
move_pages_OBJECTS = move_pages.$(OBJEXT)
move_pages_LDADD = $(LDADD)
@@ -1353,10 +1543,18 @@
nlattr_ifinfomsg_OBJECTS = nlattr_ifinfomsg.$(OBJEXT)
nlattr_ifinfomsg_LDADD = $(LDADD)
nlattr_ifinfomsg_DEPENDENCIES = libtests.a
+nlattr_ifla_af_spec_SOURCES = nlattr_ifla_af_spec.c
+nlattr_ifla_af_spec_OBJECTS = nlattr_ifla_af_spec.$(OBJEXT)
+nlattr_ifla_af_spec_LDADD = $(LDADD)
+nlattr_ifla_af_spec_DEPENDENCIES = libtests.a
nlattr_ifla_brport_SOURCES = nlattr_ifla_brport.c
nlattr_ifla_brport_OBJECTS = nlattr_ifla_brport.$(OBJEXT)
nlattr_ifla_brport_LDADD = $(LDADD)
nlattr_ifla_brport_DEPENDENCIES = libtests.a
+nlattr_ifla_linkinfo_SOURCES = nlattr_ifla_linkinfo.c
+nlattr_ifla_linkinfo_OBJECTS = nlattr_ifla_linkinfo.$(OBJEXT)
+nlattr_ifla_linkinfo_LDADD = $(LDADD)
+nlattr_ifla_linkinfo_DEPENDENCIES = libtests.a
nlattr_ifla_port_SOURCES = nlattr_ifla_port.c
nlattr_ifla_port_OBJECTS = nlattr_ifla_port.$(OBJEXT)
nlattr_ifla_port_LDADD = $(LDADD)
@@ -1458,6 +1656,18 @@
old_mmap_P_OBJECTS = old_mmap-P.$(OBJEXT)
old_mmap_P_LDADD = $(LDADD)
old_mmap_P_DEPENDENCIES = libtests.a
+old_mmap_Xabbrev_SOURCES = old_mmap-Xabbrev.c
+old_mmap_Xabbrev_OBJECTS = old_mmap-Xabbrev.$(OBJEXT)
+old_mmap_Xabbrev_LDADD = $(LDADD)
+old_mmap_Xabbrev_DEPENDENCIES = libtests.a
+old_mmap_Xraw_SOURCES = old_mmap-Xraw.c
+old_mmap_Xraw_OBJECTS = old_mmap-Xraw.$(OBJEXT)
+old_mmap_Xraw_LDADD = $(LDADD)
+old_mmap_Xraw_DEPENDENCIES = libtests.a
+old_mmap_Xverbose_SOURCES = old_mmap-Xverbose.c
+old_mmap_Xverbose_OBJECTS = old_mmap-Xverbose.$(OBJEXT)
+old_mmap_Xverbose_LDADD = $(LDADD)
+old_mmap_Xverbose_DEPENDENCIES = libtests.a
old_mmap_v_none_SOURCES = old_mmap-v-none.c
old_mmap_v_none_OBJECTS = old_mmap-v-none.$(OBJEXT)
old_mmap_v_none_LDADD = $(LDADD)
@@ -1526,6 +1736,18 @@
personality_OBJECTS = personality.$(OBJEXT)
personality_LDADD = $(LDADD)
personality_DEPENDENCIES = libtests.a
+personality_Xabbrev_SOURCES = personality-Xabbrev.c
+personality_Xabbrev_OBJECTS = personality-Xabbrev.$(OBJEXT)
+personality_Xabbrev_LDADD = $(LDADD)
+personality_Xabbrev_DEPENDENCIES = libtests.a
+personality_Xraw_SOURCES = personality-Xraw.c
+personality_Xraw_OBJECTS = personality-Xraw.$(OBJEXT)
+personality_Xraw_LDADD = $(LDADD)
+personality_Xraw_DEPENDENCIES = libtests.a
+personality_Xverbose_SOURCES = personality-Xverbose.c
+personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT)
+personality_Xverbose_LDADD = $(LDADD)
+personality_Xverbose_DEPENDENCIES = libtests.a
pipe_SOURCES = pipe.c
pipe_OBJECTS = pipe.$(OBJEXT)
pipe_LDADD = $(LDADD)
@@ -1598,6 +1820,10 @@
prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
prctl_securebits_LDADD = $(LDADD)
prctl_securebits_DEPENDENCIES = libtests.a
+prctl_spec_inject_SOURCES = prctl-spec-inject.c
+prctl_spec_inject_OBJECTS = prctl-spec-inject.$(OBJEXT)
+prctl_spec_inject_LDADD = $(LDADD)
+prctl_spec_inject_DEPENDENCIES = libtests.a
prctl_tid_address_SOURCES = prctl-tid_address.c
prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
prctl_tid_address_LDADD = $(LDADD)
@@ -2088,10 +2314,34 @@
so_peercred_OBJECTS = so_peercred.$(OBJEXT)
so_peercred_LDADD = $(LDADD)
so_peercred_DEPENDENCIES = libtests.a
+so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+so_peercred_Xabbrev_LDADD = $(LDADD)
+so_peercred_Xabbrev_DEPENDENCIES = libtests.a
+so_peercred_Xraw_SOURCES = so_peercred-Xraw.c
+so_peercred_Xraw_OBJECTS = so_peercred-Xraw.$(OBJEXT)
+so_peercred_Xraw_LDADD = $(LDADD)
+so_peercred_Xraw_DEPENDENCIES = libtests.a
+so_peercred_Xverbose_SOURCES = so_peercred-Xverbose.c
+so_peercred_Xverbose_OBJECTS = so_peercred-Xverbose.$(OBJEXT)
+so_peercred_Xverbose_LDADD = $(LDADD)
+so_peercred_Xverbose_DEPENDENCIES = libtests.a
sock_filter_v_SOURCES = sock_filter-v.c
sock_filter_v_OBJECTS = sock_filter-v.$(OBJEXT)
sock_filter_v_LDADD = $(LDADD)
sock_filter_v_DEPENDENCIES = libtests.a
+sock_filter_v_Xabbrev_SOURCES = sock_filter-v-Xabbrev.c
+sock_filter_v_Xabbrev_OBJECTS = sock_filter-v-Xabbrev.$(OBJEXT)
+sock_filter_v_Xabbrev_LDADD = $(LDADD)
+sock_filter_v_Xabbrev_DEPENDENCIES = libtests.a
+sock_filter_v_Xraw_SOURCES = sock_filter-v-Xraw.c
+sock_filter_v_Xraw_OBJECTS = sock_filter-v-Xraw.$(OBJEXT)
+sock_filter_v_Xraw_LDADD = $(LDADD)
+sock_filter_v_Xraw_DEPENDENCIES = libtests.a
+sock_filter_v_Xverbose_SOURCES = sock_filter-v-Xverbose.c
+sock_filter_v_Xverbose_OBJECTS = sock_filter-v-Xverbose.$(OBJEXT)
+sock_filter_v_Xverbose_LDADD = $(LDADD)
+sock_filter_v_Xverbose_DEPENDENCIES = libtests.a
socketcall_SOURCES = socketcall.c
socketcall_OBJECTS = socketcall.$(OBJEXT)
socketcall_LDADD = $(LDADD)
@@ -2402,45 +2652,58 @@
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
- accept4.c access.c acct.c add_key.c adjtimex.c aio.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-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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 \
+ 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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2456,59 +2719,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2526,44 +2794,57 @@
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 \
- 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-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 \
+ 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 \
+ 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 \
- fallocate.c fanotify_init.c fanotify_mark.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 \
- fstat64.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 \
+ 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 fstat64.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 \
ioctl.c ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
- ioctl_evdev-v.c ioctl_kvm_run.c ioctl_loop.c ioctl_loop-nv.c \
- ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c \
+ ioctl_evdev-v.c ioctl_inotify.c ioctl_kvm_run.c ioctl_loop.c \
+ ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nsfs.c \
+ ioctl_perf.c ioctl_perf-success.c ioctl_ptp.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 ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
- ipc_sem.c ipc_shm.c is_linux_mips_n64.c kcmp.c kcmp-y.c \
- kern_features.c kexec_file_load.c kexec_load.c keyctl.c kill.c \
- ksysent.c lchown.c lchown32.c link.c linkat.c \
- list_sigaction_signum.c llseek.c localtime.c lookup_dcookie.c \
- lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
- memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
- mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
+ iopl.c ioprio.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 \
+ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+ keyctl-Xraw.c keyctl-Xverbose.c kill.c ksysent.c lchown.c \
+ lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
+ localtime.c lookup_dcookie.c lseek.c lstat.c lstat64.c \
+ madvise.c mbind.c membarrier.c memfd_create.c migrate_pages.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 move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
+ mount.c mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c \
+ move_pages.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-sockaddr.c net-y-unix.c net-yy-inet.c \
@@ -2579,59 +2860,64 @@
nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
nlattr_br_port_msg.c nlattr_crypto_user_alg.c nlattr_dcbmsg.c \
nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \
- nlattr_ifinfomsg.c nlattr_ifla_brport.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-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 osf_utimes.c pause.c pc.c \
- perf_event_open.c perf_event_open_nonverbose.c \
- perf_event_open_unabbrev.c personality.c pipe.c pipe2.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 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 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-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 \
- 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 pwritev.c qual_fault.c \
- qual_inject-error-signal.c qual_inject-retval.c \
- qual_inject-signal.c qual_signal.c quotactl.c quotactl-v.c \
- quotactl-xfs.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 \
- 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_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 \
+ 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 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 pwritev.c qual_fault.c qual_inject-error-signal.c \
+ qual_inject-retval.c qual_inject-signal.c qual_signal.c \
+ quotactl.c quotactl-v.c quotactl-xfs.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 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_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 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_linger.c \
- so_peercred.c sock_filter-v.c socketcall.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 socketcall.c \
sockopt-sol_netlink.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 \
@@ -2859,7 +3145,7 @@
bases=`echo $$bases`
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
-@USE_LIBUNWIND_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
TEST_SUITE_LOG = test-suite.log
TEST_EXTENSIONS = @EXEEXT@ .test
am__test_logs1 = $(TESTS:=.log)
@@ -3001,6 +3287,10 @@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
+libdw_CFLAGS = @libdw_CFLAGS@
+libdw_CPPFLAGS = @libdw_CPPFLAGS@
+libdw_LDFLAGS = @libdw_LDFLAGS@
+libdw_LIBS = @libdw_LIBS@
libexecdir = @libexecdir@
libiberty_CPPFLAGS = @libiberty_CPPFLAGS@
libiberty_LDFLAGS = @libiberty_LDFLAGS@
@@ -3095,9 +3385,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -3130,6 +3425,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -3192,10 +3490,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -3208,15 +3509,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -3241,11 +3557,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -3292,7 +3617,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -3317,6 +3644,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -3328,6 +3658,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -3444,7 +3777,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
@@ -3515,6 +3854,9 @@
localtime_LDADD = $(clock_LIBS) $(LDADD)
lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
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
+mmap64_Xverbose_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
mq_LDADD = $(mq_LIBS) $(LDADD)
newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
pc_LDADD = $(dl_LIBS) $(LDADD)
@@ -3539,10 +3881,14 @@
# 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 alarm.gen.test \
- bpf.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 \
+ add_key.gen.test adjtimex.gen.test aio.gen.test \
+ aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
+ bpf-v.gen.test bpf-obj_get_info_by_fd.gen.test \
+ bpf-obj_get_info_by_fd-v.gen.test \
+ bpf-obj_get_info_by_fd-prog.gen.test \
+ bpf-obj_get_info_by_fd-prog-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 \
@@ -3550,70 +3896,85 @@
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 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 fstat64.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 int_0x80.gen.test \
- ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \
- ioctl_evdev.gen.test ioctl_evdev-v.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 fstat64.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 \
+ int_0x80.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_loop.gen.test \
ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \
- ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test \
- ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test \
- kcmp-y.gen.test kern_features.gen.test \
- kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
- kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test \
+ ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test \
+ ioctl_ptp.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 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 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 \
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 \
- mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test \
- nlattr_br_port_msg.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_brport.gen.test nlattr_ifla_port.gen.test \
- nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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 \
@@ -3625,16 +3986,19 @@
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-v-none.gen.test oldfstat.gen.test \
- oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test \
+ old_mmap-P.gen.test old_mmap-v-none.gen.test \
+ old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test \
+ old_mmap-Xverbose.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 \
osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
perf_event_open_nonverbose.gen.test \
- perf_event_open_unabbrev.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 \
+ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ personality-Xraw.gen.test personality-Xverbose.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 \
printstr.gen.test printpath-umovestr.gen.test \
printpath-umovestr-peekdata.gen.test \
@@ -3675,22 +4039,29 @@
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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test \
- socketcall.gen.test sockopt-sol_netlink.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_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 \
+ 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 socketcall.gen.test \
+ sockopt-sol_netlink.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_x32.gen.test \
+ trace_personality_regex_32.gen.test \
+ trace_personality_regex_64.gen.test \
+ trace_personality_regex_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 utimes.gen.test \
@@ -3700,13 +4071,20 @@
xattr-strings.gen.test xet_robust_list.gen.test \
xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
xettimeofday.gen.test
-@USE_LIBUNWIND_FALSE@LIBUNWIND_TESTS =
-@USE_LIBUNWIND_TRUE@LIBUNWIND_TESTS = strace-k.test $(am__append_1)
+@ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS =
+@ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
+@ENABLE_STACKTRACE_TRUE@ $(am__append_1)
DECODER_TESTS = \
+ bpf-success.test \
+ bpf-success-v.test \
brk.test \
btrfs-v.test \
btrfs-vw.test \
+ btrfs-vwX.test \
+ btrfs-vX.test \
btrfs-w.test \
+ btrfs-wX.test \
+ btrfs-X.test \
caps-abbrev.test \
caps.test \
eventfd.test \
@@ -3716,6 +4094,7 @@
futex.test \
getuid.test \
ioctl.test \
+ ioctl_perf-success.test \
ipc_msgbuf.test \
kern_features-fault.test \
llseek.test \
@@ -3742,6 +4121,7 @@
prctl-seccomp-filter-v.test \
prctl-seccomp-strict.test \
prctl-securebits.test \
+ prctl-spec-inject.test \
prctl-tid_address.test \
prctl-tsc.test \
qual_fault-exit_group.test \
@@ -3790,9 +4170,13 @@
printstrn-umoven-legacy.test \
qual_fault-syntax.test \
qual_fault.test \
+ qual_fault-syscall.test \
qual_inject-error-signal.test \
+ qual_inject-error-signal-syscall.test \
qual_inject-retval.test \
+ qual_inject-retval-syscall.test \
qual_inject-signal.test \
+ qual_inject-signal-syscall.test \
qual_inject-syntax.test \
qual_signal.test \
qual_syscall.test \
@@ -3816,8 +4200,8 @@
# end of MISC_TESTS
XFAIL_TESTS_ =
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
+XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
XFAIL_TESTS_x86_64 = int_0x80.gen.test
XFAIL_TESTS_x32 = int_0x80.gen.test
XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
@@ -3838,6 +4222,7 @@
count-f.expected \
eventfd.expected \
fadvise.h \
+ fcntl-common.c \
filter-unavailable.expected \
fstatat.c \
fstatx.c \
@@ -3848,12 +4233,12 @@
init.sh \
init_delete_module.h \
ipc.sh \
- ipc_msgbuf.expected \
ksysent.sed \
lstatx.c \
match.awk \
net.expected \
netlink_sock_diag-v.sh \
+ nlattr_ifla.h \
pipe.expected \
print_user_desc.c \
process_vm_readv_writev.c \
@@ -3861,6 +4246,8 @@
qual_fault-exit_group.expected \
qual_inject-error-signal.expected \
qual_inject-signal.expected \
+ qualify_personality.sh \
+ qualify_personality_empty.in \
quotactl.h \
regex.in \
rt_sigaction.awk \
@@ -3878,16 +4265,23 @@
strace-E.expected \
strace-T.expected \
strace-ff.expected \
+ strace-k-demangle.expected \
strace-k-demangle.test \
+ strace-k.expected \
strace-k.test \
strace-r.expected \
strace.supp \
- struct_flock.c \
sun_path.expected \
syntax.sh \
trace_fstat.in \
trace_fstatfs.in \
trace_lstat.in \
+ trace_personality_32.in \
+ trace_personality_64.in \
+ trace_personality_x32.in \
+ trace_personality_regex_32.in \
+ trace_personality_regex_64.in \
+ trace_personality_regex_x32.in \
trace_question.in \
trace_stat.in \
trace_stat_like.in \
@@ -4001,6 +4395,10 @@
@rm -f aio$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
+aio_pgetevents$(EXEEXT): $(aio_pgetevents_OBJECTS) $(aio_pgetevents_DEPENDENCIES) $(EXTRA_aio_pgetevents_DEPENDENCIES)
+ @rm -f aio_pgetevents$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(aio_pgetevents_OBJECTS) $(aio_pgetevents_LDADD) $(LIBS)
+
alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES)
@rm -f alarm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
@@ -4033,6 +4431,30 @@
@rm -f bpf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
+bpf-obj_get_info_by_fd$(EXEEXT): $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_OBJECTS) $(bpf_obj_get_info_by_fd_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_OBJECTS) $(bpf_obj_get_info_by_fd_prog_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-prog-v$(EXEEXT): $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_prog_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-prog-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_prog_v_OBJECTS) $(bpf_obj_get_info_by_fd_prog_v_LDADD) $(LIBS)
+
+bpf-obj_get_info_by_fd-v$(EXEEXT): $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_DEPENDENCIES) $(EXTRA_bpf_obj_get_info_by_fd_v_DEPENDENCIES)
+ @rm -f bpf-obj_get_info_by_fd-v$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_obj_get_info_by_fd_v_OBJECTS) $(bpf_obj_get_info_by_fd_v_LDADD) $(LIBS)
+
+bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA_bpf_success_DEPENDENCIES)
+ @rm -f bpf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_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)
+
bpf-v$(EXEEXT): $(bpf_v_OBJECTS) $(bpf_v_DEPENDENCIES) $(EXTRA_bpf_v_DEPENDENCIES)
@rm -f bpf-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(bpf_v_OBJECTS) $(bpf_v_LDADD) $(LIBS)
@@ -4201,6 +4623,18 @@
@rm -f fanotify_mark$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
+fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES)
+ @rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+
+fanotify_mark-Xraw$(EXEEXT): $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_DEPENDENCIES) $(EXTRA_fanotify_mark_Xraw_DEPENDENCIES)
+ @rm -f fanotify_mark-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xraw_OBJECTS) $(fanotify_mark_Xraw_LDADD) $(LIBS)
+
+fanotify_mark-Xverbose$(EXEEXT): $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_DEPENDENCIES) $(EXTRA_fanotify_mark_Xverbose_DEPENDENCIES)
+ @rm -f fanotify_mark-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(fanotify_mark_Xverbose_OBJECTS) $(fanotify_mark_Xverbose_LDADD) $(LIBS)
+
fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES)
@rm -f fchdir$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
@@ -4481,6 +4915,10 @@
@rm -f ioctl_evdev-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_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)
+
ioctl_kvm_run$(EXEEXT): $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_DEPENDENCIES) $(EXTRA_ioctl_kvm_run_DEPENDENCIES)
@rm -f ioctl_kvm_run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_kvm_run_OBJECTS) $(ioctl_kvm_run_LDADD) $(LIBS)
@@ -4505,6 +4943,18 @@
@rm -f ioctl_nsfs$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
+ioctl_perf$(EXEEXT): $(ioctl_perf_OBJECTS) $(ioctl_perf_DEPENDENCIES) $(EXTRA_ioctl_perf_DEPENDENCIES)
+ @rm -f ioctl_perf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_OBJECTS) $(ioctl_perf_LDADD) $(LIBS)
+
+ioctl_perf-success$(EXEEXT): $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_DEPENDENCIES) $(EXTRA_ioctl_perf_success_DEPENDENCIES)
+ @rm -f ioctl_perf-success$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_perf_success_OBJECTS) $(ioctl_perf_success_LDADD) $(LIBS)
+
+ioctl_ptp$(EXEEXT): $(ioctl_ptp_OBJECTS) $(ioctl_ptp_DEPENDENCIES) $(EXTRA_ioctl_ptp_DEPENDENCIES)
+ @rm -f ioctl_ptp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ioctl_ptp_OBJECTS) $(ioctl_ptp_LDADD) $(LIBS)
+
ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES)
@rm -f ioctl_rtc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
@@ -4561,18 +5011,66 @@
@rm -f ipc_msg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
+ipc_msg-Xabbrev$(EXEEXT): $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msg_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msg-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xabbrev_OBJECTS) $(ipc_msg_Xabbrev_LDADD) $(LIBS)
+
+ipc_msg-Xraw$(EXEEXT): $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_DEPENDENCIES) $(EXTRA_ipc_msg_Xraw_DEPENDENCIES)
+ @rm -f ipc_msg-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xraw_OBJECTS) $(ipc_msg_Xraw_LDADD) $(LIBS)
+
+ipc_msg-Xverbose$(EXEEXT): $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msg_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msg-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msg_Xverbose_OBJECTS) $(ipc_msg_Xverbose_LDADD) $(LIBS)
+
ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES)
@rm -f ipc_msgbuf$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
+ipc_msgbuf-Xabbrev$(EXEEXT): $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xabbrev_OBJECTS) $(ipc_msgbuf_Xabbrev_LDADD) $(LIBS)
+
+ipc_msgbuf-Xraw$(EXEEXT): $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xraw_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xraw_OBJECTS) $(ipc_msgbuf_Xraw_LDADD) $(LIBS)
+
+ipc_msgbuf-Xverbose$(EXEEXT): $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_DEPENDENCIES) $(EXTRA_ipc_msgbuf_Xverbose_DEPENDENCIES)
+ @rm -f ipc_msgbuf-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_msgbuf_Xverbose_OBJECTS) $(ipc_msgbuf_Xverbose_LDADD) $(LIBS)
+
ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES)
@rm -f ipc_sem$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
+ipc_sem-Xabbrev$(EXEEXT): $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_sem_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_sem-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xabbrev_OBJECTS) $(ipc_sem_Xabbrev_LDADD) $(LIBS)
+
+ipc_sem-Xraw$(EXEEXT): $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_DEPENDENCIES) $(EXTRA_ipc_sem_Xraw_DEPENDENCIES)
+ @rm -f ipc_sem-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xraw_OBJECTS) $(ipc_sem_Xraw_LDADD) $(LIBS)
+
+ipc_sem-Xverbose$(EXEEXT): $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_DEPENDENCIES) $(EXTRA_ipc_sem_Xverbose_DEPENDENCIES)
+ @rm -f ipc_sem-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_sem_Xverbose_OBJECTS) $(ipc_sem_Xverbose_LDADD) $(LIBS)
+
ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES)
@rm -f ipc_shm$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
+ipc_shm-Xabbrev$(EXEEXT): $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_DEPENDENCIES) $(EXTRA_ipc_shm_Xabbrev_DEPENDENCIES)
+ @rm -f ipc_shm-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xabbrev_OBJECTS) $(ipc_shm_Xabbrev_LDADD) $(LIBS)
+
+ipc_shm-Xraw$(EXEEXT): $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_DEPENDENCIES) $(EXTRA_ipc_shm_Xraw_DEPENDENCIES)
+ @rm -f ipc_shm-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xraw_OBJECTS) $(ipc_shm_Xraw_LDADD) $(LIBS)
+
+ipc_shm-Xverbose$(EXEEXT): $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_DEPENDENCIES) $(EXTRA_ipc_shm_Xverbose_DEPENDENCIES)
+ @rm -f ipc_shm-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ipc_shm_Xverbose_OBJECTS) $(ipc_shm_Xverbose_LDADD) $(LIBS)
+
is_linux_mips_n64$(EXEEXT): $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_DEPENDENCIES) $(EXTRA_is_linux_mips_n64_DEPENDENCIES)
@rm -f is_linux_mips_n64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(is_linux_mips_n64_OBJECTS) $(is_linux_mips_n64_LDADD) $(LIBS)
@@ -4601,6 +5099,18 @@
@rm -f keyctl$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
+keyctl-Xabbrev$(EXEEXT): $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_DEPENDENCIES) $(EXTRA_keyctl_Xabbrev_DEPENDENCIES)
+ @rm -f keyctl-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xabbrev_OBJECTS) $(keyctl_Xabbrev_LDADD) $(LIBS)
+
+keyctl-Xraw$(EXEEXT): $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_DEPENDENCIES) $(EXTRA_keyctl_Xraw_DEPENDENCIES)
+ @rm -f keyctl-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xraw_OBJECTS) $(keyctl_Xraw_LDADD) $(LIBS)
+
+keyctl-Xverbose$(EXEEXT): $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_DEPENDENCIES) $(EXTRA_keyctl_Xverbose_DEPENDENCIES)
+ @rm -f keyctl-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(keyctl_Xverbose_OBJECTS) $(keyctl_Xverbose_LDADD) $(LIBS)
+
kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES)
@rm -f kill$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
@@ -4709,10 +5219,34 @@
@rm -f mmap$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
+mmap-Xabbrev$(EXEEXT): $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_DEPENDENCIES) $(EXTRA_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xabbrev_OBJECTS) $(mmap_Xabbrev_LDADD) $(LIBS)
+
+mmap-Xraw$(EXEEXT): $(mmap_Xraw_OBJECTS) $(mmap_Xraw_DEPENDENCIES) $(EXTRA_mmap_Xraw_DEPENDENCIES)
+ @rm -f mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xraw_OBJECTS) $(mmap_Xraw_LDADD) $(LIBS)
+
+mmap-Xverbose$(EXEEXT): $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_DEPENDENCIES) $(EXTRA_mmap_Xverbose_DEPENDENCIES)
+ @rm -f mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap_Xverbose_OBJECTS) $(mmap_Xverbose_LDADD) $(LIBS)
+
mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES)
@rm -f mmap64$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
+mmap64-Xabbrev$(EXEEXT): $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_DEPENDENCIES) $(EXTRA_mmap64_Xabbrev_DEPENDENCIES)
+ @rm -f mmap64-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xabbrev_OBJECTS) $(mmap64_Xabbrev_LDADD) $(LIBS)
+
+mmap64-Xraw$(EXEEXT): $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_DEPENDENCIES) $(EXTRA_mmap64_Xraw_DEPENDENCIES)
+ @rm -f mmap64-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xraw_OBJECTS) $(mmap64_Xraw_LDADD) $(LIBS)
+
+mmap64-Xverbose$(EXEEXT): $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_DEPENDENCIES) $(EXTRA_mmap64_Xverbose_DEPENDENCIES)
+ @rm -f mmap64-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mmap64_Xverbose_OBJECTS) $(mmap64_Xverbose_LDADD) $(LIBS)
+
mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES)
@rm -f mmsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
@@ -4737,6 +5271,18 @@
@rm -f mount$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
+mount-Xabbrev$(EXEEXT): $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_DEPENDENCIES) $(EXTRA_mount_Xabbrev_DEPENDENCIES)
+ @rm -f mount-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xabbrev_OBJECTS) $(mount_Xabbrev_LDADD) $(LIBS)
+
+mount-Xraw$(EXEEXT): $(mount_Xraw_OBJECTS) $(mount_Xraw_DEPENDENCIES) $(EXTRA_mount_Xraw_DEPENDENCIES)
+ @rm -f mount-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xraw_OBJECTS) $(mount_Xraw_LDADD) $(LIBS)
+
+mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES) $(EXTRA_mount_Xverbose_DEPENDENCIES)
+ @rm -f mount-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_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)
@@ -4941,10 +5487,18 @@
@rm -f nlattr_ifinfomsg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifinfomsg_OBJECTS) $(nlattr_ifinfomsg_LDADD) $(LIBS)
+nlattr_ifla_af_spec$(EXEEXT): $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_DEPENDENCIES) $(EXTRA_nlattr_ifla_af_spec_DEPENDENCIES)
+ @rm -f nlattr_ifla_af_spec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_af_spec_OBJECTS) $(nlattr_ifla_af_spec_LDADD) $(LIBS)
+
nlattr_ifla_brport$(EXEEXT): $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_DEPENDENCIES) $(EXTRA_nlattr_ifla_brport_DEPENDENCIES)
@rm -f nlattr_ifla_brport$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_brport_OBJECTS) $(nlattr_ifla_brport_LDADD) $(LIBS)
+nlattr_ifla_linkinfo$(EXEEXT): $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_DEPENDENCIES) $(EXTRA_nlattr_ifla_linkinfo_DEPENDENCIES)
+ @rm -f nlattr_ifla_linkinfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(nlattr_ifla_linkinfo_OBJECTS) $(nlattr_ifla_linkinfo_LDADD) $(LIBS)
+
nlattr_ifla_port$(EXEEXT): $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_DEPENDENCIES) $(EXTRA_nlattr_ifla_port_DEPENDENCIES)
@rm -f nlattr_ifla_port$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nlattr_ifla_port_OBJECTS) $(nlattr_ifla_port_LDADD) $(LIBS)
@@ -5045,6 +5599,18 @@
@rm -f old_mmap-P$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_P_OBJECTS) $(old_mmap_P_LDADD) $(LIBS)
+old_mmap-Xabbrev$(EXEEXT): $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_DEPENDENCIES) $(EXTRA_old_mmap_Xabbrev_DEPENDENCIES)
+ @rm -f old_mmap-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xabbrev_OBJECTS) $(old_mmap_Xabbrev_LDADD) $(LIBS)
+
+old_mmap-Xraw$(EXEEXT): $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_DEPENDENCIES) $(EXTRA_old_mmap_Xraw_DEPENDENCIES)
+ @rm -f old_mmap-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xraw_OBJECTS) $(old_mmap_Xraw_LDADD) $(LIBS)
+
+old_mmap-Xverbose$(EXEEXT): $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_DEPENDENCIES) $(EXTRA_old_mmap_Xverbose_DEPENDENCIES)
+ @rm -f old_mmap-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(old_mmap_Xverbose_OBJECTS) $(old_mmap_Xverbose_LDADD) $(LIBS)
+
old_mmap-v-none$(EXEEXT): $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_DEPENDENCIES) $(EXTRA_old_mmap_v_none_DEPENDENCIES)
@rm -f old_mmap-v-none$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(old_mmap_v_none_OBJECTS) $(old_mmap_v_none_LDADD) $(LIBS)
@@ -5113,6 +5679,18 @@
@rm -f personality$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
+personality-Xabbrev$(EXEEXT): $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_DEPENDENCIES) $(EXTRA_personality_Xabbrev_DEPENDENCIES)
+ @rm -f personality-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xabbrev_OBJECTS) $(personality_Xabbrev_LDADD) $(LIBS)
+
+personality-Xraw$(EXEEXT): $(personality_Xraw_OBJECTS) $(personality_Xraw_DEPENDENCIES) $(EXTRA_personality_Xraw_DEPENDENCIES)
+ @rm -f personality-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xraw_OBJECTS) $(personality_Xraw_LDADD) $(LIBS)
+
+personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xverbose_DEPENDENCIES) $(EXTRA_personality_Xverbose_DEPENDENCIES)
+ @rm -f personality-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS)
+
pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES)
@rm -f pipe$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
@@ -5185,6 +5763,10 @@
@rm -f prctl-securebits$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
+prctl-spec-inject$(EXEEXT): $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_DEPENDENCIES) $(EXTRA_prctl_spec_inject_DEPENDENCIES)
+ @rm -f prctl-spec-inject$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(prctl_spec_inject_OBJECTS) $(prctl_spec_inject_LDADD) $(LIBS)
+
prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES)
@rm -f prctl-tid_address$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
@@ -5669,10 +6251,34 @@
@rm -f so_peercred$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_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)
+
+so_peercred-Xraw$(EXEEXT): $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_DEPENDENCIES) $(EXTRA_so_peercred_Xraw_DEPENDENCIES)
+ @rm -f so_peercred-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xraw_OBJECTS) $(so_peercred_Xraw_LDADD) $(LIBS)
+
+so_peercred-Xverbose$(EXEEXT): $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_DEPENDENCIES) $(EXTRA_so_peercred_Xverbose_DEPENDENCIES)
+ @rm -f so_peercred-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(so_peercred_Xverbose_OBJECTS) $(so_peercred_Xverbose_LDADD) $(LIBS)
+
sock_filter-v$(EXEEXT): $(sock_filter_v_OBJECTS) $(sock_filter_v_DEPENDENCIES) $(EXTRA_sock_filter_v_DEPENDENCIES)
@rm -f sock_filter-v$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(sock_filter_v_OBJECTS) $(sock_filter_v_LDADD) $(LIBS)
+sock_filter-v-Xabbrev$(EXEEXT): $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_DEPENDENCIES) $(EXTRA_sock_filter_v_Xabbrev_DEPENDENCIES)
+ @rm -f sock_filter-v-Xabbrev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xabbrev_OBJECTS) $(sock_filter_v_Xabbrev_LDADD) $(LIBS)
+
+sock_filter-v-Xraw$(EXEEXT): $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_DEPENDENCIES) $(EXTRA_sock_filter_v_Xraw_DEPENDENCIES)
+ @rm -f sock_filter-v-Xraw$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xraw_OBJECTS) $(sock_filter_v_Xraw_LDADD) $(LIBS)
+
+sock_filter-v-Xverbose$(EXEEXT): $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_DEPENDENCIES) $(EXTRA_sock_filter_v_Xverbose_DEPENDENCIES)
+ @rm -f sock_filter-v-Xverbose$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(sock_filter_v_Xverbose_OBJECTS) $(sock_filter_v_Xverbose_LDADD) $(LIBS)
+
socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES)
@rm -f socketcall$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
@@ -5960,6 +6566,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adjtimex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aio_pgetevents.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alarm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/answer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-f-p-cmd.Po@am__quote@
@@ -5967,6 +6574,12 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-v.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/brk.Po@am__quote@
@@ -6009,6 +6622,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64_64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallocate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@
@@ -6080,12 +6696,16 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_inotify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop-nv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_loop.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_mtd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_nsfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_perf-success.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_perf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_ptp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_rtc-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_rtc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_scsi.Po@am__quote@
@@ -6099,9 +6719,21 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ip_mreq.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_msgbuf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_sem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@
@@ -6109,6 +6741,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kexec_file_load.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kexec_load.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@
@@ -6162,13 +6797,22 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlock2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlockall.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64-mmap64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg-silent.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg_name-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmsg_name.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modify_ldt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mq.Po@am__quote@
@@ -6221,7 +6865,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifaddrlblmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifaddrmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifinfomsg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_af_spec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_brport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_linkinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_port.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@
@@ -6246,6 +6892,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls-d.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-P.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap-v-none.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldfstat.Po@am__quote@
@@ -6263,6 +6912,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open_nonverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_event_open_unabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@
@@ -6282,6 +6934,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-seccomp-filter-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-seccomp-strict.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-securebits.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-spec-inject.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-tid_address.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prctl-tsc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po@am__quote@
@@ -6402,7 +7055,13 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigsuspend.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xabbrev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v-Xverbose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock_filter-v.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketcall.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockopt-sol_netlink.Po@am__quote@
@@ -6929,6 +7588,48 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
+mmap64_Xabbrev-mmap64-Xabbrev.o: mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.o -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-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) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.o `test -f 'mmap64-Xabbrev.c' || echo '$(srcdir)/'`mmap64-Xabbrev.c
+
+mmap64_Xabbrev-mmap64-Xabbrev.obj: mmap64-Xabbrev.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xabbrev-mmap64-Xabbrev.obj -MD -MP -MF $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Tpo $(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xabbrev.c' object='mmap64_Xabbrev-mmap64-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) $(mmap64_Xabbrev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xabbrev-mmap64-Xabbrev.obj `if test -f 'mmap64-Xabbrev.c'; then $(CYGPATH_W) 'mmap64-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xabbrev.c'; fi`
+
+mmap64_Xraw-mmap64-Xraw.o: mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.o -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-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) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.o `test -f 'mmap64-Xraw.c' || echo '$(srcdir)/'`mmap64-Xraw.c
+
+mmap64_Xraw-mmap64-Xraw.obj: mmap64-Xraw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xraw-mmap64-Xraw.obj -MD -MP -MF $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Tpo $(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xraw.c' object='mmap64_Xraw-mmap64-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) $(mmap64_Xraw_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xraw-mmap64-Xraw.obj `if test -f 'mmap64-Xraw.c'; then $(CYGPATH_W) 'mmap64-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xraw.c'; fi`
+
+mmap64_Xverbose-mmap64-Xverbose.o: mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.o -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-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) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.o `test -f 'mmap64-Xverbose.c' || echo '$(srcdir)/'`mmap64-Xverbose.c
+
+mmap64_Xverbose-mmap64-Xverbose.obj: mmap64-Xverbose.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64_Xverbose-mmap64-Xverbose.obj -MD -MP -MF $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Tpo $(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap64-Xverbose.c' object='mmap64_Xverbose-mmap64-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) $(mmap64_Xverbose_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64_Xverbose-mmap64-Xverbose.obj `if test -f 'mmap64-Xverbose.c'; then $(CYGPATH_W) 'mmap64-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/mmap64-Xverbose.c'; fi`
+
newfstatat-newfstatat.o: newfstatat.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
@@ -7480,6 +8181,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7489,6 +8193,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7576,6 +8292,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7768,6 +8493,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7786,6 +8514,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7828,12 +8562,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7852,6 +8622,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7915,9 +8694,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -7936,6 +8733,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -8062,9 +8868,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8137,6 +8949,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8179,6 +9000,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -8509,9 +9339,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -8593,6 +9441,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
diff --git a/tests/add_key.c b/tests/add_key.c
index 999da03..9ad5e28 100644
--- a/tests/add_key.c
+++ b/tests/add_key.c
@@ -2,7 +2,7 @@
* Check decoding of add_key syscall.
*
* Copyright (c) 2016 Eugene Syromyatnikov <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -102,7 +102,7 @@
{ bogus_desc, NULL },
{ ARG_STR("\25\26\27\30\31") },
{ ARG_STR("desc") },
- { "overly long description", _STR("overly long ") "..." },
+ { "overly long description", STRINGIFY("overly long ") "..." },
};
struct {
@@ -113,10 +113,10 @@
{ ARG_STR(NULL), 0 },
{ bogus_payload + sizeof(unterminated3), NULL,
(size_t) 0xdeadbeefbadc0dedULL },
- { bogus_payload, _STR(""), 0 },
- { bogus_payload, _STR("\16\17\20\21\22"), 5 },
+ { bogus_payload, STRINGIFY(""), 0 },
+ { bogus_payload, STRINGIFY("\16\17\20\21\22"), 5 },
{ bogus_payload, NULL, 10 },
- { "overly long payload", _STR("overly long ") "...", 15 },
+ { "overly long payload", STRINGIFY("overly long ") "...", 15 },
};
struct {
diff --git a/tests/aio.c b/tests/aio.c
index 335bb31..ea18700 100644
--- a/tests/aio.c
+++ b/tests/aio.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -335,7 +335,7 @@
"}, {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]) = %s\n",
+ "}, {NULL}, {%#lx}, ... /* %p */]) = %s\n",
*ctx, 1057L,
cbv2[0].aio_data, cbv2[0].aio_key,
cbv2[0].aio_lio_opcode, cbv2[0].aio_fildes,
diff --git a/tests/aio_pgetevents.c b/tests/aio_pgetevents.c
new file mode 100644
index 0000000..ba5ac71
--- /dev/null
+++ b/tests/aio_pgetevents.c
@@ -0,0 +1,190 @@
+/*
+ * Check decoding of io_pgetevents syscall.
+ *
+ * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+#include <unistd.h>
+#include <asm/unistd.h>
+#include "scno.h"
+
+#if defined __NR_io_setup && defined __NR_io_pgetevents
+
+# include <fcntl.h>
+# include <inttypes.h>
+# include <stdio.h>
+# include <time.h>
+
+# include "nsig.h"
+
+# include <linux/aio_abi.h>
+
+# if !HAVE_STRUCT___AIO_SIGSET
+struct __aio_sigset {
+ sigset_t *sigmask;
+ size_t sigsetsize;
+};
+# endif
+
+static const char *errstr;
+
+static long
+sys_io_pgetevents(const kernel_ulong_t ctx_id,
+ const kernel_long_t min_nr,
+ const kernel_long_t nr,
+ const kernel_ulong_t events,
+ const kernel_ulong_t timeout,
+ const kernel_ulong_t usig)
+{
+ long rc = syscall(__NR_io_pgetevents, ctx_id, min_nr, nr,
+ events, timeout, usig);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t bogus_ctx =
+ (kernel_ulong_t) 0xface1e55deadbeefLL;
+ static const kernel_long_t bogus_min_nr =
+ (kernel_long_t) 0xca7faceddeadf00dLL;
+ static const kernel_long_t bogus_nr =
+ (kernel_long_t) 0xba5e1e505ca571e0LL;
+ static const size_t bogus_sigsetsize =
+ (size_t) 0xdeadbeefbadcaffeULL;
+
+ const unsigned int sizeof_data0 = 4096;
+ const unsigned int sizeof_data1 = 8192;
+ void *data0 = tail_alloc(sizeof_data0);
+ void *data1 = tail_alloc(sizeof_data1);
+
+ const struct iocb proto_cb[] = {
+ {
+ .aio_data = (unsigned long) 0xfeedface11111111ULL,
+ .aio_reqprio = 11,
+ .aio_buf = (unsigned long) data0,
+ .aio_offset = (unsigned long) 0xdeface1facefeedULL,
+ .aio_nbytes = sizeof_data0
+ },
+ {
+ .aio_data = (unsigned long) 0xfeedface22222222ULL,
+ .aio_reqprio = 22,
+ .aio_buf = (unsigned long) data1,
+ .aio_offset = (unsigned long) 0xdeface2cafef00dULL,
+ .aio_nbytes = sizeof_data1
+ }
+ };
+ const struct iocb *cb = tail_memdup(proto_cb, sizeof(proto_cb));
+
+ const long proto_cbs[] = {
+ (long) &cb[0], (long) &cb[1]
+ };
+ const long *cbs = tail_memdup(proto_cbs, sizeof(proto_cbs));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned long, ctx);
+ *ctx = 0;
+
+ const unsigned int nr = ARRAY_SIZE(proto_cb);
+
+ const struct io_event *ev = tail_alloc(nr * sizeof(struct io_event));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct __aio_sigset, ss);
+ TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, sigs);
+
+ (void) close(0);
+ if (open("/dev/zero", O_RDONLY))
+ perror_msg_and_skip("open: %s", "/dev/zero");
+
+ if (syscall(__NR_io_setup, nr, ctx))
+ perror_msg_and_skip("io_setup");
+
+ if (syscall(__NR_io_submit, *ctx, nr, cbs) != (long) nr)
+ perror_msg_and_skip("io_submit");
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ (uintptr_t) (ev + 1), 0, 0);
+ printf("io_pgetevents(%#jx, %ld, %ld, %p, NULL, NULL) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ev + 1, errstr);
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, (uintptr_t) (ts + 1), 0);
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, %p, NULL) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ts + 1, errstr);
+
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, 0, (uintptr_t) (ss + 1));
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, NULL, %p) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, ss + 1, errstr);
+
+ ss->sigmask = sigs + 1;
+ ss->sigsetsize = bogus_sigsetsize;
+ sys_io_pgetevents(bogus_ctx, bogus_min_nr, bogus_nr,
+ 0, 0, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, %ld, %ld, NULL, NULL"
+ ", {sigmask=%p, sigsetsize=%zu}) = %s\n",
+ (uintmax_t) bogus_ctx, (long) bogus_min_nr,
+ (long) bogus_nr, sigs + 1, bogus_sigsetsize, errstr);
+
+ ts->tv_sec = 0xdeadbeefU;
+ ts->tv_nsec = 0xfacefeedU;
+ ss->sigmask = sigs;
+ ss->sigsetsize = NSIG_BYTES;
+ sys_io_pgetevents(bogus_ctx, 0, 0, 0, (uintptr_t) ts, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, 0, 0, NULL"
+ ", {tv_sec=%lld, tv_nsec=%llu}"
+ ", {sigmask=~[], sigsetsize=%u}) = %s\n",
+ (uintmax_t) bogus_ctx, (long long) ts->tv_sec,
+ zero_extend_signed_to_ull(ts->tv_nsec), NSIG_BYTES,
+ errstr);
+
+ sigemptyset(sigs);
+ sigaddset(sigs, SIGSYS);
+
+ ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL;
+ ts->tv_nsec = (long) 0xbadc0dedfacefeedLL;
+ sys_io_pgetevents(bogus_ctx, 0, 0, 0, (uintptr_t) ts, (uintptr_t) ss);
+ printf("io_pgetevents(%#jx, 0, 0, NULL"
+ ", {tv_sec=%lld, tv_nsec=%llu}"
+ ", {sigmask=[SYS], sigsetsize=%u}) = %s\n",
+ (uintmax_t) bogus_ctx, (long long) ts->tv_sec,
+ zero_extend_signed_to_ull(ts->tv_nsec), NSIG_BYTES,
+ errstr);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_io_setup && __NR_io_pgetevents")
+
+#endif
diff --git a/tests/aio_pgetevents.gen.test b/tests/aio_pgetevents.gen.test
new file mode 100755
index 0000000..7ea3874
--- /dev/null
+++ b/tests/aio_pgetevents.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (aio_pgetevents -e trace=io_pgetevents); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=io_pgetevents
diff --git a/tests/bpf-obj_get_info_by_fd-prog-v.c b/tests/bpf-obj_get_info_by_fd-prog-v.c
new file mode 100644
index 0000000..d7e10b4
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd-prog-v.c
@@ -0,0 +1,3 @@
+#define CHECK_OBJ_PROG 1
+#define VERBOSE 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests/bpf-obj_get_info_by_fd-prog-v.gen.test b/tests/bpf-obj_get_info_by_fd-prog-v.gen.test
new file mode 100755
index 0000000..fcaa1d8
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd-prog-v.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-prog-v -a20 -y -v -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -v -e trace=bpf
diff --git a/tests/bpf-obj_get_info_by_fd-prog.c b/tests/bpf-obj_get_info_by_fd-prog.c
new file mode 100644
index 0000000..19a5f75
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd-prog.c
@@ -0,0 +1,2 @@
+#define CHECK_OBJ_PROG 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests/bpf-obj_get_info_by_fd-prog.gen.test b/tests/bpf-obj_get_info_by_fd-prog.gen.test
new file mode 100755
index 0000000..8cbd7c0
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd-prog.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-prog -a20 -y -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -e trace=bpf
diff --git a/tests/bpf-obj_get_info_by_fd-v.c b/tests/bpf-obj_get_info_by_fd-v.c
new file mode 100644
index 0000000..2debc5f
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd-v.c
@@ -0,0 +1,2 @@
+#define VERBOSE 1
+#include "bpf-obj_get_info_by_fd.c"
diff --git a/tests/bpf-obj_get_info_by_fd-v.gen.test b/tests/bpf-obj_get_info_by_fd-v.gen.test
new file mode 100755
index 0000000..255d91e
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd-v.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd-v -a20 -y -v -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -v -e trace=bpf
diff --git a/tests/bpf-obj_get_info_by_fd.c b/tests/bpf-obj_get_info_by_fd.c
new file mode 100644
index 0000000..67b5122
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd.c
@@ -0,0 +1,499 @@
+/*
+ * Check bpf(BPF_OBJ_GET_INFO_BY_FD) decoding.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifndef CHECK_OBJ_PROG
+# define CHECK_OBJ_PROG 0
+#endif
+
+#include <inttypes.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/sysmacros.h>
+#include <asm/unistd.h>
+
+#include "print_fields.h"
+#include "scno.h"
+
+#ifdef HAVE_LINUX_BPF_H
+# include <linux/bpf.h>
+#endif
+
+#include "bpf_attr.h"
+
+#include "xlat.h"
+#include "xlat/bpf_map_flags.h"
+#include "xlat/bpf_map_types.h"
+#include "xlat/bpf_prog_types.h"
+
+#define XLAT_MACROS_ONLY
+#include "xlat/bpf_commands.h"
+#include "xlat/bpf_op_alu.h"
+#include "xlat/bpf_op_jmp.h"
+#include "xlat/bpf_size.h"
+#include "xlat/bpf_src.h"
+#include "xlat/ebpf_class.h"
+#include "xlat/ebpf_mode.h"
+#include "xlat/ebpf_op_alu.h"
+#include "xlat/ebpf_regs.h"
+#include "xlat/ebpf_size.h"
+
+#ifndef HAVE_STRUCT_BPF_INSN
+struct bpf_insn {
+ uint8_t code;
+ uint8_t dst_reg:4;
+ uint8_t src_reg:4;
+ int16_t off;
+ int32_t imm;
+};
+#endif
+
+static const char *errstr;
+
+static long
+sys_bpf(kernel_ulong_t cmd, void *attr, kernel_ulong_t size)
+{
+ long rc = syscall(__NR_bpf, cmd, attr, size);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+static void
+print_map_create(void *attr_void, size_t size, long rc)
+{
+ /* struct BPF_MAP_CREATE_struct *attr = attr_void; */
+
+ printf("bpf(BPF_MAP_CREATE, {map_type=BPF_MAP_TYPE_ARRAY, key_size=4"
+ ", value_size=8, max_entries=1");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_flags))
+ printf(", map_flags=0");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, inner_map_fd))
+ printf(", inner_map_fd=0</dev/null>");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_name))
+ printf(", map_name=\"test_map\"");
+ if (size > offsetof(struct BPF_MAP_CREATE_struct, map_ifindex))
+ printf(", map_ifindex=0");
+ printf("}, %zu) = ", size);
+ if (rc >= 0)
+ printf("%ld<anon_inode:bpf-map>\n", rc);
+ else
+ puts(errstr);
+}
+
+#if CHECK_OBJ_PROG
+static struct bpf_insn socket_prog[] = {
+ { /* 0 */
+ .code = BPF_ALU64 | BPF_K | BPF_MOV,
+ .dst_reg = BPF_REG_1,
+ .imm = 0,
+ },
+ { /* 1 */
+ .code = BPF_STX | BPF_W | BPF_MEM,
+ .dst_reg = BPF_REG_10,
+ .src_reg = BPF_REG_1,
+ .off = -4,
+ },
+ { /* 2 */
+ .code = BPF_ALU64 | BPF_X | BPF_MOV,
+ .dst_reg = BPF_REG_2,
+ .src_reg = BPF_REG_10,
+ },
+ { /* 3 */
+ .code = BPF_ALU64 | BPF_K | BPF_ADD,
+ .dst_reg = BPF_REG_2,
+ .imm = -4,
+ },
+ { /* 4 */
+ .code = BPF_LD | BPF_DW | BPF_IMM,
+ .dst_reg = BPF_REG_1,
+ .src_reg = 1 /* BPF_PSEUDO_MAP_FD */,
+ .imm = 0, /* to be set to map fd */
+ },
+ { /* 5 */
+ .imm = 0,
+ },
+ { /* 6 */
+ .code = BPF_JMP | BPF_K | BPF_CALL,
+ .imm = 0x1, /* BPF_FUNC_map_lookup_elem */
+ },
+ { /* 7 */
+ .code = BPF_ALU64 | BPF_K | BPF_MOV,
+ .dst_reg = BPF_REG_0,
+ .imm = 0,
+ },
+ { /* 8 */
+ .code = BPF_JMP | BPF_K | BPF_EXIT,
+ },
+};
+
+# if VERBOSE
+static const char *socket_prog_fmt =
+ "[{code=BPF_ALU64|BPF_K|BPF_MOV"
+ ", dst_reg=BPF_REG_1, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_STX|BPF_W|BPF_MEM"
+ ", dst_reg=BPF_REG_10, src_reg=BPF_REG_1, off=-4, imm=0}"
+ ", {code=BPF_ALU64|BPF_X|BPF_MOV"
+ ", dst_reg=BPF_REG_2, src_reg=BPF_REG_10, off=0, imm=0}"
+ ", {code=BPF_ALU64|BPF_K|BPF_ADD"
+ ", dst_reg=BPF_REG_2, src_reg=BPF_REG_0, off=0, imm=0xfffffffc}"
+ ", {code=BPF_LD|BPF_DW|BPF_IMM"
+ ", dst_reg=BPF_REG_1, src_reg=BPF_REG_1, off=0, imm=%#x}"
+ ", {code=BPF_LD|BPF_W|BPF_IMM"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_JMP|BPF_K|BPF_CALL"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0x1}"
+ ", {code=BPF_ALU64|BPF_K|BPF_MOV"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ ", {code=BPF_JMP|BPF_K|BPF_EXIT"
+ ", dst_reg=BPF_REG_0, src_reg=BPF_REG_0, off=0, imm=0}"
+ "]";
+# endif /* VERBOSE */
+
+static const char *license = "BSD";
+static char log_buf[4096];
+
+static void
+print_prog_load(void *attr_void, size_t size, long rc)
+{
+ printf("bpf(BPF_PROG_LOAD, {prog_type=BPF_PROG_TYPE_SOCKET_FILTER"
+ ", insn_cnt=%zu, insns=", ARRAY_SIZE(socket_prog));
+# if VERBOSE
+ printf(socket_prog_fmt, socket_prog[4].imm);
+# else
+ printf("%p", socket_prog);
+# endif
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, license))
+ printf(", license=\"BSD\"");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, log_buf))
+ printf(", log_level=42, log_size=%zu, log_buf=\"\"",
+ sizeof(log_buf));
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, kern_version))
+ printf(", kern_version=KERNEL_VERSION(57005, 192, 222)");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_flags))
+ printf(", prog_flags=0");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_name))
+ printf(", prog_name=\"test_prog\"");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, prog_ifindex))
+ printf(", prog_ifindex=0");
+ if (size > offsetof(struct BPF_PROG_LOAD_struct, expected_attach_type))
+ printf(", expected_attach_type=BPF_CGROUP_INET_INGRESS");
+ printf("}, %zu) = ", size);
+ if (rc >= 0)
+ printf("%ld<anon_inode:bpf-prog>\n", rc);
+ else
+ puts(errstr);
+}
+#endif /* CHECK_OBJ_PROG */
+
+static long
+try_bpf(kernel_ulong_t cmd, void (*printer)(void *attr, size_t size, long rc),
+ void *attr, size_t **sizes)
+{
+ long rc;
+
+ for (rc = -1; **sizes; (*sizes)++) {
+ rc = sys_bpf(cmd, attr, **sizes);
+ printer(attr, **sizes, rc);
+
+ if (rc >= 0)
+ break;
+ }
+
+ return rc;
+}
+
+int
+main(void)
+{
+ struct BPF_MAP_CREATE_struct bpf_map_create_attr = {
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .key_size = 4,
+ .value_size = 8,
+ .max_entries = 1,
+ .map_name = "test_map",
+ };
+ size_t bpf_map_create_attr_sizes[] = {
+ sizeof(bpf_map_create_attr),
+ offsetofend(struct BPF_MAP_CREATE_struct, max_entries),
+ 0,
+ };
+
+#if CHECK_OBJ_PROG
+ struct BPF_PROG_LOAD_struct bpf_prog_load_attr = {
+ .prog_type = BPF_PROG_TYPE_SOCKET_FILTER,
+ .insn_cnt = ARRAY_SIZE(socket_prog),
+ .insns = (uintptr_t) socket_prog,
+ .license = (uintptr_t) license,
+ .log_level = 42,
+ .log_size = sizeof(log_buf),
+ .log_buf = (uintptr_t) log_buf,
+ .kern_version = 0xdeadc0de,
+ .prog_name = "test_prog",
+ };
+ size_t bpf_prog_load_attr_sizes[] = {
+ sizeof(bpf_prog_load_attr),
+ offsetofend(struct BPF_PROG_LOAD_struct, prog_name),
+ offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
+ offsetofend(struct BPF_PROG_LOAD_struct, kern_version),
+ offsetofend(struct BPF_PROG_LOAD_struct, log_buf),
+ offsetofend(struct BPF_PROG_LOAD_struct, license),
+ offsetofend(struct BPF_PROG_LOAD_struct, insns),
+ 0,
+ };
+#endif /* CHECK_OBJ_PROG */
+
+ size_t *bpf_map_create_attr_size = bpf_map_create_attr_sizes;
+ int map_fd = try_bpf(BPF_MAP_CREATE, print_map_create,
+ &bpf_map_create_attr, &bpf_map_create_attr_size);
+ if (map_fd < 0)
+ perror_msg_and_skip("BPF_MAP_CREATE failed");
+
+#if CHECK_OBJ_PROG
+ socket_prog[4].imm = map_fd;
+
+ size_t *bpf_prog_load_attr_size = bpf_prog_load_attr_sizes;
+ int prog_fd = try_bpf(BPF_PROG_LOAD, print_prog_load,
+ &bpf_prog_load_attr, &bpf_prog_load_attr_size);
+ if (prog_fd < 0)
+ perror_msg_and_skip("BPF_PROG_LOAD failed (log: \"%s\")",
+ log_buf);
+#endif /* CHECK_OBJ_PROG */
+
+ /*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+ #define MAP_INFO_SZ (sizeof(*map_info) + 64)
+ struct bpf_map_info_struct *map_info = calloc(1, MAP_INFO_SZ);
+ struct BPF_OBJ_GET_INFO_BY_FD_struct bpf_map_get_info_attr = {
+ .bpf_fd = map_fd,
+ .info_len = MAP_INFO_SZ,
+ .info = (uintptr_t) map_info,
+ };
+
+ int ret = sys_bpf(BPF_OBJ_GET_INFO_BY_FD, &bpf_map_get_info_attr,
+ sizeof(bpf_map_get_info_attr));
+ if (ret < 0)
+ perror_msg_and_skip("BPF_OBJ_GET_INFO_BY_FD map failed");
+
+ printf("bpf(BPF_OBJ_GET_INFO_BY_FD"
+ ", {info={bpf_fd=%d<anon_inode:bpf-map>, info_len=%zu",
+ map_fd, MAP_INFO_SZ);
+ if (bpf_map_get_info_attr.info_len != MAP_INFO_SZ)
+ printf(" => %u", bpf_map_get_info_attr.info_len);
+
+ printf(", info=");
+#if VERBOSE
+ printf("{type=");
+ printxval(bpf_map_types, map_info->type, "BPF_MAP_TYPE_???");
+ PRINT_FIELD_U(", ", *map_info, id);
+ PRINT_FIELD_U(", ", *map_info, key_size);
+ PRINT_FIELD_U(", ", *map_info, value_size);
+ PRINT_FIELD_U(", ", *map_info, max_entries);
+ printf(", map_flags=");
+ printflags(bpf_map_flags, map_info->map_flags, "BPF_F_???");
+
+ if (bpf_map_get_info_attr.info_len >
+ offsetof(struct bpf_map_info_struct, name)) {
+ printf(", name=");
+ print_quoted_cstring(map_info->name, sizeof(map_info->name));
+ }
+ 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, netns_dev))
+ printf(", netns_dev=makedev(%u, %u)",
+ major(map_info->netns_dev), minor(map_info->netns_dev));
+ if (bpf_map_get_info_attr.info_len >
+ offsetof(struct bpf_map_info_struct, netns_ino))
+ printf(", netns_ino=%" PRIu64, map_info->netns_ino);
+ printf("}");
+#else /* !VERBOSE */
+ printf("%p", map_info);
+#endif /* VERBOSE */
+ printf("}}, %zu) = %s\n", sizeof(bpf_map_get_info_attr), errstr);
+
+#if CHECK_OBJ_PROG
+ /*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+ #define PROG_INFO_SZ (sizeof(*prog_info) + 64)
+ struct bpf_prog_info_struct *prog_info = calloc(1, PROG_INFO_SZ);
+ struct bpf_insn *xlated_prog = tail_alloc(sizeof(*xlated_prog) * 42);
+ uint32_t *map_ids = tail_alloc(sizeof(*map_ids) * 2);
+ struct BPF_OBJ_GET_INFO_BY_FD_struct bpf_prog_get_info_attr = {
+ .bpf_fd = prog_fd,
+ .info_len = PROG_INFO_SZ,
+ .info = (uintptr_t) prog_info,
+ };
+ size_t old_prog_info_len = PROG_INFO_SZ;
+
+ for (unsigned int i = 0; i < 4; i++) {
+ prog_info->jited_prog_len = 0;
+ switch (i) {
+ case 1:
+ prog_info->xlated_prog_insns =
+ (uintptr_t) (xlated_prog + 42);
+ prog_info->xlated_prog_len = 336;
+ prog_info->map_ids = (uintptr_t) (map_ids + 2);
+ prog_info->nr_map_ids = 2;
+ break;
+ case 2:
+ prog_info->xlated_prog_insns = (uintptr_t) xlated_prog;
+ /* TODO: check xlated_prog output */
+ prog_info->xlated_prog_len = 0;
+ prog_info->map_ids = (uintptr_t) map_ids;
+ prog_info->nr_map_ids = 0;
+ break;
+ case 3:
+ prog_info->xlated_prog_insns = (uintptr_t) xlated_prog;
+ prog_info->xlated_prog_len = 0;
+ prog_info->map_ids = (uintptr_t) map_ids;
+ prog_info->nr_map_ids = 2;
+ break;
+ }
+
+ ret = sys_bpf(BPF_OBJ_GET_INFO_BY_FD, &bpf_prog_get_info_attr,
+ sizeof(bpf_prog_get_info_attr));
+ if (i != 1 && ret < 0)
+ perror_msg_and_skip("BPF_OBJ_GET_INFO_BY_FD"
+ " prog %u failed", i);
+
+ printf("bpf(BPF_OBJ_GET_INFO_BY_FD"
+ ", {info={bpf_fd=%d<anon_inode:bpf-prog>, info_len=%zu",
+ prog_fd, old_prog_info_len);
+ if (!i && bpf_prog_get_info_attr.info_len != PROG_INFO_SZ)
+ printf(" => %u", bpf_prog_get_info_attr.info_len);
+ old_prog_info_len = bpf_prog_get_info_attr.info_len;
+
+ printf(", info=");
+# if VERBOSE
+ printf("{type=");
+ printxval(bpf_prog_types, prog_info->type, "BPF_PROG_TYPE_???");
+ PRINT_FIELD_U(", ", *prog_info, id);
+ printf(", tag=");
+ print_quoted_hex(prog_info->tag, sizeof(prog_info->tag));
+ printf(", jited_prog_len=0");
+ if (prog_info->jited_prog_len)
+ printf(" => %u", prog_info->jited_prog_len);
+ printf(", jited_prog_insns=NULL");
+ switch (i) {
+ case 0:
+ printf(", xlated_prog_len=0");
+ if (prog_info->xlated_prog_len)
+ printf(" => %u", prog_info->xlated_prog_len);
+ printf(", xlated_prog_insns=NULL");
+ break;
+ case 1:
+ printf(", xlated_prog_len=336");
+ if (prog_info->xlated_prog_len != 336)
+ printf(" => %u", prog_info->xlated_prog_len);
+ if (prog_info->xlated_prog_len)
+ printf(", xlated_prog_insns=%p", xlated_prog + 42);
+ else
+ printf(", xlated_prog_insns=[]");
+ break;
+ case 2:
+ case 3:
+ printf(", xlated_prog_len=0");
+ if (prog_info->xlated_prog_len)
+ printf(" => %u", prog_info->xlated_prog_len);
+ printf(", xlated_prog_insns=[]");
+ break;
+ }
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, load_time))
+ printf(", load_time=%" PRIu64, prog_info->load_time);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, created_by_uid))
+ printf(", created_by_uid=%u",
+ prog_info->created_by_uid);
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, map_ids)) {
+ switch (i) {
+ case 0:
+ printf(", nr_map_ids=0");
+ if (prog_info->nr_map_ids)
+ printf(" => 1");
+ printf(", map_ids=NULL");
+ break;
+ case 1:
+ printf(", nr_map_ids=2, map_ids=%p",
+ map_ids + 2);
+ break;
+ case 2:
+ printf(", nr_map_ids=0");
+ if (prog_info->nr_map_ids)
+ printf(" => 1");
+ printf(", map_ids=[]");
+ break;
+ case 3:
+ printf(", nr_map_ids=2");
+ if (prog_info->nr_map_ids != 2)
+ printf(" => 1");
+ printf(", map_ids=[%u]", map_info->id);
+ break;
+ }
+ }
+
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, name))
+ printf(", name=\"test_prog\"");
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, ifindex))
+ printf(", ifindex=%u", prog_info->ifindex);
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, netns_dev))
+ printf(", netns_dev=makedev(%u, %u)",
+ major(prog_info->netns_dev),
+ minor(prog_info->netns_dev));
+ if (bpf_prog_get_info_attr.info_len >
+ offsetof(struct bpf_prog_info_struct, netns_ino))
+ printf(", netns_ino=%" PRIu64, prog_info->netns_ino);
+
+ printf("}");
+# else /* !VERBOSE */
+ printf("%p", prog_info);
+# endif /* VERBOSE */
+ printf("}}, %zu) = %s\n",
+ sizeof(bpf_prog_get_info_attr), errstr);
+ }
+#endif /* CHECK_OBJ_PROG */
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests/bpf-obj_get_info_by_fd.gen.test b/tests/bpf-obj_get_info_by_fd.gen.test
new file mode 100755
index 0000000..0efa59a
--- /dev/null
+++ b/tests/bpf-obj_get_info_by_fd.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (bpf-obj_get_info_by_fd -a20 -y -e trace=bpf); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a20 -y -e trace=bpf
diff --git a/tests/bpf-success-v.c b/tests/bpf-success-v.c
new file mode 100644
index 0000000..48c2a16
--- /dev/null
+++ b/tests/bpf-success-v.c
@@ -0,0 +1,2 @@
+#define INJECT_RETVAL 42
+#include "bpf-v.c"
diff --git a/tests/bpf-success-v.test b/tests/bpf-success-v.test
new file mode 100755
index 0000000..819afbb
--- /dev/null
+++ b/tests/bpf-success-v.test
@@ -0,0 +1,6 @@
+#!/bin/sh -efu
+
+. "${srcdir=.}/scno_tampering.sh"
+
+run_strace -a20 -v -e trace=bpf -e inject=bpf:retval=42 ../bpf-success-v > "$EXP"
+match_diff "$LOG" "$EXP"
diff --git a/tests/bpf-success.c b/tests/bpf-success.c
new file mode 100644
index 0000000..06f4695
--- /dev/null
+++ b/tests/bpf-success.c
@@ -0,0 +1,2 @@
+#define INJECT_RETVAL 42
+#include "bpf.c"
diff --git a/tests/bpf-success.test b/tests/bpf-success.test
new file mode 100755
index 0000000..3cdfd35
--- /dev/null
+++ b/tests/bpf-success.test
@@ -0,0 +1,6 @@
+#!/bin/sh -efu
+
+. "${srcdir=.}/scno_tampering.sh"
+
+run_strace -a20 -e trace=bpf -e inject=bpf:retval=42 ../bpf-success > "$EXP"
+match_diff "$LOG" "$EXP"
diff --git a/tests/bpf.c b/tests/bpf.c
index 72d7e8e..15ce713 100644
--- a/tests/bpf.c
+++ b/tests/bpf.c
@@ -49,6 +49,19 @@
#include "xlat.h"
#include "xlat/bpf_commands.h"
+#if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4
+# define BIG_ADDR(addr64_, addr32_) addr64_
+# 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(addr64_, addr32_) addr64_ " or " addr32_
+# define BIG_ADDR_MAYBE(addr_) addr_ " or "
+#else
+# define BIG_ADDR(addr64_, addr32_) addr32_
+# define BIG_ADDR_MAYBE(addr_)
+#endif
+
#ifndef HAVE_STRUCT_BPF_INSN
struct bpf_insn {
uint8_t code;
@@ -76,6 +89,8 @@
BPF_ATTR_DATA_FIELD(BPF_PROG_GET_FD_BY_ID);
BPF_ATTR_DATA_FIELD(BPF_MAP_GET_FD_BY_ID);
BPF_ATTR_DATA_FIELD(BPF_OBJ_GET_INFO_BY_FD);
+ BPF_ATTR_DATA_FIELD(BPF_PROG_QUERY);
+ BPF_ATTR_DATA_FIELD(BPF_RAW_TRACEPOINT_OPEN);
char char_data[256];
};
@@ -105,7 +120,20 @@
sys_bpf(kernel_ulong_t cmd, kernel_ulong_t attr, kernel_ulong_t size)
{
long rc = syscall(__NR_bpf, cmd, attr, size);
+
errstr = sprintrc(rc);
+
+#ifdef INJECT_RETVAL
+ if (rc != INJECT_RETVAL)
+ error_msg_and_fail("Got a return value of %ld != %d",
+ rc, INJECT_RETVAL);
+
+ static char inj_errstr[4096];
+
+ snprintf(inj_errstr, sizeof(inj_errstr), "%s (INJECTED)", errstr);
+ errstr = inj_errstr;
+#endif
+
return rc;
}
@@ -232,36 +260,173 @@
cmd_check->cmd_str, addr, page_size + 1, errstr);
}
-static const struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
+static void
+init_BPF_MAP_CREATE_attr7(struct bpf_attr_check *check)
+{
+ struct BPF_MAP_CREATE_struct *attr = &check->data.BPF_MAP_CREATE_data;
+ attr->map_ifindex = ifindex_lo();
+}
+
+static struct bpf_attr_check BPF_MAP_CREATE_checks[] = {
{
.data = { .BPF_MAP_CREATE_data = { .map_type = 2 } },
.size = offsetofend(struct BPF_MAP_CREATE_struct, map_type),
.str = "map_type=BPF_MAP_TYPE_ARRAY, key_size=0, value_size=0"
- ", max_entries=0, map_flags=0, inner_map_fd=0"
+ ", max_entries=0"
},
- {
+ { /* 1 */
.data = { .BPF_MAP_CREATE_data = {
- .map_type = 1,
+ .map_type = 16,
.key_size = 4,
.value_size = 8,
.max_entries = 256,
- .map_flags = 7,
+ .map_flags = 63,
.inner_map_fd = -1,
- .numa_node = 42
+ .numa_node = 3141592653,
+ .map_name = "0123456789abcde",
} },
- .size = offsetofend(struct BPF_MAP_CREATE_struct, numa_node),
- .str = "map_type=BPF_MAP_TYPE_HASH, key_size=4"
+ .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8,
+ .str = "map_type=BPF_MAP_TYPE_CPUMAP, key_size=4"
", value_size=8, max_entries=256"
", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU"
- "|BPF_F_NUMA_NODE, inner_map_fd=-1, numa_node=42"
- }
+ "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY"
+ "|BPF_F_STACK_BUILD_ID"
+ ", inner_map_fd=-1"
+ ", numa_node=3141592653"
+ ", map_name=\"0123456\"...",
+
+ },
+ { /* 2 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 17,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xffffffc0,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "",
+ .map_ifindex = 3141592653,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex),
+ .str = "map_type=0x11 /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=0xffffffc0 /* BPF_F_??? */"
+ ", inner_map_fd=-1576685468"
+ ", map_name=\"\", map_ifindex=3141592653",
+
+ },
+ { /* 3 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_flags),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80",
+ },
+ { /* 4 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, inner_map_fd),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468",
+ },
+ { /* 5 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, numa_node),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */",
+ },
+ { /* 6 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "fedcba9876543210",
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_name),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */"
+ ", map_name=\"fedcba987654321\"...",
+ },
+ { /* 7 */
+ .data = { .BPF_MAP_CREATE_data = {
+ .map_type = 0xdeadf00d,
+ .key_size = 0xface1e55,
+ .value_size = 0xbadc0ded,
+ .max_entries = 0xbeefcafe,
+ .map_flags = 0xc0dedead,
+ .inner_map_fd = 2718281828,
+ .numa_node = -1,
+ .map_name = "0123456789abcde",
+ } },
+ .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex),
+ .str = "map_type=0xdeadf00d /* BPF_MAP_TYPE_??? */"
+ ", key_size=4207812181, value_size=3134983661"
+ ", max_entries=3203386110"
+ ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE"
+ "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID"
+ "|0xc0dede80"
+ ", inner_map_fd=-1576685468"
+ ", numa_node=4294967295 /* NUMA_NO_NODE */"
+ ", map_name=\"0123456789abcde\""
+ ", map_ifindex=" IFINDEX_LO_STR,
+ .init_fn = init_BPF_MAP_CREATE_attr7,
+ },
};
static const struct bpf_attr_check BPF_MAP_LOOKUP_ELEM_checks[] = {
{
.data = { .BPF_MAP_LOOKUP_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0, value=0"
+ .str = "map_fd=-1, key=NULL, value=NULL"
},
{
.data = { .BPF_MAP_LOOKUP_ELEM_data = {
@@ -278,7 +443,7 @@
{
.data = { .BPF_MAP_UPDATE_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_UPDATE_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0, value=0, flags=BPF_ANY"
+ .str = "map_fd=-1, key=NULL, value=NULL, flags=BPF_ANY"
},
{
.data = { .BPF_MAP_UPDATE_ELEM_data = {
@@ -297,7 +462,7 @@
{
.data = { .BPF_MAP_DELETE_ELEM_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_DELETE_ELEM_struct, map_fd),
- .str = "map_fd=-1, key=0"
+ .str = "map_fd=-1, key=NULL"
},
{
.data = { .BPF_MAP_DELETE_ELEM_data = {
@@ -313,7 +478,7 @@
{
.data = { .BPF_MAP_GET_NEXT_KEY_data = { .map_fd = -1 } },
.size = offsetofend(struct BPF_MAP_GET_NEXT_KEY_struct, map_fd),
- .str = "map_fd=-1, key=0, next_key=0"
+ .str = "map_fd=-1, key=NULL, next_key=NULL"
},
{
.data = { .BPF_MAP_GET_NEXT_KEY_data = {
@@ -327,30 +492,96 @@
};
static const struct bpf_insn insns[] = {
- { .code = 0x95 }
+ {
+ .code = 0x95,
+ .dst_reg = 10,
+ .src_reg = 11,
+ .off = 0xdead,
+ .imm = 0xbadc0ded,
+ },
};
static const char license[] = "GPL";
-static char log_buf[4096];
static const char pathname[] = "/sys/fs/bpf/foo/bar";
+static char *log_buf;
+/*
+ * This has to be a macro, otherwise the compiler complains that
+ * initializer element is not constant.
+ */
+#define log_buf_size 4096U
+
+static inline char *
+get_log_buf(void)
+{
+ if (!log_buf)
+ log_buf = tail_alloc(log_buf_size);
+ return log_buf;
+}
+
+static inline char *
+get_log_buf_tail(void)
+{
+ return get_log_buf() + log_buf_size;
+}
+
+#if VERBOSE
+# define INSNS_FMT \
+ "[{code=BPF_JMP|BPF_K|BPF_EXIT, dst_reg=BPF_REG_10" \
+ ", src_reg=0xb /* BPF_REG_??? */, off=%d, imm=%#x}]"
+# define INSNS_ARG insns[0].off, insns[0].imm
+#else
+# define INSNS_FMT "%p"
+# define INSNS_ARG insns
+#endif
+
static void
-init_BPF_PROG_LOAD_attr(struct bpf_attr_check *check)
+init_BPF_PROG_LOAD_attr3(struct bpf_attr_check *check)
{
struct BPF_PROG_LOAD_struct *attr = &check->data.BPF_PROG_LOAD_data;
+
attr->insns = (uintptr_t) insns;
attr->license = (uintptr_t) license;
- attr->log_buf = (uintptr_t) log_buf;
+ attr->log_buf = (uintptr_t) get_log_buf_tail();
}
static void
-print_BPF_PROG_LOAD_attr(const struct bpf_attr_check *check, unsigned long addr)
+print_BPF_PROG_LOAD_attr3(const struct bpf_attr_check *check, unsigned long addr)
{
- printf("prog_type=BPF_PROG_TYPE_SOCKET_FILTER, insn_cnt=%u, insns=%p"
- ", license=\"%s\", log_level=42, log_size=4096, log_buf=%p"
+ printf("prog_type=BPF_PROG_TYPE_SOCKET_FILTER, insn_cnt=%u"
+ ", insns=" INSNS_FMT ", license=\"%s\", log_level=2718281828"
+ ", log_size=%u, log_buf=%p"
", kern_version=KERNEL_VERSION(51966, 240, 13)"
- ", prog_flags=BPF_F_STRICT_ALIGNMENT",
- (unsigned int) ARRAY_SIZE(insns), insns,
- license, log_buf);
+ ", prog_flags=0x2 /* BPF_F_??? */"
+ ", prog_name=\"0123456789abcde\"..., prog_ifindex=3203399405",
+ (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license,
+ log_buf_size, get_log_buf_tail());
+}
+
+static void
+init_BPF_PROG_LOAD_attr4(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_LOAD_struct *attr = &check->data.BPF_PROG_LOAD_data;
+
+ attr->insns = (uintptr_t) insns;
+ attr->license = (uintptr_t) license;
+ attr->log_buf = (uintptr_t) get_log_buf();
+ attr->prog_ifindex = ifindex_lo();
+
+ strncpy(log_buf, "log test", 9);
+}
+
+static void
+print_BPF_PROG_LOAD_attr4(const struct bpf_attr_check *check, unsigned long addr)
+{
+ printf("prog_type=BPF_PROG_TYPE_UNSPEC, insn_cnt=%u, insns=" INSNS_FMT
+ ", license=\"%s\", log_level=2718281828, log_size=4"
+ ", log_buf=\"log \"..."
+ ", kern_version=KERNEL_VERSION(51966, 240, 13)"
+ ", prog_flags=BPF_F_STRICT_ALIGNMENT|0x2"
+ ", 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 struct bpf_attr_check BPF_PROG_LOAD_checks[] = {
@@ -358,21 +589,82 @@
.data = { .BPF_PROG_LOAD_data = { .prog_type = 1 } },
.size = offsetofend(struct BPF_PROG_LOAD_struct, prog_type),
.str = "prog_type=BPF_PROG_TYPE_SOCKET_FILTER"
- ", insn_cnt=0, insns=0, license=NULL"
+ ", insn_cnt=0, insns=NULL, license=NULL"
},
- {
+ { /* 1 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 18,
+ .insn_cnt = 0xbadc0ded,
+ .insns = 0,
+ .license = 0,
+ .log_level = 42,
+ .log_size = 3141592653U,
+ .log_buf = 0,
+ .kern_version = 0xcafef00d,
+ .prog_flags = 0,
+ } },
+ .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
+ .str = "prog_type=0x12 /* 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)"
+ ", prog_flags=0",
+ },
+ { /* 2 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 17,
+ .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_RAW_TRACEPOINT"
+ ", 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\"",
+ },
+ { /* 3 */
.data = { .BPF_PROG_LOAD_data = {
.prog_type = 1,
.insn_cnt = ARRAY_SIZE(insns),
- .log_level = 42,
- .log_size = sizeof(log_buf),
+ .log_level = 2718281828U,
+ .log_size = log_buf_size,
.kern_version = 0xcafef00d,
- .prog_flags = 1
+ .prog_flags = 2,
+ .prog_name = "0123456789abcdef",
+ .prog_ifindex = 0xbeeffeed,
} },
- .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags),
- .init_fn = init_BPF_PROG_LOAD_attr,
- .print_fn = print_BPF_PROG_LOAD_attr
- }
+ .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_ifindex),
+ .init_fn = init_BPF_PROG_LOAD_attr3,
+ .print_fn = print_BPF_PROG_LOAD_attr3
+ },
+ { /* 4 */
+ .data = { .BPF_PROG_LOAD_data = {
+ .prog_type = 0,
+ .insn_cnt = ARRAY_SIZE(insns),
+ .log_level = 2718281828U,
+ .log_size = 4,
+ .kern_version = 0xcafef00d,
+ .prog_flags = 3,
+ .prog_name = "0123456789abcdef",
+ .expected_attach_type = 9,
+ } },
+ .size = offsetofend(struct BPF_PROG_LOAD_struct,
+ expected_attach_type),
+ .init_fn = init_BPF_PROG_LOAD_attr4,
+ .print_fn = print_BPF_PROG_LOAD_attr4
+ },
};
static void
@@ -393,16 +685,7 @@
.pathname = 0xFFFFFFFFFFFFFFFFULL
} },
.size = offsetofend(struct BPF_OBJ_PIN_struct, pathname),
- .str = "pathname="
-#if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4
- "0xffffffffffffffff"
-#elif defined __arm__ || defined __i386__ || defined __mips__ || \
- defined __powerpc__ || defined __riscv__ || defined __s390__ \
- || defined __sparc__ || defined __tile__
- "0xffffffffffffffff or 0xffffffff"
-#else
- "0xffffffff"
-#endif
+ .str = "pathname=" BIG_ADDR("0xffffffffffffffff", "0xffffffff")
", bpf_fd=0",
},
{
@@ -468,7 +751,7 @@
.data = { .BPF_PROG_TEST_RUN_data = { .prog_fd = -1 } },
.size = offsetofend(struct BPF_PROG_TEST_RUN_struct, prog_fd),
.str = "test={prog_fd=-1, retval=0, data_size_in=0"
- ", data_size_out=0, data_in=0, data_out=0"
+ ", data_size_out=0, data_in=NULL, data_out=NULL"
", repeat=0, duration=0}"
},
{
@@ -594,7 +877,7 @@
{
.data = { .BPF_OBJ_GET_INFO_BY_FD_data = { .bpf_fd = -1 } },
.size = offsetofend(struct BPF_OBJ_GET_INFO_BY_FD_struct, bpf_fd),
- .str = "info={bpf_fd=-1, info_len=0, info=0}"
+ .str = "info={bpf_fd=-1, info_len=0, info=NULL}"
},
{
.data = { .BPF_OBJ_GET_INFO_BY_FD_data = {
@@ -608,6 +891,194 @@
}
};
+
+static uint32_t prog_load_ids[] = { 0, 1, 0xffffffff, 2718281828, };
+uint32_t *prog_load_ids_ptr;
+
+static void
+init_BPF_PROG_QUERY_attr4(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_QUERY_struct *attr = &check->data.BPF_PROG_QUERY_data;
+
+ if (!prog_load_ids_ptr)
+ prog_load_ids_ptr = tail_memdup(prog_load_ids,
+ sizeof(prog_load_ids));
+
+ attr->prog_ids = (uintptr_t) prog_load_ids_ptr;
+ attr->prog_cnt = ARRAY_SIZE(prog_load_ids);
+}
+
+static void
+print_BPF_PROG_QUERY_attr4(const struct bpf_attr_check *check, unsigned long addr)
+{
+ 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
+ ", prog_ids=[0, 1, 4294967295, 2718281828], prog_cnt=4}"
+#else
+ ", prog_ids=%p, prog_cnt=4}", prog_load_ids_ptr
+#endif
+ );
+}
+
+static void
+init_BPF_PROG_QUERY_attr5(struct bpf_attr_check *check)
+{
+ struct BPF_PROG_QUERY_struct *attr = &check->data.BPF_PROG_QUERY_data;
+
+ if (!prog_load_ids_ptr)
+ prog_load_ids_ptr = tail_memdup(prog_load_ids,
+ sizeof(prog_load_ids));
+
+ attr->prog_ids = (uintptr_t) prog_load_ids_ptr;
+ attr->prog_cnt = ARRAY_SIZE(prog_load_ids) + 1;
+}
+
+static void
+print_BPF_PROG_QUERY_attr5(const struct bpf_attr_check *check, unsigned long addr)
+{
+ 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
+ ", prog_ids=[0, 1, 4294967295, 2718281828, ... /* %p */]"
+ ", prog_cnt=5}",
+ prog_load_ids_ptr + ARRAY_SIZE(prog_load_ids)
+#else
+ ", prog_ids=%p, prog_cnt=5}", prog_load_ids_ptr
+#endif
+ );
+}
+
+static struct bpf_attr_check BPF_PROG_QUERY_checks[] = {
+ {
+ .data = { .BPF_PROG_QUERY_data = { .target_fd = -1 } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, target_fd),
+ .str = "query={target_fd=-1"
+ ", attach_type=BPF_CGROUP_INET_INGRESS, query_flags=0"
+ ", attach_flags=0, prog_ids=NULL, prog_cnt=0}",
+ },
+ { /* 1 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 13,
+ .query_flags = 1,
+ .attach_flags = 3,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, attach_flags),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=BPF_CGROUP_INET6_POST_BIND"
+ ", query_flags=BPF_F_QUERY_EFFECTIVE"
+ ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI"
+ ", prog_ids=NULL, prog_cnt=0}",
+ },
+ { /* 2 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 14,
+ .query_flags = 0xfffffffe,
+ .attach_flags = 0xfffffffc,
+ .prog_ids = 0xffffffffffffffffULL,
+ .prog_cnt = 2718281828,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=0xe /* BPF_??? */"
+ ", query_flags=0xfffffffe /* BPF_F_QUERY_??? */"
+ ", attach_flags=0xfffffffc /* BPF_F_??? */"
+ ", prog_ids="
+ BIG_ADDR("0xffffffffffffffff", "0xffffffff")
+ ", prog_cnt=2718281828}",
+ },
+ { /* 3 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ .prog_ids = 0xffffffffffffffffULL,
+ .prog_cnt = 0,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .str = "query={target_fd=-1153374643"
+ ", attach_type=0xfeedface /* BPF_??? */"
+ ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c"
+ ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc"
+ ", prog_ids=" BIG_ADDR_MAYBE("0xffffffffffffffff") "[]"
+ ", prog_cnt=0}",
+ },
+ { /* 4 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .init_fn = init_BPF_PROG_QUERY_attr4,
+ .print_fn = print_BPF_PROG_QUERY_attr4,
+ },
+ { /* 5 */
+ .data = { .BPF_PROG_QUERY_data = {
+ .target_fd = 3141592653U,
+ .attach_type = 0xfeedface,
+ .query_flags = 0xdeadf00d,
+ .attach_flags = 0xbeefcafe,
+ } },
+ .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt),
+ .init_fn = init_BPF_PROG_QUERY_attr5,
+ .print_fn = print_BPF_PROG_QUERY_attr5,
+ },
+};
+
+
+static void
+init_BPF_RAW_TRACEPOINT_attr2(struct bpf_attr_check *check)
+{
+ /* TODO: test the 128 byte limit */
+ static const char tp_name[] = "0123456789qwertyuiop0123456789qwe";
+
+ struct BPF_RAW_TRACEPOINT_OPEN_struct *attr =
+ &check->data.BPF_RAW_TRACEPOINT_OPEN_data;
+
+ attr->name = (uintptr_t) tp_name;
+}
+
+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}",
+ },
+ { /* 1 */
+ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = {
+ .name = 0xffffffff00000000ULL,
+ .prog_fd = 0xdeadbeef,
+ } },
+ .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct,
+ prog_fd),
+ .str = "raw_tracepoint="
+ "{name=" BIG_ADDR("0xffffffff00000000", "NULL")
+ ", prog_fd=-559038737}",
+ },
+ {
+ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = {
+ .prog_fd = 0xdeadbeef,
+ } },
+ .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct,
+ prog_fd),
+ .init_fn = init_BPF_RAW_TRACEPOINT_attr2,
+ .str = "raw_tracepoint="
+ "{name=\"0123456789qwertyuiop0123456789qw\"..."
+ ", prog_fd=-559038737}",
+ }
+};
+
+
#define CHK(cmd_) \
{ \
cmd_, #cmd_, \
@@ -635,6 +1106,8 @@
CHK(BPF_PROG_GET_FD_BY_ID),
CHK(BPF_MAP_GET_FD_BY_ID),
CHK(BPF_OBJ_GET_INFO_BY_FD),
+ CHK(BPF_PROG_QUERY),
+ CHK(BPF_RAW_TRACEPOINT_OPEN),
};
page_size = get_page_size();
diff --git a/tests/btrfs-X.test b/tests/btrfs-X.test
new file mode 100755
index 0000000..c129be9
--- /dev/null
+++ b/tests/btrfs-X.test
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Check verbose xlat decoding of btrfs ioctl
+
+. "${srcdir=.}/init.sh"
+
+check_prog grep
+run_prog ../btrfs -X > /dev/null
+run_strace -a16 -Xverbose -eioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests/btrfs-vX.test b/tests/btrfs-vX.test
new file mode 100755
index 0000000..163b29f
--- /dev/null
+++ b/tests/btrfs-vX.test
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Check verbose, verbose xlat decoding of btrfs ioctl
+
+. "${srcdir=.}/init.sh"
+
+check_prog grep
+run_prog ../btrfs -v -X > /dev/null
+run_strace -a16 -Xverbose -veioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests/btrfs-vwX.test b/tests/btrfs-vwX.test
new file mode 100755
index 0000000..57c6891
--- /dev/null
+++ b/tests/btrfs-vwX.test
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Check verbose, verbose xlat decoding of btrfs ioctl w/ live ioctls.
+
+# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM
+
+# Typical usage:
+# mkfs.btrfs <dev>
+# mount <dev> /mnt
+# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-vwX"
+# umount /mnt
+
+. "${srcdir=.}/init.sh"
+
+if [ -z "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT not set"
+elif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
+fi
+
+check_prog grep
+run_prog ../btrfs -v -w -X "${BTRFS_MOUNTPOINT}" > /dev/null
+run_strace -a16 -Xverbose -veioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests/btrfs-wX.test b/tests/btrfs-wX.test
new file mode 100755
index 0000000..5fb6949
--- /dev/null
+++ b/tests/btrfs-wX.test
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# Check verbose xlat decoding of btrfs ioctl w/ live ioctls.
+
+# WARNING: USE OF THIS TEST WILL MODIFY AN EXISTING BTRFS FILE SYSTEM
+
+# Typical usage:
+# mkfs.btrfs <dev>
+# mount <dev> /mnt
+# BTRFS_MOUNTPOINT=/mnt make check TESTS="btrfs-wX"
+# umount /mnt
+
+. "${srcdir=.}/init.sh"
+
+if [ -z "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT not set"
+elif [ ! -d "${BTRFS_MOUNTPOINT}" ]; then
+ skip_ "\$BTRFS_MOUNTPOINT does not point to a directory"
+fi
+
+check_prog grep
+run_prog ../btrfs -w -X "${BTRFS_MOUNTPOINT}" > /dev/null
+run_strace -a16 -Xverbose -eioctl $args > "$EXP"
+grep -v '^ioctl([012],' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"
diff --git a/tests/btrfs.c b/tests/btrfs.c
index 415f692..b44bc87 100644
--- a/tests/btrfs.c
+++ b/tests/btrfs.c
@@ -13,6 +13,7 @@
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+#include <sys/sysmacros.h>
#include <sys/vfs.h>
#include <linux/fs.h>
#include <linux/btrfs.h>
@@ -23,6 +24,7 @@
#include "xlat/btrfs_balance_flags.h"
#include "xlat/btrfs_balance_state.h"
#include "xlat/btrfs_compress_types.h"
+#include "xlat/btrfs_cont_reading_from_srcdev_mode.h"
#include "xlat/btrfs_defrag_flags.h"
#include "xlat/btrfs_dev_stats_values.h"
#include "xlat/btrfs_dev_stats_flags.h"
@@ -62,6 +64,11 @@
static int btrfs_test_dir_fd;
static bool verbose;
static bool write_ok;
+static bool verbose_xlat;
+
+static const char *path;
+static const char dir_name_fmt[] = "strace-test-%d";
+static char dir_name[sizeof(dir_name_fmt) + sizeof(int) * 3];
const unsigned char uuid_reference[BTRFS_UUID_SIZE] = {
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
@@ -152,11 +159,61 @@
static const char *
-maybe_print_uint64max(uint64_t val)
+sprint_xlat_(uint32_t val, const char *xlat)
{
- if (val == UINT64_MAX)
- return " /* UINT64_MAX */";
- return "";
+ static char str[256];
+ int ret;
+
+ if (verbose_xlat) {
+ ret = snprintf(str, sizeof(str), "%#x /* %s */", val, xlat);
+
+ if (ret < 0)
+ perror_msg_and_fail("sprint_ioc(%#x, %s)", val, xlat);
+ if ((unsigned) ret >= sizeof(str))
+ error_msg_and_fail("sprint_ioc(%#x, %s): buffer "
+ "overflow", val, xlat);
+
+ return str;
+ }
+
+ return xlat;
+}
+
+#define ioc(x_) sprint_xlat_(x_, #x_)
+
+void
+prfl_btrfs(const struct xlat *xlat, const unsigned long long val,
+ const char *str)
+{
+ if (verbose_xlat && val)
+ printf("%#llx /* ", val);
+ printflags(xlat, val, str);
+ if (verbose_xlat && val)
+ printf(" */");
+}
+
+void
+prxval_btrfs(const struct xlat *xlat, const unsigned long long val,
+ const char *str, bool known)
+{
+ if (verbose_xlat && known)
+ printf("%#llx /* ", val);
+ printxval(xlat, val, str);
+ if (verbose_xlat && known)
+ printf(" */");
+}
+
+static void
+print_uint64(const char *prefix, uint64_t val)
+{
+ if (val == UINT64_MAX) {
+ if (verbose_xlat)
+ printf("%s%" PRIu64 " /* UINT64_MAX */", prefix, val);
+ else
+ printf("%sUINT64_MAX", prefix);
+ } else {
+ printf("%s%" PRIu64, prefix, val);
+ }
}
/* takes highest valid flag bit */
@@ -182,10 +239,10 @@
btrfs_test_trans_ioctls(void)
{
ioctl(-1, BTRFS_IOC_TRANS_START, NULL);
- printf("ioctl(-1, BTRFS_IOC_TRANS_START) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_TRANS_START));
ioctl(-1, BTRFS_IOC_TRANS_END, NULL);
- printf("ioctl(-1, BTRFS_IOC_TRANS_END) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_TRANS_END));
}
/*
@@ -201,14 +258,15 @@
uint64_t u64val = 0xdeadbeefbadc0dedULL;
ioctl(-1, BTRFS_IOC_SYNC, NULL);
- printf("ioctl(-1, BTRFS_IOC_SYNC) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SYNC));
ioctl(-1, BTRFS_IOC_WAIT_SYNC, NULL);
- printf("ioctl(-1, BTRFS_IOC_WAIT_SYNC, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_WAIT_SYNC));
ioctl(-1, BTRFS_IOC_WAIT_SYNC, &u64val);
- printf("ioctl(-1, BTRFS_IOC_WAIT_SYNC, [%" PRIu64
- "]) = -1 EBADF (%m)\n", u64val);
+ printf("ioctl(-1, %s, [%" PRIu64 "]) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_WAIT_SYNC), u64val);
/*
* The live test of BTRFS_IOC_SYNC happens as a part of the test
@@ -220,24 +278,24 @@
btrfs_print_qgroup_inherit(struct btrfs_qgroup_inherit *inherit)
{
printf("{flags=");
- printflags(btrfs_qgroup_inherit_flags, inherit->flags,
+ prfl_btrfs(btrfs_qgroup_inherit_flags, inherit->flags,
"BTRFS_QGROUP_INHERIT_???");
printf(", num_qgroups=%" PRI__u64
", num_ref_copies=%" PRI__u64
", num_excl_copies=%" PRI__u64 ", lim={flags=",
inherit->num_qgroups, inherit->num_ref_copies,
inherit->num_excl_copies);
- printflags(btrfs_qgroup_limit_flags,
+ prfl_btrfs(btrfs_qgroup_limit_flags,
inherit->lim.flags,
"BTRFS_QGROUP_LIMIT_???");
printf(", max_rfer=%" PRI__u64 ", max_excl=%" PRI__u64
", rsv_rfer=%" PRI__u64 ", rsv_excl=%" PRI__u64
- "}, qgroups=",
+ "}, ",
inherit->lim.max_rfer, inherit->lim.max_excl,
inherit->lim.rsv_rfer, inherit->lim.rsv_excl);
if (verbose) {
unsigned int i;
- printf("[");
+ printf("qgroups=[");
for (i = 0; i < inherit->num_qgroups; i++) {
if (i > 0)
printf(", ");
@@ -254,7 +312,7 @@
btrfs_print_vol_args_v2(struct btrfs_ioctl_vol_args_v2 *args, int print_qgroups)
{
printf("{fd=%d, flags=", (int) args->fd);
- printflags(btrfs_snap_flags_v2, args->flags, "BTRFS_SUBVOL_???");
+ prfl_btrfs(btrfs_snap_flags_v2, args->flags, "BTRFS_SUBVOL_???");
if (args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
printf(", size=%" PRI__u64 ", qgroup_inherit=", args->size);
@@ -302,61 +360,64 @@
strcpy(vol_args.name, subvol_name);
ioctl(-1, BTRFS_IOC_SNAP_CREATE, NULL);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE));
ioctl(-1, BTRFS_IOC_SNAP_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE, "
- "{fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, "
- "{fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_DESTROY,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_DESTROY), vol_args.name);
strncpy(vol_args.name, long_subvol_name, BTRFS_PATH_NAME_MAX);
ioctl(-1, BTRFS_IOC_SNAP_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE), vol_args.name);
ioctl(-1, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_SNAP_DESTROY,"
- " {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n", vol_args.name);
+ printf("ioctl(-1, %s, {fd=0, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_DESTROY), vol_args.name);
long_subvol_name = realloc(long_subvol_name, BTRFS_SUBVOL_NAME_MAX);
if (!long_subvol_name)
perror_msg_and_fail("realloc failed");
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SNAP_CREATE_V2));
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
strcpy(vol_args_v2.name, subvol_name);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
strncpy(vol_args_v2.name, long_subvol_name, BTRFS_SUBVOL_NAME_MAX);
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
@@ -364,12 +425,12 @@
strcpy(vol_args_v2.name, subvol_name);
vol_args_v2.qgroup_inherit = bad_pointer;
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 0);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 0);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
@@ -394,31 +455,33 @@
inherit->lim.rsv_excl = u64val;
vol_args_v2.qgroup_inherit = inherit;
- printf("ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SNAP_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, ");
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
ioctl(-1, BTRFS_IOC_SUBVOL_CREATE_V2, &vol_args_v2);
printf(") = -1 EBADF (%m)\n");
ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFAULT_SUBVOL));
ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, &u64val);
- printf("ioctl(-1, BTRFS_IOC_DEFAULT_SUBVOL, [%"
- PRIu64 "]) = -1 EBADF (%m)\n", u64val);
+ printf("ioctl(-1, %s, [%" PRIu64 "]) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFAULT_SUBVOL), u64val);
- printf("ioctl(-1, BTRFS_IOC_SUBVOL_SETFLAGS, ");
- printflags(btrfs_snap_flags_v2, vol_args_v2.flags,
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_SUBVOL_SETFLAGS));
+ prfl_btrfs(btrfs_snap_flags_v2, vol_args_v2.flags,
"BTRFS_SUBVOL_???");
ioctl(-1, BTRFS_IOC_SUBVOL_SETFLAGS, &vol_args_v2.flags);
printf(") = -1 EBADF (%m)\n");
if (write_ok) {
struct btrfs_ioctl_vol_args_v2 args_passed;
+ long ret;
/*
* Returns transid if flags & BTRFS_SUBVOL_CREATE_ASYNC
* - BTRFS_IOC_SNAP_CREATE_V2
@@ -432,11 +495,14 @@
vol_args_v2.size = 0;
vol_args_v2.qgroup_inherit = NULL;
args_passed = vol_args_v2;
- printf("ioctl(%d, BTRFS_IOC_SUBVOL_CREATE_V2, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SUBVOL_CREATE_V2));
btrfs_print_vol_args_v2(&vol_args_v2, 1);
- ioctl(btrfs_test_dir_fd, BTRFS_IOC_SUBVOL_CREATE_V2,
+ ret = ioctl(btrfs_test_dir_fd, BTRFS_IOC_SUBVOL_CREATE_V2,
&args_passed);
+ if (ret < 0)
+ perror_msg_and_fail("ioctl(BTRFS_IOC_SUBVOL_CREATE_V2) "
+ "failed");
printf(" => {transid=%" PRI__u64 "}) = 0\n",
args_passed.transid);
@@ -448,8 +514,8 @@
strncpy(vol_args_v2.name, long_subvol_name, BTRFS_NAME_LEN);
vol_args_v2.fd = subvolfd;
args_passed = vol_args_v2;
- printf("ioctl(%d, BTRFS_IOC_SNAP_CREATE_V2, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_CREATE_V2));
btrfs_print_vol_args_v2(&args_passed, 1);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_CREATE_V2,
&args_passed);
@@ -460,15 +526,15 @@
strncpy(vol_args.name, long_subvol_name, 255);
vol_args.name[255] = 0;
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(%d, BTRFS_IOC_SNAP_DESTROY, "
- "{fd=%d, name=\"%.*s\"}) = 0\n",
- btrfs_test_dir_fd, (int) vol_args.fd, 255, long_subvol_name);
+ printf("ioctl(%d, %s, {fd=%d, name=\"%.*s\"}) = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_DESTROY),
+ (int) vol_args.fd, 255, long_subvol_name);
strcpy(vol_args.name, subvol_name);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SNAP_DESTROY, &vol_args);
- printf("ioctl(%d, BTRFS_IOC_SNAP_DESTROY, "
- "{fd=%d, name=\"%s\"}) = 0\n",
- btrfs_test_dir_fd, (int) vol_args.fd, subvol_name);
+ printf("ioctl(%d, %s, {fd=%d, name=\"%s\"}) = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SNAP_DESTROY),
+ (int) vol_args.fd, subvol_name);
close(subvolfd);
}
@@ -479,19 +545,18 @@
btrfs_print_balance_args(struct btrfs_balance_args *args)
{
printf("{profiles=");
- printflags(btrfs_space_info_flags, args->profiles,
+ prfl_btrfs(btrfs_space_info_flags, args->profiles,
"BTRFS_BLOCK_GROUP_???");
- printf(", usage=%"PRI__u64 "%s, devid=%"PRI__u64 "%s, pstart=%"PRI__u64
- "%s, pend=%"PRI__u64 "%s, vstart=%"PRI__u64 "%s, vend=%"PRI__u64
- "%s, target=%"PRI__u64 "%s, flags=",
- args->usage, maybe_print_uint64max(args->usage),
- args->devid, maybe_print_uint64max(args->devid),
- args->pstart, maybe_print_uint64max(args->pstart),
- args->pend, maybe_print_uint64max(args->pend),
- args->vstart, maybe_print_uint64max(args->vstart),
- args->vend, maybe_print_uint64max(args->vend),
- args->target, maybe_print_uint64max(args->target));
- printflags(btrfs_balance_args, args->flags, "BTRFS_BALANCE_ARGS_???");
+ print_uint64(", usage=", args->usage);
+ printf(", devid=makedev(%u, %u)",
+ major(args->devid), minor(args->devid));
+ print_uint64(", pstart=", args->pstart);
+ print_uint64(", pend=", args->pend);
+ print_uint64(", vstart=", args->vstart);
+ print_uint64(", vend=", args->vend);
+ print_uint64(", target=", args->target);
+ printf(", flags=");
+ prfl_btrfs(btrfs_balance_args, args->flags, "BTRFS_BALANCE_ARGS_???");
printf("}");
}
@@ -531,25 +596,31 @@
struct btrfs_ioctl_vol_args vol_args = {};
ioctl(-1, BTRFS_IOC_BALANCE_CTL, 1);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_CTL, "
- "BTRFS_BALANCE_CTL_PAUSE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, %sBTRFS_BALANCE_CTL_PAUSE%s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_CTL),
+ verbose_xlat ? "0x1 /* " : "",
+ verbose_xlat ? " */" : "");
ioctl(-1, BTRFS_IOC_BALANCE_CTL, 2);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_CTL, "
- "BTRFS_BALANCE_CTL_CANCEL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "%sBTRFS_BALANCE_CTL_CANCEL%s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_CTL),
+ verbose_xlat ? "0x2 /* " : "",
+ verbose_xlat ? " */" : "");
ioctl(-1, BTRFS_IOC_BALANCE, NULL);
- printf("ioctl(-1, BTRFS_IOC_BALANCE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_BALANCE));
ioctl(-1, BTRFS_IOC_BALANCE, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_BALANCE) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_BALANCE));
/* struct btrfs_ioctl_balance_args */
ioctl(-1, BTRFS_IOC_BALANCE_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_BALANCE_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_BALANCE_V2));
- printf("ioctl(-1, BTRFS_IOC_BALANCE_V2, {flags=");
- printflags(btrfs_balance_flags, args.flags, "BTRFS_BALANCE_???");
+ printf("ioctl(-1, %s, {flags=", ioc(BTRFS_IOC_BALANCE_V2));
+ prfl_btrfs(btrfs_balance_flags, args.flags, "BTRFS_BALANCE_???");
printf(", data=");
btrfs_print_balance_args(&args.data);
printf(", meta=");
@@ -560,6 +631,8 @@
printf("}) = -1 EBADF (%m)\n");
if (write_ok) {
+ long ret;
+
args.flags = BTRFS_BALANCE_DATA | BTRFS_BALANCE_METADATA |
BTRFS_BALANCE_SYSTEM;
args.data.flags = 0;
@@ -568,10 +641,18 @@
args.meta.profiles = 0;
args.sys.flags = 0;
args.sys.profiles = 0;
- printf("ioctl(%d, BTRFS_IOC_BALANCE_V2, {flags=",
- btrfs_test_dir_fd);
- printflags(btrfs_balance_flags, args.flags,
+ /*
+ * We should keep args the same for data in meta in case
+ * volume-under-tests uses mixed groups data and metadata.
+ */
+ args.meta.pend = -1ULL;
+ args.meta.vend = -1ULL;
+
+ printf("ioctl(%d, %s, {flags=",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_BALANCE_V2));
+
+ prfl_btrfs(btrfs_balance_flags, args.flags,
"BTRFS_BALANCE_???");
printf(", data=");
btrfs_print_balance_args(&args.data);
@@ -579,20 +660,24 @@
btrfs_print_balance_args(&args.meta);
printf(", sys=");
btrfs_print_balance_args(&args.sys);
- ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args);
- printf("} => {flags=");
- printflags(btrfs_balance_flags, args.flags,
- "BTRFS_BALANCE_???");
- printf(", state=");
- printflags(btrfs_balance_state, args.state,
- "BTRFS_BALANCE_STATE_???");
- printf(", data=");
- btrfs_print_balance_args(&args.data);
- printf(", meta=");
- btrfs_print_balance_args(&args.meta);
- printf(", sys=");
- btrfs_print_balance_args(&args.sys);
- printf("}) = 0\n");
+ ret = ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args);
+ if (ret < 0) {
+ printf("}) = %s\n", sprintrc(ret));
+ } else {
+ printf("} => {flags=");
+ prfl_btrfs(btrfs_balance_flags, args.flags,
+ "BTRFS_BALANCE_???");
+ printf(", state=");
+ prfl_btrfs(btrfs_balance_state, args.state,
+ "BTRFS_BALANCE_STATE_???");
+ printf(", data=");
+ btrfs_print_balance_args(&args.data);
+ printf(", meta=");
+ btrfs_print_balance_args(&args.meta);
+ printf(", sys=");
+ btrfs_print_balance_args(&args.sys);
+ printf("}) = %ld\n", ret);
+ }
}
}
@@ -615,38 +700,35 @@
};
ioctl(-1, BTRFS_IOC_RESIZE, NULL);
- printf("ioctl(-1, BTRFS_IOC_RESIZE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_RESIZE));
strcpy(args.name, devid);
ioctl(-1, BTRFS_IOC_RESIZE, &args);
- printf("ioctl(-1, BTRFS_IOC_RESIZE, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_RESIZE), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_SCAN_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCAN_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCAN_DEV));
strcpy(args.name, devname);
ioctl(-1, BTRFS_IOC_SCAN_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_SCAN_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCAN_DEV), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_ADD_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_ADD_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_ADD_DEV));
ioctl(-1, BTRFS_IOC_ADD_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_ADD_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_ADD_DEV), (int) args.fd, args.name);
ioctl(-1, BTRFS_IOC_RM_DEV, NULL);
- printf("ioctl(-1, BTRFS_IOC_RM_DEV, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_RM_DEV));
ioctl(-1, BTRFS_IOC_RM_DEV, &args);
- printf("ioctl(-1, BTRFS_IOC_RM_DEV, "
- "{fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
- (int) args.fd, args.name);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_RM_DEV), (int) args.fd, args.name);
}
@@ -667,17 +749,21 @@
};
ioctl(-1, BTRFS_IOC_CLONE, clone_fd);
- printf("ioctl(-1, BTRFS_IOC_CLONE or FICLONE, %x) = -1 EBADF (%m)\n",
- clone_fd);
+ printf("ioctl(-1, %s, %x) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE, "BTRFS_IOC_CLONE or FICLONE"),
+ clone_fd);
ioctl(-1, BTRFS_IOC_CLONE_RANGE, NULL);
- printf("ioctl(-1, BTRFS_IOC_CLONE_RANGE or FICLONERANGE, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE_RANGE,
+ "BTRFS_IOC_CLONE_RANGE or FICLONERANGE"));
ioctl(-1, BTRFS_IOC_CLONE_RANGE, &args);
- printf("ioctl(-1, BTRFS_IOC_CLONE_RANGE or FICLONERANGE, "
+ printf("ioctl(-1, %s, "
"{src_fd=%d, src_offset=%" PRI__u64 ", src_length=%" PRI__u64
", dest_offset=%" PRI__u64 "}) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_CLONE_RANGE,
+ "BTRFS_IOC_CLONE_RANGE or FICLONERANGE"),
(int) args.src_fd, args.src_offset, args.src_length,
args.dest_offset);
}
@@ -686,16 +772,17 @@
#define BTRFS_INVALID_COMPRESS (BTRFS_COMPRESS_TYPES + 1)
static void
-btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args)
+btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args,
+ bool compress_type_known)
{
- printf("{start=%" PRIu64 ", len=%" PRIu64 "%s, flags=",
- (uint64_t) args->start, (uint64_t) args->len,
- maybe_print_uint64max(args->len));
+ printf("{start=%" PRIu64, (uint64_t) args->start);
+ print_uint64(", len=", args->len);
- printflags(btrfs_defrag_flags, args->flags, "BTRFS_DEFRAG_RANGE_???");
+ printf(", flags=");
+ prfl_btrfs(btrfs_defrag_flags, args->flags, "BTRFS_DEFRAG_RANGE_???");
printf(", extent_thresh=%u, compress_type=", args->extent_thresh);
- printxval(btrfs_compress_types, args->compress_type,
- "BTRFS_COMPRESS_???");
+ prxval_btrfs(btrfs_compress_types, args->compress_type,
+ "BTRFS_COMPRESS_???", compress_type_known);
printf("}");
}
@@ -721,29 +808,30 @@
* actually consume it.
*/
ioctl(-1, BTRFS_IOC_DEFRAG, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEFRAG));
ioctl(-1, BTRFS_IOC_DEFRAG, &vol_args);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEFRAG));
/* struct btrfs_ioctl_defrag_range_args */
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEFRAG_RANGE));
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, true);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
args.compress_type = BTRFS_INVALID_COMPRESS;
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, false);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
args.len--;
- printf("ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, ");
- btrfs_print_defrag_range_args(&args);
+ printf("ioctl(-1, %s, ", ioc(BTRFS_IOC_DEFRAG_RANGE));
+ btrfs_print_defrag_range_args(&args, false);
ioctl(-1, BTRFS_IOC_DEFRAG_RANGE, &args);
printf(") = -1 EBADF (%m)\n");
}
@@ -761,18 +849,28 @@
btrfs_print_objectid(uint64_t objectid)
{
const char *str = xlookup(btrfs_tree_objectids, objectid);
- printf("%" PRIu64, objectid);
- if (str)
- printf(" /* %s */", str);
+ if (str) {
+ if (verbose_xlat)
+ printf("%" PRIu64 " /* %s */", objectid, str);
+ else
+ printf("%s", str);
+ } else {
+ printf("%" PRIu64, objectid);
+ }
}
static void
btrfs_print_key_type(uint32_t type)
{
const char *str = xlookup(btrfs_key_types, type);
- printf("%u", type);
- if (str)
- printf(" /* %s */", str);
+ if (str) {
+ if (verbose_xlat)
+ printf("%u /* %s */", type, str);
+ else
+ printf("%s", str);
+ } else {
+ printf("%u", type);
+ }
}
static void
@@ -788,18 +886,10 @@
printf(", max_objectid=");
btrfs_print_objectid(key->max_objectid);
}
- if (key->min_offset)
- printf(", min_offset=%" PRI__u64 "%s",
- key->min_offset, maybe_print_uint64max(key->min_offset));
- if (key->max_offset)
- printf(", max_offset=%" PRI__u64 "%s",
- key->max_offset, maybe_print_uint64max(key->max_offset));
- if (key->min_transid)
- printf(", min_transid=%" PRI__u64 "%s", key->min_transid,
- maybe_print_uint64max(key->min_transid));
- if (key->max_transid)
- printf(", max_transid=%" PRI__u64 "%s", key->max_transid,
- maybe_print_uint64max(key->max_transid));
+ print_uint64(", min_offset=", key->min_offset);
+ print_uint64(", max_offset=", key->max_offset);
+ print_uint64(", min_transid=", key->min_transid);
+ print_uint64(", max_transid=", key->max_transid);
printf(", min_type=");
btrfs_print_key_type(key->min_type);
printf(", max_type=");
@@ -814,7 +904,7 @@
if (verbose) {
uint64_t i;
uint64_t off = 0;
- printf("[");
+ printf("buf=[");
for (i = 0; i < key->nr_items; i++) {
struct btrfs_ioctl_search_header *sh;
sh = (typeof(sh))(buf + off);
@@ -859,19 +949,21 @@
};
ioctl(-1, BTRFS_IOC_TREE_SEARCH, NULL);
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_TREE_SEARCH));
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, NULL);
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_TREE_SEARCH_V2));
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -880,13 +972,13 @@
key_reference.min_objectid = 6;
key_reference.max_objectid = 7;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -895,13 +987,13 @@
key_reference.min_offset++;
key_reference.max_offset--;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -910,13 +1002,13 @@
key_reference.min_transid++;
key_reference.max_transid--;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -925,13 +1017,13 @@
key_reference.min_type = 1;
key_reference.max_type = 12;
search_args.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH, &search_args);
printf("}) = -1 EBADF (%m)\n");
search_args_v2.key = key_reference;
- printf("ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, {");
+ printf("ioctl(-1, %s, {", ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&search_args_v2.key);
ioctl(-1, BTRFS_IOC_TREE_SEARCH_V2, &search_args_v2);
printf(", buf_size=%" PRIu64 "}) = -1 EBADF (%m)\n",
@@ -950,11 +1042,11 @@
key_reference.max_offset = -1ULL;
search_args.key = key_reference;
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH));
btrfs_print_search_key(&search_args.key);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH, &search_args);
- printf("} => {key={nr_items=%u}, buf=",
+ printf("} => {key={nr_items=%u}, ",
search_args.key.nr_items);
btrfs_print_tree_search_buf(&search_args.key, search_args.buf,
sizeof(search_args.buf));
@@ -966,12 +1058,12 @@
args->key = key_reference;
args->buf_size = bufsize;
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH_V2, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&key_reference);
printf(", buf_size=%" PRIu64 "}", (uint64_t) args->buf_size);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH_V2, args);
- printf(" => {key={nr_items=%u}, buf_size=%" PRIu64 ", buf=",
+ printf(" => {key={nr_items=%u}, buf_size=%" PRIu64 ", ",
args->key.nr_items, (uint64_t)args->buf_size);
btrfs_print_tree_search_buf(&args->key, args->buf,
args->buf_size);
@@ -979,8 +1071,8 @@
args->key = key_reference;
args->buf_size = sizeof(struct btrfs_ioctl_search_header);
- printf("ioctl(%d, BTRFS_IOC_TREE_SEARCH_V2, {",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_TREE_SEARCH_V2));
btrfs_print_search_key(&args->key);
printf(", buf_size=%" PRIu64 "}", (uint64_t)args->buf_size);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_TREE_SEARCH_V2, args);
@@ -1003,9 +1095,10 @@
};
ioctl(-1, BTRFS_IOC_INO_LOOKUP, NULL);
- printf("ioctl(-1, BTRFS_IOC_INO_LOOKUP, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_INO_LOOKUP));
- printf("ioctl(-1, BTRFS_IOC_INO_LOOKUP, {treeid=");
+ printf("ioctl(-1, %s, {treeid=", ioc(BTRFS_IOC_INO_LOOKUP));
btrfs_print_objectid(args.treeid);
printf(", objectid=");
btrfs_print_objectid(args.objectid);
@@ -1013,8 +1106,8 @@
printf("}) = -1 EBADF (%m)\n");
if (btrfs_test_root) {
- printf("ioctl(%d, BTRFS_IOC_INO_LOOKUP, {treeid=",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, {treeid=",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_INO_LOOKUP));
btrfs_print_objectid(args.treeid);
printf(", objectid=");
btrfs_print_objectid(args.objectid);
@@ -1033,20 +1126,20 @@
struct btrfs_ioctl_space_args args = {};
ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL);
- printf("ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SPACE_INFO));
ioctl(-1, BTRFS_IOC_SPACE_INFO, &args);
- printf("ioctl(-1, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}) = -1 EBADF (%m)\n",
- args.space_slots);
+ printf("ioctl(-1, %s, {space_slots=%" PRI__u64 "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SPACE_INFO), args.space_slots);
if (btrfs_test_root) {
struct btrfs_ioctl_space_args args_passed;
struct btrfs_ioctl_space_args *argsp;
args_passed = args;
- printf("ioctl(%d, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}",
- btrfs_test_dir_fd, args_passed.space_slots);
+ printf("ioctl(%d, %s, {space_slots=%" PRI__u64 "}",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SPACE_INFO),
+ args_passed.space_slots);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SPACE_INFO, &args_passed);
printf(" => {total_spaces=%" PRI__u64 "}) = 0\n",
args_passed.total_spaces);
@@ -1058,22 +1151,22 @@
*argsp = args;
argsp->space_slots = args_passed.total_spaces;
- printf("ioctl(%d, BTRFS_IOC_SPACE_INFO, "
- "{space_slots=%" PRI__u64 "}",
- btrfs_test_dir_fd, argsp->space_slots);
+ printf("ioctl(%d, %s, {space_slots=%" PRI__u64 "}",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SPACE_INFO),
+ argsp->space_slots);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SPACE_INFO, argsp);
- printf(" => {total_spaces=%" PRI__u64 ", spaces=",
+ printf(" => {total_spaces=%" PRI__u64 ", ",
argsp->total_spaces);
if (verbose) {
unsigned int i;
- printf("[");
+ printf("spaces=[");
for (i = 0; i < argsp->total_spaces; i++) {
struct btrfs_ioctl_space_info *info;
info = &argsp->spaces[i];
if (i)
printf(", ");
printf("{flags=");
- printflags(btrfs_space_info_flags, info->flags,
+ prfl_btrfs(btrfs_space_info_flags, info->flags,
"BTRFS_SPACE_INFO_???");
printf(", total_bytes=%" PRI__u64
", used_bytes=%" PRI__u64 "}",
@@ -1106,25 +1199,28 @@
};
ioctl(-1, BTRFS_IOC_SCRUB, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SCRUB));
ioctl(-1, BTRFS_IOC_SCRUB_CANCEL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_CANCEL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SCRUB_CANCEL));
- printf("ioctl(-1, BTRFS_IOC_SCRUB, {devid=%" PRI__u64 ", start=%"
- PRI__u64 "%s, end=%" PRI__u64 "%s, flags=",
- args.devid, args.start, maybe_print_uint64max(args.start),
- args.end, maybe_print_uint64max(args.end));
- printflags(btrfs_scrub_flags, args.flags, "BTRFS_SCRUB_???");
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)",
+ ioc(BTRFS_IOC_SCRUB), major(args.devid), minor(args.devid));
+ print_uint64(", start=", args.start);
+ print_uint64(", end=", args.end);
+ printf(", flags=");
+ prfl_btrfs(btrfs_scrub_flags, args.flags, "BTRFS_SCRUB_???");
ioctl(-1, BTRFS_IOC_SCRUB, &args);
printf("}) = -1 EBADF (%m)\n");
ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, NULL);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCRUB_PROGRESS));
ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, &args);
- printf("ioctl(-1, BTRFS_IOC_SCRUB_PROGRESS, "
- "{devid=%" PRI__u64 "}) = -1 EBADF (%m)\n", args.devid);
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SCRUB_PROGRESS),
+ major(args.devid), minor(args.devid));
}
/*
@@ -1140,12 +1236,14 @@
memcpy(&args.uuid, uuid_reference, BTRFS_UUID_SIZE);
ioctl(-1, BTRFS_IOC_DEV_INFO, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEV_INFO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_INFO));
ioctl(-1, BTRFS_IOC_DEV_INFO, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_INFO, "
- "{devid=%" PRI__u64 ", uuid=%s}) = -1 EBADF (%m)\n",
- args.devid, uuid_reference_string);
+ printf("ioctl(-1, %s, "
+ "{devid=makedev(%u, %u), uuid=%s}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_INFO), major(args.devid), minor(args.devid),
+ uuid_reference_string);
}
/*
@@ -1177,32 +1275,32 @@
ioctl(-1, BTRFS_IOC_INO_PATHS, NULL);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_INO_PATHS));
ioctl(-1, BTRFS_IOC_LOGICAL_INO, NULL);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_LOGICAL_INO));
ioctl(-1, BTRFS_IOC_INO_PATHS, &args);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(-1, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=NULL}) = -1 EBADF (%m)\n",
- args.inum, args.size);
+ ioc(BTRFS_IOC_INO_PATHS), args.inum, args.size);
args.fspath = (uintptr_t) buf;
ioctl(-1, BTRFS_IOC_INO_PATHS, &args);
- printf("ioctl(-1, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(-1, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=0x%" PRI__x64 "}) = -1 EBADF (%m)\n",
- args.inum, args.size, args.fspath);
+ ioc(BTRFS_IOC_INO_PATHS), args.inum, args.size, args.fspath);
args.fspath = 0;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", reserved=[0xdeadc0defacefeeb"
", 0xdeadc0defacefeec, 0xdeadc0defacefeed]"
", flags=0xdeadc0defacefeee /* BTRFS_LOGICAL_INO_ARGS_??? */"
", inodes=NULL}) = -1 EBADF (%m)\n",
- args.inum, args.size);
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size);
args.fspath = (uintptr_t) buf;
args.reserved[0] = 0;
@@ -1215,11 +1313,13 @@
1;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", reserved=[0, 0xdeadc0defacefeec, 0]"
- ", flags=BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET"
+ ", flags=%sBTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET%s"
", inodes=0x%" PRI__x64 "}) = -1 EBADF (%m)\n",
- args.inum, args.size, args.fspath);
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size,
+ verbose_xlat ? "0x1 /* " : "", verbose_xlat ? " */" : "",
+ args.fspath);
args.reserved[1] = 0;
#ifdef HAVE_BTRFS_IOCTL_LOGICAL_INO_ARGS
@@ -1230,9 +1330,10 @@
0;
ioctl(-1, BTRFS_IOC_LOGICAL_INO, &args);
- printf("ioctl(-1, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(-1, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", flags=0, inodes=0x%" PRI__x64
- "}) = -1 EBADF (%m)\n", args.inum, args.size, args.fspath);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_LOGICAL_INO), args.inum, args.size, args.fspath);
#ifdef HAVE_LINUX_FIEMAP_H
if (btrfs_test_root) {
@@ -1248,17 +1349,16 @@
perror_msg_and_fail("fstat failed");
args.inum = si.st_ino;
- printf("ioctl(%d, BTRFS_IOC_INO_PATHS, "
- "{inum=%" PRI__u64 ", size=%" PRI__u64
+ printf("ioctl(%d, %s, {inum=%" PRI__u64 ", size=%" PRI__u64
", fspath=0x%" PRI__x64 "}",
- btrfs_test_dir_fd, args.inum, args.size,
- args.fspath);
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_INO_PATHS),
+ args.inum, args.size, args.fspath);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_INO_PATHS, &args);
- printf(" => {fspath={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, val=",
+ printf(" => {fspath={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, ",
data->bytes_left, data->bytes_missing, data->elem_cnt,
data->elem_missed);
if (verbose) {
- printf("[\"strace-test\"]");
+ printf("val=[\"%s\"]", dir_name);
} else
printf("...");
printf("}}) = 0\n");
@@ -1280,7 +1380,7 @@
*/
fsync(fd);
ioctl(fd, BTRFS_IOC_SYNC, NULL);
- printf("ioctl(%d, BTRFS_IOC_SYNC) = 0\n", fd);
+ printf("ioctl(%d, %s) = 0\n", fd, ioc(BTRFS_IOC_SYNC));
size = sizeof(*fiemap) + 2 * sizeof(fiemap->fm_extents[0]);
fiemap = malloc(size);
@@ -1292,18 +1392,19 @@
fiemap->fm_extent_count = 2;
/* This is also a live test for FIEMAP */
- printf("ioctl(%d, FS_IOC_FIEMAP, {fm_start=%" PRI__u64
+ printf("ioctl(%d, %s, {fm_start=%" PRI__u64
", fm_length=%" PRI__u64 ", fm_flags=",
- fd, fiemap->fm_start, fiemap->fm_length);
- printflags(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
+ fd, ioc(FS_IOC_FIEMAP),
+ fiemap->fm_start, fiemap->fm_length);
+ prfl_btrfs(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
printf(", fm_extent_count=%u}", fiemap->fm_extent_count);
ioctl(fd, FS_IOC_FIEMAP, fiemap);
printf(" => {fm_flags=");
- printflags(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
- printf(", fm_mapped_extents=%u, fm_extents=",
+ prfl_btrfs(fiemap_flags, fiemap->fm_flags, "FIEMAP_FLAG_???");
+ printf(", fm_mapped_extents=%u, ",
fiemap->fm_mapped_extents);
if (verbose) {
- printf("[");
+ printf("fm_extents=[");
unsigned int i;
for (i = 0; i < fiemap->fm_mapped_extents; i++) {
struct fiemap_extent *fe;
@@ -1316,7 +1417,7 @@
", ",
fe->fe_logical, fe->fe_physical,
fe->fe_length);
- printflags(fiemap_extent_flags, fe->fe_flags,
+ prfl_btrfs(fiemap_extent_flags, fe->fe_flags,
"FIEMAP_EXTENT_???");
printf("}");
}
@@ -1326,15 +1427,16 @@
printf("}) = 0\n");
args.inum = fiemap->fm_extents[0].fe_physical;
- printf("ioctl(%d, BTRFS_IOC_LOGICAL_INO, {logical=%" PRI__u64
+ printf("ioctl(%d, %s, {logical=%" PRI__u64
", size=%" PRI__u64 ", flags=0, inodes=0x%" PRI__x64 "}",
- fd, args.inum, args.size, args.fspath);
+ fd, ioc(BTRFS_IOC_LOGICAL_INO),
+ args.inum, args.size, args.fspath);
ioctl(fd, BTRFS_IOC_LOGICAL_INO, &args);
- printf(" => {inodes={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, val=",
+ printf(" => {inodes={bytes_left=%u, bytes_missing=%u, elem_cnt=%u, elem_missed=%u, ",
data->bytes_left, data->bytes_missing, data->elem_cnt,
data->elem_missed);
if (verbose) {
- printf("[{inum=%llu, offset=0, root=5}]",
+ printf("val=[{inum=%llu, offset=0, root=5}]",
(unsigned long long) si.st_ino);
} else
printf("...");
@@ -1359,18 +1461,23 @@
.nsec = 12345,
},
};
+ int saved_errno;
+
memcpy(&args.uuid, uuid_reference, BTRFS_UUID_SIZE);
ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_RECEIVED_SUBVOL));
ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, &args);
- printf("ioctl(-1, BTRFS_IOC_SET_RECEIVED_SUBVOL, "
- "{uuid=%s, stransid=%" PRI__u64 ", stime=%" PRI__u64
- ".%u, flags=0}) = -1 EBADF (%m)\n",
- uuid_reference_string, args.stransid, args.stime.sec,
- args.stime.nsec);
+ saved_errno = errno;
+ printf("ioctl(-1, %s, {uuid=%s, stransid=%" PRI__u64
+ ", stime={sec=%" PRI__u64 ", nsec=%u}",
+ ioc(BTRFS_IOC_SET_RECEIVED_SUBVOL), uuid_reference_string,
+ args.stransid, args.stime.sec, args.stime.nsec);
+ print_time_t_nsec(args.stime.sec, args.stime.nsec, true);
+ errno = saved_errno;
+ printf(", flags=0}) = -1 EBADF (%m)\n");
}
/*
@@ -1388,29 +1495,25 @@
};
ioctl(-1, BTRFS_IOC_SEND, NULL);
- printf("ioctl(-1, BTRFS_IOC_SEND, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_SEND));
- printf("ioctl(-1, BTRFS_IOC_SEND, "
- "{send_fd=%d, clone_sources_count=%" PRI__u64
- ", clone_sources=",
+ printf("ioctl(-1, %s, {send_fd=%d, clone_sources_count=%" PRI__u64
+ ", clone_sources=NULL",
+ ioc(BTRFS_IOC_SEND),
(int) args.send_fd, args.clone_sources_count);
- if (verbose)
- printf("NULL");
- else
- printf("...");
printf(", parent_root=");
btrfs_print_objectid(args.parent_root);
printf(", flags=");
- printflags(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
+ prfl_btrfs(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
ioctl(-1, BTRFS_IOC_SEND, &args);
printf("}) = -1 EBADF (%m)\n");
args.clone_sources_count = 2;
args.clone_sources = (__u64 *) (void *) u64_array;
- printf("ioctl(-1, BTRFS_IOC_SEND, "
- "{send_fd=%d, clone_sources_count=%" PRI__u64
+ printf("ioctl(-1, %s, {send_fd=%d, clone_sources_count=%" PRI__u64
", clone_sources=",
+ ioc(BTRFS_IOC_SEND),
(int) args.send_fd, args.clone_sources_count);
if (verbose) {
printf("[");
@@ -1419,11 +1522,11 @@
btrfs_print_objectid(u64_array[1]);
printf("]");
} else
- printf("...");
+ printf("%p", args.clone_sources);
printf(", parent_root=");
btrfs_print_objectid(args.parent_root);
printf(", flags=");
- printflags(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
+ prfl_btrfs(btrfs_send_flags, args.flags, "BTRFS_SEND_FLAGS_???");
ioctl(-1, BTRFS_IOC_SEND, &args);
printf("}) = -1 EBADF (%m)\n");
}
@@ -1440,26 +1543,37 @@
};
ioctl(-1, BTRFS_IOC_QUOTA_CTL, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL));
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_ENABLE}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_QUOTA_CTL_ENABLE%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x1 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 2;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_DISABLE}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_QUOTA_CTL_DISABLE%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x2 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 3;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "BTRFS_QUOTA_CTL_RESCAN__NOTUSED}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "{cmd=%sBTRFS_QUOTA_CTL_RESCAN__NOTUSED%s}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL),
+ verbose_xlat ? "0x3 /* " : "",
+ verbose_xlat ? " */" : "");
args.cmd = 4;
ioctl(-1, BTRFS_IOC_QUOTA_CTL, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_CTL, "
- "0x4 /* BTRFS_QUOTA_CTL_??? */}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, "
+ "{cmd=0x4 /* BTRFS_QUOTA_CTL_??? */}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_CTL));
}
/*
@@ -1476,12 +1590,14 @@
};
ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, NULL);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_ASSIGN));
ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, &args);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_ASSIGN, "
+ printf("ioctl(-1, %s, "
"{assign=%" PRI__u64 ", src=%" PRI__u64 ", dst=%" PRI__u64
- "}) = -1 EBADF (%m)\n", args.assign, args.src, args.dst);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_ASSIGN), args.assign, args.src, args.dst);
}
/*
@@ -1497,12 +1613,13 @@
};
ioctl(-1, BTRFS_IOC_QGROUP_CREATE, NULL);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_CREATE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_QGROUP_CREATE));
ioctl(-1, BTRFS_IOC_QGROUP_CREATE, &args);
- printf("ioctl(-1, BTRFS_IOC_QGROUP_CREATE, "
+ printf("ioctl(-1, %s, "
"{create=%" PRI__u64 ", qgroupid=%" PRI__u64
- "}) = -1 EBADF (%m)\n", args.create, args.qgroupid);
+ "}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QGROUP_CREATE), args.create, args.qgroupid);
}
/*
@@ -1519,13 +1636,15 @@
};
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN));
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, &args);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN, "
- "{flags=0}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {flags=0}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN));
ioctl(-1, BTRFS_IOC_QUOTA_RESCAN_WAIT, NULL);
- printf("ioctl(-1, BTRFS_IOC_QUOTA_RESCAN_WAIT) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_QUOTA_RESCAN_WAIT));
}
@@ -1542,20 +1661,21 @@
char label[BTRFS_LABEL_SIZE] = "btrfs-label";
ioctl(-1, BTRFS_IOC_SET_FSLABEL, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_FSLABEL, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FSLABEL));
ioctl(-1, BTRFS_IOC_SET_FSLABEL, label);
- printf("ioctl(-1, BTRFS_IOC_SET_FSLABEL, \"%s\") = -1 EBADF (%m)\n",
- label);
+ printf("ioctl(-1, %s, \"%s\") = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FSLABEL), label);
if (write_ok) {
ioctl(btrfs_test_dir_fd, BTRFS_IOC_SET_FSLABEL, label);
- printf("ioctl(%d, BTRFS_IOC_SET_FSLABEL, \"%s\") = 0\n",
- btrfs_test_dir_fd, label);
+ printf("ioctl(%d, %s, \"%s\") = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_SET_FSLABEL), label);
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_FSLABEL, label);
- printf("ioctl(%d, BTRFS_IOC_GET_FSLABEL, \"%s\") = 0\n",
- btrfs_test_dir_fd, label);
+ printf("ioctl(%d, %s, \"%s\") = 0\n",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_FSLABEL), label);
}
}
@@ -1573,12 +1693,13 @@
};
ioctl(-1, BTRFS_IOC_GET_DEV_STATS, NULL);
- printf("ioctl(-1, BTRFS_IOC_GET_DEV_STATS, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_GET_DEV_STATS));
- printf("ioctl(-1, BTRFS_IOC_GET_DEV_STATS, {devid=%" PRI__u64
- ", nr_items=%" PRI__u64 ", flags=",
- args.devid, args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ printf("ioctl(-1, %s, {devid=makedev(%u, %u)"
+ ", nr_items=%" PRI__u64 ", flags=",
+ ioc(BTRFS_IOC_GET_DEV_STATS),
+ major(args.devid), minor(args.devid), args.nr_items);
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
ioctl(-1, BTRFS_IOC_GET_DEV_STATS, &args);
printf("}) = -1 EBADF (%m)\n");
@@ -1586,24 +1707,33 @@
if (write_ok) {
unsigned int i;
args.flags = BTRFS_DEV_STATS_RESET;
- printf("ioctl(%d, BTRFS_IOC_GET_DEV_STATS, {devid=%" PRI__u64
+ printf("ioctl(%d, %s, {devid=makedev(%u, %u)"
", nr_items=%" PRI__u64 ", flags=",
- btrfs_test_dir_fd, args.devid, args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_DEV_STATS),
+ major(args.devid), minor(args.devid), args.nr_items);
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_DEV_STATS, &args);
printf("} => {nr_items=%" PRI__u64 ", flags=",
args.nr_items);
- printflags(btrfs_dev_stats_flags, args.flags,
+ prfl_btrfs(btrfs_dev_stats_flags, args.flags,
"BTRFS_DEV_STATS_???");
printf(", [");
for (i = 0; i < args.nr_items; i++) {
const char *name = xlookup(btrfs_dev_stats_values, i);
if (i)
printf(", ");
+
+ if (name) {
+ if (verbose_xlat)
+ printf("[%u /* %s */] = ", i, name);
+ else
+ printf("[%s] = ", name);
+ } else {
+ printf("[%u] = ", i);
+ }
+
printf("%" PRI__u64, args.values[i]);
- if (name)
- printf(" /* %s */", name);
}
printf("]}) = 0\n");
}
@@ -1627,22 +1757,38 @@
/* struct btrfs_ioctl_dev_replace_args */
ioctl(-1, BTRFS_IOC_DEV_REPLACE, NULL);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_DEV_REPLACE));
- ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, "
- "{cmd=BTRFS_IOCTL_DEV_REPLACE_CMD_START, start={srcdevid=%"
- PRI__u64 ", cont_reading_from_srcdev_mode=%" PRI__u64
- ", srcdev_name=\"%s\", tgtdev_name=\"%s\"}}) = -1 EBADF (%m)\n",
- args.start.srcdevid,
- args.start.cont_reading_from_srcdev_mode,
- (char *)args.start.srcdev_name,
- (char *)args.start.tgtdev_name);
+ for (unsigned long i = 0; i < 3; i++) {
+ int saved_errno;
+
+ args.start.cont_reading_from_srcdev_mode = i;
+ ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
+ saved_errno = errno;
+ printf("ioctl(-1, %s, "
+ "{cmd=%sBTRFS_IOCTL_DEV_REPLACE_CMD_START%s"
+ ", start={srcdevid=makedev(%u, %u)"
+ ", cont_reading_from_srcdev_mode=",
+ ioc(BTRFS_IOC_DEV_REPLACE),
+ verbose_xlat ? "0 /* " : "", verbose_xlat ? " */" : "",
+ major(args.start.srcdevid), minor(args.start.srcdevid));
+ prxval_btrfs(btrfs_cont_reading_from_srcdev_mode,
+ args.start.cont_reading_from_srcdev_mode,
+ "BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV"
+ "_MODE_???", i < 2);
+ errno = saved_errno;
+ printf(", srcdev_name=\"%s\", tgtdev_name=\"%s\"}}) "
+ "= -1 EBADF (%m)\n",
+ (char *)args.start.srcdev_name,
+ (char *)args.start.tgtdev_name);
+ }
args.cmd = 1;
ioctl(-1, BTRFS_IOC_DEV_REPLACE, &args);
- printf("ioctl(-1, BTRFS_IOC_DEV_REPLACE, "
- "{cmd=BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS}) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, {cmd=%sBTRFS_IOCTL_DEV_REPLACE_CMD_STATUS%s}) "
+ "= -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_DEV_REPLACE),
+ verbose_xlat ? "0x1 /* " : "", verbose_xlat ? " */" : "");
}
static void
@@ -1656,13 +1802,16 @@
struct file_dedupe_range *argsp;
ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME, NULL);
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
- "NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"));
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(-1, %s, "
"{src_offset=%" PRIu64
", src_length=%" PRIu64
", dest_count=%hu, info=[]",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"),
(uint64_t)args.src_offset,
(uint64_t)args.src_length, args.dest_count);
ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME, &args);
@@ -1682,10 +1831,12 @@
argsp->info[2].dest_fd = 2;
argsp->info[2].dest_offset = 20480;
- printf("ioctl(-1, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(-1, %s, "
"{src_offset=%" PRIu64
", src_length=%" PRIu64
", dest_count=%hu, info=",
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE"),
(int64_t)argsp->src_offset,
(uint64_t)argsp->src_length, argsp->dest_count);
printf("[{dest_fd=%" PRId64 ", dest_offset=%" PRIu64
@@ -1744,9 +1895,12 @@
argsp->info[2].dest_fd = fd2;
argsp->info[2].dest_offset = 20480;
- printf("ioctl(%d, BTRFS_IOC_FILE_EXTENT_SAME or FIDEDUPERANGE, "
+ printf("ioctl(%d, %s, "
"{src_offset=%" PRIu64 ", src_length=%" PRIu64
", dest_count=%hu, info=", fd1,
+ sprint_xlat_(BTRFS_IOC_FILE_EXTENT_SAME,
+ "BTRFS_IOC_FILE_EXTENT_SAME"
+ " or FIDEDUPERANGE"),
(uint64_t)argsp->src_offset,
(uint64_t)argsp->src_length, argsp->dest_count);
printf("[{dest_fd=%" PRId64 ", dest_offset=%" PRIu64
@@ -1797,11 +1951,11 @@
"BTRFS_FEATURE_COMPAT_???");
printf(", compat_ro_flags=");
- printflags(btrfs_features_compat_ro, flags->compat_ro_flags,
+ prfl_btrfs(btrfs_features_compat_ro, flags->compat_ro_flags,
"BTRFS_FEATURE_COMPAT_RO_???");
printf(", incompat_flags=");
- printflags(btrfs_features_incompat, flags->incompat_flags,
+ prfl_btrfs(btrfs_features_incompat, flags->incompat_flags,
"BTRFS_FEATURE_INCOMPAT_???");
printf("}");
}
@@ -1831,9 +1985,10 @@
struct btrfs_ioctl_feature_flags supported_features[3];
ioctl(-1, BTRFS_IOC_SET_FEATURES, NULL);
- printf("ioctl(-1, BTRFS_IOC_SET_FEATURES, NULL) = -1 EBADF (%m)\n");
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_SET_FEATURES));
- printf("ioctl(-1, BTRFS_IOC_SET_FEATURES, [");
+ printf("ioctl(-1, %s, [", ioc(BTRFS_IOC_SET_FEATURES));
btrfs_print_features(&args[0]);
printf(", ");
btrfs_print_features(&args[1]);
@@ -1841,8 +1996,8 @@
printf("]) = -1 EBADF (%m)\n");
if (btrfs_test_root) {
- printf("ioctl(%d, BTRFS_IOC_GET_FEATURES, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd, ioc(BTRFS_IOC_GET_FEATURES));
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_FEATURES,
&supported_features);
btrfs_print_features(&supported_features[0]);
@@ -1850,8 +2005,9 @@
ioctl(btrfs_test_dir_fd, BTRFS_IOC_GET_SUPPORTED_FEATURES,
&supported_features);
- printf("ioctl(%d, BTRFS_IOC_GET_SUPPORTED_FEATURES, ",
- btrfs_test_dir_fd);
+ printf("ioctl(%d, %s, ",
+ btrfs_test_dir_fd,
+ ioc(BTRFS_IOC_GET_SUPPORTED_FEATURES));
printf("[");
btrfs_print_features(&supported_features[0]);
printf(" /* supported */, ");
@@ -1880,19 +2036,28 @@
unsigned int i;
for (i = 0; i < ARRAY_SIZE(btrfs_read_cmd); ++i) {
ioctl(-1, (unsigned long) btrfs_read_cmd[i].val, 0);
- printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", btrfs_read_cmd[i].str);
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ sprint_xlat_(btrfs_read_cmd[i].val,
+ btrfs_read_cmd[i].str));
}
}
+static void
+rm_test_dir(void)
+{
+ int rootfd = open(path, O_RDONLY|O_DIRECTORY);
+
+ unlinkat(rootfd, dir_name, AT_REMOVEDIR);
+}
+
int
main(int argc, char *argv[])
{
int opt;
int ret;
- const char *path;
- while ((opt = getopt(argc, argv, "wv")) != -1) {
+ while ((opt = getopt(argc, argv, "wvX")) != -1) {
switch (opt) {
case 'v':
/*
@@ -1904,11 +2069,18 @@
case 'w':
write_ok = true;
break;
+ case 'X':
+ verbose_xlat = true;
+ break;
default:
- error_msg_and_fail("usage: btrfs [-v] [-w] [path]");
+ error_msg_and_fail("usage: btrfs [-vwX] [path]");
}
}
+ ret = snprintf(dir_name, sizeof(dir_name), dir_name_fmt, getpid());
+ if (ret < 0)
+ perror_msg_and_fail("snprintf(dir_name)");
+
/*
* This will enable optional tests that require a valid file descriptor
*/
@@ -1930,14 +2102,18 @@
if (rootfd < 0)
perror_msg_and_fail("open(%s) failed", path);
- ret = mkdirat(rootfd, "strace-test", 0755);
+ ret = mkdirat(rootfd, dir_name, 0755);
if (ret < 0 && errno != EEXIST)
- perror_msg_and_fail("mkdirat(strace-test) failed");
+ perror_msg_and_fail("mkdirat(%s) failed", dir_name);
- btrfs_test_dir_fd = openat(rootfd, "strace-test",
+ /* Register removal of the created directory. */
+ if (ret == 0)
+ atexit(rm_test_dir);
+
+ btrfs_test_dir_fd = openat(rootfd, dir_name,
O_RDONLY|O_DIRECTORY);
if (btrfs_test_dir_fd < 0)
- perror_msg_and_fail("openat(strace-test) failed");
+ perror_msg_and_fail("openat(%s) failed", dir_name);
close(rootfd);
} else
write_ok = false;
diff --git a/tests/execve.c b/tests/execve.c
index da3bc52..c1dedfc 100644
--- a/tests/execve.c
+++ b/tests/execve.c
@@ -2,7 +2,7 @@
* This file is part of execve strace test.
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,17 +59,18 @@
execve(FILENAME, tail_argv, tail_envp);
printf("execve(\"%s\""
- ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#if VERBOSE
- ", [\"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#else
", %p /* 5 vars, unterminated */"
#endif
") = -1 ENOENT (%m)\n",
Q_FILENAME, q_argv[0], q_argv[1], q_argv[2],
- argv[3], argv[4], argv[5]
+ argv[3], argv[4], argv[5], (char *) tail_argv + sizeof(argv)
#if VERBOSE
- , q_envp[0], q_envp[1], envp[2], envp[3], envp[4]
+ , q_envp[0], q_envp[1], envp[2], envp[3], envp[4],
+ (char *) tail_envp + sizeof(envp)
#else
, tail_envp
#endif
diff --git a/tests/execveat.c b/tests/execveat.c
index 566a59f..853e26c 100644
--- a/tests/execveat.c
+++ b/tests/execveat.c
@@ -2,7 +2,7 @@
* This file is part of execveat strace test.
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -64,17 +64,18 @@
syscall(__NR_execveat, -100, FILENAME, tail_argv, tail_envp, 0x1100);
printf("execveat(AT_FDCWD, \"%s\""
- ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#if VERBOSE
- ", [\"%s\", \"%s\", %p, %p, %p, ???]"
+ ", [\"%s\", \"%s\", %p, %p, %p, ... /* %p */]"
#else
", %p /* 5 vars, unterminated */"
#endif
", AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) = -1 %s (%m)\n",
Q_FILENAME, q_argv[0], q_argv[1], q_argv[2],
- argv[3], argv[4], argv[5],
+ argv[3], argv[4], argv[5], (char *) tail_argv + sizeof(argv),
#if VERBOSE
q_envp[0], q_envp[1], envp[2], envp[3], envp[4],
+ (char *) tail_envp + sizeof(envp),
#else
tail_envp,
#endif
diff --git a/tests/fanotify_mark-Xabbrev.c b/tests/fanotify_mark-Xabbrev.c
new file mode 100644
index 0000000..2dc9fa1
--- /dev/null
+++ b/tests/fanotify_mark-Xabbrev.c
@@ -0,0 +1 @@
+#include "fanotify_mark.c"
diff --git a/tests/fanotify_mark-Xabbrev.gen.test b/tests/fanotify_mark-Xabbrev.gen.test
new file mode 100755
index 0000000..86c4034
--- /dev/null
+++ b/tests/fanotify_mark-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xabbrev -e trace=fanotify_mark
diff --git a/tests/fanotify_mark-Xraw.c b/tests/fanotify_mark-Xraw.c
new file mode 100644
index 0000000..f02c886
--- /dev/null
+++ b/tests/fanotify_mark-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "fanotify_mark.c"
diff --git a/tests/fanotify_mark-Xraw.gen.test b/tests/fanotify_mark-Xraw.gen.test
new file mode 100755
index 0000000..5be964d
--- /dev/null
+++ b/tests/fanotify_mark-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xraw -e trace=fanotify_mark
diff --git a/tests/fanotify_mark-Xverbose.c b/tests/fanotify_mark-Xverbose.c
new file mode 100644
index 0000000..b76f46f
--- /dev/null
+++ b/tests/fanotify_mark-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "fanotify_mark.c"
diff --git a/tests/fanotify_mark-Xverbose.gen.test b/tests/fanotify_mark-Xverbose.gen.test
new file mode 100755
index 0000000..ef1a99d
--- /dev/null
+++ b/tests/fanotify_mark-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a32 -Xverbose -e trace=fanotify_mark
diff --git a/tests/fanotify_mark.c b/tests/fanotify_mark.c
index 11cf7d0..9509b83 100644
--- a/tests/fanotify_mark.c
+++ b/tests/fanotify_mark.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Eugene Syromyatnikov <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,20 @@
# include <unistd.h>
# include <sys/fanotify.h>
+#if XLAT_RAW
+# define str_fan_mark_add "0x1"
+# define str_fan_modify_ondir "0x40000002"
+# define str_at_fdcwd "-100"
+#elif XLAT_VERBOSE
+# define str_fan_mark_add "0x1 /* FAN_MARK_ADD */"
+# define str_fan_modify_ondir "0x40000002 /* FAN_MODIFY|FAN_ONDIR */"
+# define str_at_fdcwd "-100 /* AT_FDCWD */"
+#else
+# define str_fan_mark_add "FAN_MARK_ADD"
+# define str_fan_modify_ondir "FAN_MODIFY|FAN_ONDIR"
+# define str_at_fdcwd "AT_FDCWD"
+#endif
+
/* Performs fanotify_mark call via the syscall interface. */
static void
do_call(kernel_ulong_t fd, kernel_ulong_t flags, const char *flags_str,
@@ -97,26 +111,73 @@
static const struct strval flags[] = {
{ F8ILL_KULONG_MASK, "0" },
{ (kernel_ulong_t) 0xdec0deddefaced00ULL,
- "0xefaced00 /* FAN_MARK_??? */" },
+ "0xefaced00"
+#if !XLAT_RAW
+ " /* FAN_MARK_??? */"
+#endif
+ },
{ (kernel_ulong_t) 0xda7a105700000040ULL,
- "FAN_MARK_IGNORED_SURV_MODIFY" },
+#if XLAT_RAW
+ "0x40"
+#elif XLAT_VERBOSE
+ "0x40 /* FAN_MARK_IGNORED_SURV_MODIFY */"
+#else
+ "FAN_MARK_IGNORED_SURV_MODIFY"
+#endif
+ },
{ (kernel_ulong_t) 0xbadc0deddeadfeedULL,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xdeadfeed"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"FAN_MARK_ADD|FAN_MARK_DONT_FOLLOW|FAN_MARK_ONLYDIR|"
"FAN_MARK_IGNORED_MASK|FAN_MARK_IGNORED_SURV_MODIFY|"
- "FAN_MARK_FLUSH|0xdeadfe00" },
+ "FAN_MARK_FLUSH|0xdeadfe00"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ },
};
static const struct strval64 masks[] = {
{ ARG_ULL_STR(0) },
{ 0xdeadfeedfacebeefULL,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xdeadfeedfacebeef"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"FAN_ACCESS|FAN_MODIFY|FAN_CLOSE_WRITE|FAN_OPEN|"
"FAN_ACCESS_PERM|FAN_ONDIR|FAN_EVENT_ON_CHILD|"
- "0xdeadfeedb2ccbec4" },
- { ARG_ULL_STR(0xffffffffb7fcbfc4) " /* FAN_??? */" },
+ "0xdeadfeedb2ccbec4"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ },
+ { ARG_ULL_STR(0xffffffffb7fcbfc4)
+#if !XLAT_RAW
+ " /* FAN_??? */"
+#endif
+ },
};
static const struct strval dirfds[] = {
{ (kernel_ulong_t) 0xfacefeed00000001ULL, "1" },
- { (kernel_ulong_t) 0xdec0ded0ffffffffULL, "FAN_NOFD" },
- { (kernel_ulong_t) 0xbadfacedffffff9cULL, "AT_FDCWD" },
+ { (kernel_ulong_t) 0xdec0ded0ffffffffULL,
+#if XLAT_RAW
+ "-1"
+#elif XLAT_VERBOSE
+ "-1 /* FAN_NOFD */"
+#else
+ "FAN_NOFD"
+#endif
+ },
+ { (kernel_ulong_t) 0xbadfacedffffff9cULL, str_at_fdcwd },
{ (kernel_ulong_t) 0xdefaced1beeff00dULL, "-1091571699" },
};
static const char str64[] = STR64;
@@ -149,8 +210,9 @@
rc = fanotify_mark(-1, FAN_MARK_ADD, FAN_MODIFY | FAN_ONDIR,
-100, ".");
- printf("fanotify_mark(-1, FAN_MARK_ADD, FAN_MODIFY|FAN_ONDIR"
- ", AT_FDCWD, \".\") = %s\n", sprintrc(rc));
+ printf("fanotify_mark(-1, %s, %s, %s, \".\") = %s\n",
+ str_fan_mark_add, str_fan_modify_ondir, str_at_fdcwd,
+ sprintrc(rc));
for (i = 0; i < ARRAY_SIZE(fds); i++) {
for (j = 0; j < ARRAY_SIZE(flags); j++) {
diff --git a/tests/fcntl-common.c b/tests/fcntl-common.c
new file mode 100644
index 0000000..a35a837
--- /dev/null
+++ b/tests/fcntl-common.c
@@ -0,0 +1,267 @@
+/*
+ * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include "flock.h"
+
+#define FILE_LEN 4096
+
+#define TEST_FLOCK_EINVAL(cmd) test_flock_einval(cmd, #cmd)
+#define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+
+#ifdef HAVE_TYPEOF
+# define TYPEOF_FLOCK_OFF_T typeof(((struct_kernel_flock *) NULL)->l_len)
+#else
+# define TYPEOF_FLOCK_OFF_T off_t
+#endif
+
+static const char *errstr;
+
+static long
+invoke_test_syscall(const unsigned int fd, const unsigned int cmd, void *const p)
+{
+ const kernel_ulong_t kfd = F8ILL_KULONG_MASK | fd;
+ const kernel_ulong_t op = F8ILL_KULONG_MASK | cmd;
+
+ long rc = syscall(TEST_SYSCALL_NR, kfd, op, (uintptr_t) p);
+ errstr = sprintrc(rc);
+ return rc;
+}
+
+static void
+test_flock_einval(const int cmd, const char *name)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL;
+ fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+
+ invoke_test_syscall(0, cmd, fl);
+ 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);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, name, bad_addr, errstr);
+}
+
+/*
+ * This function is not declared static to avoid potential
+ * "defined but not used" warning when included by fcntl.c
+ */
+void
+test_flock64_einval(const int cmd, const char *name)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL;
+ fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+
+ invoke_test_syscall(0, cmd, fl);
+ 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);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, name, bad_addr, errstr);
+}
+
+static void
+test_flock(void)
+{
+ TEST_FLOCK_EINVAL(F_SETLK);
+ TEST_FLOCK_EINVAL(F_SETLKW);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_SETLK, fl);
+ 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);
+ if (rc)
+ return;
+
+ invoke_test_syscall(0, F_GETLK, fl);
+ 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);
+ 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);
+}
+
+static void
+test_flock64_ofd(void)
+{
+#if defined F_OFD_GETLK && defined F_OFD_SETLK && defined F_OFD_SETLKW
+ TEST_FLOCK64_EINVAL(F_OFD_SETLK);
+ TEST_FLOCK64_EINVAL(F_OFD_SETLKW);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_OFD_SETLK, fl);
+ 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);
+ if (rc)
+ return;
+
+ invoke_test_syscall(0, F_OFD_GETLK, fl);
+ 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);
+ 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);
+#endif /* F_OFD_GETLK && F_OFD_SETLK && F_OFD_SETLKW */
+}
+
+static void test_flock64_lk64(void);
+
+static void
+test_flock64(void)
+{
+ test_flock64_ofd();
+ test_flock64_lk64();
+}
+
+/*
+ * F_[GS]ETOWN_EX had conflicting values with F_[SG]ETLK64
+ * in kernel revisions v2.6.32-rc1~96..v2.6.32-rc7~23.
+ */
+#undef TEST_F_OWNER_EX
+#if defined F_GETOWN_EX && defined F_SETOWN_EX \
+ && (F_GETOWN_EX != F_SETLK64) && (F_SETOWN_EX != F_GETLK64)
+# define TEST_F_OWNER_EX
+#endif
+
+#ifdef TEST_F_OWNER_EX
+# include "f_owner_ex.h"
+
+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)
+{
+ 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);
+
+ void *bad_addr = (void *) fo + 1;
+ invoke_test_syscall(0, cmd, bad_addr);
+ printf("%s(0, %s, %p) = %s\n",
+ TEST_SYSCALL_STR, cmd_name, bad_addr, errstr);
+
+ return rc;
+}
+
+static void
+test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name,
+ pid_t pid)
+{
+ long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX),
+ type, type_name, pid);
+ if (!rc)
+ test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX),
+ type, type_name, pid);
+}
+
+static void
+test_f_owner_ex(void)
+{
+ static const struct {
+ int type;
+ const char *type_name;
+ pid_t pid[2];
+ } a[] = {
+ { ARG_STR(F_OWNER_TID), { 1234567890, 20 } },
+ { ARG_STR(F_OWNER_PID), { 1298126790, 30 } },
+ { ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } }
+ };
+
+ 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]);
+ }
+ }
+}
+#endif /* TEST_F_OWNER_EX */
+
+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))
+ perror_msg_and_fail("ftruncate");
+}
+
+int
+main(void)
+{
+ create_sample();
+ test_flock();
+ test_flock64();
+#ifdef TEST_F_OWNER_EX
+ test_f_owner_ex();
+#endif
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests/fcntl.c b/tests/fcntl.c
index 4f62ca2..7539f19 100644
--- a/tests/fcntl.c
+++ b/tests/fcntl.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,51 +33,40 @@
# define TEST_SYSCALL_NR __NR_fcntl
# define TEST_SYSCALL_STR "fcntl"
-# include "struct_flock.c"
-
-# define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+# include "fcntl-common.c"
static void
-test_flock64_einval(const int cmd, const char *name)
+test_flock64_undecoded(const int cmd, const char *name)
{
struct_kernel_flock64 fl = {
.l_type = F_RDLCK,
.l_start = 0xdefaced1facefeedULL,
.l_len = 0xdefaced2cafef00dULL
};
- long rc = invoke_test_syscall(cmd, &fl);
+ invoke_test_syscall(0, cmd, &fl);
printf("%s(0, %s, %p) = %s\n",
- TEST_SYSCALL_STR, name, &fl, sprintrc(rc));
+ TEST_SYSCALL_STR, name, &fl, errstr);
}
+#define TEST_FLOCK64_UNDECODED(cmd) test_flock64_undecoded(cmd, #cmd)
+
static void
-test_flock64(void)
+test_flock64_lk64(void)
{
/*
* F_[GS]ETOWN_EX had conflicting values with F_[GS]ETLK64
* in kernel revisions v2.6.32-rc1~96..v2.6.32-rc7~23.
*/
-#if !defined(F_GETOWN_EX) || F_GETOWN_EX != F_SETLK64
- TEST_FLOCK64_EINVAL(F_SETLK64);
-#endif
+# if !defined(F_GETOWN_EX) || F_GETOWN_EX != F_SETLK64
+ TEST_FLOCK64_UNDECODED(F_SETLK64);
+# endif
/* F_GETLK and F_SETLKW64 have conflicting values on mips64 */
-#if !defined(__mips64) || F_GETLK != F_SETLKW64
- TEST_FLOCK64_EINVAL(F_SETLKW64);
-#endif
-#if !defined(F_SETOWN_EX) || F_SETOWN_EX != F_GETLK64
- TEST_FLOCK64_EINVAL(F_GETLK64);
-#endif
-}
-
-int
-main(void)
-{
- create_sample();
- test_flock();
- test_flock64();
-
- puts("+++ exited with 0 +++");
- return 0;
+# if !defined(__mips64) || F_GETLK != F_SETLKW64
+ TEST_FLOCK64_UNDECODED(F_SETLKW64);
+# endif
+# if !defined(F_SETOWN_EX) || F_SETOWN_EX != F_GETLK64
+ TEST_FLOCK64_UNDECODED(F_GETLK64);
+# endif
}
#else
diff --git a/tests/fcntl64.c b/tests/fcntl64.c
index 068956e..f65f7cb 100644
--- a/tests/fcntl64.c
+++ b/tests/fcntl64.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,68 +33,38 @@
# define TEST_SYSCALL_NR __NR_fcntl64
# define TEST_SYSCALL_STR "fcntl64"
-# include "struct_flock.c"
-
-# define TEST_FLOCK64_EINVAL(cmd) test_flock64_einval(cmd, #cmd)
+# include "fcntl-common.c"
static void
-test_flock64_einval(const int cmd, const char *name)
-{
- struct_kernel_flock64 fl = {
- .l_type = F_RDLCK,
- .l_start = 0xdefaced1facefeedULL,
- .l_len = 0xdefaced2cafef00dULL
- };
- long rc = invoke_test_syscall(cmd, &fl);
- 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, sprintrc(rc));
-}
-
-static void
-test_flock64(void)
+test_flock64_lk64(void)
{
TEST_FLOCK64_EINVAL(F_SETLK64);
TEST_FLOCK64_EINVAL(F_SETLKW64);
-# ifdef F_OFD_SETLK
- TEST_FLOCK64_EINVAL(F_OFD_SETLK);
- TEST_FLOCK64_EINVAL(F_OFD_SETLKW);
-# endif
- struct_kernel_flock64 fl = {
- .l_type = F_RDLCK,
- .l_len = FILE_LEN
- };
- long rc = invoke_test_syscall(F_SETLK64, &fl);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_flock64, fl);
+ memset(fl, 0, sizeof(*fl));
+ fl->l_type = F_RDLCK;
+ fl->l_len = FILE_LEN;
+
+ long rc = invoke_test_syscall(0, F_SETLK64, fl);
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, sprintrc(rc));
+ TEST_SYSCALL_STR, FILE_LEN, errstr);
if (rc)
return;
- invoke_test_syscall(F_GETLK64, &fl);
+ invoke_test_syscall(0, F_GETLK64, fl);
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(F_SETLK64, &fl);
- printf("%s(0, F_SETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ invoke_test_syscall(0, F_SETLKW64, fl);
+ 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);
}
-int
-main(void)
-{
- create_sample();
- test_flock();
- test_flock64();
-
- puts("+++ exited with 0 +++");
- return 0;
-}
-
#else
SKIP_MAIN_UNDEFINED("__NR_fcntl64")
diff --git a/tests/gen_tests.am b/tests/gen_tests.am
index 2cd76bc..5db8375 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 alarm.gen.test bpf.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 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 fstat64.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 int_0x80.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_kvm_run.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nsfs.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 ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test kcmp-y.gen.test kern_features.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.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 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 mmap64.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 move_pages.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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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_brport.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-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 osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.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 printstr.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.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 pwritev.gen.test quotactl.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 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 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_linger.gen.test so_peercred.gen.test sock_filter-v.gen.test socketcall.gen.test sockopt-sol_netlink.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_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 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-v.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-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 fstat64.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 int_0x80.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_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.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 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 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 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 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-sockaddr.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 nlattr.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_crypto_user_alg.gen.test nlattr_br_port_msg.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-v-none.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.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 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 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 printstr.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.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 pwritev.gen.test quotactl.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 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 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_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 socketcall.gen.test sockopt-sol_netlink.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_x32.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_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 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
$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -28,6 +28,9 @@
$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/aio_pgetevents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -37,6 +40,18 @@
$(srcdir)/bpf-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/bpf-obj_get_info_by_fd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf-obj_get_info_by_fd-prog-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -124,6 +139,15 @@
$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -316,6 +340,9 @@
$(srcdir)/ioctl_evdev-v.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) $^ $@
+
$(srcdir)/ioctl_kvm_run.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -334,6 +361,12 @@
$(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ioctl_perf.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) $^ $@
+
$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -376,12 +409,48 @@
$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_msg-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msgbuf-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_sem-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/ipc_shm-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -400,6 +469,15 @@
$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/keyctl-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -463,9 +541,27 @@
$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mmap64-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -484,6 +580,15 @@
$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/mount-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/mount-Xverbose.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) $^ $@
@@ -610,9 +715,15 @@
$(srcdir)/nlattr_ifinfomsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_af_spec.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_brport.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/nlattr_ifla_linkinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -685,6 +796,15 @@
$(srcdir)/old_mmap-v-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/old_mmap-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -727,6 +847,15 @@
$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/personality-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/personality-Xverbose.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) $^ $@
@@ -1057,9 +1186,27 @@
$(srcdir)/so_peercred.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/so_peercred-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/so_peercred-Xverbose.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) $^ $@
+$(srcdir)/sock_filter-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/sock_filter-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
@@ -1141,6 +1288,24 @@
$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
$(AM_V_GEN) $^ $@
+$(srcdir)/trace_personality_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_personality_regex_x32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ $(AM_V_GEN) $^ $@
+
$(srcdir)/trace_question.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 a95ff3e..24e0510 100644
--- a/tests/gen_tests.in
+++ b/tests/gen_tests.in
@@ -34,9 +34,14 @@
add_key -a30 -s12
adjtimex -a15
aio -a14 -e trace=io_setup,io_submit,io_getevents,io_cancel,io_destroy
+aio_pgetevents -e trace=io_pgetevents
alarm -a10
bpf -a20
bpf-v -a20 -v -e trace=bpf
+bpf-obj_get_info_by_fd -a20 -y -e trace=bpf
+bpf-obj_get_info_by_fd-v -a20 -y -v -e trace=bpf
+bpf-obj_get_info_by_fd-prog -a20 -y -e trace=bpf
+bpf-obj_get_info_by_fd-prog-v -a20 -y -v -e trace=bpf
btrfs +ioctl.test
chmod -a28
chown -a28
@@ -66,6 +71,9 @@
fallocate -a18
fanotify_init
fanotify_mark -a32
+fanotify_mark-Xabbrev -a32 -Xabbrev -e trace=fanotify_mark
+fanotify_mark-Xraw -a32 -Xraw -e trace=fanotify_mark
+fanotify_mark-Xverbose -a32 -Xverbose -e trace=fanotify_mark
fchdir -a11
fchmod -a15
fchmodat
@@ -130,12 +138,15 @@
ioctl_dm-v +ioctl.test -v -s9
ioctl_evdev +ioctl.test
ioctl_evdev-v +ioctl.test -v
+ioctl_inotify +ioctl.test
ioctl_kvm_run +ioctl.test -a36 -y
ioctl_loop +ioctl.test
ioctl_loop-nv +ioctl.test -a22 -e verbose=none
ioctl_loop-v +ioctl.test -v
ioctl_mtd +ioctl.test
ioctl_nsfs +ioctl.test -esignal=none
+ioctl_perf +ioctl.test
+ioctl_ptp +ioctl.test
ioctl_rtc +ioctl.test
ioctl_rtc-v +ioctl.test -v
ioctl_scsi +ioctl.test
@@ -149,15 +160,30 @@
ioprio -a18 -e trace=ioprio_get,ioprio_set
ip_mreq -e trace=setsockopt
ipc -a19
-ipc_msg +ipc.sh
-ipc_sem +ipc.sh
-ipc_shm +ipc.sh
+ipc_msg +ipc.sh -a26
+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-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-Xraw +ipc.sh -Xraw -a19
+ipc_shm-Xverbose +ipc.sh -Xverbose -a36
kcmp -a22
kcmp-y -a22 -y -e trace=kcmp
kern_features -a16
kexec_file_load -s9
kexec_load -s9
keyctl -a31 -s10
+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
lchown -a30
lchown32 -a32
@@ -179,13 +205,22 @@
mlock -a20 -e trace=mlock,munlock
mlock2
mlockall -a12
+mmap-Xabbrev +mmap.test abbrev
+mmap-Xraw +mmap.test raw 14
+mmap-Xverbose +mmap.test verbose
mmap64 +mmap.test
+mmap64-Xabbrev +mmap.test abbrev
+mmap64-Xraw +mmap.test raw 14
+mmap64-Xverbose +mmap.test verbose
mmsg -e read=0 -e write=1 -e trace=recvmmsg,sendmmsg
mmsg-silent -a25 -e verbose=none -e trace=sendmmsg,recvmmsg
mmsg_name -a25 -e trace=sendmmsg,recvmmsg
mmsg_name-v -v -a25 -e trace=sendmmsg,recvmmsg
modify_ldt -a23
-mount
+mount -a33
+mount-Xabbrev -a33 -e trace=mount -Xabbrev
+mount-Xraw -a33 -e trace=mount -Xraw
+mount-Xverbose -a33 -e trace=mount -Xverbose
move_pages -s3
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
@@ -228,7 +263,9 @@
nlattr_ifaddrlblmsg +netlink_sock_diag.test
nlattr_ifaddrmsg +netlink_sock_diag.test
nlattr_ifinfomsg +netlink_sock_diag.test
+nlattr_ifla_af_spec +netlink_sock_diag.test
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_inet_diag_msg +netlink_sock_diag.test
@@ -253,6 +290,9 @@
old_mmap -a11 -e trace=mmap
old_mmap-P -e trace=mmap -P "/dev/full" 9>>/dev/full
old_mmap-v-none -a11 -e trace=mmap -e verbose=none
+old_mmap-Xabbrev -a11 -e trace=mmap -Xabbrev
+old_mmap-Xraw -a11 -e trace=mmap -Xraw
+old_mmap-Xverbose -a11 -e trace=mmap -Xverbose
oldfstat -a18 -v -P stat.sample
oldlstat -a32 -v -P stat.sample -P /dev/full
oldselect -a13 -e trace=select
@@ -267,6 +307,9 @@
perf_event_open -a1
perf_event_open_nonverbose -a34 -e verbose=none -e trace=perf_event_open
perf_event_open_unabbrev -a1 -v -e trace=perf_event_open
+personality-Xabbrev +personality.test -Xabbrev
+personality-Xraw +personality.test -a15 -Xraw
+personality-Xverbose +personality.test -Xverbose
pipe2 -a15
pkey_alloc -a17
pkey_free -a13
@@ -322,7 +365,7 @@
s390_guarded_storage -a32
s390_guarded_storage-v -e trace=s390_guarded_storage -a32 -v
s390_pci_mmio_read_write -e trace=s390_pci_mmio_read,s390_pci_mmio_write -a30
-s390_runtime_instr -a50
+s390_runtime_instr -a44
s390_sthyi -a47
s390_sthyi-v -e trace=s390_sthyi -a47 -v
sched test_trace_expr times -e/sched
@@ -377,7 +420,13 @@
sigsuspend -a19 -esignal=none
so_linger -e trace=getsockopt,setsockopt
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
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
+sock_filter-v-Xverbose -v -e trace=getsockopt,setsockopt -X verbose
socketcall -a20
sockopt-sol_netlink -e trace=getsockopt,setsockopt
splice
@@ -405,6 +454,12 @@
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
+trace_personality_32 +qualify_personality.sh 32 'getcwd' 'fsync-y'
+trace_personality_64 +qualify_personality.sh 64 'getcwd' 'fsync-y'
+trace_personality_x32 +qualify_personality.sh x32 'getcwd' 'fsync-y'
+trace_personality_regex_32 +qualify_personality.sh 32 '/clock.*' 'times|fcntl.*'
+trace_personality_regex_64 +qualify_personality.sh 64 '/clock.*' 'times|fcntl.*'
+trace_personality_regex_x32 +qualify_personality.sh x32 '/clock.*' 'times|fcntl.*'
trace_question test_trace_expr '' -e?osf_utimes,?/^pkey_.*
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
diff --git a/tests/init.sh b/tests/init.sh
index dffbfce..8861b70 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -1,7 +1,7 @@
#!/bin/sh
#
# Copyright (c) 2011-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2011-2017 The strace developers.
+# Copyright (c) 2011-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -230,6 +230,17 @@
match_diff "$LOG" "$EXP"
}
+# Usage: run_strace_match_grep [args to run_strace]
+run_strace_match_grep()
+{
+ args="$*"
+ [ -n "$args" -a -z "${args##*-e trace=*}" ] ||
+ set -- -e trace="$NAME" "$@"
+ run_prog > /dev/null
+ run_strace "$@" $args > "$EXP"
+ match_grep "$LOG" "$EXP"
+}
+
# Print kernel version code.
# usage: kernel_version_code $(uname -r)
kernel_version_code()
diff --git a/tests/ioctl_evdev.c b/tests/ioctl_evdev.c
index 9d16cec..5eacac0 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,6 +39,13 @@
# include <sys/ioctl.h>
# include <linux/input.h>
+# ifndef EV_SW
+# define EV_SW 5
+# endif
+# ifndef ABS_MT_TOOL_Y
+# define ABS_MT_TOOL_Y 0x3d
+# endif
+
static const unsigned int magic = 0xdeadbeef;
static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL;
@@ -67,12 +74,14 @@
# endif /* VERBOSE */
}
-# define TEST_NULL_ARG(cmd) \
+# define TEST_NULL_ARG_EX(cmd, str) \
do { \
ioctl(-1, cmd, 0); \
- printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", str); \
} while (0)
+# define TEST_NULL_ARG(cmd) TEST_NULL_ARG_EX(cmd, #cmd)
+
int
main(void)
{
@@ -117,14 +126,24 @@
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(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(0x3f), "EVIOCGABS(0x3f /* ABS_??? */)");
+ TEST_NULL_ARG_EX(EVIOCSABS(0x3f), "EVIOCSABS(0x3f /* ABS_??? */)");
+
TEST_NULL_ARG(EVIOCGBIT(EV_SYN, 0));
TEST_NULL_ARG(EVIOCGBIT(EV_KEY, 1));
TEST_NULL_ARG(EVIOCGBIT(EV_REL, 2));
TEST_NULL_ARG(EVIOCGBIT(EV_ABS, 3));
TEST_NULL_ARG(EVIOCGBIT(EV_MSC, 4));
-# ifdef EV_SW
TEST_NULL_ARG(EVIOCGBIT(EV_SW, 5));
-# endif
TEST_NULL_ARG(EVIOCGBIT(EV_LED, 6));
TEST_NULL_ARG(EVIOCGBIT(EV_SND, 7));
TEST_NULL_ARG(EVIOCGBIT(EV_REP, 8));
@@ -132,6 +151,12 @@
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(0x18, 13),
+ "EVIOCGBIT(0x18 /* EV_??? */, 13)");
+ TEST_NULL_ARG_EX(EVIOCGBIT(0x1f, 14),
+ "EVIOCGBIT(0x1f /* EV_??? */, 14)");
+
ioctl(-1, EVIOCGBIT(EV_MAX, 42), 0);
printf("ioctl(-1, EVIOCGBIT(%#x /* EV_??? */, 42), NULL)"
" = -1 EBADF (%m)\n", EV_MAX);
diff --git a/tests/ioctl_inotify.c b/tests/ioctl_inotify.c
new file mode 100644
index 0000000..0650c62
--- /dev/null
+++ b/tests/ioctl_inotify.c
@@ -0,0 +1,81 @@
+/*
+ * This file is part of ioctl_inotify strace test.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <asm/unistd.h>
+#include <linux/ioctl.h>
+
+#ifndef INOTIFY_IOC_SETNEXTWD
+# define INOTIFY_IOC_SETNEXTWD _IOW('I', 0, int32_t)
+#endif
+
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t unknown_inotify_cmd =
+ (kernel_ulong_t) 0xbadc0dedfeed49edULL;
+ static const kernel_ulong_t magic =
+ (kernel_ulong_t) 0xdeadbeefbadc0dedULL;
+
+ /* Unknown inotify commands */
+ sys_ioctl(-1, unknown_inotify_cmd, magic);
+ printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x49, %#x, %#x), "
+ "%#lx) = -1 EBADF (%m)\n",
+ _IOC_DIR((unsigned int) unknown_inotify_cmd) & _IOC_NONE ?
+ "|_IOC_NONE" : "",
+ _IOC_NR((unsigned int) unknown_inotify_cmd),
+ _IOC_SIZE((unsigned int) unknown_inotify_cmd),
+ (unsigned long) magic);
+
+ sys_ioctl(-1, INOTIFY_IOC_SETNEXTWD + 1, magic);
+ printf("ioctl(-1, _IOC(_IOC_WRITE, 0x49, %#x, %#x), %#lx)"
+ " = -1 EBADF (%m)\n",
+ (unsigned int) _IOC_NR(INOTIFY_IOC_SETNEXTWD + 1),
+ (unsigned int) _IOC_SIZE(INOTIFY_IOC_SETNEXTWD + 1),
+ (unsigned long) magic);
+
+ /* INOTIFY_IOC_SETNEXTWD */
+ sys_ioctl(-1, INOTIFY_IOC_SETNEXTWD, magic);
+ printf("ioctl(-1, INOTIFY_IOC_SETNEXTWD, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests/ioctl_inotify.gen.test b/tests/ioctl_inotify.gen.test
new file mode 100755
index 0000000..237a98b
--- /dev/null
+++ b/tests/ioctl_inotify.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_inotify +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests/ioctl_kvm_run.c b/tests/ioctl_kvm_run.c
index 1794614..e1bef57 100644
--- a/tests/ioctl_kvm_run.c
+++ b/tests/ioctl_kvm_run.c
@@ -40,6 +40,7 @@
# include <string.h>
# include <sys/ioctl.h>
# include <sys/mman.h>
+# include <unistd.h>
# include <linux/kvm.h>
static int
@@ -56,7 +57,7 @@
static const char dev[] = "/dev/kvm";
static const char vm_dev[] = "anon_inode:kvm-vm";
-static const char vcpu_dev[] = "anon_inode:kvm-vcpu";
+static char vcpu_dev[] = "anon_inode:kvm-vcpu:0";
static size_t page_size;
extern const char code[];
@@ -165,6 +166,23 @@
}
}
+static int
+vcpu_dev_should_have_cpuid(int fd)
+{
+ int r = 0;
+ char *filename = NULL;
+ char buf[sizeof(vcpu_dev)];
+
+ if (asprintf(&filename, "/proc/%d/fd/%d", getpid(), fd) < 0)
+ error_msg_and_fail("asprintf");
+
+ if (readlink(filename, buf, sizeof(buf)) == sizeof(buf) - 1
+ && (memcmp(buf, vcpu_dev, sizeof(buf) - 1) == 0))
+ r = 1;
+ free(filename);
+ return r;
+}
+
int
main(void)
{
@@ -208,6 +226,15 @@
(unsigned long) page_size, (unsigned long) page_size, mem);
int vcpu_fd = KVM_IOCTL(vm_fd, KVM_CREATE_VCPU, NULL);
+ if (!vcpu_dev_should_have_cpuid(vcpu_fd))
+ /*
+ * This is an older kernel that doesn't place a cpuid
+ * at the end of the dentry associated with vcpu_fd.
+ * Trim the cpuid part of vcpu_dev like:
+ * "anon_inode:kvm-vcpu:0" -> "anon_inode:kvm-vcpu"
+ */
+ vcpu_dev[strlen (vcpu_dev) - 2] = '\0';
+
printf("ioctl(%d<%s>, KVM_CREATE_VCPU, 0) = %d<%s>\n",
vm_fd, vm_dev, vcpu_fd, vcpu_dev);
diff --git a/tests/ioctl_loop.c b/tests/ioctl_loop.c
index bafbd37..10b7dc3 100644
--- a/tests/ioctl_loop.c
+++ b/tests/ioctl_loop.c
@@ -34,8 +34,10 @@
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
+#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/sysmacros.h>
+#include <asm/unistd.h>
#include <linux/ioctl.h>
#include <linux/loop.h>
#include "print_fields.h"
@@ -45,6 +47,12 @@
# define ABBREV 0
#endif
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
static void
print_loop_info(struct loop_info * const info, bool print_encrypt,
const char *encrypt_type, const char *encrypt_key,
@@ -178,7 +186,7 @@
TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info64, info64);
/* Unknown loop commands */
- ioctl(-1, unknown_loop_cmd, magic);
+ sys_ioctl(-1, unknown_loop_cmd, magic);
printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x4c, %#x, %#x), "
"%#lx) = -1 EBADF (%m)\n",
_IOC_DIR((unsigned int) unknown_loop_cmd) & _IOC_NONE ?
@@ -187,14 +195,14 @@
_IOC_SIZE((unsigned int) unknown_loop_cmd),
(unsigned long) magic);
- ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic);
+ sys_ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic);
printf("ioctl(-1, _IOC(0, 0x4c, %#x, %#x), %#lx) = "
"-1 EBADF (%m)\n",
_IOC_NR(LOOP_SET_BLOCK_SIZE + 1),
_IOC_SIZE(LOOP_SET_BLOCK_SIZE + 1),
(unsigned long) magic);
- ioctl(-1, LOOP_CTL_GET_FREE + 1, magic);
+ sys_ioctl(-1, LOOP_CTL_GET_FREE + 1, magic);
printf("ioctl(-1, _IOC(0, 0x4c, %#x, %#x), %#lx) = "
"-1 EBADF (%m)\n",
_IOC_NR(LOOP_CTL_GET_FREE + 1),
@@ -202,7 +210,7 @@
(unsigned long) magic);
/* LOOP_SET_FD */
- ioctl(-1, LOOP_SET_FD, magic);
+ sys_ioctl(-1, LOOP_SET_FD, magic);
printf("ioctl(-1, LOOP_SET_FD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
@@ -289,7 +297,7 @@
printf("ioctl(-1, LOOP_GET_STATUS64, %p) = -1 EBADF (%m)\n", info64);
/* LOOP_CHANGE_FD */
- ioctl(-1, LOOP_CHANGE_FD, magic);
+ sys_ioctl(-1, LOOP_CHANGE_FD, magic);
printf("ioctl(-1, LOOP_CHANGE_FD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
@@ -298,22 +306,22 @@
printf("ioctl(-1, LOOP_SET_CAPACITY) = -1 EBADF (%m)\n");
/* LOOP_SET_DIRECT_IO */
- ioctl(-1, LOOP_SET_DIRECT_IO, magic);
+ sys_ioctl(-1, LOOP_SET_DIRECT_IO, magic);
printf("ioctl(-1, LOOP_SET_DIRECT_IO, %lu) = -1 EBADF (%m)\n",
(unsigned long) magic);
/* LOOP_SET_BLOCK_SIZE */
- ioctl(-1, LOOP_SET_BLOCK_SIZE, magic);
+ sys_ioctl(-1, LOOP_SET_BLOCK_SIZE, magic);
printf("ioctl(-1, LOOP_SET_BLOCK_SIZE, %lu) = -1 EBADF (%m)\n",
(unsigned long) magic);
/* LOOP_CTL_ADD */
- ioctl(-1, LOOP_CTL_ADD, magic);
+ sys_ioctl(-1, LOOP_CTL_ADD, magic);
printf("ioctl(-1, LOOP_CTL_ADD, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
/* LOOP_CTL_REMOVE */
- ioctl(-1, LOOP_CTL_REMOVE, magic);
+ sys_ioctl(-1, LOOP_CTL_REMOVE, magic);
printf("ioctl(-1, LOOP_CTL_REMOVE, %d) = -1 EBADF (%m)\n",
(unsigned int) magic);
diff --git a/tests/ioctl_perf-success.c b/tests/ioctl_perf-success.c
new file mode 100644
index 0000000..9eade6a
--- /dev/null
+++ b/tests/ioctl_perf-success.c
@@ -0,0 +1,165 @@
+/*
+ * Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_PERF_EVENT_H
+
+# include <assert.h>
+# include <inttypes.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+# include <sys/ioctl.h>
+# include <linux/perf_event.h>
+
+# 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 *)
+
+struct perf_event_query_bpf {
+ uint32_t ids_len;
+ uint32_t prog_cnt;
+ uint32_t ids[0];
+};
+# endif
+
+int
+main(int argc, char **argv)
+{
+ static const uint64_t magic64 = 0xfacefeeddeadc0deULL;
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, u64_ptr);
+ uint64_t *const u64_efault = u64_ptr + 1;
+ uint32_t *const u32_arr = tail_alloc(sizeof(uint32_t) * 4);
+ uint32_t *const u32_efault = u32_arr + 4;
+
+ unsigned long num_skip;
+ long inject_retval;
+ bool locked = false;
+
+ *u64_ptr = magic64;
+
+ 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 long i = 0; i < num_skip; i++) {
+ long ret = ioctl(-1, PERF_EVENT_IOC_ID, NULL);
+
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = %s%s\n",
+ 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"
+ ", PERF_EVENT_IOC_ID, NULL) returning %lu",
+ inject_retval);
+
+ /* PERF_EVENT_IOC_ID */
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, NULL) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = %ld (INJECTED)\n",
+ inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, u64_efault) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = %ld (INJECTED)\n",
+ u64_efault, inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_ID, u64_ptr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, [%" PRIu64 "]) = %ld (INJECTED)\n",
+ magic64, inject_retval);
+
+ /* PERF_EVENT_IOC_QUERY_BPF */
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) = %ld (INJECTED)\n",
+ inject_retval);
+
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_efault)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, %p) = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[3] = 0xdeadbeef;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr + 3)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3735928559, ...}) "
+ "= %ld (INJECTED)\n",
+ inject_retval);
+
+ u32_arr[2] = 0xdecaffed;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr + 2)
+ == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3737845741"
+ ", prog_cnt=3735928559, ids=%p})"
+ " = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[0] = 0xbadc0ded;
+ u32_arr[1] = 5;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661"
+ ", prog_cnt=5, ids=[3737845741, 3735928559, ... /* %p */]})"
+ " = %ld (INJECTED)\n",
+ u32_efault, inject_retval);
+
+ u32_arr[1] = 2;
+ assert(ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr) == inject_retval);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661"
+ ", prog_cnt=2, ids=[3737845741, 3735928559]})"
+ " = %ld (INJECTED)\n",
+ inject_retval);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H");
+
+#endif
diff --git a/tests/ioctl_perf-success.test b/tests/ioctl_perf-success.test
new file mode 100755
index 0000000..779a2a9
--- /dev/null
+++ b/tests/ioctl_perf-success.test
@@ -0,0 +1,15 @@
+#!/bin/sh -efu
+
+# Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls.
+
+. "${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
new file mode 100644
index 0000000..7db01db
--- /dev/null
+++ b/tests/ioctl_perf.c
@@ -0,0 +1,238 @@
+/*
+ * Check decoding of PERF_EVENT_IOC_* commands of ioctl syscall.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_PERF_EVENT_H
+
+# include <inttypes.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/ioctl.h>
+# include <asm/unistd.h>
+# include <linux/perf_event.h>
+
+/*
+ * Workaround the bug in kernel UAPI that was fixed
+ * in Linux commit v2.6.33-rc1~48^2~288^2~19.
+ */
+# ifndef u64
+# define u64 uint64_t
+# endif
+
+# define XLAT_MACROS_ONLY
+# include "xlat/perf_ioctl_cmds.h"
+# undef XLAT_MACROS_ONLY
+
+# define STR16 "0123456789abcdef"
+
+static long
+sys_ioctl(kernel_long_t fd, kernel_ulong_t cmd, kernel_ulong_t arg)
+{
+ return syscall(__NR_ioctl, fd, cmd, arg);
+}
+
+int
+main(void)
+{
+ static const kernel_ulong_t unknown_perf_cmd =
+ (kernel_ulong_t) 0xbadc0dedfeed24edULL;
+ static const kernel_ulong_t magic =
+ (kernel_ulong_t) 0xdeadbeefbadc0dedULL;
+ static const uint64_t magic64 = 0xfacefeeddeadc0deULL;
+ static const char str[] = STR16 STR16 STR16 STR16;
+
+ static struct {
+ unsigned int cmd;
+ const char *str;
+ } flag_iocs[] = {
+ { ARG_STR(PERF_EVENT_IOC_ENABLE) },
+ { ARG_STR(PERF_EVENT_IOC_DISABLE) },
+ { ARG_STR(PERF_EVENT_IOC_RESET) },
+ };
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, u64_ptr);
+ uint64_t *const u64_efault = u64_ptr + 1;
+ uint32_t *const u32_arr = tail_alloc(sizeof(uint32_t) * 4);
+ uint32_t *const u32_efault = u32_arr + 4;
+ char *const str_ptr = tail_memdup(str, sizeof(str));
+ char *const str_efault = str_ptr + sizeof(str);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct perf_event_attr, pea_ptr);
+
+ *u64_ptr = magic64;
+ fill_memory_ex(pea_ptr, sizeof(*pea_ptr), 0xaa, 0x55);
+
+ /* Unknown perf commands */
+ sys_ioctl(-1, unknown_perf_cmd, magic);
+ printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE%s, 0x24, %#x, %#x), "
+ "%#lx) = -1 EBADF (%m)\n",
+ _IOC_DIR((unsigned int) unknown_perf_cmd) & _IOC_NONE ?
+ "|_IOC_NONE" : "",
+ _IOC_NR((unsigned int) unknown_perf_cmd),
+ _IOC_SIZE((unsigned int) unknown_perf_cmd),
+ (unsigned long) magic);
+
+ sys_ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1, magic);
+ printf("ioctl(-1, _IOC(_IOC_WRITE, 0x24, %#x, %#x), %#lx)"
+ " = -1 EBADF (%m)\n",
+ (unsigned int) _IOC_NR(PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1),
+ (unsigned int) _IOC_SIZE(PERF_EVENT_IOC_MODIFY_ATTRIBUTES + 1),
+ (unsigned long) magic);
+
+ /* PERF_EVENT_IOC_{ENABLE,DISABLE,RESET} */
+ for (unsigned i = 0; i < ARRAY_SIZE(flag_iocs); i++) {
+ ioctl(-1, flag_iocs[i].cmd, 0);
+ printf("ioctl(-1, %s, 0) = -1 EBADF (%m)\n", flag_iocs[i].str);
+
+ ioctl(-1, flag_iocs[i].cmd, 1);
+ printf("ioctl(-1, %s, PERF_IOC_FLAG_GROUP) = -1 EBADF (%m)\n",
+ flag_iocs[i].str);
+
+ ioctl(-1, flag_iocs[i].cmd, 2);
+ printf("ioctl(-1, %s, 0x2 /* PERF_IOC_FLAG_??? */) "
+ "= -1 EBADF (%m)\n",
+ flag_iocs[i].str);
+
+ sys_ioctl(-1, flag_iocs[i].cmd, magic);
+ printf("ioctl(-1, %s, PERF_IOC_FLAG_GROUP|%#x) "
+ "= -1 EBADF (%m)\n",
+ flag_iocs[i].str, (unsigned int) magic & ~1U);
+ }
+
+ /* PERF_EVENT_IOC_REFRESH */
+ sys_ioctl(-1, PERF_EVENT_IOC_REFRESH, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_REFRESH, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_PERIOD */
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, u64_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, %p) = -1 EBADF (%m)\n",
+ u64_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_PERIOD, u64_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_PERIOD, [%" PRIu64 "])"
+ " = -1 EBADF (%m)\n",
+ magic64);
+
+ /* PERF_EVENT_IOC_SET_OUTPUT */
+ sys_ioctl(-1, PERF_EVENT_IOC_SET_OUTPUT, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_OUTPUT, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_SET_FILTER */
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, %p) = -1 EBADF (%m)\n",
+ str_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, \"%.32s\"...)"
+ " = -1 EBADF (%m)\n",
+ str_ptr);
+
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr + 40);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, \"%.32s\")"
+ " = -1 EBADF (%m)\n",
+ str_ptr + 40);
+
+ str_ptr[sizeof(str) - 1] = '0';
+ ioctl(-1, PERF_EVENT_IOC_SET_FILTER, str_ptr + 40);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_FILTER, %p)"
+ " = -1 EBADF (%m)\n",
+ str_ptr + 40);
+
+ /* PERF_EVENT_IOC_ID */
+ ioctl(-1, PERF_EVENT_IOC_ID, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_ID, u64_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = -1 EBADF (%m)\n",
+ u64_efault);
+
+ ioctl(-1, PERF_EVENT_IOC_ID, u64_ptr);
+ printf("ioctl(-1, PERF_EVENT_IOC_ID, %p) = -1 EBADF (%m)\n",
+ u64_ptr);
+
+ /* PERF_EVENT_IOC_SET_BPF */
+ sys_ioctl(-1, PERF_EVENT_IOC_SET_BPF, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_SET_BPF, %d) = -1 EBADF (%m)\n",
+ (int) magic);
+
+ /* PERF_EVENT_IOC_PAUSE_OUTPUT */
+ sys_ioctl(-1, PERF_EVENT_IOC_PAUSE_OUTPUT, magic);
+ printf("ioctl(-1, PERF_EVENT_IOC_PAUSE_OUTPUT, %lu) = -1 EBADF (%m)\n",
+ (unsigned long) magic);
+
+ /* PERF_EVENT_IOC_QUERY_BPF */
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, NULL) = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_efault);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, %p) = -1 EBADF (%m)\n",
+ u32_efault);
+
+ u32_arr[0] = 0xbadc0ded;
+ ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, u32_arr);
+ printf("ioctl(-1, PERF_EVENT_IOC_QUERY_BPF, {ids_len=3134983661, ...})"
+ " = -1 EBADF (%m)\n");
+
+ /* PERF_EVENT_IOC_MODIFY_ATTRIBUTES */
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, NULL);
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, NULL)"
+ " = -1 EBADF (%m)\n");
+
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, pea_ptr + 1);
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, %p)"
+ " = -1 EBADF (%m)\n",
+ pea_ptr + 1);
+
+ printf("ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES"
+ ", {type=%#x /* PERF_TYPE_??? */"
+ ", size=%#x /* PERF_ATTR_SIZE_??? */"
+ ", config=%#llx, ...}) = -1 EBADF (%m)\n",
+ (unsigned int) pea_ptr->type,
+ (unsigned int) pea_ptr->size,
+ (unsigned long long) pea_ptr->config);
+ ioctl(-1, PERF_EVENT_IOC_MODIFY_ATTRIBUTES, pea_ptr);
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H");
+
+#endif
diff --git a/tests/ioctl_perf.gen.test b/tests/ioctl_perf.gen.test
new file mode 100755
index 0000000..0264f34
--- /dev/null
+++ b/tests/ioctl_perf.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_perf +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests/ioctl_ptp.c b/tests/ioctl_ptp.c
new file mode 100644
index 0000000..1c82919
--- /dev/null
+++ b/tests/ioctl_ptp.c
@@ -0,0 +1,131 @@
+/*
+ * Check decoding of PTP_* commands of ioctl syscall.
+ *
+ * Copyright (c) 2018 Harsha Sharma <[email protected]>
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_STRUCT_PTP_SYS_OFFSET
+
+#include <errno.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <linux/ptp_clock.h>
+
+#include "xlat.h"
+#include "xlat/ptp_flags_options.h"
+
+static void
+test_no_device(void)
+{
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_clock_caps, caps);
+ fill_memory(caps, sizeof(*caps));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_sys_offset, sysoff);
+ fill_memory(sysoff, sizeof(*sysoff));
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_extts_request, extts);
+ fill_memory(extts, sizeof(*extts));
+
+ 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);
+
+ /* 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);
+
+ /* 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");
+
+ /* 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;
+ 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");
+
+ /* 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;
+ 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");
+
+ /* 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);
+
+ 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);
+}
+
+int
+main(void)
+{
+ test_no_device();
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_STRUCT_PTP_SYS_OFFSET")
+
+#endif /* HAVE_STRUCT_PTP_SYS_OFFSET */
diff --git a/tests/ioctl_ptp.gen.test b/tests/ioctl_ptp.gen.test
new file mode 100755
index 0000000..6c0b0a9
--- /dev/null
+++ b/tests/ioctl_ptp.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_ptp +ioctl.test ); do not edit.
+set --
+. "${srcdir=.}/ioctl.test"
diff --git a/tests/ioctl_v4l2.c b/tests/ioctl_v4l2.c
index 2736b39..a7dcc49 100644
--- a/tests/ioctl_v4l2.c
+++ b/tests/ioctl_v4l2.c
@@ -842,6 +842,21 @@
printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_USER"
", count=%u}) = -1 EBADF (%m)\n", 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"
+ ", count=%u, controls=%p}) = -1 EBADF (%m)\n",
+ 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_??? */"
+ ", count=%u, controls=%p}) = -1 EBADF (%m)\n",
+ 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);
@@ -883,7 +898,7 @@
", {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\"}"
- ", %p]}) = -1 EBADF (%m)\n",
+ ", ... /* %p */]}) = -1 EBADF (%m)\n",
p_ext_controls->count,
p_ext_controls->controls[0].value,
(long long) p_ext_controls->controls[0].value64,
diff --git a/tests/ipc.sh b/tests/ipc.sh
index 5943c1a..ef55073 100644
--- a/tests/ipc.sh
+++ b/tests/ipc.sh
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-run_strace -eipc $args > "$EXP"
+run_strace -eipc "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
exit 0
diff --git a/tests/ipc_msg-Xabbrev.c b/tests/ipc_msg-Xabbrev.c
new file mode 100644
index 0000000..f4535e8
--- /dev/null
+++ b/tests/ipc_msg-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_msg.c"
diff --git a/tests/ipc_msg-Xabbrev.gen.test b/tests/ipc_msg-Xabbrev.gen.test
new file mode 100755
index 0000000..0969ee1
--- /dev/null
+++ b/tests/ipc_msg-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26); do not edit.
+set -- -Xabbrev -a26
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_msg-Xraw.c b/tests/ipc_msg-Xraw.c
new file mode 100644
index 0000000..9c016d3
--- /dev/null
+++ b/tests/ipc_msg-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_msg.c"
diff --git a/tests/ipc_msg-Xraw.gen.test b/tests/ipc_msg-Xraw.gen.test
new file mode 100755
index 0000000..5d5d732
--- /dev/null
+++ b/tests/ipc_msg-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xraw +ipc.sh -Xraw -a16); do not edit.
+set -- -Xraw -a16
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_msg-Xverbose.c b/tests/ipc_msg-Xverbose.c
new file mode 100644
index 0000000..3f59f98
--- /dev/null
+++ b/tests/ipc_msg-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_msg.c"
diff --git a/tests/ipc_msg-Xverbose.gen.test b/tests/ipc_msg-Xverbose.gen.test
new file mode 100755
index 0000000..88c79a0
--- /dev/null
+++ b/tests/ipc_msg-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg-Xverbose +ipc.sh -Xverbose -a34); do not edit.
+set -- -Xverbose -a34
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_msg.c b/tests/ipc_msg.c
index b493843..a74dba5 100644
--- a/tests/ipc_msg.c
+++ b/tests/ipc_msg.c
@@ -1,6 +1,7 @@
/*
* Copyright (c) 2015 Elvira Khabirova <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,6 +36,10 @@
#include "xlat.h"
#include "xlat/resource_flags.h"
+#ifndef MSG_STAT_ANY
+# define MSG_STAT_ANY 13
+#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)
@@ -52,13 +57,50 @@
# define TEST_MSGCTL_BOGUS_ADDR 1
#endif
+#if XLAT_RAW
+# define str_ipc_excl_nowait "0xface1c00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_msg_stat "0xb"
+# define str_msg_info "0xc"
+# define str_msg_stat_any "0xd"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_excl_nowait \
+ "0xface1c00 /\\* 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_msg_stat "0xb /\\* MSG_STAT \\*/"
+# define str_msg_info "0xc /\\* MSG_INFO \\*/"
+# define str_msg_stat_any "0xd /\\* MSG_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#else
+# define str_ipc_excl_nowait "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_msg_stat "MSG_STAT"
+# define str_msg_info "MSG_INFO"
+# define str_msg_stat_any "MSG_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* MSG_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
msgctl(id, IPC_RMID, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) += 0\n", id);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) += 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -67,7 +109,7 @@
{
static const key_t private_key =
(key_t) (0xffffffff00000000ULL | IPC_PRIVATE);
- static const key_t bogus_key = (key_t) 0xeca86420fdb97531ULL;
+ static const key_t bogus_key = (key_t) 0xeca86420fdb9f531ULL;
static const int bogus_msgid = 0xfdb97531;
static const int bogus_cmd = 0xdeadbeef;
#if TEST_MSGCTL_BOGUS_ADDR
@@ -79,37 +121,36 @@
struct msqid_ds ds;
rc = msgget(bogus_key, bogus_flags);
- printf("msgget\\(%#llx, %s%s%s%#x\\|%#04o\\) += %s\n",
+ printf("msgget\\(%#llx, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key),
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
+ str_ipc_excl_nowait,
bogus_flags & 0777, sprintrc_grep(rc));
id = msgget(private_key, 0600);
if (id < 0)
perror_msg_and_skip("msgget");
- printf("msgget\\(IPC_PRIVATE, 0600\\) += %d\n", id);
+ printf("msgget\\(%s, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = msgctl(bogus_msgid, bogus_cmd, NULL);
- printf("msgctl\\(%d, (IPC_64\\|)?%#x /\\* MSG_\\?\\?\\? \\*/, NULL\\)"
- " += %s\n", bogus_msgid, bogus_cmd, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
#if TEST_MSGCTL_BOGUS_ADDR
rc = msgctl(bogus_msgid, IPC_SET, bogus_addr);
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, %p\\) += %s\n",
- bogus_msgid, bogus_addr, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_msgid, str_ipc_64, str_ipc_set, bogus_addr,
+ sprintrc_grep(rc));
#endif
if (msgctl(id, IPC_STAT, &ds))
perror_msg_and_skip("msgctl IPC_STAT");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{msg_perm=\\{uid=%u"
+ 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, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
+ ", 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,
@@ -119,18 +160,22 @@
if (msgctl(id, IPC_SET, &ds))
perror_msg_and_skip("msgctl IPC_SET");
- printf("msgctl\\(%d, (IPC_64\\|)?IPC_SET, \\{msg_perm=\\{uid=%u"
- ", gid=%u, mode=%#o\\}, ...\\}\\) += 0\n",
- id, (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
- (unsigned) ds.msg_perm.mode);
+ 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);
rc = msgctl(0, MSG_INFO, &ds);
- printf("msgctl\\(0, (IPC_64\\|)?MSG_INFO, %p\\) += %s\n",
- &ds, sprintrc_grep(rc));
+ printf("msgctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_msg_info, &ds, sprintrc_grep(rc));
rc = msgctl(id, MSG_STAT, &ds);
- printf("msgctl\\(%d, (IPC_64\\|)?MSG_STAT, %p\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_msg_stat, &ds, sprintrc_grep(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));
return 0;
}
diff --git a/tests/ipc_msg.gen.test b/tests/ipc_msg.gen.test
index b1f1f7e..8202619 100755
--- a/tests/ipc_msg.gen.test
+++ b/tests/ipc_msg.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg +ipc.sh ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msg +ipc.sh -a26); do not edit.
+set -- -a26
. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_msgbuf-Xabbrev.c b/tests/ipc_msgbuf-Xabbrev.c
new file mode 100644
index 0000000..e2f09eb
--- /dev/null
+++ b/tests/ipc_msgbuf-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_msgbuf.c"
diff --git a/tests/ipc_msgbuf-Xabbrev.gen.test b/tests/ipc_msgbuf-Xabbrev.gen.test
new file mode 100755
index 0000000..402d804
--- /dev/null
+++ b/tests/ipc_msgbuf-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev); do not edit.
+set -- -Xabbrev
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests/ipc_msgbuf-Xraw.c b/tests/ipc_msgbuf-Xraw.c
new file mode 100644
index 0000000..c6f8a31
--- /dev/null
+++ b/tests/ipc_msgbuf-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_msgbuf.c"
diff --git a/tests/ipc_msgbuf-Xraw.gen.test b/tests/ipc_msgbuf-Xraw.gen.test
new file mode 100755
index 0000000..c1112cb
--- /dev/null
+++ b/tests/ipc_msgbuf-Xraw.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests/ipc_msgbuf-Xverbose.c b/tests/ipc_msgbuf-Xverbose.c
new file mode 100644
index 0000000..ae09a4a
--- /dev/null
+++ b/tests/ipc_msgbuf-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_msgbuf.c"
diff --git a/tests/ipc_msgbuf-Xverbose.gen.test b/tests/ipc_msgbuf-Xverbose.gen.test
new file mode 100755
index 0000000..2c72eb7
--- /dev/null
+++ b/tests/ipc_msgbuf-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose); do not edit.
+set -- -Xverbose
+. "${srcdir=.}/ipc_msgbuf.test"
diff --git a/tests/ipc_msgbuf.c b/tests/ipc_msgbuf.c
index c4af1be..e439c49 100644
--- a/tests/ipc_msgbuf.c
+++ b/tests/ipc_msgbuf.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2015 Elvira Khabirova <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,7 +28,10 @@
*/
#include "tests.h"
+#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
+#include <asm/unistd.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/stat.h>
@@ -38,22 +41,54 @@
static int msqid = -1;
+#if XLAT_RAW
+# define str_ipc_creat "0x200"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_64 "0x100"
+#elif XLAT_VERBOSE
+# define str_ipc_creat "0x200 /\\* IPC_CREAT \\*/"
+# define str_ipc_private "0 /\\* IPC_PRIVATE \\*/"
+# define str_ipc_rmid "0 /\\* IPC_RMID \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+#else
+# define str_ipc_creat "IPC_CREAT"
+# define str_ipc_private "IPC_PRIVATE"
+# define str_ipc_rmid "IPC_RMID"
+# define str_ipc_64 "IPC_64"
+#endif
+
static int
cleanup(void)
{
if (msqid != -1) {
int rc = msgctl(msqid, IPC_RMID, 0);
+ printf("msgctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ msqid, str_ipc_64, str_ipc_rmid);
msqid = -1;
if (rc == -1)
return 77;
+ puts("\\+\\+\\+ exited with 0 \\+\\+\\+");
}
return 0;
}
int
+sys_msgrcv(int msqid, void *msgp, size_t sz, kernel_long_t msgtyp,
+ int msgflg)
+{
+#if defined __x86_64__ && defined __ILP32__
+ return syscall(__NR_msgrcv, msqid, msgp, sz, msgtyp, msgflg);
+#else
+ return msgrcv(msqid, msgp, sz, msgtyp, msgflg);
+#endif
+}
+
+int
main(void)
{
- const long mtype = 0xdefaced;
+ /* mtype has to be positive */
+ const kernel_long_t mtype = (kernel_long_t) 0x7facefed5adc0dedULL;
struct {
kernel_long_t mtype;
char mtext[msgsz];
@@ -64,11 +99,23 @@
msqid = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU);
if (msqid == -1)
perror_msg_and_skip("msgget");
+ printf("msgget\\(%s, %s\\|0700\\) = %d\n",
+ str_ipc_private, str_ipc_creat, msqid);
+
typedef void (*atexit_func)(void);
atexit((atexit_func) cleanup);
+
+ printf("msgsnd\\(%d, \\{%lld, \"" text_string "\\\\0\"\\}, 14, 0\\)"
+ " = 0\n",
+ msqid, (long long) mtype);
if (msgsnd(msqid, &msg, msgsz, 0) == -1)
perror_msg_and_skip("msgsnd");
- if (msgrcv(msqid, &msg, msgsz, mtype, 0) != msgsz)
+
+ if (sys_msgrcv(msqid, &msg, msgsz, -mtype, 0) != msgsz)
perror_msg_and_skip("msgrcv");
+ printf("msgrcv\\(%d, \\{%lld, \"" text_string "\\\\0\"\\}, 14, %lld"
+ ", 0\\) = 14\n",
+ msqid, (long long) mtype, -(long long) mtype);
+
return cleanup();
}
diff --git a/tests/ipc_msgbuf.test b/tests/ipc_msgbuf.test
index d0b65d1..9e78785 100755
--- a/tests/ipc_msgbuf.test
+++ b/tests/ipc_msgbuf.test
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
run_prog
-run_strace -v -e msgget,msgsnd,msgrcv,msgctl $args
-match_grep
+run_strace -a26 -v -e msgget,msgsnd,msgrcv,msgctl "$@" $args > "$EXP"
+match_grep "$LOG" "$EXP"
exit 0
diff --git a/tests/ipc_sem-Xabbrev.c b/tests/ipc_sem-Xabbrev.c
new file mode 100644
index 0000000..727005a
--- /dev/null
+++ b/tests/ipc_sem-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_sem.c"
diff --git a/tests/ipc_sem-Xabbrev.gen.test b/tests/ipc_sem-Xabbrev.gen.test
new file mode 100755
index 0000000..0757a48
--- /dev/null
+++ b/tests/ipc_sem-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29); do not edit.
+set -- -Xabbrev -a29
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_sem-Xraw.c b/tests/ipc_sem-Xraw.c
new file mode 100644
index 0000000..0a57c0a
--- /dev/null
+++ b/tests/ipc_sem-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_sem.c"
diff --git a/tests/ipc_sem-Xraw.gen.test b/tests/ipc_sem-Xraw.gen.test
new file mode 100755
index 0000000..07d59e5
--- /dev/null
+++ b/tests/ipc_sem-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xraw +ipc.sh -Xraw -a19); do not edit.
+set -- -Xraw -a19
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_sem-Xverbose.c b/tests/ipc_sem-Xverbose.c
new file mode 100644
index 0000000..56e8380
--- /dev/null
+++ b/tests/ipc_sem-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_sem.c"
diff --git a/tests/ipc_sem-Xverbose.gen.test b/tests/ipc_sem-Xverbose.gen.test
new file mode 100755
index 0000000..43a61d0
--- /dev/null
+++ b/tests/ipc_sem-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem-Xverbose +ipc.sh -Xverbose -a36); do not edit.
+set -- -Xverbose -a36
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_sem.c b/tests/ipc_sem.c
index c883272..8cbbfaa 100644
--- a/tests/ipc_sem.c
+++ b/tests/ipc_sem.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2015 Andreas Schwab <[email protected]>
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,43 @@
#include "xlat.h"
#include "xlat/resource_flags.h"
+#ifndef SEM_STAT_ANY
+# define SEM_STAT_ANY 20
+#endif
+
+#if XLAT_RAW
+# define str_ipc_flags "0xface1e00"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_stat "0x2"
+# define str_sem_stat "0x12"
+# define str_sem_info "0x13"
+# define str_sem_stat_any "0x14"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdeadbeef"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "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_stat "0x2 /\\* IPC_STAT \\*/"
+# define str_sem_stat "0x12 /\\* SEM_STAT \\*/"
+# define str_sem_info "0x13 /\\* SEM_INFO \\*/"
+# define str_sem_stat_any "0x14 /\\* SEM_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#else
+# 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_stat "IPC_STAT"
+# define str_sem_stat "SEM_STAT"
+# define str_sem_info "SEM_INFO"
+# define str_sem_stat_any "SEM_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdeadbeef /\\* SEM_\\?\\?\\? \\*/"
+#endif
+
union semun {
int val; /* Value for SETVAL */
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
@@ -50,8 +87,8 @@
cleanup(void)
{
semctl(id, 0, IPC_RMID, 0);
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_RMID, \\[?NULL\\]?\\) += 0\n",
- id);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?NULL\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -75,42 +112,41 @@
struct seminfo info;
rc = semget(bogus_key, bogus_size, bogus_flags);
- printf("semget\\(%#llx, %d, %s%s%s%#x\\|%#04o\\) += %s\n",
+ printf("semget\\(%#llx, %d, %s\\|%#04o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- IPC_CREAT & bogus_flags ? "IPC_CREAT\\|" : "",
- IPC_EXCL & bogus_flags ? "IPC_EXCL\\|" : "",
- IPC_NOWAIT & bogus_flags ? "IPC_NOWAIT\\|" : "",
- bogus_flags & ~(0777 | IPC_CREAT | IPC_EXCL | IPC_NOWAIT),
- bogus_flags & 0777, sprintrc_grep(rc));
+ str_ipc_flags, bogus_flags & 0777, sprintrc_grep(rc));
id = semget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("semget");
- printf("semget\\(IPC_PRIVATE, 1, 0600\\) += %d\n", id);
+ printf("semget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = semctl(bogus_semid, bogus_semnum, bogus_cmd, bogus_arg);
#define SEMCTL_BOGUS_ARG_FMT "(%#lx|\\[(%#lx|NULL)\\]|NULL)"
- printf("semctl\\(%d, %d, (IPC_64\\|)?%#x /\\* SEM_\\?\\?\\? \\*/"
- ", " SEMCTL_BOGUS_ARG_FMT "\\) += %s\n",
- bogus_semid, bogus_semnum, bogus_cmd,
+ printf("semctl\\(%d, %d, (%s\\|)?%s, " SEMCTL_BOGUS_ARG_FMT "\\) = %s\n",
+ bogus_semid, bogus_semnum, str_ipc_64, str_bogus_cmd,
bogus_arg, bogus_arg, sprintrc_grep(rc));
un.buf = &ds;
if (semctl(id, 0, IPC_STAT, un))
perror_msg_and_skip("semctl IPC_STAT");
- printf("semctl\\(%d, 0, (IPC_64\\|)?IPC_STAT, \\[?%p\\]?\\) += 0\n",
- id, &ds);
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = 0\n",
+ id, str_ipc_64, str_ipc_stat, &ds);
un.__buf = &info;
rc = semctl(0, 0, SEM_INFO, un);
- printf("semctl\\(0, 0, (IPC_64\\|)?SEM_INFO, \\[?%p\\]?\\) += %s\n",
- &info, sprintrc_grep(rc));
+ printf("semctl\\(0, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ str_ipc_64, str_sem_info, &info, sprintrc_grep(rc));
un.buf = &ds;
rc = semctl(id, 0, SEM_STAT, un);
- printf("semctl\\(%d, 0, (IPC_64\\|)?SEM_STAT, \\[?%p\\]?\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n",
+ id, str_ipc_64, str_sem_stat, &ds, sprintrc_grep(rc));
+
+ 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));
return 0;
}
diff --git a/tests/ipc_sem.gen.test b/tests/ipc_sem.gen.test
index a1c03d2..173b3af 100755
--- a/tests/ipc_sem.gen.test
+++ b/tests/ipc_sem.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem +ipc.sh ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_sem +ipc.sh -a29); do not edit.
+set -- -a29
. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_shm-Xabbrev.c b/tests/ipc_shm-Xabbrev.c
new file mode 100644
index 0000000..c191aea
--- /dev/null
+++ b/tests/ipc_shm-Xabbrev.c
@@ -0,0 +1 @@
+#include "ipc_shm.c"
diff --git a/tests/ipc_shm-Xabbrev.gen.test b/tests/ipc_shm-Xabbrev.gen.test
new file mode 100755
index 0000000..d68c246
--- /dev/null
+++ b/tests/ipc_shm-Xabbrev.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_shm-Xraw.c b/tests/ipc_shm-Xraw.c
new file mode 100644
index 0000000..08e09ac
--- /dev/null
+++ b/tests/ipc_shm-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "ipc_shm.c"
diff --git a/tests/ipc_shm-Xraw.gen.test b/tests/ipc_shm-Xraw.gen.test
new file mode 100755
index 0000000..071eef6
--- /dev/null
+++ b/tests/ipc_shm-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xraw +ipc.sh -Xraw -a19); do not edit.
+set -- -Xraw -a19
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_shm-Xverbose.c b/tests/ipc_shm-Xverbose.c
new file mode 100644
index 0000000..b936785
--- /dev/null
+++ b/tests/ipc_shm-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "ipc_shm.c"
diff --git a/tests/ipc_shm-Xverbose.gen.test b/tests/ipc_shm-Xverbose.gen.test
new file mode 100755
index 0000000..170adee
--- /dev/null
+++ b/tests/ipc_shm-Xverbose.gen.test
@@ -0,0 +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
+. "${srcdir=.}/ipc.sh"
diff --git a/tests/ipc_shm.c b/tests/ipc_shm.c
index 6586c8a..f5802cc 100644
--- a/tests/ipc_shm.c
+++ b/tests/ipc_shm.c
@@ -41,16 +41,62 @@
# define SHM_HUGE_MASK 0x3f
#endif
+#ifndef SHM_STAT_ANY
+# define SHM_STAT_ANY 15
+#endif
+
#include "xlat.h"
#include "xlat/shm_resource_flags.h"
+#if XLAT_RAW
+# define str_ipc_flags "0x2ce1e00"
+# define str_shm_huge "21<<26"
+# define str_ipc_private "0"
+# define str_ipc_rmid "0"
+# define str_ipc_set "0x1"
+# define str_ipc_stat "0x2"
+# define str_shm_stat "0xd"
+# define str_shm_info "0xe"
+# define str_shm_stat_any "0xf"
+# define str_ipc_64 "0x100"
+# define str_bogus_cmd "0xdefaced2"
+#elif XLAT_VERBOSE
+# define str_ipc_flags \
+ "0x2ce1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE" \
+ "\\|0x2ce0000 \\*/"
+# define str_shm_huge "21<<26 /\\* SHM_HUGE_SHIFT \\*/"
+# 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_shm_stat "0xd /\\* SHM_STAT \\*/"
+# define str_shm_info "0xe /\\* SHM_INFO \\*/"
+# define str_shm_stat_any "0xf /\\* SHM_STAT_ANY \\*/"
+# define str_ipc_64 "0x100 /\\* IPC_64 \\*/"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#else
+# define str_ipc_flags \
+ "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE\\|0x2ce0000"
+# define str_shm_huge "21<<SHM_HUGE_SHIFT"
+# 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_shm_stat "SHM_STAT"
+# define str_shm_info "SHM_INFO"
+# define str_shm_stat_any "SHM_STAT_ANY"
+# define str_ipc_64 "IPC_64"
+# define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/"
+#endif
+
static int id = -1;
static void
cleanup(void)
{
shmctl(id, IPC_RMID, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_RMID, NULL\\) += 0\n", id);
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = 0\n",
+ id, str_ipc_64, str_ipc_rmid);
id = -1;
}
@@ -82,68 +128,67 @@
struct shmid_ds ds;
rc = shmget(bogus_key, bogus_size, 0);
- printf("shmget\\(%#llx, %zu, 000\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, 000\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
sprintrc_grep(rc));
rc = shmget(bogus_key, bogus_size, huge_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "21<<SHM_HUGE_SHIFT", 0, sprintrc_grep(rc));
+ str_shm_huge, 0, sprintrc_grep(rc));
bogus_flags = 0xface1e55 & ~(bogus_ipc_shm_flags | huge_mask);
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %#x\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %#x\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
bogus_flags & ~0777,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags |= bogus_ipc_shm_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags),
+ str_ipc_flags,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags |= huge_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %s\\|%#x\\|%s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %s\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
- "IPC_CREAT\\|IPC_EXCL\\|SHM_HUGETLB\\|SHM_NORESERVE",
- bogus_flags & ~(0777 | bogus_ipc_shm_flags | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_ipc_flags, str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
bogus_flags &= ~bogus_ipc_shm_flags;
rc = shmget(bogus_key, bogus_size, bogus_flags);
- printf("shmget\\(%#llx, %zu, %#x\\|%s\\|%#03o\\) += %s\n",
+ printf("shmget\\(%#llx, %zu, %#x\\|%s\\|%#03o\\) = %s\n",
zero_extend_signed_to_ull(bogus_key), bogus_size,
bogus_flags & ~(0777 | huge_mask),
- "21<<SHM_HUGE_SHIFT",
+ str_shm_huge,
bogus_flags & 0777, sprintrc_grep(rc));
id = shmget(private_key, 1, 0600);
if (id < 0)
perror_msg_and_skip("shmget");
- printf("shmget\\(IPC_PRIVATE, 1, 0600\\) += %d\n", id);
+ printf("shmget\\(%s, 1, 0600\\) = %d\n", str_ipc_private, id);
atexit(cleanup);
rc = shmctl(bogus_id, bogus_cmd, NULL);
- printf("shmctl\\(%d, (IPC_64\\|)?%#x /\\* SHM_\\?\\?\\? \\*/, NULL\\)"
- " += %s\n", bogus_id, bogus_cmd, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n",
+ bogus_id, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc));
rc = shmctl(bogus_id, IPC_STAT, bogus_addr);
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, %p\\) += %s\n",
- bogus_id, bogus_addr, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ bogus_id, str_ipc_64, str_ipc_stat, bogus_addr,
+ sprintrc_grep(rc));
if (shmctl(id, IPC_STAT, &ds))
perror_msg_and_skip("shmctl IPC_STAT");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_STAT, \\{shm_perm=\\{uid=%u, gid=%u, "
+ 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, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ "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,
@@ -153,18 +198,23 @@
if (shmctl(id, IPC_SET, &ds))
perror_msg_and_skip("shmctl IPC_SET");
- printf("shmctl\\(%d, (IPC_64\\|)?IPC_SET, \\{shm_perm=\\{uid=%u, gid=%u"
- ", mode=%#o\\}, ...\\}\\) += 0\n",
- id, (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u"
+ ", 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);
rc = shmctl(0, SHM_INFO, &ds);
- printf("shmctl\\(0, (IPC_64\\|)?SHM_INFO, %p\\) += %s\n",
- &ds, sprintrc_grep(rc));
+ printf("shmctl\\(0, (%s\\|)?%s, %p\\) = %s\n",
+ str_ipc_64, str_shm_info, &ds, sprintrc_grep(rc));
rc = shmctl(id, SHM_STAT, &ds);
- printf("shmctl\\(%d, (IPC_64\\|)?SHM_STAT, %p\\) += %s\n",
- id, &ds, sprintrc_grep(rc));
+ printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n",
+ id, str_ipc_64, str_shm_stat, &ds, sprintrc_grep(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));
return 0;
}
diff --git a/tests/ipc_shm.gen.test b/tests/ipc_shm.gen.test
index 8c6df9b..2e697d3 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 ); do not edit.
-set --
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a29); do not edit.
+set -- -a29
. "${srcdir=.}/ipc.sh"
diff --git a/tests/kcmp.c b/tests/kcmp.c
index 60cd300..a6a05c5 100644
--- a/tests/kcmp.c
+++ b/tests/kcmp.c
@@ -2,6 +2,7 @@
* Check decoding of kcmp syscall.
*
* Copyright (c) 2016-2017 Eugene Syromyatnikov <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -167,7 +168,7 @@
int fd;
unsigned i;
- struct kcmp_epoll_slot *slot = tail_alloc(sizeof(*slot));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct kcmp_epoll_slot, slot);
/* Open some files to test printpidfd */
fd = open(null_path, O_RDONLY);
diff --git a/tests/kexec_load.c b/tests/kexec_load.c
index 2a6b441..ff4507c 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -129,7 +129,7 @@
printf("{buf=%p, bufsz=%zu, mem=%p, memsz=%zu}, ",
segms[i].buf, segms[i].bufsz,
segms[i].mem, segms[i].memsz);
- printf("%p], %s%s) = %s\n",
+ printf("... /* %p */], %s%s) = %s\n",
segms + NUM_SEGMS,
sizeof(long) == 8 ? flags[0].str64 : flags[0].str32,
flags[0].str, errstr);
diff --git a/tests/keyctl-Xabbrev.c b/tests/keyctl-Xabbrev.c
new file mode 100644
index 0000000..7b6b0dc
--- /dev/null
+++ b/tests/keyctl-Xabbrev.c
@@ -0,0 +1 @@
+#include "keyctl.c"
diff --git a/tests/keyctl-Xabbrev.gen.test b/tests/keyctl-Xabbrev.gen.test
new file mode 100755
index 0000000..0068a03
--- /dev/null
+++ b/tests/keyctl-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xabbrev -a31 -s10 -e trace=keyctl -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a31 -s10 -e trace=keyctl -Xabbrev
diff --git a/tests/keyctl-Xraw.c b/tests/keyctl-Xraw.c
new file mode 100644
index 0000000..202c22a
--- /dev/null
+++ b/tests/keyctl-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "keyctl.c"
diff --git a/tests/keyctl-Xraw.gen.test b/tests/keyctl-Xraw.gen.test
new file mode 100755
index 0000000..2d89ea7
--- /dev/null
+++ b/tests/keyctl-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xraw -a13 -s10 -e trace=keyctl -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a13 -s10 -e trace=keyctl -Xraw
diff --git a/tests/keyctl-Xverbose.c b/tests/keyctl-Xverbose.c
new file mode 100644
index 0000000..9f9d744
--- /dev/null
+++ b/tests/keyctl-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "keyctl.c"
diff --git a/tests/keyctl-Xverbose.gen.test b/tests/keyctl-Xverbose.gen.test
new file mode 100755
index 0000000..a0cdd7d
--- /dev/null
+++ b/tests/keyctl-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (keyctl-Xverbose -a41 -s10 -e trace=keyctl -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a41 -s10 -e trace=keyctl -Xverbose
diff --git a/tests/keyctl.c b/tests/keyctl.c
index 5d46ab7..881f24b 100644
--- a/tests/keyctl.c
+++ b/tests/keyctl.c
@@ -89,6 +89,14 @@
/* From ioctl_dm.c */
# define STR32 "AbCdEfGhIjKlMnOpQrStUvWxYz012345"
+#if XLAT_RAW
+# define XARG_STR(v_) (v_), STRINGIFY(v_)
+#elif XLAT_VERBOSE
+# define XARG_STR(v_) (v_), STRINGIFY(v_) " /* " #v_ " */"
+#else
+# define XARG_STR ARG_STR
+#endif
+
/*
* When this is called with positive size, the buffer provided is an "out"
* argument and rc contains resulting size (globally defined nul_terminated_buf
@@ -187,7 +195,13 @@
long rc = syscall(__NR_keyctl, cmd, args[0], args[1], args[2], args[3]);
const char *errstr = sprintrc(rc);
+#if XLAT_RAW
+ printf("keyctl(%#x", (unsigned) cmd);
+#elif XLAT_VERBOSE
+ printf("keyctl(%#x /* %s */", (unsigned) cmd, cmd_str);
+#else
printf("keyctl(%s", cmd_str);
+#endif
for (i = 0; i < cnt; i++) {
printf(", ");
print_arg(args[i], arg_str[i], arg_fmt[i], arg_sz[i], rc);
@@ -299,8 +313,20 @@
static const struct keyctl_dh_params kcdhp_data = {
KEY_SPEC_GROUP_KEYRING, 1234567890, 3141592653U };
- static const char *kcdhp_str = "{private=KEY_SPEC_GROUP_KEYRING, "
- "prime=1234567890, base=-1153374643}";
+ static const char *kcdhp_str = "{private="
+#if XLAT_RAW || XLAT_VERBOSE
+ "-6"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
+ "KEY_SPEC_GROUP_KEYRING"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ ", prime=1234567890, base=-1153374643}";
/*
* It's bigger than current hash name size limit, but since it's
@@ -418,7 +444,15 @@
/* Invalid command */
do_keyctl((kernel_ulong_t) 0xbadc0dedfacefeedULL,
- "0xfacefeed /* KEYCTL_??? */",
+#if XLAT_VERBOSE
+ "KEYCTL_???"
+#else
+ "0xfacefeed"
+# if !XLAT_RAW
+ " /* KEYCTL_??? */"
+# endif
+#endif
+ ,
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xdeadfee1badc0de5ULL, NULL,
kulong_fmt,
@@ -440,7 +474,7 @@
(kernel_ulong_t) 0xbadc0dedffffffffLLU, "-1", NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_KEYRING_ID),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), "%d",
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), "%d",
sizeof(int), 3141592653U, NULL, "%d", NULL,
0UL);
@@ -469,7 +503,7 @@
buf_in_arg = true;
do_keyctl(ARG_STR(KEYCTL_UPDATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 0, NULL, ksize_fmt,
0UL);
@@ -498,7 +532,7 @@
/* KEYCTL_REVOKE */
do_keyctl(ARG_STR(KEYCTL_REVOKE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_REVOKE),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -513,7 +547,7 @@
/* KEYCTL_CHOWN */
do_keyctl(ARG_STR(KEYCTL_CHOWN),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(uid_t), ARG_STR(-1), NULL,
sizeof(gid_t), ARG_STR(-1), NULL,
0UL);
@@ -526,8 +560,15 @@
/* KEYCTL_SETPERM */
do_keyctl(ARG_STR(KEYCTL_SETPERM),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQKEY_AUTH_KEY), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQKEY_AUTH_KEY), NULL,
sizeof(uint32_t), 0xffffffffU,
+#if XLAT_RAW || XLAT_VERBOSE
+ "0xffffffff"
+#endif
+#if XLAT_VERBOSE
+ " /* "
+#endif
+#if !XLAT_RAW
"KEY_POS_VIEW|KEY_POS_READ|KEY_POS_WRITE|"
"KEY_POS_SEARCH|KEY_POS_LINK|KEY_POS_SETATTR|"
"KEY_USR_VIEW|KEY_USR_READ|KEY_USR_WRITE|"
@@ -536,7 +577,12 @@
"KEY_GRP_SEARCH|KEY_GRP_LINK|KEY_GRP_SETATTR|"
"KEY_OTH_VIEW|KEY_OTH_READ|KEY_OTH_WRITE|"
"KEY_OTH_SEARCH|KEY_OTH_LINK|KEY_OTH_SETATTR|"
- "0xc0c0c0c0", NULL,
+ "0xc0c0c0c0"
+#endif
+#if XLAT_VERBOSE
+ " */"
+#endif
+ , NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_SETPERM),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -544,7 +590,12 @@
0UL);
do_keyctl(ARG_STR(KEYCTL_SETPERM),
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
- sizeof(uint32_t), 0xc0c0c0c0, "0xc0c0c0c0 /* KEY_??? */",
+ sizeof(uint32_t), 0xc0c0c0c0,
+ "0xc0c0c0c0"
+#if !XLAT_RAW
+ " /* KEY_??? */"
+#endif
+ ,
NULL,
0UL);
@@ -563,17 +614,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_DESCRIBE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -581,7 +632,7 @@
/* KEYCTL_CLEAR */
do_keyctl(ARG_STR(KEYCTL_CLEAR),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_CLEAR),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -597,14 +648,14 @@
/* KEYCTL_LINK */
do_keyctl(ARG_STR(KEYCTL_LINK),
sizeof(int32_t), bogus_key1, NULL, "%d",
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_LINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(int32_t), bogus_key2, NULL, "%d",
0UL);
do_keyctl(ARG_STR(KEYCTL_LINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
0UL);
@@ -612,14 +663,14 @@
/* KEYCTL_UNLINK */
do_keyctl(ARG_STR(KEYCTL_UNLINK),
sizeof(int32_t), bogus_key1, NULL, "%d",
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_UNLINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(int32_t), bogus_key2, NULL, "%d",
0UL);
do_keyctl(ARG_STR(KEYCTL_UNLINK),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL,
0UL);
@@ -628,7 +679,7 @@
buf_in_arg = true;
do_keyctl(ARG_STR(KEYCTL_SEARCH),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(int32_t), 0, NULL, "%d");
@@ -636,7 +687,7 @@
sizeof(int32_t), bogus_key1, NULL, "%d",
sizeof(char *), (char *) 0xfffffacefffffeedULL, NULL, ptr_fmt,
sizeof(char *), (char *) 0xfffff00dfffff157ULL, NULL, ptr_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_USER_SESSION_KEYRING),
+ sizeof(int32_t), XARG_STR(KEY_SPEC_USER_SESSION_KEYRING),
NULL);
do_keyctl(ARG_STR(KEYCTL_SEARCH),
sizeof(int32_t), bogus_key2, NULL, "%d",
@@ -657,7 +708,7 @@
/* KEYCTL_RESTRICT_KEYRING */
do_keyctl(ARG_STR(KEYCTL_RESTRICT_KEYRING),
- sizeof(int32_t), ARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_REQUESTOR_KEYRING), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
sizeof(char *), ARG_STR(NULL), NULL,
NULL);
@@ -705,17 +756,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_READ),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -751,11 +802,11 @@
ksize_fmt,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
do_keyctl(ARG_STR(KEYCTL_INSTANTIATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
sizeof(long_type_str), long_desc, NULL, NULL,
sizeof(kernel_ulong_t),
(kernel_ulong_t) sizeof(long_type_str), NULL, ksize_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
buf_in_arg = false;
@@ -788,7 +839,7 @@
/* KEYCTL_SET_REQKEY_KEYRING */
do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
- sizeof(int32_t), ARG_STR(KEY_REQKEY_DEFL_NO_CHANGE), NULL,
+ sizeof(int32_t), XARG_STR(KEY_REQKEY_DEFL_NO_CHANGE), NULL,
0UL);
/*
* Keep it commented out until proper way of faking syscalls is not
@@ -796,11 +847,15 @@
*/
/* do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
sizeof(int32_t),
- ARG_STR(KEY_REQKEY_DEFL_REQUESTOR_KEYRING), NULL, 0UL); */
+ XARG_STR(KEY_REQKEY_DEFL_REQUESTOR_KEYRING), NULL, 0UL); */
do_keyctl(ARG_STR(KEYCTL_SET_REQKEY_KEYRING),
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xfeedf157badc0dedLLU,
- "0xbadc0ded /* KEY_REQKEY_DEFL_??? */", NULL, 0UL);
+ "-1159983635"
+#if !XLAT_RAW
+ " /* KEY_REQKEY_DEFL_??? */"
+#endif
+ , NULL, 0UL);
/* KEYCTL_SET_TIMEOUT */
@@ -822,7 +877,7 @@
/* KEYCTL_ASSUME_AUTHORITY */
do_keyctl(ARG_STR(KEYCTL_ASSUME_AUTHORITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_ASSUME_AUTHORITY),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -848,17 +903,17 @@
(kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 9, (uintptr_t) bogus_buf1, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 9, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) 256, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) 256, NULL, ksize_fmt,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_SECURITY),
- sizeof(int32_t), ARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), NULL,
(size_t) -4, (uintptr_t) bogus_buf2, NULL, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) -4, NULL, ksize_fmt,
0UL);
@@ -893,7 +948,7 @@
sizeof(kernel_ulong_t),
(kernel_ulong_t) 0xfeedf157badc0dedLLU, "3134983661",
NULL,
- sizeof(uint32_t), ARG_STR(ENODEV), NULL,
+ sizeof(uint32_t), XARG_STR(ENODEV), NULL,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
@@ -923,16 +978,16 @@
ksize_fmt,
sizeof(kernel_ulong_t), bogus_key3, bogus_key3_str, NULL);
do_keyctl(ARG_STR(KEYCTL_INSTANTIATE_IOV),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
sizeof(key_iov), key_iov, key_iov_str2, NULL,
sizeof(kernel_ulong_t), (kernel_ulong_t) IOV_SIZE, NULL,
ksize_fmt,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL);
/* KEYCTL_INVALIDATE */
do_keyctl(ARG_STR(KEYCTL_INVALIDATE),
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_INVALIDATE),
sizeof(int32_t), bogus_key1, NULL, "%d",
@@ -948,7 +1003,7 @@
/* KEYCTL_GET_PERSISTENT */
do_keyctl(ARG_STR(KEYCTL_GET_PERSISTENT),
sizeof(uid_t), ARG_STR(-1), NULL,
- sizeof(int32_t), ARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
+ sizeof(int32_t), XARG_STR(KEY_SPEC_GROUP_KEYRING), NULL,
0UL);
do_keyctl(ARG_STR(KEYCTL_GET_PERSISTENT),
sizeof(uid_t), 2718281828U, NULL, "%u",
diff --git a/tests/mknod.c b/tests/mknod.c
index b387149..4bcc274 100644
--- a/tests/mknod.c
+++ b/tests/mknod.c
@@ -59,7 +59,7 @@
rc = call_mknod(mode, dev);
printf("mknod(\"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho"
", makedev(%u, %u)) = %ld %s (%m)\n",
- sample, mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX),
+ sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)),
major((unsigned) dev), minor((unsigned) dev),
rc, errno2name());
diff --git a/tests/mknodat.c b/tests/mknodat.c
index 756e277..318dc5a 100644
--- a/tests/mknodat.c
+++ b/tests/mknodat.c
@@ -59,7 +59,7 @@
rc = call_mknodat(mode, dev);
printf("mknodat(-1, \"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho"
", makedev(%u, %u)) = %ld %s (%m)\n",
- sample, mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX),
+ sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)),
major((unsigned) dev), minor((unsigned) dev),
rc, errno2name());
diff --git a/tests/mmap-Xabbrev.c b/tests/mmap-Xabbrev.c
new file mode 100644
index 0000000..b31ce42
--- /dev/null
+++ b/tests/mmap-Xabbrev.c
@@ -0,0 +1 @@
+#include "mmap.c"
diff --git a/tests/mmap-Xabbrev.gen.test b/tests/mmap-Xabbrev.gen.test
new file mode 100755
index 0000000..b11a84f
--- /dev/null
+++ b/tests/mmap-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xabbrev +mmap.test abbrev); do not edit.
+set -- abbrev
+. "${srcdir=.}/mmap.test"
diff --git a/tests/mmap-Xraw.c b/tests/mmap-Xraw.c
new file mode 100644
index 0000000..ef25c03
--- /dev/null
+++ b/tests/mmap-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mmap.c"
diff --git a/tests/mmap-Xraw.gen.test b/tests/mmap-Xraw.gen.test
new file mode 100755
index 0000000..3caca91
--- /dev/null
+++ b/tests/mmap-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xraw +mmap.test raw 14); do not edit.
+set -- raw 14
+. "${srcdir=.}/mmap.test"
diff --git a/tests/mmap-Xverbose.c b/tests/mmap-Xverbose.c
new file mode 100644
index 0000000..08e9e30
--- /dev/null
+++ b/tests/mmap-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mmap.c"
diff --git a/tests/mmap-Xverbose.gen.test b/tests/mmap-Xverbose.gen.test
new file mode 100755
index 0000000..99b41c0
--- /dev/null
+++ b/tests/mmap-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap-Xverbose +mmap.test verbose); do not edit.
+set -- verbose
+. "${srcdir=.}/mmap.test"
diff --git a/tests/mmap.c b/tests/mmap.c
index 0321bf5..e9f587e 100644
--- a/tests/mmap.c
+++ b/tests/mmap.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -58,25 +58,60 @@
(void) close(0);
(void) close(0);
+#if XLAT_RAW
+ printf("%s(NULL, 0, %#x, %#x, 0, 0) = -1 EBADF (%m)\n",
+ name, PROT_NONE, MAP_FILE);
+#elif XLAT_VERBOSE
+ printf("%s(NULL, 0, %#x /* PROT_NONE */, %#x /* MAP_FILE */, 0, 0) "
+ "= -1 EBADF (%m)\n",
+ name, PROT_NONE, MAP_FILE);
+#else
printf("%s(NULL, 0, PROT_NONE, MAP_FILE, 0, 0) = -1 EBADF (%m)\n",
name);
+#endif
mmap(NULL, 0, PROT_NONE, MAP_FILE, 0, 0);
p = mmap(addr, length1, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, fd, offset);
if (MAP_FAILED == p)
perror_msg_and_fail("mmap");
+#if XLAT_RAW
+ printf("%s(%p, %lu, %#x, "
+ "%#x|%#x, %d, %#jx) = %p\n",
+ name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
+ MAP_ANONYMOUS, fd, uoffset, p);
+#elif XLAT_VERBOSE
+ printf("%s(%p, %lu, %#x /* PROT_READ|PROT_WRITE */, "
+ "%#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */, %d, %#jx) "
+ "= %p\n",
+ name, addr, length1, PROT_READ | PROT_WRITE, MAP_PRIVATE,
+ MAP_ANONYMOUS, fd, uoffset, p);
+#else
printf("%s(%p, %lu, PROT_READ|PROT_WRITE, "
"MAP_PRIVATE|MAP_ANONYMOUS, %d, %#jx) = %p\n",
name, addr, length1, fd, uoffset, p);
+#endif
if (msync(p, length1, MS_SYNC))
perror_msg_and_fail("msync");
+#if XLAT_RAW
+ printf("msync(%p, %lu, %#x) = 0\n", p, length1, MS_SYNC);
+#elif XLAT_VERBOSE
+ printf("msync(%p, %lu, %#x /* MS_SYNC */) = 0\n", p, length1, MS_SYNC);
+#else
printf("msync(%p, %lu, MS_SYNC) = 0\n", p, length1);
+#endif
if (mprotect(p, length1, PROT_NONE))
perror_msg_and_fail("mprotect");
+#if XLAT_RAW
+ printf("mprotect(%p, %lu, %#x) = 0\n", p, length1, PROT_NONE);
+#elif XLAT_VERBOSE
+ printf("mprotect(%p, %lu, %#x /* PROT_NONE */) = 0\n",
+ p, length1, PROT_NONE);
+#else
printf("mprotect(%p, %lu, PROT_NONE) = 0\n", p, length1);
+#endif
addr = mremap(p, length1, length2, 0);
if (MAP_FAILED == addr)
@@ -87,8 +122,19 @@
addr + length2);
if (MAP_FAILED == p)
perror_msg_and_fail("mremap");
+#if XLAT_RAW
+ printf("mremap(%p, %lu, %lu, %#x, %p) = %p\n",
+ addr, length2, length3, MREMAP_MAYMOVE | MREMAP_FIXED,
+ addr + length2, p);
+#elif XLAT_VERBOSE
+ printf("mremap(%p, %lu, %lu, %#x /* MREMAP_MAYMOVE|MREMAP_FIXED */"
+ ", %p) = %p\n",
+ addr, length2, length3, MREMAP_MAYMOVE | MREMAP_FIXED,
+ addr + length2, p);
+#else
printf("mremap(%p, %lu, %lu, MREMAP_MAYMOVE|MREMAP_FIXED"
", %p) = %p\n", addr, length2, length3, addr + length2, p);
+#endif
if (munmap(p, length3))
perror_msg_and_fail("munmap");
@@ -96,7 +142,13 @@
if (mlockall(MCL_FUTURE))
perror_msg_and_fail("mlockall");
+#if XLAT_RAW
+ printf("mlockall(%#x) = 0\n", MCL_FUTURE);
+#elif XLAT_VERBOSE
+ printf("mlockall(%#x /* MCL_FUTURE */) = 0\n", MCL_FUTURE);
+#else
puts("mlockall(MCL_FUTURE) = 0");
+#endif
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests/mmap.test b/tests/mmap.test
index 7ba664e..7fa2c70 100755
--- a/tests/mmap.test
+++ b/tests/mmap.test
@@ -4,7 +4,7 @@
# syscalls decoding.
#
# Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2015-2017 The strace developers.
+# Copyright (c) 2015-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,15 +35,20 @@
check_prog sed
run_prog > /dev/null
+xlat_opt=""
+[ "$#" -gt 0 ] && xlat_opt="-X$1"
+align=20
+[ "$#" -gt 1 ] && align="$2"
+
syscall=
for n in mmap mmap2; do
$STRACE -e$n -h > /dev/null && syscall=$syscall,$n
done
run_strace -e$syscall $args > /dev/null
-if grep '^mmap(NULL, 0, PROT_NONE,' < "$LOG" > /dev/null; then
+if grep '^mmap(NULL, 0, \(0 /* PROT_NONE */\|0\|PROT_NONE\),' < "$LOG" > /dev/null; then
mmap=mmap
-elif grep '^mmap2(NULL, 0, PROT_NONE,' < "$LOG" > /dev/null; then
+elif grep '^mmap2(NULL, 0, \(0 \/\* PROT_NONE \*\/\|0\|PROT_NONE\),' < "$LOG" > /dev/null; then
mmap=mmap2
else
dump_log_and_fail_with "mmap/mmap2 not found in $STRACE $args output"
@@ -52,6 +57,6 @@
syscall=$mmap,madvise,mlockall,mprotect,mremap,msync,munmap
run_prog "../$NAME" $mmap > /dev/null
-run_strace -a20 -e$syscall $args > "$EXP"
-sed -n "/^$mmap(NULL, 0, PROT_NONE,/,\$p" < "$LOG" > "$OUT"
+run_strace -a$align -e$syscall $xlat_opt $args > "$EXP"
+sed -n "/^$mmap(NULL, 0, \(0 \/\* PROT_NONE \*\/\|0\|PROT_NONE\),/,\$p" < "$LOG" > "$OUT"
match_diff "$OUT" "$EXP"
diff --git a/tests/mmap64-Xabbrev.c b/tests/mmap64-Xabbrev.c
new file mode 100644
index 0000000..cbd7789
--- /dev/null
+++ b/tests/mmap64-Xabbrev.c
@@ -0,0 +1 @@
+#include "mmap64.c"
diff --git a/tests/mmap64-Xabbrev.gen.test b/tests/mmap64-Xabbrev.gen.test
new file mode 100755
index 0000000..3e2c94b
--- /dev/null
+++ b/tests/mmap64-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xabbrev +mmap.test abbrev); do not edit.
+set -- abbrev
+. "${srcdir=.}/mmap.test"
diff --git a/tests/mmap64-Xraw.c b/tests/mmap64-Xraw.c
new file mode 100644
index 0000000..f75f235
--- /dev/null
+++ b/tests/mmap64-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mmap64.c"
diff --git a/tests/mmap64-Xraw.gen.test b/tests/mmap64-Xraw.gen.test
new file mode 100755
index 0000000..7aeed02
--- /dev/null
+++ b/tests/mmap64-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xraw +mmap.test raw 14); do not edit.
+set -- raw 14
+. "${srcdir=.}/mmap.test"
diff --git a/tests/mmap64-Xverbose.c b/tests/mmap64-Xverbose.c
new file mode 100644
index 0000000..f72513e
--- /dev/null
+++ b/tests/mmap64-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mmap64.c"
diff --git a/tests/mmap64-Xverbose.gen.test b/tests/mmap64-Xverbose.gen.test
new file mode 100755
index 0000000..0d675d9
--- /dev/null
+++ b/tests/mmap64-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mmap64-Xverbose +mmap.test verbose); do not edit.
+set -- verbose
+. "${srcdir=.}/mmap.test"
diff --git a/tests/mmsg_name.c b/tests/mmsg_name.c
index 8c54a48..c17b13d 100644
--- a/tests/mmsg_name.c
+++ b/tests/mmsg_name.c
@@ -3,7 +3,7 @@
* of sendmmsg and recvmmsg syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -152,7 +152,7 @@
printf("sendmmsg(-1, [{msg_hdr=");
print_msghdr(&send_mh[IOV_MAX].msg_hdr, 0);
errno = saved_errno;
- printf("}, %p], %u, MSG_DONTWAIT) = %d %s (%m)\n",
+ printf("}, ... /* %p */], %u, MSG_DONTWAIT) = %d %s (%m)\n",
&send_mh[IOV_MAX1], 2, rc, errno2name());
rc = send_mmsg(send_fd, send_mh, IOV_MAX1, MSG_DONTWAIT);
diff --git a/tests/modify_ldt.c b/tests/modify_ldt.c
index 1e26bda..2d527ac 100644
--- a/tests/modify_ldt.c
+++ b/tests/modify_ldt.c
@@ -67,8 +67,8 @@
static const kernel_ulong_t bogus_bytecount =
(kernel_ulong_t) 0xdeadfacefa57beefULL;
- struct user_desc *us = tail_alloc(sizeof(*us));
- unsigned int *bogus_int = tail_alloc(sizeof(*bogus_int));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, us);
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, bogus_int);
long rc;
fill_memory(us, sizeof(*us));
diff --git a/tests/mount-Xabbrev.c b/tests/mount-Xabbrev.c
new file mode 100644
index 0000000..0f6fecd
--- /dev/null
+++ b/tests/mount-Xabbrev.c
@@ -0,0 +1 @@
+#include "mount.c"
diff --git a/tests/mount-Xabbrev.gen.test b/tests/mount-Xabbrev.gen.test
new file mode 100755
index 0000000..10e261f
--- /dev/null
+++ b/tests/mount-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xabbrev -a33 -e trace=mount -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xabbrev
diff --git a/tests/mount-Xraw.c b/tests/mount-Xraw.c
new file mode 100644
index 0000000..3aa1f08
--- /dev/null
+++ b/tests/mount-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "mount.c"
diff --git a/tests/mount-Xraw.gen.test b/tests/mount-Xraw.gen.test
new file mode 100755
index 0000000..ce852f8
--- /dev/null
+++ b/tests/mount-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xraw -a33 -e trace=mount -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xraw
diff --git a/tests/mount-Xverbose.c b/tests/mount-Xverbose.c
new file mode 100644
index 0000000..0b211c7
--- /dev/null
+++ b/tests/mount-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "mount.c"
diff --git a/tests/mount-Xverbose.gen.test b/tests/mount-Xverbose.gen.test
new file mode 100755
index 0000000..c780070
--- /dev/null
+++ b/tests/mount-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount-Xverbose -a33 -e trace=mount -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a33 -e trace=mount -Xverbose
diff --git a/tests/mount.c b/tests/mount.c
index cbfe42f8..2e58571 100644
--- a/tests/mount.c
+++ b/tests/mount.c
@@ -2,6 +2,7 @@
* Check decoding of mount syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,7 +41,34 @@
# define MS_RELATIME (1ul << 21)
#endif
-#define str_ro_nosuid_nodev_noexec "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC"
+#if XLAT_RAW
+# define str_unknown "0x300"
+# define str_submount_200 "0x4000200"
+# define str_mgc_val "0xc0ed0000"
+# define str_remount "0x20"
+# define str_bind "0x1000"
+# define str_ro_nosuid_nodev_noexec "0xf"
+# define str_ro_nosuid_nodev_noexec_relatime "0x20000f"
+#elif XLAT_VERBOSE
+# define str_unknown "0x300 /* MS_??? */"
+# define str_submount_200 "0x4000200 /* MS_SUBMOUNT|0x200 */"
+# define str_mgc_val "0xc0ed0000 /* MS_MGC_VAL */"
+# define str_remount "0x20 /* MS_REMOUNT */"
+# define str_bind "0x1000 /* MS_BIND */"
+# define str_ro_nosuid_nodev_noexec \
+ "0xf /* MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC */"
+# define str_ro_nosuid_nodev_noexec_relatime \
+ "0x20000f /* MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_RELATIME */"
+#else /* !XLAT_RAW && !XLAT_VERBOSE */
+# define str_unknown "0x300 /* MS_??? */"
+# define str_submount_200 "MS_SUBMOUNT|0x200"
+# define str_mgc_val "MS_MGC_VAL"
+# define str_remount "MS_REMOUNT"
+# define str_bind "MS_BIND"
+# define str_ro_nosuid_nodev_noexec "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC"
+# define str_ro_nosuid_nodev_noexec_relatime \
+ "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_RELATIME"
+#endif /* XLAT_RAW, XLAT_VERBOSE */
int
main(void)
@@ -49,35 +77,59 @@
static const char target[] = "mount_target";
static const char fstype[] = "mount_fstype";
static const char data[] = "mount_data";
+ TAIL_ALLOC_OBJECT_CONST_PTR(char, bogus);
- int rc = mount(source, target, fstype, 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ bogus[0] = 'a';
+
+ int rc = mount(NULL, NULL, NULL, 0, NULL);
+ printf("mount(NULL, NULL, NULL, 0, NULL) = %s\n",
+ sprintrc(rc));
+
+ rc = mount(bogus, bogus, bogus, 768, bogus);
+ printf("mount(%p, %p, %p, %s, %p) = %s\n",
+ bogus, bogus, bogus, str_unknown, bogus, sprintrc(rc));
+
+ rc = mount(bogus + 1, bogus + 1, bogus + 1, 0x4000200, bogus + 1);
+ printf("mount(%p, %p, %p, %s, %p) = %s\n",
+ bogus + 1, bogus + 1, bogus + 1, str_submount_200,
+ bogus + 1, sprintrc(rc));
+
+ rc = mount(source, target, fstype, 15, data);
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype, str_ro_nosuid_nodev_noexec,
- data, rc, errno2name());
+ data, sprintrc(rc));
rc = mount(source, target, fstype, MS_RELATIME | 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype,
- str_ro_nosuid_nodev_noexec "|MS_RELATIME",
- data, rc, errno2name());
+ str_ro_nosuid_nodev_noexec_relatime,
+ data, sprintrc(rc));
rc = mount(source, target, fstype, MS_MGC_VAL, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
- source, target, fstype, "MS_MGC_VAL", data, rc, errno2name());
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
+ source, target, fstype, str_mgc_val, data, sprintrc(rc));
rc = mount(source, target, fstype, MS_MGC_VAL | 15, data);
- printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %d %s (%m)\n",
+ printf("mount(\"%s\", \"%s\", \"%s\", %s, \"%s\") = %s\n",
source, target, fstype,
- "MS_MGC_VAL|" str_ro_nosuid_nodev_noexec,
- data, rc, errno2name());
+ str_mgc_val "|" str_ro_nosuid_nodev_noexec,
+ data, sprintrc(rc));
+
+ rc = mount(source, target, NULL, MS_REMOUNT, data);
+ printf("mount(\"%s\", \"%s\", NULL, %s, \"%s\") = %s\n",
+ source, target, str_remount, data, sprintrc(rc));
rc = mount(source, target, fstype, MS_REMOUNT, data);
- printf("mount(\"%s\", \"%s\", %p, %s, \"%s\") = %d %s (%m)\n",
- source, target, fstype, "MS_REMOUNT", data, rc, errno2name());
+ printf("mount(\"%s\", \"%s\", %p, %s, \"%s\") = %s\n",
+ source, target, fstype, str_remount, data, sprintrc(rc));
- rc = mount(source, target, fstype, MS_BIND, data);
- printf("mount(\"%s\", \"%s\", %p, %s, %p) = %d %s (%m)\n",
- source, target, fstype, "MS_BIND", data, rc, errno2name());
+ rc = mount(source, target, NULL, MS_BIND, data);
+ printf("mount(\"%s\", \"%s\", NULL, %s, %p) = %s\n",
+ source, target, str_bind, data, sprintrc(rc));
+
+ rc = mount(source, target, fstype, MS_BIND, NULL);
+ printf("mount(\"%s\", \"%s\", %p, %s, NULL) = %s\n",
+ source, target, fstype, str_bind, sprintrc(rc));
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests/mount.gen.test b/tests/mount.gen.test
index 69bc99b..2a3639c 100755
--- a/tests/mount.gen.test
+++ b/tests/mount.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mount -a33 ); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff
+run_strace_match_diff -a33
diff --git a/tests/move_pages.c b/tests/move_pages.c
index 5ec25aa..851a8c7 100644
--- a/tests/move_pages.c
+++ b/tests/move_pages.c
@@ -2,7 +2,7 @@
* Check decoding of move_pages syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,7 @@
break;
}
} else {
- printf("%p", pages + i);
+ printf("... /* %p */", pages + i);
break;
}
const void *const addr = pages[i];
@@ -99,7 +99,7 @@
break;
}
} else {
- printf("%p", nodes + i);
+ printf("... /* %p */", nodes + i);
break;
}
printf("%d", nodes[i]);
diff --git a/tests/msg_control.c b/tests/msg_control.c
index 48b7347..01786d7 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -132,7 +132,7 @@
print_fds(cmsg, src_len);
printf("}");
if (aligned_cms_len < msg_controllen)
- printf(", %p", (void *) cmsg + aligned_cms_len);
+ printf(", ... /* %p */", (void *) cmsg + aligned_cms_len);
printf("]");
}
@@ -195,7 +195,7 @@
print_fds(cmsg[1], src1_len);
printf("}");
if (aligned_cms_len[1] < msg_controllen1)
- printf(", %p", (void *) cmsg[1] + aligned_cms_len[1]);
+ printf(", ... /* %p */", (void *) cmsg[1] + aligned_cms_len[1]);
printf("]");
errno = saved_errno;
@@ -425,7 +425,7 @@
print_security(cmsg, src_len);
printf("}");
if (aligned_cms_len < msg_controllen)
- printf(", %p", (void *) cmsg + aligned_cms_len);
+ printf(", ... /* %p */", (void *) cmsg + aligned_cms_len);
printf("]");
errno = saved_errno;
diff --git a/tests/net-sockaddr.c b/tests/net-sockaddr.c
index fe933d4..22cbb26 100644
--- a/tests/net-sockaddr.c
+++ b/tests/net-sockaddr.c
@@ -2,7 +2,7 @@
* Check decoding of sockaddr structures
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -436,25 +436,86 @@
{
const unsigned short h_psm = 12345;
const unsigned short h_cid = 13579;
- const struct sockaddr_l2 c_l2 = {
+ struct sockaddr_l2 c_l2 = {
.l2_family = AF_BLUETOOTH,
.l2_psm = htobs(h_psm),
.l2_bdaddr.b = "abcdef",
.l2_cid = htobs(h_cid),
- .l2_bdaddr_type = 42
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ .l2_bdaddr_type = 0xce,
+#endif
};
void *l2 = tail_memdup(&c_l2, sizeof(c_l2));
unsigned int len = sizeof(c_l2);
+
int ret = connect(-1, l2, len);
printf("connect(-1, {sa_family=AF_BLUETOOTH"
- ", l2_psm=htobs(%hu)"
+ ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)"
", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
- ", l2_cid=htobs(%hu), l2_bdaddr_type=%u}"
- ", %u) = %d EBADF (%m)\n", h_psm,
+ ", l2_cid=htobs(L2CAP_CID_DYN_START + %hu)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=0xce /* BDADDR_??? */"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ (short) (h_psm - 0x1001),
c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
- h_cid, c_l2.l2_bdaddr_type, len, ret);
+ (short) (h_cid - 0x40), len, ret);
+
+ c_l2.l2_psm = htobs(1);
+ c_l2.l2_cid = htobs(1);
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ c_l2.l2_bdaddr_type = BDADDR_LE_RANDOM;
+#endif
+ memcpy(l2, &c_l2, sizeof(c_l2));
+ ret = connect(-1, l2, len);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(L2CAP_PSM_SDP)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(L2CAP_CID_SIGNALING)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=BDADDR_LE_RANDOM"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ len, ret);
+
+ c_l2.l2_psm = htobs(0xbad);
+ c_l2.l2_cid = htobs(8);
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ c_l2.l2_bdaddr_type = 3;
+#endif
+ memcpy(l2, &c_l2, sizeof(c_l2));
+ ret = connect(-1, l2, len);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(0x8 /* L2CAP_CID_??? */)"
+#ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
+ ", l2_bdaddr_type=0x3 /* BDADDR_??? */"
+#endif
+ "}, %u) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ len, ret);
+
+ c_l2.l2_psm = htobs(0x10ff);
+ c_l2.l2_cid = htobs(0xffff);
+ memcpy(l2, &c_l2, 12);
+ ret = connect(-1, l2, 12);
+ printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ ", l2_psm=htobs(L2CAP_PSM_AUTO_END)"
+ ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ ", l2_cid=htobs(L2CAP_CID_DYN_END)"
+ "}, 12) = %d EBADF (%m)\n",
+ c_l2.l2_bdaddr.b[0], c_l2.l2_bdaddr.b[1],
+ c_l2.l2_bdaddr.b[2], c_l2.l2_bdaddr.b[3],
+ c_l2.l2_bdaddr.b[4], c_l2.l2_bdaddr.b[5],
+ ret);
}
#endif
diff --git a/tests/netlink_crypto.c b/tests/netlink_crypto.c
index d15c17c..5c3dc04 100644
--- a/tests/netlink_crypto.c
+++ b/tests/netlink_crypto.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -98,8 +98,6 @@
static void
test_crypto_msg_newalg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
struct crypto_user_alg alg = {
.cru_name = "abcd",
.cru_driver_name = "efgh",
@@ -109,6 +107,8 @@
.cru_refcnt = 0xbcacfacd,
.cru_flags = 0xefacdbad
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(alg));
+
TEST_NETLINK_OBJECT_EX(fd, nlh0,
CRYPTO_MSG_NEWALG, NLM_F_REQUEST,
alg, print_quoted_memory,
@@ -149,7 +149,7 @@
static void
test_crypto_msg_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, 4);
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* CRYPTO_MSG_??? */",
diff --git a/tests/netlink_kobject_uevent.c b/tests/netlink_kobject_uevent.c
index 7edacd7..b28af49 100644
--- a/tests/netlink_kobject_uevent.c
+++ b/tests/netlink_kobject_uevent.c
@@ -27,9 +27,12 @@
*/
#include "tests.h"
+#include <string.h>
#include <stdio.h>
#include <sys/socket.h>
+#include <arpa/inet.h>
#include "netlink.h"
+#include "netlink_kobject_uevent.h"
static const char *errstr;
@@ -41,6 +44,94 @@
return rc;
}
+static void
+test_nlmsg_type_udev(const int fd)
+{
+ static const char extra[] = "12345678";
+ struct udev_monitor_netlink_header uh = {
+ .prefix = "libudev",
+ .magic = htonl(0xfeedcafe),
+ .header_size = sizeof(uh),
+ .properties_off = 40,
+ .properties_len = 299,
+ .filter_subsystem_hash = htonl(0xc370b302),
+ .filter_devtype_hash = htonl(0x10800000),
+ .filter_tag_bloom_hi = htonl(0x2000400),
+ .filter_tag_bloom_lo = htonl(0x10800000),
+ };
+ const unsigned int extra_len = LENGTH_OF(extra);
+ const unsigned int uh_len = sizeof(uh);
+
+ char *const buf = tail_alloc(uh_len + extra_len);
+ memcpy(buf + extra_len, &uh, uh_len);
+
+ sys_send(fd, buf + extra_len, uh_len);
+ printf("sendto(%d, {{prefix=\"%s\", magic=htonl(%#x)"
+ ", header_size=%u, properties_off=%u, properties_len=%u"
+ ", filter_subsystem_hash=htonl(%#x)"
+ ", filter_devtype_hash=htonl(%#x)"
+ ", filter_tag_bloom_hi=htonl(%#x)"
+ ", filter_tag_bloom_lo=htonl(%#x)}}, %u, MSG_DONTWAIT, NULL, "
+ "0) = %s\n"
+ , fd, uh.prefix,
+ ntohl(uh.magic), uh.header_size, uh.properties_off,
+ uh.properties_len, ntohl(uh.filter_subsystem_hash),
+ ntohl(uh.filter_devtype_hash), ntohl(uh.filter_tag_bloom_hi),
+ ntohl(uh.filter_tag_bloom_lo), uh_len, errstr);
+
+ memcpy(buf, &uh, uh_len);
+ memcpy(buf + uh_len, extra, extra_len);
+ sys_send(fd, buf, uh_len + extra_len);
+ printf("sendto(%d, {{prefix=\"%s\", magic=htonl(%#x)"
+ ", header_size=%u, properties_off=%u, properties_len=%u"
+ ", filter_subsystem_hash=htonl(%#x)"
+ ", filter_devtype_hash=htonl(%#x)"
+ ", filter_tag_bloom_hi=htonl(%#x)"
+ ", filter_tag_bloom_lo=htonl(%#x)}, "
+ , fd, uh.prefix,
+ ntohl(uh.magic), uh.header_size, uh.properties_off,
+ uh.properties_len, ntohl(uh.filter_subsystem_hash),
+ ntohl(uh.filter_devtype_hash), ntohl(uh.filter_tag_bloom_hi),
+ ntohl(uh.filter_tag_bloom_lo));
+ print_quoted_memory(buf + uh_len, extra_len);
+ printf("}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ uh_len + extra_len, errstr);
+
+ memcpy(buf + extra_len + 1, &uh, uh_len - 1);
+ sys_send(fd, buf + extra_len + 1, uh_len);
+ printf("sendto(%d, ", fd);
+ print_quoted_memory(&uh, MIN(uh_len - 1, DEFAULT_STRLEN));
+ printf("%s, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ (uh_len - 1 > DEFAULT_STRLEN ? "..." : ""),
+ uh_len, errstr);
+}
+
+static void
+test_nlmsg_type_kernel(const int fd)
+{
+ struct udev_monitor_netlink_header uh = {
+ .prefix = "change@",
+ .magic = htonl(0xfeedcafe),
+ .header_size = sizeof(uh),
+ .properties_off = 10,
+ .properties_len = 299,
+ .filter_subsystem_hash = htonl(0xfffffff),
+ .filter_devtype_hash = htonl(0x10000000),
+ .filter_tag_bloom_hi = htonl(0x2000400),
+ };
+ const unsigned int uh_len = sizeof(uh);
+
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct udev_monitor_netlink_header, p);
+ memcpy(p, &uh, uh_len);
+
+ sys_send(fd, p, uh_len);
+ printf("sendto(%d, ", fd);
+ print_quoted_memory(&uh, MIN(uh_len, DEFAULT_STRLEN));
+ printf("%s, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ (uh_len > DEFAULT_STRLEN ? "..." : ""),
+ uh_len, errstr);
+}
+
int
main(void)
{
@@ -48,6 +139,8 @@
int fd = create_nl_socket(NETLINK_KOBJECT_UEVENT);
+ test_nlmsg_type_udev(fd);
+ test_nlmsg_type_kernel(fd);
/* test using data that looks like a zero-length C string */
char *const buf = tail_alloc(DEFAULT_STRLEN + 1);
buf[0] = '=';
diff --git a/tests/netlink_netfilter.c b/tests/netlink_netfilter.c
index 57532f5..2842e15 100644
--- a/tests/netlink_netfilter.c
+++ b/tests/netlink_netfilter.c
@@ -88,8 +88,8 @@
static void
test_nlmsg_done(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const int num = 0xabcdefad;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
TEST_NETLINK(fd, nlh0, NLMSG_DONE, NLM_F_REQUEST,
sizeof(num), &num, sizeof(num),
@@ -99,13 +99,21 @@
static void
test_nfgenmsg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ static const struct nlattr nla = {
+ .nla_len = sizeof(nla),
+ .nla_type = 0x0bcd
+ };
struct nfgenmsg msg = {
.nfgen_family = AF_UNIX,
.version = NFNETLINK_V0,
.res_id = NFNL_SUBSYS_NFTABLES
};
+ char str_buf[NLMSG_ALIGN(sizeof(msg)) + 4];
+ char nla_buf[NLMSG_ALIGN(sizeof(msg)) + sizeof(nla)];
+
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN,
+ MAX(sizeof(str_buf), sizeof(nla_buf)));
TEST_NETLINK_OBJECT_EX_(fd, nlh0,
NFNL_SUBSYS_NFTABLES << 8 | NFT_MSG_NEWTABLE,
@@ -150,8 +158,6 @@
printf(", version=NFNETLINK_V0");
printf(", res_id=htons(%d)", NFNL_SUBSYS_NFTABLES));
- char str_buf[NLMSG_ALIGN(sizeof(msg)) + 4];
-
msg.res_id = htons(0xabcd);
memcpy(str_buf, &msg, sizeof(msg));
memcpy(str_buf + NLMSG_ALIGN(sizeof(msg)), "1234", 4);
@@ -165,12 +171,6 @@
", \"\\x31\\x32\\x33\\x34\"", 0xabcd));
# endif /* NFNL_MSG_BATCH_BEGIN */
- static const struct nlattr nla = {
- .nla_len = sizeof(nla),
- .nla_type = 0x0bcd
- };
- char nla_buf[NLMSG_ALIGN(sizeof(msg)) + sizeof(nla)];
-
msg.res_id = htons(NFNL_SUBSYS_NFTABLES);
memcpy(nla_buf, &msg, sizeof(msg));
memcpy(nla_buf + NLMSG_ALIGN(sizeof(msg)), &nla, sizeof(nla));
diff --git a/tests/netlink_netlink_diag.c b/tests/netlink_netlink_diag.c
index 855e404..a682f7c 100644
--- a/tests/netlink_netlink_diag.c
+++ b/tests/netlink_netlink_diag.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Fabien Siron <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -55,8 +55,7 @@
},
.ndr = {
.sdiag_family = AF_NETLINK,
- .sdiag_protocol = NDIAG_PROTO_ALL,
- .ndiag_show = NDIAG_SHOW_MEMINFO
+ .sdiag_protocol = NDIAG_PROTO_ALL
}
};
struct iovec iov = {
diff --git a/tests/netlink_protocol.c b/tests/netlink_protocol.c
index be1a652..47f0e92 100644
--- a/tests/netlink_protocol.c
+++ b/tests/netlink_protocol.c
@@ -3,6 +3,7 @@
*
* Copyright (c) 2014-2017 Dmitry V. Levin <[email protected]>
* Copyright (c) 2016 Fabien Siron <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -125,7 +126,8 @@
struct req req1;
char padding[NLMSG_ALIGN(sizeof(struct req)) - sizeof(struct req)];
struct req req2;
- } *const reqs = tail_alloc(sizeof(*reqs));
+ };
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct reqs, reqs);
memcpy(&reqs->req1, &c_req, sizeof(c_req));
memcpy(&reqs->req2, &c_req, sizeof(c_req));
@@ -144,7 +146,7 @@
rc = sendto(fd, efault2, sizeof(*reqs), MSG_DONTWAIT, NULL, 0);
printf("sendto(%d, [{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
", seq=0, pid=0}, \"\\x61\\x62\\x63\\x64\"}"
- ", %p], %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+ ", ... /* %p */], %u, MSG_DONTWAIT, NULL, 0) = %s\n",
fd, reqs->req1.nlh.nlmsg_len, NLM_F_DUMP,
&((struct reqs *) efault2)->req2, (unsigned) sizeof(*reqs),
sprintrc(rc));
@@ -203,7 +205,7 @@
{
struct nlmsgerr *err;
struct nlmsghdr *nlh;
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(*err) + 4);
long rc;
/* error message without enough room for the error code */
@@ -318,9 +320,9 @@
test_nlmsg_done(const int fd)
{
struct nlmsghdr *nlh;
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
- long rc;
const int num = 0xfacefeed;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
+ long rc;
/* NLMSG_DONE message without enough room for an integer payload */
nlh = nlh0;
diff --git a/tests/netlink_route.c b/tests/netlink_route.c
index a1c7d1f..a3fbac9 100644
--- a/tests/netlink_route.c
+++ b/tests/netlink_route.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -143,8 +144,8 @@
static void
test_nlmsg_done(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const int num = 0xabcdefad;
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(num));
TEST_NETLINK(fd, nlh0, NLMSG_DONE, NLM_F_REQUEST,
sizeof(num), &num, sizeof(num),
@@ -154,10 +155,11 @@
static void
test_rtnl_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* RTM_??? */",
NLM_F_REQUEST, "NLM_F_REQUEST",
@@ -180,7 +182,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -204,7 +205,6 @@
static void
test_rtnl_link(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifinfomsg ifinfo = {
.ifi_family = AF_UNIX,
.ifi_type = ARPHRD_LOOPBACK,
@@ -212,6 +212,7 @@
.ifi_flags = IFF_UP,
.ifi_change = 0xfabcdeba
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(ifinfo));
TEST_NL_ROUTE(fd, nlh0, RTM_GETLINK, ifinfo,
printf("{ifi_family=AF_UNIX"),
@@ -225,7 +226,6 @@
static void
test_rtnl_addr(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifaddrmsg msg = {
.ifa_family = AF_UNIX,
.ifa_prefixlen = 0xde,
@@ -233,6 +233,7 @@
.ifa_scope = RT_SCOPE_UNIVERSE,
.ifa_index = ifindex_lo()
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETADDR, msg,
printf("{ifa_family=AF_UNIX"),
@@ -246,7 +247,6 @@
static void
test_rtnl_route(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct rtmsg msg = {
.rtm_family = AF_UNIX,
.rtm_dst_len = 0xaf,
@@ -258,6 +258,7 @@
.rtm_type = RTN_LOCAL,
.rtm_flags = RTM_F_NOTIFY
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETROUTE, msg,
printf("{rtm_family=AF_UNIX"),
@@ -275,7 +276,6 @@
static void
test_rtnl_rule(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct rtmsg msg = {
.rtm_family = AF_UNIX,
.rtm_dst_len = 0xaf,
@@ -285,6 +285,7 @@
.rtm_type = FR_ACT_TO_TBL,
.rtm_flags = FIB_RULE_INVERT
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETRULE, msg,
printf("{family=AF_UNIX"),
@@ -301,7 +302,6 @@
static void
test_rtnl_neigh(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ndmsg msg = {
.ndm_family = AF_UNIX,
.ndm_ifindex = ifindex_lo(),
@@ -309,6 +309,7 @@
.ndm_flags = NTF_PROXY,
.ndm_type = RTN_UNSPEC
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETNEIGH, msg,
printf("{ndm_family=AF_UNIX"),
@@ -321,10 +322,10 @@
static void
test_rtnl_neightbl(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct ndtmsg msg = {
.ndtm_family = AF_NETLINK
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNEIGHTBL, NLM_F_REQUEST,
@@ -335,7 +336,6 @@
static void
test_rtnl_tc(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct tcmsg msg = {
.tcm_family = AF_UNIX,
.tcm_ifindex = ifindex_lo(),
@@ -343,6 +343,7 @@
.tcm_parent = 0xafbcadab,
.tcm_info = 0xbcaedafa
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETQDISC, msg,
printf("{tcm_family=AF_UNIX"),
@@ -356,10 +357,10 @@
static void
test_rtnl_tca(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct tcamsg msg = {
.tca_family = AF_INET
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETACTION, NLM_F_REQUEST,
@@ -371,7 +372,6 @@
static void
test_rtnl_addrlabel(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct ifaddrlblmsg msg = {
.ifal_family = AF_UNIX,
.ifal_prefixlen = 0xaf,
@@ -379,6 +379,7 @@
.ifal_index = ifindex_lo(),
.ifal_seq = 0xfadcdafb
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETADDRLABEL, msg,
printf("{ifal_family=AF_UNIX"),
@@ -394,11 +395,11 @@
static void
test_rtnl_dcb(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct dcbmsg msg = {
.dcb_family = AF_UNIX,
.cmd = DCB_CMD_UNDEFINED
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETDCB, msg,
printf("{dcb_family=AF_UNIX"),
@@ -410,10 +411,10 @@
static void
test_rtnl_netconf(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct netconfmsg msg = {
.ncm_family = AF_INET
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNETCONF, NLM_F_REQUEST,
@@ -426,11 +427,11 @@
static void
test_rtnl_mdb(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
const struct br_port_msg msg = {
.family = AF_UNIX,
.ifindex = ifindex_lo()
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NL_ROUTE(fd, nlh0, RTM_GETMDB, msg,
printf("{family=AF_UNIX"),
@@ -442,10 +443,10 @@
static void
test_rtnl_nsid(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct rtgenmsg msg = {
.rtgen_family = AF_UNIX
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_NETLINK(fd, nlh0,
RTM_GETNSID, NLM_F_REQUEST,
diff --git a/tests/netlink_selinux.c b/tests/netlink_selinux.c
index 2d76822..57cf8a5 100644
--- a/tests/netlink_selinux.c
+++ b/tests/netlink_selinux.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +54,7 @@
static void
test_selnl_msg_unspec(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, 4);
TEST_NETLINK_(fd, nlh0,
0xffff, "0xffff /* SELNL_MSG_??? */",
@@ -65,11 +66,11 @@
static void
test_selnl_msg_setenforce(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
static const struct selnl_msg_setenforce msg = {
.val = 0xfbdcdfab
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
+
TEST_NETLINK_OBJECT(fd, nlh0,
SELNL_MSG_SETENFORCE, NLM_F_REQUEST, msg,
PRINT_FIELD_D("{", msg, val);
@@ -79,11 +80,11 @@
static void
test_selnl_msg_policyload(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
-
static const struct selnl_msg_policyload msg = {
.seqno = 0xabdcfabc
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
+
TEST_NETLINK_OBJECT(fd, nlh0,
SELNL_MSG_POLICYLOAD, NLM_F_REQUEST, msg,
PRINT_FIELD_U("{", msg, seqno);
diff --git a/tests/netlink_sock_diag.c b/tests/netlink_sock_diag.c
index c2ebf12..880069f 100644
--- a/tests/netlink_sock_diag.c
+++ b/tests/netlink_sock_diag.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2016 Fabien Siron <[email protected]>
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -127,10 +127,11 @@
static void
test_odd_family_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK(fd, nlh0,
SOCK_DIAG_BY_FAMILY,
NLM_F_REQUEST,
@@ -153,7 +154,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -177,10 +177,11 @@
static void
test_odd_family_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+ uint8_t family = 0;
+ char buf[sizeof(family) + 4];
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(buf));
/* unspecified family only */
- uint8_t family = 0;
TEST_NETLINK(fd, nlh0,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP,
sizeof(family), &family, sizeof(family),
@@ -200,7 +201,6 @@
printf("%p", NLMSG_DATA(TEST_NETLINK_nlh)));
/* unspecified family and string */
- char buf[sizeof(family) + 4];
family = 0;
memcpy(buf, &family, sizeof(family));
memcpy(buf + sizeof(family), "1234", 4);
@@ -222,7 +222,6 @@
static void
test_unix_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct unix_diag_req req = {
.sdiag_family = AF_UNIX,
.sdiag_protocol = 253,
@@ -231,6 +230,7 @@
.udiag_show = UDIAG_SHOW_NAME,
.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_UNIX,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_UNIX"),
@@ -245,7 +245,6 @@
static void
test_unix_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct unix_diag_msg msg = {
.udiag_family = AF_UNIX,
.udiag_type = SOCK_STREAM,
@@ -253,6 +252,7 @@
.udiag_ino = 0xfacefeed,
.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_UNIX,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{udiag_family=AF_UNIX"),
@@ -266,7 +266,6 @@
static void
test_netlink_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct netlink_diag_req req = {
.sdiag_family = AF_NETLINK,
.sdiag_protocol = NDIAG_PROTO_ALL,
@@ -274,6 +273,7 @@
.ndiag_show = NDIAG_SHOW_MEMINFO,
.ndiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_NETLINK,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_NETLINK"),
@@ -298,7 +298,6 @@
static void
test_netlink_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct netlink_diag_msg msg = {
.ndiag_family = AF_NETLINK,
.ndiag_type = SOCK_RAW,
@@ -310,6 +309,7 @@
.ndiag_ino = 0xdaeefacd,
.ndiag_cookie = { 0xbadc0ded, 0xdeadbeef }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_NETLINK,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{ndiag_family=AF_NETLINK"),
@@ -327,7 +327,6 @@
static void
test_packet_diag_req(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct packet_diag_req req = {
.sdiag_family = AF_PACKET,
.sdiag_protocol = ETH_P_LOOP,
@@ -335,6 +334,7 @@
.pdiag_show = PACKET_SHOW_INFO,
.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
TEST_SOCK_DIAG(fd, nlh0, AF_PACKET,
SOCK_DIAG_BY_FAMILY, NLM_F_REQUEST, req,
printf("{sdiag_family=AF_PACKET"),
@@ -348,7 +348,6 @@
static void
test_packet_diag_msg(const int fd)
{
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
static const struct packet_diag_msg msg = {
.pdiag_family = AF_PACKET,
.pdiag_type = SOCK_STREAM,
@@ -356,6 +355,7 @@
.pdiag_ino = 0xfacefeed,
.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
TEST_SOCK_DIAG(fd, nlh0, AF_PACKET,
SOCK_DIAG_BY_FAMILY, NLM_F_DUMP, msg,
printf("{pdiag_family=AF_PACKET"),
@@ -371,7 +371,6 @@
{
const char address[] = "12.34.56.78";
const char address6[] = "12:34:56:78:90:ab:cd:ef";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req_v2 req = {
.sdiag_family = AF_INET,
.idiag_ext = 1 << (INET_DIAG_CONG - 1),
@@ -384,6 +383,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -435,7 +435,6 @@
test_inet_diag_req(const int fd)
{
const char address[] = "12.34.56.78";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req req = {
.idiag_family = AF_INET,
.idiag_src_len = 0xde,
@@ -450,6 +449,7 @@
.idiag_states = 1 << TCP_LAST_ACK,
.idiag_dbs = 0xfacefeed,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -479,7 +479,6 @@
test_inet_diag_req_v2(const int fd)
{
const char address[] = "87.65.43.21";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_req_v2 req = {
.sdiag_family = AF_INET,
.idiag_ext = 1 << (INET_DIAG_CONG - 1),
@@ -492,6 +491,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -519,7 +519,6 @@
test_inet_diag_msg(const int fd)
{
const char address[] = "11.22.33.44";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct inet_diag_msg msg = {
.idiag_family = AF_INET,
.idiag_state = TCP_LISTEN,
@@ -537,6 +536,7 @@
.idiag_uid = 0xdecefaeb,
.idiag_inode = 0xbadc0ded,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
if (!inet_pton(AF_INET, address, &msg.id.idiag_src) ||
!inet_pton(AF_INET, address, &msg.id.idiag_dst))
@@ -570,7 +570,6 @@
test_smc_diag_req(const int fd)
{
const char address[] = "43.21.56.78";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct smc_diag_req req = {
.diag_family = AF_SMC,
.diag_ext = 1 << (SMC_DIAG_CONNINFO - 1),
@@ -581,6 +580,7 @@
.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
},
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(req));
if (!inet_pton(AF_INET, address, &req.id.idiag_src) ||
!inet_pton(AF_INET, address, &req.id.idiag_dst))
@@ -606,7 +606,6 @@
test_smc_diag_msg(const int fd)
{
const char address[] = "34.87.12.90";
- void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
struct smc_diag_msg msg = {
.diag_family = AF_SMC,
.diag_state = SMC_ACTIVE,
@@ -621,6 +620,7 @@
.diag_uid = 0xadcdfafc,
.diag_inode = 0xbadc0ded,
};
+ void *const nlh0 = midtail_alloc(NLMSG_HDRLEN, sizeof(msg));
if (!inet_pton(AF_INET, address, &msg.id.idiag_src) ||
!inet_pton(AF_INET, address, &msg.id.idiag_dst))
diff --git a/tests/nlattr.c b/tests/nlattr.c
index 41923c0..8556f68 100644
--- a/tests/nlattr.c
+++ b/tests/nlattr.c
@@ -2,7 +2,7 @@
* Check decoding of netlink attribute.
*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -172,7 +172,7 @@
", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
- ", nla_type=UNIX_DIAG_NAME}, %p]}, %u"
+ ", nla_type=UNIX_DIAG_NAME}, ... /* %p */]}, %u"
", MSG_DONTWAIT, NULL, 0) = %s\n",
fd, msg_len, NLA_HDRLEN, nla + 1, msg_len, sprintrc(rc));
diff --git a/tests/nlattr_br_port_msg.c b/tests/nlattr_br_port_msg.c
index a2a4792..d339414 100644
--- a/tests/nlattr_br_port_msg.c
+++ b/tests/nlattr_br_port_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct br_port_msg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_crypto_user_alg.c b/tests/nlattr_crypto_user_alg.c
index 2482b33..b8ceba6 100644
--- a/tests/nlattr_crypto_user_alg.c
+++ b/tests/nlattr_crypto_user_alg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -72,7 +72,12 @@
const int fd = create_nl_socket(NETLINK_CRYPTO);
const unsigned int hdrlen = sizeof(struct crypto_user_alg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ /*
+ * There are also other structures, but they are not bigger than
+ * DEFAULT_STRLEN so far.
+ */
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + DEFAULT_STRLEN);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_dcbmsg.c b/tests/nlattr_dcbmsg.c
index cd63bb6..b6eb772 100644
--- a/tests/nlattr_dcbmsg.c
+++ b/tests/nlattr_dcbmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct dcbmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_fib_rule_hdr.c b/tests/nlattr_fib_rule_hdr.c
index 394ab10..96ebadf 100644
--- a/tests/nlattr_fib_rule_hdr.c
+++ b/tests/nlattr_fib_rule_hdr.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,12 +34,24 @@
# include <inttypes.h>
# include "test_nlattr.h"
# include <linux/fib_rules.h>
+# include <linux/in.h>
# include <linux/ip.h>
# include <linux/rtnetlink.h>
#define FRA_TUN_ID 12
#define FRA_TABLE 15
#define FRA_UID_RANGE 20
+#define FRA_PROTOCOL 21
+#define FRA_IP_PROTO 22
+#define FRA_SPORT_RANGE 23
+#define FRA_DPORT_RANGE 24
+
+# ifndef HAVE_STRUCT_FIB_RULE_PORT_RANGE
+struct fib_rule_port_range {
+ uint16_t start;
+ uint16_t end;
+};
+# endif /* HAVE_STRUCT_FIB_RULE_PORT_RANGE */
static void
init_rtmsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
@@ -80,7 +92,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
@@ -125,6 +137,62 @@
printf("htobe64(%" PRIu64 ")", be64toh(tun_id)));
#endif
+ uint8_t proto;
+
+ static const struct {
+ uint8_t arg;
+ const char *str;
+ } proto_args[] = {
+ { ARG_STR(RTPROT_UNSPEC) },
+ { 5, "0x5 /* RTPROT_??? */" },
+ { 17, "RTPROT_MROUTED" },
+ { 42, "RTPROT_BABEL" },
+ { 43, "0x2b /* RTPROT_??? */" },
+ { ARG_STR(0xde) " /* RTPROT_??? */" },
+ };
+
+ for (unsigned i = 0; i < ARRAY_SIZE(proto_args); i++) {
+ proto = proto_args[i].arg;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_PROTOCOL, pattern, proto,
+ printf("%s", proto_args[i].str));
+ }
+
+ static const struct {
+ uint8_t arg;
+ const char *str;
+ } ipproto_args[] = {
+ { ARG_STR(IPPROTO_TCP) },
+ { 254, "0xfe /* IPPROTO_??? */" },
+ { ARG_STR(IPPROTO_RAW) },
+ };
+
+ for (unsigned i = 0; i < ARRAY_SIZE(ipproto_args); i++) {
+ proto = ipproto_args[i].arg;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_IP_PROTO, pattern, proto,
+ printf("%s", ipproto_args[i].str));
+ }
+
+ static const struct fib_rule_port_range prange = {
+ .start = 0xabcd,
+ .end = 0xfeed,
+ };
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_SPORT_RANGE, pattern, prange,
+ PRINT_FIELD_U("{", prange, start);
+ PRINT_FIELD_U(", ", prange, end);
+ printf("}"));
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_rtmsg, print_rtmsg,
+ FRA_DPORT_RANGE, pattern, prange,
+ PRINT_FIELD_U("{", prange, start);
+ PRINT_FIELD_U(", ", prange, end);
+ printf("}"));
+
puts("+++ exited with 0 +++");
return 0;
}
diff --git a/tests/nlattr_ifaddrlblmsg.c b/tests/nlattr_ifaddrlblmsg.c
index 6003634..53a928d 100644
--- a/tests/nlattr_ifaddrlblmsg.c
+++ b/tests/nlattr_ifaddrlblmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,7 +69,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ifaddrlblmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_ifaddrmsg.c b/tests/nlattr_ifaddrmsg.c
index 93fbef1..c71ebb1 100644
--- a/tests/nlattr_ifaddrmsg.c
+++ b/tests/nlattr_ifaddrmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -83,9 +83,23 @@
{
skip_if_unavailable("/proc/self/fd/");
+ static const char address4[] = "12.34.56.78";
+ static const char address6[] = "12:34:56:78:90:ab:cd:ef";
+ static const struct ifa_cacheinfo ci = {
+ .ifa_prefered = 0xabcdefac,
+ .ifa_valid = 0xbcdadbca,
+ .cstamp = 0xcdabedba,
+ .tstamp = 0xdebabdac
+ };
+
+ struct in_addr a4;
+ struct in6_addr a6;
+ const uint32_t ifa_flags = IFA_F_SECONDARY | IFA_F_PERMANENT;
+
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ifaddrmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + MAX(sizeof(ci), sizeof(a6)));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
@@ -106,8 +120,6 @@
print_quoted_hex(pattern, 4));
SET_IFA_FAMILY(AF_INET);
- static const char address4[] = "12.34.56.78";
- struct in_addr a4;
if (!inet_pton(AF_INET, address4, &a4))
perror_msg_and_skip("inet_pton");
@@ -118,8 +130,6 @@
printf("%s", address4));
SET_IFA_FAMILY(AF_INET6);
- static const char address6[] = "12:34:56:78:90:ab:cd:ef";
- struct in6_addr a6;
if (!inet_pton(AF_INET6, address6, &a6))
perror_msg_and_skip("inet_pton");
@@ -129,12 +139,6 @@
IFA_ADDRESS, pattern, a6,
printf("%s", address6));
- static const struct ifa_cacheinfo ci = {
- .ifa_prefered = 0xabcdefac,
- .ifa_valid = 0xbcdadbca,
- .cstamp = 0xcdabedba,
- .tstamp = 0xdebabdac
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifaddrmsg, print_ifaddrmsg,
IFA_CACHEINFO, pattern, ci,
@@ -144,7 +148,6 @@
PRINT_FIELD_U(", ", ci, tstamp);
printf("}"));
- const uint32_t ifa_flags = IFA_F_SECONDARY | IFA_F_PERMANENT;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifaddrmsg, print_ifaddrmsg,
IFA_FLAGS, pattern, ifa_flags,
diff --git a/tests/nlattr_ifinfomsg.c b/tests/nlattr_ifinfomsg.c
index 1fff52c..71b1bab 100644
--- a/tests/nlattr_ifinfomsg.c
+++ b/tests/nlattr_ifinfomsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -46,6 +46,7 @@
# define IFLA_VF_PORTS 24
#endif
#define IFLA_LINK_NETNSID 37
+#define IFLA_EVENT 44
#ifndef IFLA_INFO_KIND
# define IFLA_INFO_KIND 1
@@ -89,28 +90,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_ROUTE);
- const unsigned int hdrlen = sizeof(struct ifinfomsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- 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 /* IFLA_??? */", nla_type);
- TEST_NLATTR_(fd, nlh0, hdrlen,
- init_ifinfomsg, print_ifinfomsg,
- nla_type, nla_type_str,
- 4, pattern, 4,
- print_quoted_hex(pattern, 4));
-
- const int32_t netnsid = 0xacbdabda;
- TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_ifinfomsg, print_ifinfomsg,
- IFLA_LINK_NETNSID, pattern, netnsid,
- printf("%d", netnsid));
-
static const struct rtnl_link_stats st = {
.rx_packets = 0xabcdefac,
.tx_packets = 0xbcdacdab,
@@ -136,6 +115,29 @@
.rx_compressed = 0xdeffadbd,
.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));
+
+ 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 /* IFLA_??? */", nla_type);
+ TEST_NLATTR_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ nla_type, nla_type_str,
+ 4, pattern, 4,
+ print_quoted_hex(pattern, 4));
+
+ const int32_t netnsid = 0xacbdabda;
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_LINK_NETNSID, pattern, netnsid,
+ printf("%d", netnsid));
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_STATS, pattern, st,
@@ -343,6 +345,22 @@
printf("{nla_len=%u, nla_type=IFLA_VF_PORT}",
nla.nla_len));
+ static const struct {
+ uint32_t val;
+ const char *str;
+ } ifla_events[] = {
+ { 0, "IFLA_EVENT_NONE" },
+ { 6, "IFLA_EVENT_BONDING_OPTIONS" },
+ { ARG_STR(0x7) " /* IFLA_EVENT_??? */" },
+ { ARG_STR(0xdeadfeed) " /* IFLA_EVENT_??? */" },
+ };
+ for (size_t i = 0; i < ARRAY_SIZE(ifla_events); i++) {
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_EVENT, pattern, ifla_events[i].val,
+ printf("%s", ifla_events[i].str));
+ }
+
puts("+++ exited with 0 +++");
return 0;
}
diff --git a/tests/nlattr_ifla.h b/tests/nlattr_ifla.h
new file mode 100644
index 0000000..6989225
--- /dev/null
+++ b/tests/nlattr_ifla.h
@@ -0,0 +1,78 @@
+/*
+ * netlink attribute ifinfomsg common code.
+ *
+ * Copyright (c) 2017 JingPiao Chen <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_TESTS_NLATTR_IFLA_H
+#define STRACE_TESTS_NLATTR_IFLA_H
+
+#include "tests.h"
+
+#ifndef IFLA_ATTR
+# error "Please define IFLA_ATTR before including this file"
+#endif
+
+static const unsigned int hdrlen = sizeof(struct ifinfomsg);
+
+static void
+init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+ SET_STRUCT(struct nlmsghdr, nlh,
+ .nlmsg_len = msg_len,
+ .nlmsg_type = RTM_GETLINK,
+ .nlmsg_flags = NLM_F_DUMP
+ );
+
+ struct ifinfomsg *const msg = NLMSG_DATA(nlh);
+ SET_STRUCT(struct ifinfomsg, msg,
+ .ifi_family = AF_UNIX,
+ .ifi_type = ARPHRD_LOOPBACK,
+ .ifi_index = ifindex_lo(),
+ .ifi_flags = IFF_UP,
+ );
+
+ struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
+ SET_STRUCT(struct nlattr, nla,
+ .nla_len = msg_len - NLMSG_SPACE(hdrlen),
+ .nla_type = IFLA_ATTR
+ );
+}
+
+static void
+print_ifinfomsg(const unsigned int msg_len)
+{
+ printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
+ ", seq=0, pid=0}, {ifi_family=AF_UNIX"
+ ", ifi_type=ARPHRD_LOOPBACK"
+ ", ifi_index=" IFINDEX_LO_STR
+ ", ifi_flags=IFF_UP, ifi_change=0}"
+ ", {{nla_len=%u, nla_type=" STRINGIFY_VAL(IFLA_ATTR) "}",
+ msg_len, msg_len - NLMSG_SPACE(hdrlen));
+}
+
+#endif /* STRACE_TESTS_NLATTR_IFLA_H */
diff --git a/tests/nlattr_ifla_af_spec.c b/tests/nlattr_ifla_af_spec.c
new file mode 100644
index 0000000..24f55af
--- /dev/null
+++ b/tests/nlattr_ifla_af_spec.c
@@ -0,0 +1,322 @@
+/*
+ * IFLA_AF_SPEC netlink attribute decoding check.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stddef.h>
+#include "test_nlattr.h"
+
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#ifdef HAVE_LINUX_IF_LINK_H
+# include <linux/if_link.h>
+#endif
+#include <linux/rtnetlink.h>
+
+#if !HAVE_DECL_IFLA_AF_SPEC
+enum { IFLA_AF_SPEC = 26 };
+#endif
+
+#define XLAT_MACROS_ONLY
+# include "xlat/rtnl_ifla_af_spec_inet_attrs.h"
+# include "xlat/rtnl_ifla_af_spec_inet6_attrs.h"
+#undef XLAT_MACROS_ONLY
+
+#ifndef HAVE_STRUCT_IFLA_CACHEINFO
+struct ifla_cacheinfo {
+ uint32_t max_reasm_len;
+ uint32_t tstamp;
+ uint32_t reachable_time;
+ uint32_t retrans_time;
+};
+#endif
+
+#define IFLA_ATTR IFLA_AF_SPEC
+#include "nlattr_ifla.h"
+
+#define AF_SPEC_FUNCS(family_) \
+ static void \
+ init_##family_##_msg(struct nlmsghdr *const nlh, \
+ const unsigned int msg_len) \
+ { \
+ init_ifinfomsg(nlh, msg_len); \
+ \
+ struct nlattr *nla = NLMSG_ATTR(nlh, hdrlen); \
+ nla += 1; \
+ SET_STRUCT(struct nlattr, nla, \
+ .nla_len = msg_len - NLMSG_SPACE(hdrlen) \
+ - NLA_HDRLEN, \
+ .nla_type = family_, \
+ ); \
+ } \
+ \
+ static void \
+ print_##family_##_msg(const unsigned int msg_len) \
+ { \
+ print_ifinfomsg(msg_len); \
+ printf(", {{nla_len=%u, nla_type=" #family_ "}", \
+ msg_len - NLMSG_SPACE(hdrlen) - NLA_HDRLEN); \
+ } \
+ /* end of AF_SPEC_FUNCS definition */
+
+AF_SPEC_FUNCS(AF_INET)
+AF_SPEC_FUNCS(AF_INET6)
+
+static void
+print_arr_val(uint32_t *val, size_t idx, const char *idx_str)
+{
+ if (idx_str)
+ printf("[%s] = ", idx_str);
+ else
+ printf("[%zu] = ", idx);
+
+ printf("%d", *val);
+}
+
+static void
+print_arr_uval(uint64_t *val, size_t idx, const char *idx_str)
+{
+ if (idx_str)
+ printf("[%s] = ", idx_str);
+ else
+ printf("[%zu] = ", idx);
+
+ printf("%" PRIu64, *val);
+}
+
+static void
+print_inet_conf_val(uint32_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "IPV4_DEVCONF_FORWARDING-1",
+ "IPV4_DEVCONF_MC_FORWARDING-1",
+ };
+
+ print_arr_val(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+
+static void
+print_inet6_conf_val(uint32_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "DEVCONF_FORWARDING",
+ "DEVCONF_HOPLIMIT",
+ };
+
+ print_arr_val(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+static void
+print_inet6_stats_val(uint64_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "IPSTATS_MIB_NUM",
+ "IPSTATS_MIB_INPKTS",
+ };
+
+ print_arr_uval(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+static void
+print_icmp6_stats_val(uint64_t *val, size_t idx)
+{
+ static const char * const strs[] = {
+ "ICMP6_MIB_NUM",
+ "ICMP6_MIB_INMSGS",
+ "ICMP6_MIB_INERRORS",
+ "ICMP6_MIB_OUTMSGS",
+ "ICMP6_MIB_OUTERRORS",
+ "ICMP6_MIB_CSUMERRORS",
+ "6 /* ICMP6_MIB_??? */",
+ };
+
+ print_arr_uval(val, idx, idx < ARRAY_SIZE(strs) ? strs[idx] : NULL);
+}
+
+int
+main(void)
+{
+ static const uint8_t unknown_msg[] = { 0xab, 0xac, 0xdb, 0xcd };
+
+ skip_if_unavailable("/proc/self/fd/");
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ const unsigned int hdrlen = sizeof(struct ifinfomsg);
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 3 * NLA_HDRLEN + 256);
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+
+ /* unknown AF_* */
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ AF_UNIX, pattern, unknown_msg,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ 0, "IFLA_INET_UNSPEC", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ 2, "0x2 /* IFLA_INET_??? */", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET: IFLA_INET_CONF */
+ uint32_t inet_conf_vals[] = { 0xdeadc0de, 0xda7aface };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET_msg, print_AF_INET_msg,
+ IFLA_INET_CONF, pattern,
+ inet_conf_vals, 2, print_inet_conf_val);
+
+ /* AF_INET6 */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 0, "IFLA_INET6_UNSPEC", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 9, "0x9 /* IFLA_INET6_??? */", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET6: IFLA_INET6_FLAGS */
+ static const struct {
+ uint32_t flags;
+ const char *str;
+ } inet6_flags[] = {
+ { 0xf, "0xf /* IF_??? */" },
+ { 0x10, "IF_RS_SENT" },
+ { 0xc0, "IF_RA_MANAGED|IF_RA_OTHERCONF" },
+ { 0xdeadc0de, "IF_RS_SENT|IF_RA_MANAGED|IF_RA_OTHERCONF"
+ "|IF_READY|0x5eadc00e" },
+ };
+
+ for (size_t i = 0; i < ARRAY_SIZE(inet6_flags); i++) {
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg,
+ print_AF_INET6_msg,
+ 1, "IFLA_INET6_FLAGS", pattern,
+ inet6_flags[i].flags,
+ print_quoted_hex, 2,
+ printf("%s", inet6_flags[i].str));
+ }
+
+ /* AF_INET6: IFLA_INET6_CONF */
+ uint32_t inet6_conf_vals[] = { 0xdeadc0de, 0xda7aface };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_CONF, pattern,
+ inet6_conf_vals, 2, print_inet6_conf_val);
+
+ /* AF_INET6: IFLA_INET6_STATS */
+ uint64_t inet6_stats_vals[] = { 0xdeadc0deda7aface, 0xdec0deedbadc0ded };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_STATS, pattern,
+ inet6_stats_vals, 2, print_inet6_stats_val);
+
+ /* AF_INET6: IFLA_INET6_MCAST */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 4, "IFLA_INET6_MCAST", pattern,
+ unknown_msg, print_quoted_hex, 2,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ /* AF_INET6: IFLA_INET6_CACHEINFO */
+ static const struct ifla_cacheinfo ci = {
+ 0xbadc0ded, 0xfacebeef, 0xdecafeed, 0xdeadfeed,
+ };
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 5, "IFLA_INET6_CACHEINFO", pattern,
+ ci, print_quoted_hex, 2,
+ PRINT_FIELD_U("{", ci, max_reasm_len);
+ PRINT_FIELD_U(", ", ci, tstamp);
+ PRINT_FIELD_U(", ", ci, reachable_time);
+ PRINT_FIELD_U(", ", ci, retrans_time);
+ printf("}"));
+
+ /* AF_INET6: IFLA_INET6_ICMP6STATS */
+ uint64_t icmp6_stats_vals[] = {
+ 0xdeadc0deda7aface, 0xdec0deedbadc0ded, 0xfacebeefdeadfeed,
+ 0xdeadc0deda7afacd, 0xdec0deedbadc0dee, 0xfacebeefdeadfeef,
+ 0xdeadc0deda7afacc
+ };
+ TEST_NESTED_NLATTR_ARRAY_EX(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ IFLA_INET6_ICMP6STATS, pattern,
+ icmp6_stats_vals, 2, print_icmp6_stats_val);
+
+ /* AF_INET6: IFLA_INET6_TOKEN */
+ uint8_t inet6_addr[16] = {
+ 0xba, 0xdc, 0x0d, 0xed, 0xfa, 0xce, 0xbe, 0xef,
+ 0xde, 0xca, 0xfe, 0xed, 0xde, 0xad, 0xfe, 0xed,
+ };
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg, print_AF_INET6_msg,
+ 7, "IFLA_INET6_TOKEN", pattern,
+ inet6_addr, print_quoted_hex, 2,
+ printf("badc:ded:face:beef:deca:feed"
+ ":dead:feed"));
+
+ /* AF_INET6: IFLA_INET6_ */
+ static const struct {
+ uint8_t flags;
+ const char *str;
+ } agms[] = {
+ { 0x0, "IN6_ADDR_GEN_MODE_EUI64" },
+ { 0x3, "IN6_ADDR_GEN_MODE_RANDOM" },
+ { 0x4, "0x4 /* IN6_ADDR_GEN_MODE_??? */" },
+ { 0xff, "0xff /* IN6_ADDR_GEN_MODE_??? */" },
+ };
+
+ for (size_t i = 0; i < ARRAY_SIZE(agms); i++) {
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_AF_INET6_msg,
+ print_AF_INET6_msg,
+ 8, "IFLA_INET6_ADDR_GEN_MODE",
+ pattern, agms[i].flags,
+ print_quoted_hex, 2,
+ printf("%s", agms[i].str));
+ }
+
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests/nlattr_ifla_af_spec.gen.test b/tests/nlattr_ifla_af_spec.gen.test
new file mode 100755
index 0000000..601eeb2
--- /dev/null
+++ b/tests/nlattr_ifla_af_spec.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_af_spec +netlink_sock_diag.test ); do not edit.
+set --
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/nlattr_ifla_brport.c b/tests/nlattr_ifla_brport.c
index ae7c9da..1968426 100644
--- a/tests/nlattr_ifla_brport.c
+++ b/tests/nlattr_ifla_brport.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,65 +38,35 @@
#endif
#include <linux/rtnetlink.h>
+#if !HAVE_DECL_IFLA_PROTINFO
+enum { IFLA_PROTINFO = 12 };
+#endif
+
#define IFLA_BRPORT_PRIORITY 2
#define IFLA_BRPORT_MESSAGE_AGE_TIMER 21
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_PROTINFO
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_PROTINFO}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_PROTINFO
+#include "nlattr_ifla.h"
int
main(void)
{
skip_if_unavailable("/proc/self/fd/");
+ const uint16_t u16 = 0xabcd;
+ const uint64_t u64 = 0xabcdedeeefeafeab;
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN * 2 + sizeof(u64));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
- const uint16_t u16 = 0xabcd;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_BRPORT_PRIORITY, pattern, u16,
printf("%u", u16));
- const uint64_t u64 = 0xabcdedeeefeafeab;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_BRPORT_MESSAGE_AGE_TIMER, pattern, u64,
diff --git a/tests/nlattr_ifla_linkinfo.c b/tests/nlattr_ifla_linkinfo.c
new file mode 100644
index 0000000..1bf1bef
--- /dev/null
+++ b/tests/nlattr_ifla_linkinfo.c
@@ -0,0 +1,711 @@
+/*
+ * IFLA_LINKINFO netlink attribute decoding check.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stddef.h>
+#include <arpa/inet.h>
+
+#include "test_nlattr.h"
+
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#ifdef HAVE_LINUX_IF_LINK_H
+# include <linux/if_link.h>
+#endif
+#include <linux/rtnetlink.h>
+
+#define XLAT_MACROS_ONLY
+# include <xlat/rtnl_link_attrs.h>
+# include <xlat/rtnl_ifla_info_attrs.h>
+#undef XLAT_MACROS_ONLY
+
+#define IFLA_ATTR IFLA_LINKINFO
+#include "nlattr_ifla.h"
+
+#define COMMA ,
+#define TEST_UNKNOWN_TUNNELS(fd_, nlh0_, objtype_, objtype_str_, \
+ obj_, objsz_, arrstrs_, ...) \
+ do { \
+ /* 64 is guestimate for maximum unknown type len */ \
+ char buf[8 * 2 + 64 + objsz_]; \
+ const char **arrstrs[] = arrstrs_; \
+ const char ***arrstrs_pos = arrstrs; \
+ const char **arrstr = *arrstrs_pos; \
+ const char *type = NULL; \
+ \
+ for (type = arrstr ? arrstr[0] : NULL; type && arrstr; \
+ type = (++arrstr)[0] ? arrstr[0] \
+ : (++arrstrs_pos)[0] \
+ ? (arrstr = arrstrs_pos[0])[0] \
+ : NULL) \
+ { \
+ size_t type_len = strlen(type) + 1; \
+ \
+ if (type_len > 64) \
+ error_msg_and_fail("Unexpectedly long " \
+ "unknown type: \"%s\" " \
+ "(length is %zu)", \
+ type, type_len); \
+ \
+ struct nlattr obj_nla = { \
+ .nla_len = NLA_HDRLEN + (objsz_), \
+ .nla_type = (objtype_), \
+ }; \
+ \
+ char *pos = buf; \
+ memcpy(pos, type, type_len); \
+ pos += NLA_ALIGN(type_len); \
+ memcpy(pos, &obj_nla, sizeof(obj_nla)); \
+ pos += sizeof(obj_nla); \
+ memcpy(pos, (obj_), (objsz_)); \
+ \
+ TEST_NLATTR_EX_((fd_), \
+ (nlh0_) - hdrlen - (pos - buf), \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ type_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf), \
+ printf("\"%s\"}", type); \
+ printf(", {{nla_len=%zu" \
+ ", nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (objtype_str_)); \
+ \
+ { __VA_ARGS__; } \
+ \
+ printf("}")); \
+ } \
+ } while (0)
+
+#define TEST_LINKINFO_(fd_, nlh0_, nla_type_, nla_type_str_, tuntype_, \
+ obj_, objsz_, pattern_, fallback_func_, ...) \
+ do { \
+ size_t tuntype_len = strlen(tuntype_) + 1; \
+ char *buf = tail_alloc(NLA_ALIGN(tuntype_len) \
+ + NLA_HDRLEN + (objsz_)); \
+ char *pos = buf; \
+ \
+ struct nlattr obj_nla = { \
+ .nla_len = NLA_HDRLEN + (objsz_), \
+ .nla_type = (nla_type_), \
+ }; \
+ \
+ memcpy(pos, (tuntype_), tuntype_len); \
+ pos += NLA_ALIGN(tuntype_len); \
+ memcpy(pos, &obj_nla, sizeof(obj_nla)); \
+ pos += sizeof(obj_nla); \
+ memcpy(pos, &(obj_), (objsz_)); \
+ \
+ if (fallback_func_ == print_quoted_hex) { \
+ TEST_NLATTR_EX_((fd_), \
+ (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, \
+ objsz_ + (pos - buf) - 1, \
+ buf, objsz_ + (pos - buf) - 1, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu" \
+ ", nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ (fallback_func_)((obj_), \
+ (objsz_) - 1); \
+ printf("}")); \
+ } \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf) - 1, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ printf("%p}", \
+ RTA_DATA(NLMSG_ATTR(nlh, \
+ (hdrlen + NLA_HDRLEN + (pos - buf)))) \
+ ) \
+ ); \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - NLA_HDRLEN, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, objsz_ + (pos - buf), \
+ buf, objsz_ + (pos - buf), \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, ", \
+ (objsz_) + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ \
+ { __VA_ARGS__; } \
+ \
+ printf("}")); \
+ } while (0)
+
+#define TEST_LINKINFO(fd_, nlh0_, nla_type_, tuntype_, \
+ obj_, pattern_, fallback_func_, ...) \
+ TEST_LINKINFO_((fd_), (nlh0_), nla_type_, #nla_type_, (tuntype_), \
+ (obj_), sizeof(obj_), pattern_, fallback_func_, \
+ __VA_ARGS__)
+
+#define TEST_NESTED_LINKINFO(fd_, nlh0_, \
+ nla_type_, nla_type_str_, tuntype_, \
+ subnla_type_, subnla_type_str_, \
+ obj_, pattern_, ...) \
+ do { \
+ size_t tuntype_len = strlen(tuntype_) + 1; \
+ struct { \
+ size_t sz; \
+ const char *str; \
+ } attrs[] = { __VA_ARGS__ }; \
+ size_t tunhdrlen; \
+ size_t buflen = NLA_ALIGN(tuntype_len) + NLA_HDRLEN; \
+ size_t attrsz = 0; \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) \
+ attrsz += NLA_HDRLEN + NLA_ALIGN(attrs[i].sz); \
+ \
+ buflen += attrsz; \
+ \
+ char *buf = tail_alloc(buflen); \
+ char *pos = buf; \
+ \
+ struct nlattr nla = { \
+ .nla_len = NLA_HDRLEN + attrsz, \
+ .nla_type = (nla_type_), \
+ }; \
+ \
+ memcpy(pos, (tuntype_), tuntype_len); \
+ pos += NLA_ALIGN(tuntype_len); \
+ memcpy(pos, &nla, sizeof(nla)); \
+ pos += sizeof(nla); \
+ \
+ tunhdrlen = pos - buf; \
+ \
+ nla.nla_type = subnla_type_; \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) { \
+ nla.nla_len = NLA_HDRLEN + attrs[i].sz; \
+ memcpy(pos, &nla, sizeof(nla)); \
+ pos += sizeof(nla); \
+ \
+ memcpy(pos, &(obj_), MIN(sizeof(obj_), attrs[i].sz)); \
+ \
+ if (attrs[i].sz > sizeof(obj_)) \
+ memcpy(pos + sizeof(obj_), \
+ &(pattern_), \
+ attrs[i].sz - sizeof(obj_)); \
+ \
+ pos += NLA_ALIGN(attrs[i].sz); \
+ } \
+ \
+ TEST_NLATTR_EX_((fd_), (nlh0_) - hdrlen - tunhdrlen, \
+ hdrlen + NLA_HDRLEN, \
+ init_ifinfomsg, print_ifinfomsg, \
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", \
+ tuntype_len, buflen, \
+ buf, buflen, \
+ printf("\"%s\"}", (tuntype_)); \
+ printf(", {{nla_len=%zu, nla_type=%s}, [", \
+ attrsz + NLA_HDRLEN, \
+ (nla_type_str_)); \
+ \
+ for (size_t i = 0; i < ARRAY_SIZE(attrs); i++) \
+ printf("%s%s{nla_len=%zu" \
+ ", nla_type=%s}%s%s%s", \
+ i ? ", " : "", \
+ attrs[i].str ? "{": "", \
+ attrs[i].sz + NLA_HDRLEN, \
+ subnla_type_str_, \
+ attrs[i].str ? ", ": "", \
+ attrs[i].str ?: "", \
+ attrs[i].str ? "}" : ""); \
+ \
+ printf("]}")); \
+ } while (0)
+
+int
+main(void)
+{
+ static const uint8_t unknown_msg[] = { 0xab, 0xac, 0xdb, 0xcd };
+ static const char *unsupported_tunnel_types[] = {
+ "batadv", "bond",
+ "caif", "cfhsi",
+ "dummy",
+ "erspan",
+ "geneve", "gre", "gretap", "gtp",
+ "hsr",
+ "ifb", "ip6erspan", "ip6gre", "ip6gretap", "ip6tnl",
+ "ipip", "ipoib", "ipvlan", "ipvtap",
+ "lowpan",
+ "macsec", "macvlan", "macvtap",
+ "netdevsim", "nlmon",
+ "openvswitch",
+ "ppp",
+ "rmnet",
+ "sit",
+ "team",
+ "vcan", "veth", "vlan", "vrf", "vsockmon",
+ "vti", "vti6", "vxcan", "vxlan",
+ NULL
+ };
+ static const char *unsupported_xstats_types[] = {
+ "bridge",
+ "tun",
+ NULL
+ };
+ static const char *unsupported_data_types[] = {
+ "can",
+ NULL
+ };
+
+ skip_if_unavailable("/proc/self/fd/");
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ const unsigned int hdrlen = sizeof(struct ifinfomsg);
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 2 * NLA_HDRLEN + 256);
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+
+ /* unknown AF_INFO_* type */
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_INFO_UNSPEC, pattern, unknown_msg,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ 6, "0x6 /* IFLA_INFO_??? */", pattern,
+ unknown_msg, print_quoted_hex, 1,
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND */
+ TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen,
+ init_ifinfomsg, print_ifinfomsg,
+ IFLA_INFO_KIND, "IFLA_INFO_KIND", pattern,
+ unknown_msg, print_quoted_stringn, 1,
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_UNSPEC */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_UNSPEC, "IFLA_INFO_UNSPEC",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_KIND */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_KIND, "IFLA_INFO_KIND",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_DATA */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_DATA, "IFLA_INFO_DATA",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ struct val_name {
+ unsigned int val;
+ const char *name;
+ };
+
+ static const uint64_t u64_val = 0xdeadc0defacefeedULL;
+ static const uint32_t u32_val = 0xbadc0dedU;
+ static const uint16_t u16_val = 0xdeed;
+ static const uint8_t u8_val = 0xa1;
+
+ /* 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" },
+ { 45, "0x2d /* IFLA_BR_??? */" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(und_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ und_br_attrs[k].val, und_br_attrs[k].name,
+ unknown_msg, pattern,
+ { 2, "\"\\xab\\xac\"" },
+ { 4, "\"\\xab\\xac\\xdb\\xcd\"" },
+ { 6,
+ "\"\\xab\\xac\\xdb\\xcd\\x61\\x62\"" },
+ { 8, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\"" },
+ { 10, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\\x65\\x66\"" });
+ }
+
+ static const struct val_name u64_br_attrs[] = {
+ { 16, "IFLA_BR_HELLO_TIMER" },
+ { 17, "IFLA_BR_TCN_TIMER" },
+ { 18, "IFLA_BR_TOPOLOGY_CHANGE_TIMER" },
+ { 19, "IFLA_BR_GC_TIMER" },
+ { 30, "IFLA_BR_MCAST_LAST_MEMBER_INTVL" },
+ { 31, "IFLA_BR_MCAST_MEMBERSHIP_INTVL" },
+ { 32, "IFLA_BR_MCAST_QUERIER_INTVL" },
+ { 33, "IFLA_BR_MCAST_QUERY_INTVL" },
+ { 34, "IFLA_BR_MCAST_QUERY_RESPONSE_INTVL" },
+ { 35, "IFLA_BR_MCAST_STARTUP_QUERY_INTVL" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u64_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u64_br_attrs[k].val, u64_br_attrs[k].name,
+ u64_val, pattern,
+ { 7, "\""
+#if WORDS_BIGENDIAN
+ "\\xde\\xad\\xc0\\xde\\xfa\\xce\\xfe"
+#else
+ "\\xed\\xfe\\xce\\xfa\\xde\\xc0\\xad"
+#endif
+ "\"" },
+ { 8, "16045693111314087661" },
+ { 9, "16045693111314087661" });
+ }
+
+ static const struct val_name u32_br_attrs[] = {
+ { 1, "IFLA_BR_FORWARD_DELAY" },
+ { 2, "IFLA_BR_HELLO_TIME" },
+ { 3, "IFLA_BR_MAX_AGE" },
+ { 4, "IFLA_BR_AGEING_TIME" },
+ { 5, "IFLA_BR_STP_STATE" },
+ { 13, "IFLA_BR_ROOT_PATH_COST" },
+ { 26, "IFLA_BR_MCAST_HASH_ELASTICITY" },
+ { 27, "IFLA_BR_MCAST_HASH_MAX" },
+ { 28, "IFLA_BR_MCAST_LAST_MEMBER_CNT" },
+ { 29, "IFLA_BR_MCAST_STARTUP_QUERY_CNT" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u32_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u32_br_attrs[k].val, u32_br_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+ }
+
+ static const struct val_name u16_br_attrs[] = {
+ { 6, "IFLA_BR_PRIORITY" },
+ { 12, "IFLA_BR_ROOT_PORT" },
+ { 39, "IFLA_BR_VLAN_DEFAULT_PVID" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u16_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u16_br_attrs[k].val, u16_br_attrs[k].name,
+ u16_val, pattern,
+ { 1, "\""
+#if WORDS_BIGENDIAN
+ "\\xde"
+#else
+ "\\xed"
+#endif
+ "\"" },
+ { 2, "57069" },
+ { 3, "57069" });
+ }
+
+
+ static const struct val_name x16_br_attrs[] = {
+ { 9, "IFLA_BR_GROUP_FWD_MASK" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(x16_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ x16_br_attrs[k].val, x16_br_attrs[k].name,
+ u16_val, pattern,
+ { 1, "\""
+#if WORDS_BIGENDIAN
+ "\\xde"
+#else
+ "\\xed"
+#endif
+ "\"" },
+ { 2, "0xdeed" },
+ { 3, "0xdeed" });
+ }
+
+ static const struct val_name u8_br_attrs[] = {
+ { 7, "IFLA_BR_VLAN_FILTERING" },
+ { 14, "IFLA_BR_TOPOLOGY_CHANGE" },
+ { 15, "IFLA_BR_TOPOLOGY_CHANGE_DETECTED" },
+ { 22, "IFLA_BR_MCAST_ROUTER" },
+ { 23, "IFLA_BR_MCAST_SNOOPING" },
+ { 24, "IFLA_BR_MCAST_QUERY_USE_IFADDR" },
+ { 25, "IFLA_BR_MCAST_QUERIER" },
+ { 36, "IFLA_BR_NF_CALL_IPTABLES" },
+ { 37, "IFLA_BR_NF_CALL_IP6TABLES" },
+ { 38, "IFLA_BR_NF_CALL_ARPTABLES" },
+ { 41, "IFLA_BR_VLAN_STATS_ENABLED" },
+ { 42, "IFLA_BR_MCAST_STATS_ENABLED" },
+ { 43, "IFLA_BR_MCAST_IGMP_VERSION" },
+ { 44, "IFLA_BR_MCAST_MLD_VERSION" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u8_br_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ u8_br_attrs[k].val, u8_br_attrs[k].name,
+ u8_val, pattern,
+ { 0, NULL },
+ { 1, "161" },
+ { 2, "161" });
+ }
+
+ unsigned short eth_p = htons(0x88C7);
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ 8, "IFLA_BR_VLAN_PROTOCOL",
+ eth_p, pattern,
+ { 1, "\"\\x88\"" },
+ { 2, "htons(ETH_P_PREAUTH)" },
+ { 2, "htons(ETH_P_PREAUTH)" });
+
+ static const uint8_t bridge_id[]
+ = { 0xbe, 0xef, 0xfa, 0xce, 0xde, 0xc0, 0xde, 0xad };
+ static const struct val_name br_id_attrs[] = {
+ { 10, "IFLA_BR_ROOT_ID" },
+ { 11, "IFLA_BR_BRIDGE_ID" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(br_id_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge",
+ br_id_attrs[k].val, br_id_attrs[k].name,
+ bridge_id, pattern,
+ { 7, "\"\\xbe\\xef\\xfa\\xce"
+ "\\xde\\xc0\\xde\"" },
+ { 8, "{prio=[190, 239]"
+ ", addr=fa:ce:de:c0:de:ad}" },
+ { 9, "{prio=[190, 239]"
+ ", addr=fa:ce:de:c0:de:ad}" });
+ }
+
+ /* tun attrs */
+ static const struct val_name u8_tun_attrs[] = {
+ { 4, "IFLA_TUN_PI" },
+ { 5, "IFLA_TUN_VNET_HDR" },
+ { 6, "IFLA_TUN_PERSIST" },
+ { 7, "IFLA_TUN_MULTI_QUEUE" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u8_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ u8_tun_attrs[k].val, u8_tun_attrs[k].name,
+ u8_val, pattern,
+ { 0, NULL },
+ { 1, "161" },
+ { 2, "161" });
+ }
+
+ static const struct val_name u32_tun_attrs[] = {
+ { 8, "IFLA_TUN_NUM_QUEUES" },
+ { 9, "IFLA_TUN_NUM_DISABLED_QUEUES" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(u32_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ u32_tun_attrs[k].val,
+ u32_tun_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+ }
+
+ static const struct val_name und_tun_attrs[] = {
+ { 0, "IFLA_TUN_UNSPEC" },
+ { 10, "0xa /* IFLA_TUN_??? */" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(und_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ und_tun_attrs[k].val,
+ und_tun_attrs[k].name,
+ unknown_msg, pattern,
+ { 2, "\"\\xab\\xac\"" },
+ { 4, "\"\\xab\\xac\\xdb\\xcd\"" },
+ { 6,
+ "\"\\xab\\xac\\xdb\\xcd\\x61\\x62\"" },
+ { 8, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\"" },
+ { 10, "\"\\xab\\xac\\xdb\\xcd\\x61\\x62"
+ "\\x63\\x64\\x65\\x66\"" });
+ }
+
+ static const uint32_t minus_one = 0xffffffffU;
+ static const struct val_name uid_tun_attrs[] = {
+ { 1, "IFLA_TUN_OWNER" },
+ { 2, "IFLA_TUN_GROUP" },
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(uid_tun_attrs); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ uid_tun_attrs[k].val,
+ uid_tun_attrs[k].name,
+ u32_val, pattern,
+ { 3, "\""
+#if WORDS_BIGENDIAN
+ "\\xba\\xdc\\x0d"
+#else
+ "\\xed\\x0d\\xdc"
+#endif
+ "\"" },
+ { 4, "3134983661" },
+ { 5, "3134983661" });
+
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ uid_tun_attrs[k].val,
+ uid_tun_attrs[k].name,
+ minus_one, pattern,
+ { 3, "\"\\xff\\xff\\xff\"" },
+ { 4, "-1" },
+ { 5, "-1" });
+ }
+
+ static const struct {
+ uint8_t val;
+ const char *str;
+ } tun_types[] = {
+ { 0, "0 /* IFF_??? */"},
+ { 1, "IFF_TUN"},
+ { 2, "IFF_TAP"},
+ { 3, "0x3 /* IFF_??? */"},
+ { 0xda, "0xda /* IFF_??? */"},
+ };
+
+ for (size_t k = 0; k < ARRAY_SIZE(tun_types); k++) {
+ TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "tun",
+ 3, "IFLA_TUN_TYPE",
+ tun_types[k].val, pattern,
+ { 0, NULL },
+ { 1, tun_types[k].str },
+ { 2, tun_types[k].str });
+ }
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_XSTATS */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, IFLA_INFO_XSTATS, "IFLA_INFO_XSTATS",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ /*
+ * can decoder decodes its data only if it's big
+ * enough.
+ */
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+ uint32_t can_stats_data[] = {
+ 0xbadc0de0, 0xbadc0de1, 0xbadc0de2, 0xbadc0de3,
+ 0xbadc0de4, 0xbadc0de5,
+ };
+
+ TEST_LINKINFO(fd, nlh0, IFLA_INFO_XSTATS, "can",
+ can_stats_data, pattern, print_quoted_hex,
+ printf("{bus_error=3134983648"
+ ", error_warning=3134983649"
+ ", error_passive=3134983650"
+ ", bus_off=3134983651"
+ ", arbitration_lost=3134983652"
+ ", restarts=3134983653}"));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_SLVAE_KIND */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0,
+ IFLA_INFO_SLAVE_KIND, "IFLA_INFO_SLAVE_KIND",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\253\\254\\333\\315\"..."));
+
+
+ /* IFLA_INFO_KIND + IFLA_INFO_SLAVE_DATA */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0,
+ IFLA_INFO_SLAVE_DATA, "IFLA_INFO_SLAVE_DATA",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ /* IFLA_INFO_KIND + unknown type */
+ TEST_UNKNOWN_TUNNELS(fd, nlh0, 6, "0x6 /* IFLA_INFO_??? */",
+ unknown_msg, sizeof(unknown_msg),
+ {unsupported_tunnel_types COMMA
+ unsupported_xstats_types COMMA
+ unsupported_data_types COMMA
+ NULL},
+ printf("\"\\xab\\xac\\xdb\\xcd\""));
+
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
diff --git a/tests/nlattr_ifla_linkinfo.gen.test b/tests/nlattr_ifla_linkinfo.gen.test
new file mode 100755
index 0000000..816ba99
--- /dev/null
+++ b/tests/nlattr_ifla_linkinfo.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_linkinfo +netlink_sock_diag.test ); do not edit.
+set --
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/nlattr_ifla_port.c b/tests/nlattr_ifla_port.c
index 61e90fe..e6cb6a4 100644
--- a/tests/nlattr_ifla_port.c
+++ b/tests/nlattr_ifla_port.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,50 +37,15 @@
#endif
#include <linux/rtnetlink.h>
-#ifndef IFLA_PORT_SELF
-# define IFLA_PORT_SELF 25
+#if !HAVE_DECL_IFLA_PORT_SELF
+enum { IFLA_PORT_SELF = 25 };
#endif
#ifndef IFLA_PORT_VF
# define IFLA_PORT_VF 1
#endif
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_PORT_SELF
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_PORT_SELF}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_PORT_SELF
+#include "nlattr_ifla.h"
int
main(void)
@@ -88,7 +53,7 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), 2 * NLA_HDRLEN + 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_ifla_xdp.c b/tests/nlattr_ifla_xdp.c
index cca5219..93149fa 100644
--- a/tests/nlattr_ifla_xdp.c
+++ b/tests/nlattr_ifla_xdp.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,63 +37,29 @@
#endif
#include <linux/rtnetlink.h>
-#ifndef IFLA_XDP
-# define IFLA_XDP 43
+#if !HAVE_DECL_IFLA_XDP
+enum { IFLA_XDP = 43 };
#endif
#ifndef IFLA_XDP_FD
# define IFLA_XDP_FD 1
#endif
-const unsigned int hdrlen = sizeof(struct ifinfomsg);
-
-static void
-init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
-{
- SET_STRUCT(struct nlmsghdr, nlh,
- .nlmsg_len = msg_len,
- .nlmsg_type = RTM_GETLINK,
- .nlmsg_flags = NLM_F_DUMP
- );
-
- struct ifinfomsg *const msg = NLMSG_DATA(nlh);
- SET_STRUCT(struct ifinfomsg, msg,
- .ifi_family = AF_UNIX,
- .ifi_type = ARPHRD_LOOPBACK,
- .ifi_index = ifindex_lo(),
- .ifi_flags = IFF_UP,
- );
-
- struct nlattr *const nla = NLMSG_ATTR(nlh, sizeof(*msg));
- SET_STRUCT(struct nlattr, nla,
- .nla_len = msg_len - NLMSG_SPACE(hdrlen),
- .nla_type = IFLA_XDP
- );
-}
-
-static void
-print_ifinfomsg(const unsigned int msg_len)
-{
- printf("{len=%u, type=RTM_GETLINK, flags=NLM_F_DUMP"
- ", seq=0, pid=0}, {ifi_family=AF_UNIX"
- ", ifi_type=ARPHRD_LOOPBACK"
- ", ifi_index=" IFINDEX_LO_STR
- ", ifi_flags=IFF_UP, ifi_change=0}"
- ", {{nla_len=%u, nla_type=IFLA_XDP}",
- msg_len, msg_len - NLMSG_SPACE(hdrlen));
-}
+#define IFLA_ATTR IFLA_XDP
+#include "nlattr_ifla.h"
int
main(void)
{
skip_if_unavailable("/proc/self/fd/");
+ const int32_t num = 0xabacdbcd;
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(num));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
- const int32_t num = 0xabacdbcd;
TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_ifinfomsg, print_ifinfomsg,
IFLA_XDP_FD, pattern, num,
diff --git a/tests/nlattr_inet_diag_msg.c b/tests/nlattr_inet_diag_msg.c
index ccc62ae..5984ee2 100644
--- a/tests/nlattr_inet_diag_msg.c
+++ b/tests/nlattr_inet_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,18 @@
#include <linux/inet_diag.h>
#include <linux/sock_diag.h>
+static const char * const sk_meminfo_strs[] = {
+ "SK_MEMINFO_RMEM_ALLOC",
+ "SK_MEMINFO_RCVBUF",
+ "SK_MEMINFO_WMEM_ALLOC",
+ "SK_MEMINFO_SNDBUF",
+ "SK_MEMINFO_FWD_ALLOC",
+ "SK_MEMINFO_WMEM_QUEUED",
+ "SK_MEMINFO_OPTMEM",
+ "SK_MEMINFO_BACKLOG",
+ "SK_MEMINFO_DROPS",
+};
+
static const char address[] = "10.11.12.13";
static void
@@ -77,9 +89,14 @@
}
static void
-print_uint(const unsigned int *p)
+print_uint(const unsigned int *p, size_t i)
{
- printf("%u", *p);
+ if (i >= ARRAY_SIZE(sk_meminfo_strs))
+ printf("[%zu /* SK_MEMINFO_??? */", i);
+ else
+ printf("[%s", sk_meminfo_strs[i]);
+
+ printf("] = %u", *p);
}
int
@@ -87,19 +104,46 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct inet_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct inet_diag_meminfo minfo = {
.idiag_rmem = 0xfadcacdb,
.idiag_wmem = 0xbdabcada,
.idiag_fmem = 0xbadbfafb,
.idiag_tmem = 0xfdacdadf
};
+ static const struct tcpvegas_info vegas = {
+ .tcpv_enabled = 0xfadcacdb,
+ .tcpv_rttcnt = 0xbdabcada,
+ .tcpv_rtt = 0xbadbfafb,
+ .tcpv_minrtt = 0xfdacdadf
+ };
+ static const struct tcp_dctcp_info dctcp = {
+ .dctcp_enabled = 0xfdac,
+ .dctcp_ce_state = 0xfadc,
+ .dctcp_alpha = 0xbdabcada,
+ .dctcp_ab_ecn = 0xbadbfafb,
+ .dctcp_ab_tot = 0xfdacdadf
+ };
+ static const struct tcp_bbr_info bbr = {
+ .bbr_bw_lo = 0xfdacdadf,
+ .bbr_bw_hi = 0xfadcacdb,
+ .bbr_min_rtt = 0xbdabcada,
+ .bbr_pacing_gain = 0xbadbfafb,
+ .bbr_cwnd_gain = 0xfdacdadf
+ };
+ static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
+ static uint32_t bigmem[SK_MEMINFO_VARS + 1];
+ static const uint32_t mark = 0xabdfadca;
+ static const uint8_t shutdown = 0xcd;
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct inet_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(bigmem), DEFAULT_STRLEN));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_MEMINFO, pattern, minfo,
@@ -109,12 +153,6 @@
PRINT_FIELD_U(", ", minfo, idiag_tmem);
printf("}"));
- static const struct tcpvegas_info vegas = {
- .tcpv_enabled = 0xfadcacdb,
- .tcpv_rttcnt = 0xbdabcada,
- .tcpv_rtt = 0xbadbfafb,
- .tcpv_minrtt = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_VEGASINFO, pattern, vegas,
@@ -125,13 +163,6 @@
printf("}"));
- static const struct tcp_dctcp_info dctcp = {
- .dctcp_enabled = 0xfdac,
- .dctcp_ce_state = 0xfadc,
- .dctcp_alpha = 0xbdabcada,
- .dctcp_ab_ecn = 0xbadbfafb,
- .dctcp_ab_tot = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_DCTCPINFO, pattern, dctcp,
@@ -142,13 +173,6 @@
PRINT_FIELD_U(", ", dctcp, dctcp_ab_tot);
printf("}"));
- static const struct tcp_bbr_info bbr = {
- .bbr_bw_lo = 0xfdacdadf,
- .bbr_bw_hi = 0xfadcacdb,
- .bbr_min_rtt = 0xbdabcada,
- .bbr_pacing_gain = 0xbadbfafb,
- .bbr_cwnd_gain = 0xfdacdadf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_BBRINFO, pattern, bbr,
@@ -159,24 +183,16 @@
PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain);
printf("}"));
- static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_SKMEMINFO, pattern, mem, print_uint);
- static uint32_t bigmem[SK_MEMINFO_VARS + 1];
memcpy(bigmem, pattern, sizeof(bigmem));
- TEST_NLATTR(fd, nlh0, hdrlen, init_inet_diag_msg, print_inet_diag_msg,
- INET_DIAG_SKMEMINFO, sizeof(bigmem), bigmem, sizeof(bigmem),
- size_t i;
- for (i = 0; i < SK_MEMINFO_VARS; ++i) {
- printf(i ? ", " : "[");
- print_uint(&bigmem[i]);
- }
- printf(", ...]"));
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_inet_diag_msg, print_inet_diag_msg,
+ INET_DIAG_SKMEMINFO, pattern, bigmem, print_uint);
- static const uint32_t mark = 0xabdfadca;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg,
INET_DIAG_MARK, pattern, mark,
@@ -187,7 +203,6 @@
INET_DIAG_CLASS_ID, pattern, mark,
printf("%u", mark));
- static const uint8_t shutdown = 0xcd;
TEST_NLATTR(fd, nlh0, hdrlen,
init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_SHUTDOWN,
sizeof(shutdown), &shutdown, sizeof(shutdown),
diff --git a/tests/nlattr_inet_diag_req_compat.c b/tests/nlattr_inet_diag_req_compat.c
index b0b2171..52fd53f 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 <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -86,7 +86,7 @@
int fd = create_nl_socket(NETLINK_SOCK_DIAG);
const unsigned int hdrlen = sizeof(struct inet_diag_req);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_inet_diag_req_v2.c b/tests/nlattr_inet_diag_req_v2.c
index 1e09abe..cf19c60 100644
--- a/tests/nlattr_inet_diag_req_v2.c
+++ b/tests/nlattr_inet_diag_req_v2.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -407,7 +407,10 @@
skip_if_unavailable("/proc/self/fd/");
int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN +
+ sizeof(struct inet_diag_bc_op) +
+ sizeof(struct inet_diag_hostcond) +
+ sizeof(struct in6_addr) + DEFAULT_STRLEN);
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
test_inet_diag_bc_op(fd);
diff --git a/tests/nlattr_mdba_mdb_entry.c b/tests/nlattr_mdba_mdb_entry.c
index 124fe1d..61bded2 100644
--- a/tests/nlattr_mdba_mdb_entry.c
+++ b/tests/nlattr_mdba_mdb_entry.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,12 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4
+# ifdef HAVE_STRUCT_BR_MDB_ENTRY
+ - 4 + NLA_HDRLEN * 2 + sizeof(struct nlattr)
+ + sizeof(struct br_mdb_entry)
+# endif
+ );
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_mdba_router_port.c b/tests/nlattr_mdba_router_port.c
index af908cd..a6621ca 100644
--- a/tests/nlattr_mdba_router_port.c
+++ b/tests/nlattr_mdba_router_port.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -87,25 +87,27 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_ROUTE);
-
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
const uint32_t ifindex = ifindex_lo();
- TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_br_port_msg, print_br_port_msg,
- MDBA_ROUTER_PORT, pattern, ifindex,
- printf(IFINDEX_LO_STR));
-
const uint8_t type = MDB_RTR_TYPE_DISABLED;
static const struct nlattr nla = {
.nla_len = NLA_HDRLEN + sizeof(type),
.nla_type = MDBA_ROUTER_PATTR_TYPE
};
char buf[NLMSG_ALIGN(ifindex) + NLA_HDRLEN + sizeof(type)];
+
+ const int fd = create_nl_socket(NETLINK_ROUTE);
+
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(buf));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_br_port_msg, print_br_port_msg,
+ MDBA_ROUTER_PORT, pattern, ifindex,
+ printf(IFINDEX_LO_STR));
+
memcpy(buf, &ifindex, sizeof(ifindex));
memcpy(buf + NLMSG_ALIGN(ifindex), &nla, sizeof(nla));
memcpy(buf + NLMSG_ALIGN(ifindex) + NLA_HDRLEN, &type, sizeof(type));
diff --git a/tests/nlattr_ndmsg.c b/tests/nlattr_ndmsg.c
index 8538a82..aa28a57 100644
--- a/tests/nlattr_ndmsg.c
+++ b/tests/nlattr_ndmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,8 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ndmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(struct nda_cacheinfo));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_ndtmsg.c b/tests/nlattr_ndtmsg.c
index d3f1bdb..d120059 100644
--- a/tests/nlattr_ndtmsg.c
+++ b/tests/nlattr_ndtmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct ndtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 11 * 8);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_netconfmsg.c b/tests/nlattr_netconfmsg.c
index 6866adc..f5f5993 100644
--- a/tests/nlattr_netconfmsg.c
+++ b/tests/nlattr_netconfmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,7 +66,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct netconfmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_netlink_diag_msg.c b/tests/nlattr_netlink_diag_msg.c
index 76a2d19..b598899 100644
--- a/tests/nlattr_netlink_diag_msg.c
+++ b/tests/nlattr_netlink_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,7 +66,7 @@
}
static void
-print_xlong(const unsigned long *p)
+print_xlong(const unsigned long *p, size_t i)
{
printf("%#lx", *p);
}
@@ -76,27 +76,32 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const unsigned long groups[] = {
(unsigned long) 0xdeadbeefbadc0dedULL,
(unsigned long) 0xdeadbeefbadc0dedULL
};
- TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
- init_netlink_diag_msg, print_netlink_diag_msg,
- NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
-
static const struct netlink_diag_ring ndr = {
.ndr_block_size = 0xfabfabdc,
.ndr_block_nr = 0xabcdabda,
.ndr_frame_size = 0xcbadbafa,
.ndr_frame_nr = 0xdbcafadb
};
+ static const uint32_t flags =
+ NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(groups), sizeof(ndr)));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_netlink_diag_msg, print_netlink_diag_msg,
+ NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_netlink_diag_msg, print_netlink_diag_msg,
NETLINK_DIAG_RX_RING, pattern, ndr,
@@ -106,8 +111,6 @@
PRINT_FIELD_U(", ", ndr, ndr_frame_nr);
printf("}"));
- static const uint32_t flags =
- NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_netlink_diag_msg, print_netlink_diag_msg,
NETLINK_DIAG_FLAGS, pattern, flags,
diff --git a/tests/nlattr_nlmsgerr.c b/tests/nlattr_nlmsgerr.c
index 837283c..073fde2 100644
--- a/tests/nlattr_nlmsgerr.c
+++ b/tests/nlattr_nlmsgerr.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -69,11 +69,13 @@
{
skip_if_unavailable("/proc/self/fd/");
+ static const uint8_t cookie[] = { 0xab, 0xfe };
+
const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
const unsigned int hdrlen = sizeof(struct nlmsgerr);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(cookie));
- static const uint8_t cookie[] = { 0xab, 0xfe };
TEST_NLATTR(fd, nlh0, hdrlen,
init_nlmsgerr, print_nlmsgerr,
NLMSGERR_ATTR_COOKIE,
diff --git a/tests/nlattr_packet_diag_msg.c b/tests/nlattr_packet_diag_msg.c
index 4211e20..016d052 100644
--- a/tests/nlattr_packet_diag_msg.c
+++ b/tests/nlattr_packet_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@
}
static void
-print_packet_diag_mclist(const struct packet_diag_mclist *const dml)
+print_packet_diag_mclist(const struct packet_diag_mclist *const dml, size_t i)
{
printf("{pdmc_index=" IFINDEX_LO_STR);
PRINT_FIELD_U(", ", *dml, pdmc_count);
@@ -84,7 +84,7 @@
};
static void
-print_sock_filter(const struct sock_filter *const f)
+print_sock_filter(const struct sock_filter *const f, size_t i)
{
if (f == filter)
printf("BPF_STMT(BPF_LD|BPF_B|BPF_ABS"
@@ -98,13 +98,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct packet_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct packet_diag_info pinfo = {
.pdi_index = 0xabcddafa,
.pdi_version = 0xbabcdafb,
@@ -113,16 +106,6 @@
.pdi_tstamp = 0xeafbaadf,
.pdi_flags = PDI_RUNNING
};
- TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
- init_packet_diag_msg, print_packet_diag_msg,
- PACKET_DIAG_INFO, pattern, pinfo,
- PRINT_FIELD_U("{", pinfo, pdi_index);
- PRINT_FIELD_U(", ", pinfo, pdi_version);
- PRINT_FIELD_U(", ", pinfo, pdi_reserve);
- PRINT_FIELD_U(", ", pinfo, pdi_copy_thresh);
- PRINT_FIELD_U(", ", pinfo, pdi_tstamp);
- printf(", pdi_flags=PDI_RUNNING}"));
-
const struct packet_diag_mclist dml[] = {
{
.pdmc_index = ifindex_lo(),
@@ -139,11 +122,6 @@
.pdmc_addr = "5678"
}
};
- TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
- init_packet_diag_msg, print_packet_diag_msg,
- PACKET_DIAG_MCLIST, pattern, dml,
- print_packet_diag_mclist);
-
static const struct packet_diag_ring pdr = {
.pdr_block_size = 0xabcdafed,
.pdr_block_nr = 0xbcadefae,
@@ -153,6 +131,30 @@
.pdr_sizeof_priv = 0xfeadeacd,
.pdr_features = 0xadebadea
};
+
+ int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct packet_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(dml));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+ TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+ init_packet_diag_msg, print_packet_diag_msg,
+ PACKET_DIAG_INFO, pattern, pinfo,
+ PRINT_FIELD_U("{", pinfo, pdi_index);
+ PRINT_FIELD_U(", ", pinfo, pdi_version);
+ PRINT_FIELD_U(", ", pinfo, pdi_reserve);
+ PRINT_FIELD_U(", ", pinfo, pdi_copy_thresh);
+ PRINT_FIELD_U(", ", pinfo, pdi_tstamp);
+ printf(", pdi_flags=PDI_RUNNING}"));
+
+ TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+ init_packet_diag_msg, print_packet_diag_msg,
+ PACKET_DIAG_MCLIST, pattern, dml,
+ print_packet_diag_mclist);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_packet_diag_msg, print_packet_diag_msg,
PACKET_DIAG_RX_RING, pattern, pdr,
diff --git a/tests/nlattr_rtgenmsg.c b/tests/nlattr_rtgenmsg.c
index ceb061d..bac21ef 100644
--- a/tests/nlattr_rtgenmsg.c
+++ b/tests/nlattr_rtgenmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,13 +66,14 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtgenmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ const unsigned int nla_type = 0xffff & NLA_TYPE_MASK;
+ char nla_type_str[256];
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(nla_type_str));
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 /* NETNSA_??? */", nla_type);
TEST_NLATTR_(fd, nlh0, hdrlen,
init_rtgenmsg, print_rtgenmsg,
diff --git a/tests/nlattr_rtmsg.c b/tests/nlattr_rtmsg.c
index 5f29f0c..db02929 100644
--- a/tests/nlattr_rtmsg.c
+++ b/tests/nlattr_rtmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -81,13 +81,14 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct rtmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ const unsigned int nla_type = 0xffff & NLA_TYPE_MASK;
+ char nla_type_str[256];
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(nla_type_str));
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 /* RTA_??? */", nla_type);
TEST_NLATTR_(fd, nlh0, hdrlen,
init_rtmsg, print_rtmsg,
diff --git a/tests/nlattr_smc_diag_msg.c b/tests/nlattr_smc_diag_msg.c
index a06ad62..2e65ebd 100644
--- a/tests/nlattr_smc_diag_msg.c
+++ b/tests/nlattr_smc_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -97,13 +97,6 @@
{
skip_if_unavailable("/proc/self/fd/");
- int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct smc_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct smc_diag_conninfo cinfo = {
.token = 0xabcdefac,
.sndbuf_size = 0xbcdaefad,
@@ -149,6 +142,25 @@
.count = 0xcdedbad7
}
};
+ static const struct smc_diag_lgrinfo linfo = {
+ .lnk[0] = {
+ .link_id = 0xaf,
+ .ibport = 0xfa,
+ .ibname = "123",
+ .gid = "456",
+ .peer_gid = "789"
+ },
+ .role = SMC_CLNT
+ };
+
+ int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct smc_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN +
+ MAX(sizeof(cinfo), sizeof(linfo)));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_smc_diag_msg, print_smc_diag_msg,
@@ -170,16 +182,6 @@
PRINT_FIELD_SMC_DIAG_CURSOR(", ", cinfo, tx_fin);
printf("}"));
- static const struct smc_diag_lgrinfo linfo = {
- .lnk[0] = {
- .link_id = 0xaf,
- .ibport = 0xfa,
- .ibname = "123",
- .gid = "456",
- .peer_gid = "789"
- },
- .role = SMC_CLNT
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_smc_diag_msg, print_smc_diag_msg,
SMC_DIAG_LGRINFO, pattern, linfo,
diff --git a/tests/nlattr_tc_stats.c b/tests/nlattr_tc_stats.c
index dd76cc7..8003ed3 100644
--- a/tests/nlattr_tc_stats.c
+++ b/tests/nlattr_tc_stats.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 8 * 5);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_tca_stab.c b/tests/nlattr_tca_stab.c
index de6d356..9889050 100644
--- a/tests/nlattr_tca_stab.c
+++ b/tests/nlattr_tca_stab.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
#ifndef TCA_STAB
# define TCA_STAB 8
#endif
-#ifndef TCA_STAB_DATA
-# define TCA_STAB_DATA 2
+#if !HAVE_DECL_TCA_STAB_DATA
+enum { TCA_STAB_DATA = 2 };
#endif
const unsigned int hdrlen = sizeof(struct tcmsg);
@@ -76,7 +76,7 @@
}
static void
-print_uint16(const uint16_t *p)
+print_uint16(const uint16_t *p, size_t idx)
{
printf("%u", *p);
}
@@ -87,7 +87,11 @@
skip_if_unavailable("/proc/self/fd/");
const int fd = create_nl_socket(NETLINK_ROUTE);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4
+#ifdef HAVE_STRUCT_TC_SIZESPEC
+ - 4 + sizeof(struct tc_sizespec)
+#endif
+ );
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_tcamsg.c b/tests/nlattr_tcamsg.c
index 7f61153..43715d2 100644
--- a/tests/nlattr_tcamsg.c
+++ b/tests/nlattr_tcamsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,7 +62,7 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct tcamsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN + 4);
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_tcmsg.c b/tests/nlattr_tcmsg.c
index 32ce479..da88a45 100644
--- a/tests/nlattr_tcmsg.c
+++ b/tests/nlattr_tcmsg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,8 @@
const int fd = create_nl_socket(NETLINK_ROUTE);
const unsigned int hdrlen = sizeof(struct tcmsg);
- void *nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+ void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(struct tc_stats));
static char pattern[4096];
fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
diff --git a/tests/nlattr_unix_diag_msg.c b/tests/nlattr_unix_diag_msg.c
index 2295404..180b8cd 100644
--- a/tests/nlattr_unix_diag_msg.c
+++ b/tests/nlattr_unix_diag_msg.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 JingPiao Chen <[email protected]>
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -65,7 +65,7 @@
}
static void
-print_uint(const unsigned int *p)
+print_uint(const unsigned int *p, size_t i)
{
printf("%u", *p);
}
@@ -75,17 +75,24 @@
{
skip_if_unavailable("/proc/self/fd/");
- const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
- const unsigned int hdrlen = sizeof(struct unix_diag_msg);
- void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
-
- static char pattern[4096];
- fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
-
static const struct unix_diag_vfs uv = {
.udiag_vfs_dev = 0xabcddafa,
.udiag_vfs_ino = 0xbafabcda
};
+ static const struct unix_diag_rqlen rql = {
+ .udiag_rqueue = 0xfabdcdad,
+ .udiag_wqueue = 0xbacdadcf
+ };
+ static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
+
+ const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+ const unsigned int hdrlen = sizeof(struct unix_diag_msg);
+ void *const nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen),
+ NLA_HDRLEN + sizeof(inode));
+
+ static char pattern[4096];
+ fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_VFS, pattern, uv,
@@ -95,10 +102,6 @@
PRINT_FIELD_U(", ", uv, udiag_vfs_ino);
printf("}"));
- static const struct unix_diag_rqlen rql = {
- .udiag_rqueue = 0xfabdcdad,
- .udiag_wqueue = 0xbacdadcf
- };
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_RQLEN, pattern, rql,
@@ -106,7 +109,6 @@
PRINT_FIELD_U(", ", rql, udiag_wqueue);
printf("}"));
- static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
init_unix_diag_msg, print_unix_diag_msg,
UNIX_DIAG_ICONS, pattern, inode, print_uint);
diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c
index 9f74867..681fb31 100644
--- a/tests/nsyscalls.c
+++ b/tests/nsyscalls.c
@@ -86,14 +86,14 @@
a[0], a[1], a[2], a[3], a[4], a[5], rc);
#else
printf("syscall_%#lx(%#llx, %#llx, %#llx, %#llx, %#llx, %#llx)"
- " = %ld (errno %d)\n", nr | SYSCALL_BIT,
+ " = %ld ENOSYS (%m)\n", nr | SYSCALL_BIT,
(unsigned long long) a[0],
(unsigned long long) a[1],
(unsigned long long) a[2],
(unsigned long long) a[3],
(unsigned long long) a[4],
(unsigned long long) a[5],
- rc, errno);
+ rc);
#endif
}
diff --git a/tests/old_mmap-Xabbrev.c b/tests/old_mmap-Xabbrev.c
new file mode 100644
index 0000000..033503c
--- /dev/null
+++ b/tests/old_mmap-Xabbrev.c
@@ -0,0 +1 @@
+#include "old_mmap.c"
diff --git a/tests/old_mmap-Xabbrev.gen.test b/tests/old_mmap-Xabbrev.gen.test
new file mode 100755
index 0000000..0ee5608
--- /dev/null
+++ b/tests/old_mmap-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xabbrev -a11 -e trace=mmap -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xabbrev
diff --git a/tests/old_mmap-Xraw.c b/tests/old_mmap-Xraw.c
new file mode 100644
index 0000000..06de40b
--- /dev/null
+++ b/tests/old_mmap-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "old_mmap.c"
diff --git a/tests/old_mmap-Xraw.gen.test b/tests/old_mmap-Xraw.gen.test
new file mode 100755
index 0000000..6d7d3cf
--- /dev/null
+++ b/tests/old_mmap-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xraw -a11 -e trace=mmap -Xraw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xraw
diff --git a/tests/old_mmap-Xverbose.c b/tests/old_mmap-Xverbose.c
new file mode 100644
index 0000000..b141fec
--- /dev/null
+++ b/tests/old_mmap-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "old_mmap.c"
diff --git a/tests/old_mmap-Xverbose.gen.test b/tests/old_mmap-Xverbose.gen.test
new file mode 100755
index 0000000..6534a93
--- /dev/null
+++ b/tests/old_mmap-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (old_mmap-Xverbose -a11 -e trace=mmap -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a11 -e trace=mmap -Xverbose
diff --git a/tests/old_mmap.c b/tests/old_mmap.c
index 35ec428..07d572c 100644
--- a/tests/old_mmap.c
+++ b/tests/old_mmap.c
@@ -79,17 +79,41 @@
void *args = tail_memdup(args1_c, sizeof(args1_c));
rc = syscall(__NR_mmap, args);
+# if XLAT_RAW
+ printf("mmap(%#lx, %lu, %#x, %#x|%#x, %d, %#lx) = %ld %s (%m)\n",
+ args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+ (int) args1_c[4], args1_c[5], rc, errno2name());
+# elif XLAT_VERBOSE
+ printf("mmap(%#lx, %lu, %#x /* PROT_READ|PROT_EXEC */"
+ ", %#x /* MAP_FILE */|%#x /* MAP_FIXED */"
+ ", %d, %#lx) = %ld %s (%m)\n",
+ args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE, MAP_FIXED,
+ (int) args1_c[4], args1_c[5], rc, errno2name());
+# else
printf("mmap(%#lx, %lu, PROT_READ|PROT_EXEC, MAP_FILE|MAP_FIXED"
", %d, %#lx) = %ld %s (%m)\n",
args1_c[0], args1_c[1], (int) args1_c[4], args1_c[5],
rc, errno2name());
+# endif
memcpy(args, args2_c, sizeof(args2_c));
rc = syscall(__NR_mmap, args);
# ifndef PATH_TRACING
+# if XLAT_RAW
+ printf("mmap(NULL, %lu, %#x, %#x|%#x, %d, %#lx) = %#lx\n",
+ args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+ (int) args2_c[4], args2_c[5], rc);
+# elif XLAT_VERBOSE
+ printf("mmap(NULL, %lu, %#x /* PROT_READ|PROT_WRITE */"
+ ", %#x /* MAP_PRIVATE */|%#x /* MAP_ANONYMOUS */"
+ ", %d, %#lx) = %#lx\n",
+ args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE, MAP_ANONYMOUS,
+ (int) args2_c[4], args2_c[5], rc);
+# 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);
+# endif
# endif
void *addr = (void *) rc;
diff --git a/tests/opipe.test b/tests/opipe.test
index f622045..db449bb 100755
--- a/tests/opipe.test
+++ b/tests/opipe.test
@@ -5,7 +5,7 @@
. "${srcdir=.}/init.sh"
check_prog grep
-run_prog grep chdir $srcdir/umovestr.expected > "$EXP"
+grep chdir $srcdir/umovestr.expected > "$EXP"
run_prog ../umovestr
$STRACE -o "|cat > $LOG && $SLEEP_A_BIT && grep chdir < $LOG > $OUT" -e chdir $args ||
diff --git a/tests/options-syntax.test b/tests/options-syntax.test
index af7002b..1a290d0 100755
--- a/tests/options-syntax.test
+++ b/tests/options-syntax.test
@@ -56,6 +56,40 @@
check_h "invalid -s argument: '-42'" -s -42
check_h "invalid -s argument: '1073741824'" -s 1073741824
check_h "invalid -I argument: '5'" -I 5
+check_h "invalid -X argument: 'test'" -Xtest
+check_h "invalid -X argument: 'a'" -Xa
+check_h "invalid -X argument: 'abbreviated'" -X abbreviated
+
+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_e "invalid system call '/getcwd@ohmy'" -e trace=/getcwd@ohmy
+
+case "$STRACE_NATIVE_ARCH" in
+x86_64)
+ 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 "must have PROG [ARGS] or -p PID" -e trace=getcwd@x32
+ ;;
+x32)
+ check_h "incorrect personality designator '64' in qualification 'getcwd@64'" -e trace=getcwd@64
+ 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)
+ 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
+ ;;
+*)
+ pers="$((SIZEOF_LONG * 8))"
+ inv_pers="$((96 - pers))"
+ check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@"$pers"
+ check_h "incorrect personality designator '$inv_pers' in qualification 'getcwd@$inv_pers'" -e trace=getcwd@"$inv_pers"
+ check_h "incorrect personality designator 'x32' in qualification 'getcwd@x32'" -e trace=getcwd@x32
+esac
../zeroargc "$STRACE_EXE" /bin/true 2> "$LOG" &&
dump_log_and_fail_with \
diff --git a/tests/personality-Xabbrev.c b/tests/personality-Xabbrev.c
new file mode 100644
index 0000000..2e993dc
--- /dev/null
+++ b/tests/personality-Xabbrev.c
@@ -0,0 +1 @@
+#include "personality.c"
diff --git a/tests/personality-Xabbrev.gen.test b/tests/personality-Xabbrev.gen.test
new file mode 100755
index 0000000..df93e6c
--- /dev/null
+++ b/tests/personality-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xabbrev +personality.test -Xabbrev); do not edit.
+set -- -Xabbrev
+. "${srcdir=.}/personality.test"
diff --git a/tests/personality-Xraw.c b/tests/personality-Xraw.c
new file mode 100644
index 0000000..59702f8
--- /dev/null
+++ b/tests/personality-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "personality.c"
diff --git a/tests/personality-Xraw.gen.test b/tests/personality-Xraw.gen.test
new file mode 100755
index 0000000..559f0f3
--- /dev/null
+++ b/tests/personality-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xraw +personality.test -a15 -Xraw); do not edit.
+set -- -a15 -Xraw
+. "${srcdir=.}/personality.test"
diff --git a/tests/personality-Xverbose.c b/tests/personality-Xverbose.c
new file mode 100644
index 0000000..545ebe7
--- /dev/null
+++ b/tests/personality-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "personality.c"
diff --git a/tests/personality-Xverbose.gen.test b/tests/personality-Xverbose.gen.test
new file mode 100755
index 0000000..b6ce209
--- /dev/null
+++ b/tests/personality-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (personality-Xverbose +personality.test -Xverbose); do not edit.
+set -- -Xverbose
+. "${srcdir=.}/personality.test"
diff --git a/tests/personality.c b/tests/personality.c
index 7a279a1..5d84807 100644
--- a/tests/personality.c
+++ b/tests/personality.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2015 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,51 +29,76 @@
#include <stdio.h>
#include <sys/personality.h>
+#if XLAT_RAW
+# define linux_type_str "0"
+# define good_type_str "0x6"
+# define bad_type_str "0x1f"
+# define good_flags_str "0x7000000"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str "0x7010000"
+#elif XLAT_VERBOSE
+# define linux_type_str "0 /\\* PER_LINUX \\*/"
+# define good_type_str "0x6 /\\* PER_BSD \\*/"
+# define bad_type_str "0x1f /\\* PER_\\?\\?\\? \\*/"
+# define good_flags_str \
+ "0x7000000 /\\* SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS \\*/"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str \
+ "0x7010000 /\\* SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS" \
+ "\\|0x10000 \\*/"
+#else
+# define linux_type_str "PER_LINUX"
+# define good_type_str "PER_BSD"
+# define bad_type_str "0x1f /\\* PER_\\?\\?\\? \\*/"
+# define good_flags_str "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS"
+# define bad_flags_str "0x10000"
+# define good_bad_flags_str \
+ "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS\\|0x10000"
+#endif
+
int main(void)
{
const unsigned int good_type = PER_BSD;
- const char *good_type_str = "PER_BSD";
const unsigned int bad_type = 0x1f;
- const char *bad_type_str = "0x1f /\\* PER_\\?\\?\\? \\*/";
const unsigned int good_flags =
SHORT_INODE | WHOLE_SECONDS | STICKY_TIMEOUTS;
- const char *good_flags_str =
- "SHORT_INODE\\|WHOLE_SECONDS\\|STICKY_TIMEOUTS";
const unsigned int bad_flags = 0x10000;
- const char *bad_flags_str = "0x10000";
const unsigned int saved_pers = personality(0xffffffff);
printf("personality\\(0xffffffff\\) = %#x \\([^)]*\\)\n", saved_pers);
/* PER_LINUX */
personality(PER_LINUX);
- printf("personality\\(PER_LINUX\\) = %#x \\([^)]*\\)\n", saved_pers);
+ printf("personality\\(%s\\) = %#x \\([^)]*\\)\n",
+ linux_type_str, saved_pers);
personality(0xffffffff);
- puts("personality\\(0xffffffff\\) = 0 \\(PER_LINUX\\)");
+ printf("personality\\(0xffffffff\\) = 0 \\(%s\\)\n", linux_type_str);
personality(good_flags);
- printf("personality\\(PER_LINUX\\|%s\\) = 0 \\(PER_LINUX\\)\n",
- good_flags_str);
+ printf("personality\\(%s\\|%s\\) = 0 \\(%s\\)\n",
+ linux_type_str, good_flags_str, linux_type_str);
personality(bad_flags);
- printf("personality\\(PER_LINUX\\|%s\\)"
- " = %#x \\(PER_LINUX\\|%s\\)\n",
- bad_flags_str, good_flags, good_flags_str);
+ printf("personality\\(%s\\|%s\\)"
+ " = %#x \\(%s\\|%s\\)\n",
+ linux_type_str, bad_flags_str,
+ good_flags, linux_type_str, good_flags_str);
personality(good_flags | bad_flags);
- printf("personality\\(PER_LINUX\\|%s\\|%s\\)"
- " = %#x \\(PER_LINUX\\|%s\\)\n",
- good_flags_str, bad_flags_str, bad_flags, bad_flags_str);
+ printf("personality\\(%s\\|%s\\)"
+ " = %#x \\(%s\\|%s\\)\n",
+ linux_type_str, good_bad_flags_str,
+ bad_flags, linux_type_str, bad_flags_str);
/* another valid type */
personality(good_type);
- printf("personality\\(%s\\) = %#x \\(PER_LINUX\\|%s\\|%s\\)\n",
+ printf("personality\\(%s\\) = %#x \\(%s\\|%s\\)\n",
good_type_str, good_flags | bad_flags,
- good_flags_str, bad_flags_str);
+ linux_type_str, good_bad_flags_str);
personality(good_type | good_flags);
printf("personality\\(%s\\|%s\\) = %#x \\(%s\\)\n",
@@ -84,16 +110,16 @@
good_type_str, good_flags_str);
personality(good_type | good_flags | bad_flags);
- printf("personality\\(%s\\|%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
- good_type_str, good_flags_str, bad_flags_str,
+ printf("personality\\(%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
+ good_type_str, good_bad_flags_str,
good_type | bad_flags,
good_type_str, bad_flags_str);
/* invalid type */
personality(bad_type);
- printf("personality\\(%s\\) = %#x \\(%s\\|%s\\|%s\\)\n",
+ printf("personality\\(%s\\) = %#x \\(%s\\|%s\\)\n",
bad_type_str, good_type | good_flags | bad_flags,
- good_type_str, good_flags_str, bad_flags_str);
+ good_type_str, good_bad_flags_str);
personality(bad_type | good_flags);
printf("personality\\(%s\\|%s\\) = %#x \\(%s\\)\n",
@@ -105,14 +131,14 @@
bad_type_str, good_flags_str);
personality(bad_type | good_flags | bad_flags);
- printf("personality\\(%s\\|%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
- bad_type_str, good_flags_str, bad_flags_str,
+ printf("personality\\(%s\\|%s\\) = %#x \\(%s\\|%s\\)\n",
+ bad_type_str, good_bad_flags_str,
bad_type | bad_flags, bad_type_str, bad_flags_str);
personality(saved_pers);
- printf("personality\\([^)]*\\) = %#x \\(%s\\|%s\\|%s\\)\n",
+ printf("personality\\([^)]*\\) = %#x \\(%s\\|%s\\)\n",
bad_type | good_flags | bad_flags,
- bad_type_str, good_flags_str, bad_flags_str);
+ bad_type_str, good_bad_flags_str);
return 0;
}
diff --git a/tests/personality.test b/tests/personality.test
index ab2faf4..d279bd1 100755
--- a/tests/personality.test
+++ b/tests/personality.test
@@ -5,5 +5,5 @@
. "${srcdir=.}/init.sh"
run_prog > /dev/null
-run_strace -a20 -epersonality $args > "$EXP"
+run_strace -a20 -epersonality "$@" $args > "$EXP"
match_grep "$LOG" "$EXP"
diff --git a/tests/poll.c b/tests/poll.c
index c5930a3..9624bd3 100644
--- a/tests/poll.c
+++ b/tests/poll.c
@@ -95,7 +95,7 @@
if (i)
tprintf(", ");
if (i >= valid) {
- tprintf("%p", &pfd[i]);
+ tprintf("... /* %p */", &pfd[i]);
break;
}
if (i >= abbrev) {
diff --git a/tests/prctl-spec-inject.c b/tests/prctl-spec-inject.c
new file mode 100644
index 0000000..593c3a6
--- /dev/null
+++ b/tests/prctl-spec-inject.c
@@ -0,0 +1,153 @@
+/*
+ * Check decoding of PR_SET_SPECULATION_CTRL and PR_GET_SPECULATION_CTRL
+ * prctl operations.
+ *
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_prctl
+
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+# include <linux/prctl.h>
+
+static long injected_val;
+
+long
+do_prctl(kernel_ulong_t cmd, kernel_ulong_t arg2, kernel_ulong_t arg3)
+{
+ long rc = syscall(__NR_prctl, cmd, arg2, arg3);
+
+ if (rc != injected_val)
+ error_msg_and_fail("Return value (%ld) differs from expected "
+ "injected value (%ld)",
+ rc, injected_val);
+
+ return rc;
+}
+
+int
+main(int argc, char **argv)
+{
+ static const kernel_ulong_t bogus_arg2 =
+ (kernel_ulong_t) 0xdeadfacebadc0dedULL;
+ static const kernel_ulong_t bogus_arg3 =
+ (kernel_ulong_t) 0xdecafeedbeefda7eULL;
+ static const struct {
+ long arg;
+ const char *str;
+ } get_strs[] = {
+ { -1, "" },
+ { 0, " (PR_SPEC_NOT_AFFECTED)" },
+ { 1, " (PR_SPEC_PRCTL)" },
+ { 3, " (PR_SPEC_PRCTL|PR_SPEC_ENABLE)" },
+ { 8, " (PR_SPEC_FORCE_DISABLE)" },
+ { 16, " (0x10)" },
+ { 42, " (PR_SPEC_ENABLE|PR_SPEC_FORCE_DISABLE|0x20)" },
+ };
+ static const struct {
+ kernel_ulong_t arg;
+ const char *str;
+ } set_strs[] = {
+ { 0, "0 /* PR_SPEC_??? */" },
+ { 1, "0x1 /* PR_SPEC_??? */" },
+ { 2, "PR_SPEC_ENABLE" },
+ { 3, "0x3 /* PR_SPEC_??? */" },
+ { 8, "PR_SPEC_FORCE_DISABLE" },
+ { 16, "0x10 /* PR_SPEC_??? */" },
+ { (kernel_ulong_t) 0xdecafeedbeefda7eULL, "0x"
+# if SIZEOF_KERNEL_LONG_T == 8
+ "decafeed"
+# endif
+ "beefda7e /* PR_SPEC_??? */" },
+ };
+
+ long rc;
+ const char *str = NULL;
+
+ if (argc < 2)
+ error_msg_and_fail("Usage: %s INJECTED_VAL", argv[0]);
+
+ injected_val = strtol(argv[1], NULL, 0);
+
+ /* PR_GET_SPECULATION_CTRL */
+ rc = do_prctl(52, 1, bogus_arg3);
+ printf("prctl(PR_GET_SPECULATION_CTRL, 0x1 /* PR_SPEC_??? */) "
+ "= %s (INJECTED)\n", sprintrc(rc));
+
+ rc = do_prctl(52, bogus_arg2, bogus_arg3);
+ printf("prctl(PR_GET_SPECULATION_CTRL, %#llx /* PR_SPEC_??? */) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg2, sprintrc(rc));
+
+ rc = do_prctl(52, 0, bogus_arg3);
+
+ for (unsigned i = 0; i < ARRAY_SIZE(get_strs); i++) {
+ if (get_strs[i].arg == rc) {
+ str = get_strs[i].str;
+ break;
+ }
+ }
+ if (!str)
+ error_msg_and_fail("Unknown return value: %ld", rc);
+
+ printf("prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS) "
+ "= %s%s (INJECTED)\n", sprintrc(rc), str);
+
+
+ /* PR_SET_SPECULATION_CTRL*/
+ rc = do_prctl(53, 1, bogus_arg3);
+ printf("prctl(PR_SET_SPECULATION_CTRL, 0x1 /* PR_SPEC_??? */, %#llx) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg3, sprintrc(rc));
+
+ rc = do_prctl(53, bogus_arg2, bogus_arg3);
+ printf("prctl(PR_SET_SPECULATION_CTRL, %#llx /* PR_SPEC_??? */, %#llx) "
+ "= %s (INJECTED)\n",
+ (unsigned long long) bogus_arg2,
+ (unsigned long long) bogus_arg3,
+ sprintrc(rc));
+
+ for (unsigned i = 0; i < ARRAY_SIZE(set_strs); i++) {
+ rc = do_prctl(53, 0, set_strs[i].arg);
+ printf("prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS"
+ ", %s) = %s (INJECTED)\n",
+ set_strs[i].str, sprintrc(rc));
+ }
+
+ puts("+++ exited with 0 +++");
+ return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_prctl")
+
+#endif
diff --git a/tests/prctl-spec-inject.test b/tests/prctl-spec-inject.test
new file mode 100755
index 0000000..c8fbe97
--- /dev/null
+++ b/tests/prctl-spec-inject.test
@@ -0,0 +1,55 @@
+#!/bin/sh -efu
+#
+# Check decoding of PR_SET_SPECULATION_CTRL and PR_GET_SPECULATION_CTRL
+# prctl operations.
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${srcdir=.}/scno_tampering.sh"
+
+fault_args='-a53 -e trace=prctl -e inject=prctl:'
+prog="../$NAME"
+
+test_run_rval()
+{
+ local run rval injexpr
+ run="$1"; shift
+ rval="$1"; shift
+ injexpr="$1"; shift
+
+ run_strace $fault_args$injexpr $prog $rval > "$EXP"
+ LC_ALL=C grep -Ev '^prctl\(PR_[GS]ET_([^S][^P][^E][^C]])' \
+ < "$LOG" > "$OUT"
+ match_diff "$OUT" "$EXP"
+}
+
+test_run_rval 0 -1 "error=ENOTTY"
+test_run_rval 1 0 "retval=0"
+test_run_rval 2 1 "retval=1"
+test_run_rval 3 3 "retval=3"
+test_run_rval 4 8 "retval=8"
+test_run_rval 5 16 "retval=16"
+test_run_rval 6 42 "retval=42"
diff --git a/tests/preadv-pwritev.c b/tests/preadv-pwritev.c
index 44ed23a..57a08ad 100644
--- a/tests/preadv-pwritev.c
+++ b/tests/preadv-pwritev.c
@@ -2,7 +2,7 @@
* Check decoding of preadv and pwritev syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -99,7 +99,7 @@
tprintf("pwritev(1, [], 0, 0) = 0\n");
rc = pwritev(1, w_iov + ARRAY_SIZE(w_iov_) - 1, 2, 0);
- tprintf("pwritev(1, [{iov_base=\"%s\", iov_len=%u}, %p], 2, 0)"
+ tprintf("pwritev(1, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2, 0)"
" = %ld %s (%m)\n",
w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests/preadv2-pwritev2.c b/tests/preadv2-pwritev2.c
index 89f37dd..7874b7a 100644
--- a/tests/preadv2-pwritev2.c
+++ b/tests/preadv2-pwritev2.c
@@ -2,7 +2,7 @@
* Check decoding of preadv2 and pwritev2 syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -104,7 +104,7 @@
tprintf("pwritev2(1, [], 0, 0, 0) = 0\n");
rc = pw(1, w_iov + ARRAY_SIZE(w_iov_) - 1, 2, 0);
- tprintf("pwritev2(1, [{iov_base=\"%s\", iov_len=%u}, %p], 2, 0, 0)"
+ tprintf("pwritev2(1, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2, 0, 0)"
" = %ld %s (%m)\n",
w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests/print_quoted_string.c b/tests/print_quoted_string.c
index 3ca5631..a58b69a 100644
--- a/tests/print_quoted_string.c
+++ b/tests/print_quoted_string.c
@@ -33,6 +33,18 @@
}
}
+void
+print_quoted_stringn(const char *instr, const size_t size)
+{
+ const size_t len = strnlen(instr, size);
+ if (len < size) {
+ print_quoted_memory(instr, len);
+ } else {
+ print_quoted_memory(instr, size);
+ printf("...");
+ }
+}
+
static void
print_octal(unsigned char c, char next)
{
diff --git a/tests/process_vm_readv_writev.c b/tests/process_vm_readv_writev.c
index 5ee801b..328dc9f 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -135,7 +135,7 @@
}
if (arg->addr_term)
- printf(", %p", iov + arg->count);
+ printf(", ... /* %p */", iov + arg->count);
printf("]");
}
diff --git a/tests/ptrace.c b/tests/ptrace.c
index 5c09fa3..2ca9ceb 100644
--- a/tests/ptrace.c
+++ b/tests/ptrace.c
@@ -60,10 +60,11 @@
printf("ptrace(PTRACE_PEEKSIGINFO, %u, NULL, %#lx) = %s\n",
(unsigned) pid, bad_request, errstr);
- struct {
+ struct psi {
unsigned long long off;
unsigned int flags, nr;
- } *const psi = tail_alloc(sizeof(*psi));
+ };
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct psi, psi);
psi->off = 0xdeadbeeffacefeedULL;
psi->flags = 1;
@@ -179,7 +180,7 @@
const unsigned long pid =
(unsigned long) 0xdefaced00000000ULL | (unsigned) getpid();
- uint64_t *filter_off = tail_alloc(sizeof(*filter_off));
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, filter_off);
const unsigned int sigset_size = get_sigset_size();
diff --git a/tests/pure_executables.am b/tests/pure_executables.am
index bbb3ad9..c65f4ca 100644
--- a/tests/pure_executables.am
+++ b/tests/pure_executables.am
@@ -8,9 +8,14 @@
add_key \
adjtimex \
aio \
+ aio_pgetevents \
alarm \
bpf \
bpf-v \
+ bpf-obj_get_info_by_fd \
+ bpf-obj_get_info_by_fd-v \
+ bpf-obj_get_info_by_fd-prog \
+ bpf-obj_get_info_by_fd-prog-v \
brk \
btrfs \
caps \
@@ -43,6 +48,9 @@
fallocate \
fanotify_init \
fanotify_mark \
+ fanotify_mark-Xabbrev \
+ fanotify_mark-Xraw \
+ fanotify_mark-Xverbose \
fchdir \
fchmod \
fchmodat \
@@ -105,10 +113,13 @@
ioctl_block \
ioctl_dm \
ioctl_evdev \
+ ioctl_inotify \
ioctl_kvm_run \
ioctl_loop \
ioctl_mtd \
ioctl_rtc \
+ ioctl_perf \
+ ioctl_ptp \
ioctl_scsi \
ioctl_sg_io_v3 \
ioctl_sg_io_v4 \
@@ -121,15 +132,30 @@
ip_mreq \
ipc \
ipc_msg \
+ ipc_msg-Xabbrev \
+ ipc_msg-Xraw \
+ ipc_msg-Xverbose \
ipc_msgbuf \
+ ipc_msgbuf-Xabbrev \
+ ipc_msgbuf-Xraw \
+ ipc_msgbuf-Xverbose \
ipc_sem \
+ ipc_sem-Xabbrev \
+ ipc_sem-Xraw \
+ ipc_sem-Xverbose \
ipc_shm \
+ ipc_shm-Xabbrev \
+ ipc_shm-Xraw \
+ ipc_shm-Xverbose \
kcmp \
kcmp-y \
kern_features \
kexec_file_load \
kexec_load \
keyctl \
+ keyctl-Xabbrev \
+ keyctl-Xraw \
+ keyctl-Xverbose \
kill \
lchown \
lchown32 \
@@ -154,11 +180,20 @@
mlock2 \
mlockall \
mmap \
+ mmap-Xabbrev \
+ mmap-Xraw \
+ mmap-Xverbose \
mmap64 \
+ mmap64-Xabbrev \
+ mmap64-Xraw \
+ mmap64-Xverbose \
mmsg \
mmsg_name \
modify_ldt \
mount \
+ mount-Xabbrev \
+ mount-Xraw \
+ mount-Xverbose \
move_pages \
mq \
mq_sendrecv \
@@ -205,7 +240,9 @@
nlattr_ifaddrlblmsg \
nlattr_ifaddrmsg \
nlattr_ifinfomsg \
+ nlattr_ifla_af_spec \
nlattr_ifla_brport \
+ nlattr_ifla_linkinfo \
nlattr_ifla_port \
nlattr_ifla_xdp \
nlattr_inet_diag_msg \
@@ -230,6 +267,9 @@
old_mmap \
old_mmap-P \
old_mmap-v-none \
+ old_mmap-Xabbrev \
+ old_mmap-Xraw \
+ old_mmap-Xverbose \
oldfstat \
oldlstat \
oldselect \
@@ -241,6 +281,9 @@
pause \
perf_event_open \
personality \
+ personality-Xabbrev \
+ personality-Xraw \
+ personality-Xverbose \
pipe \
pipe2 \
pkey_alloc \
@@ -357,7 +400,13 @@
sigsuspend \
so_linger \
so_peercred \
+ so_peercred-Xabbrev \
+ so_peercred-Xraw \
+ so_peercred-Xverbose \
sock_filter-v \
+ sock_filter-v-Xabbrev \
+ sock_filter-v-Xraw \
+ sock_filter-v-Xverbose \
socketcall \
sockopt-sol_netlink \
splice \
diff --git a/tests/pure_executables.list b/tests/pure_executables.list
index d78bd4d..39565d0 100755
--- a/tests/pure_executables.list
+++ b/tests/pure_executables.list
@@ -7,9 +7,14 @@
add_key
adjtimex
aio
+aio_pgetevents
alarm
bpf
bpf-v
+bpf-obj_get_info_by_fd
+bpf-obj_get_info_by_fd-v
+bpf-obj_get_info_by_fd-prog
+bpf-obj_get_info_by_fd-prog-v
brk
btrfs
caps
@@ -42,6 +47,9 @@
fallocate
fanotify_init
fanotify_mark
+fanotify_mark-Xabbrev
+fanotify_mark-Xraw
+fanotify_mark-Xverbose
fchdir
fchmod
fchmodat
@@ -104,10 +112,13 @@
ioctl_block
ioctl_dm
ioctl_evdev
+ioctl_inotify
ioctl_kvm_run
ioctl_loop
ioctl_mtd
ioctl_rtc
+ioctl_perf
+ioctl_ptp
ioctl_scsi
ioctl_sg_io_v3
ioctl_sg_io_v4
@@ -120,15 +131,30 @@
ip_mreq
ipc
ipc_msg
+ipc_msg-Xabbrev
+ipc_msg-Xraw
+ipc_msg-Xverbose
ipc_msgbuf
+ipc_msgbuf-Xabbrev
+ipc_msgbuf-Xraw
+ipc_msgbuf-Xverbose
ipc_sem
+ipc_sem-Xabbrev
+ipc_sem-Xraw
+ipc_sem-Xverbose
ipc_shm
+ipc_shm-Xabbrev
+ipc_shm-Xraw
+ipc_shm-Xverbose
kcmp
kcmp-y
kern_features
kexec_file_load
kexec_load
keyctl
+keyctl-Xabbrev
+keyctl-Xraw
+keyctl-Xverbose
kill
lchown
lchown32
@@ -153,11 +179,20 @@
mlock2
mlockall
mmap
+mmap-Xabbrev
+mmap-Xraw
+mmap-Xverbose
mmap64
+mmap64-Xabbrev
+mmap64-Xraw
+mmap64-Xverbose
mmsg
mmsg_name
modify_ldt
mount
+mount-Xabbrev
+mount-Xraw
+mount-Xverbose
move_pages
mq
mq_sendrecv
@@ -204,7 +239,9 @@
nlattr_ifaddrlblmsg
nlattr_ifaddrmsg
nlattr_ifinfomsg
+nlattr_ifla_af_spec
nlattr_ifla_brport
+nlattr_ifla_linkinfo
nlattr_ifla_port
nlattr_ifla_xdp
nlattr_inet_diag_msg
@@ -229,6 +266,9 @@
old_mmap
old_mmap-P
old_mmap-v-none
+old_mmap-Xabbrev
+old_mmap-Xraw
+old_mmap-Xverbose
oldfstat
oldlstat
oldselect
@@ -240,6 +280,9 @@
pause
perf_event_open
personality
+personality-Xabbrev
+personality-Xraw
+personality-Xverbose
pipe
pipe2
pkey_alloc
@@ -356,7 +399,13 @@
sigsuspend
so_linger
so_peercred
+so_peercred-Xabbrev
+so_peercred-Xraw
+so_peercred-Xverbose
sock_filter-v
+sock_filter-v-Xabbrev
+sock_filter-v-Xraw
+sock_filter-v-Xverbose
socketcall
sockopt-sol_netlink
splice
diff --git a/tests/pwritev.c b/tests/pwritev.c
index 58e5b41..3c2bdb6 100644
--- a/tests/pwritev.c
+++ b/tests/pwritev.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -65,7 +66,7 @@
if (i)
fputs(", ", stdout);
if (i == size) {
- printf("%p", &iov[i]);
+ printf("... /* %p */", &iov[i]);
break;
}
if (i == LIM) {
diff --git a/tests/qual_fault-syntax.test b/tests/qual_fault-syntax.test
index 43ade76..7f7a515 100755
--- a/tests/qual_fault-syntax.test
+++ b/tests/qual_fault-syntax.test
@@ -86,6 +86,12 @@
chdir:retval=0 \
chdir:signal=1 \
chdir:error=1:error=2 \
+ chdir:syscall=invalid \
+ chdir:syscall=chdir \
+ chdir:syscall=%file \
+ chdir:syscall=-42 \
+ chdir:syscall=42 \
+ chdir:syscall=gettid:syscall=gettid \
; do
$STRACE -e fault="$arg" true 2> "$LOG" &&
fail_with "$arg"
diff --git a/tests/qual_fault-syscall.test b/tests/qual_fault-syscall.test
new file mode 100755
index 0000000..cae97f5
--- /dev/null
+++ b/tests/qual_fault-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_fault
+. "${srcdir=.}/qual_fault.test"
diff --git a/tests/qual_fault.c b/tests/qual_fault.c
index 670d9fe..d5d78bc 100644
--- a/tests/qual_fault.c
+++ b/tests/qual_fault.c
@@ -77,8 +77,9 @@
err, rc, errno);
if (is_raw)
- tprintf("writev(%#x, %p, 0x1) = -1 (errno %d)"
- " (INJECTED)\n", got_fd, &io, err);
+ tprintf("writev(%#x, %p, 0x1)"
+ " = -1 %s (%m) (INJECTED)\n",
+ got_fd, &io, errstr);
else
tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
" = -1 %s (%m) (INJECTED)\n",
diff --git a/tests/qual_fault.test b/tests/qual_fault.test
index 12b0a85..e166ffd 100755
--- a/tests/qual_fault.test
+++ b/tests/qual_fault.test
@@ -1,9 +1,9 @@
-#!/bin/sh
+#!/bin/sh -efu
#
# Check that fault injection works properly.
#
# Copyright (c) 2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2016-2017 The strace developers.
+# Copyright (c) 2016-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,9 @@
N=100
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
check_fault_injection()
{
local trace fault err first step procs extra
@@ -79,7 +82,7 @@
outpid="$NAME.pid"
run_strace -a11 -ff -e trace=$trace \
- "$@" -e fault=$fault$when$error $extra \
+ "$@" -e fault=$fault$when$error$suffix $extra \
../$NAME $raw "$err" "$first" "$step" $N \
"$procs" "$outexp" "$outgot" "$outout" "$outpid"
@@ -87,8 +90,8 @@
do
pid=$(cat "$outpid.$i")
- match_diff "$outout.$i" "$LOG.$pid"
- match_diff "$outexp.$i" "$outgot.$i"
+ match_diff "$LOG.$pid" "$outout.$i"
+ match_diff "$outgot.$i" "$outexp.$i"
done
}
diff --git a/tests/qual_inject-error-signal-syscall.test b/tests/qual_inject-error-signal-syscall.test
new file mode 100755
index 0000000..0adb35d
--- /dev/null
+++ b/tests/qual_inject-error-signal-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-error-signal
+. "${srcdir=.}/qual_inject-error-signal.test"
diff --git a/tests/qual_inject-error-signal.test b/tests/qual_inject-error-signal.test
index 1fe4612..93d8321 100755
--- a/tests/qual_inject-error-signal.test
+++ b/tests/qual_inject-error-signal.test
@@ -3,6 +3,10 @@
# Check fault injection along with signal injection.
. "${srcdir=.}/scno_tampering.sh"
-run_strace -a12 -echdir,exit_group -einject=chdir:error=ENOENT:signal=USR1 \
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
+run_strace -a12 -echdir,exit_group \
+ -einject=chdir:error=ENOENT:signal=USR1"$suffix" \
"../$NAME"
match_diff
diff --git a/tests/qual_inject-retval-syscall.test b/tests/qual_inject-retval-syscall.test
new file mode 100755
index 0000000..fca9354
--- /dev/null
+++ b/tests/qual_inject-retval-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-retval
+. "${srcdir=.}/qual_inject-retval.test"
diff --git a/tests/qual_inject-retval.test b/tests/qual_inject-retval.test
index 5a4efd1..239ab0a 100755
--- a/tests/qual_inject-retval.test
+++ b/tests/qual_inject-retval.test
@@ -4,6 +4,9 @@
. "${srcdir=.}/scno_tampering.sh"
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
check_injection()
{
local syscall rval
@@ -11,7 +14,7 @@
syscall=chdir
rval="$1"; shift
- run_strace -a12 -e$syscall -einject="$syscall:retval=$rval" "$@" \
+ run_strace -a12 -e$syscall -einject="$syscall:retval=$rval$suffix" "$@" \
../qual_inject-retval "$rval" > "$EXP"
match_diff "$LOG" "$EXP"
}
diff --git a/tests/qual_inject-signal-syscall.test b/tests/qual_inject-signal-syscall.test
new file mode 100755
index 0000000..42e9a26
--- /dev/null
+++ b/tests/qual_inject-signal-syscall.test
@@ -0,0 +1,3 @@
+suffix=:syscall=gettid
+name_override=qual_inject-signal
+. "${srcdir=.}/qual_inject-signal.test"
diff --git a/tests/qual_inject-signal.test b/tests/qual_inject-signal.test
index f17e5a0..7f75a8e 100755
--- a/tests/qual_inject-signal.test
+++ b/tests/qual_inject-signal.test
@@ -3,6 +3,9 @@
# Check signal injection.
. "${srcdir=.}/init.sh"
-run_strace -a12 -echdir,exit_group -einject=chdir:signal=USR1 \
+: ${suffix=}
+[ -z "${name_override-}" ] || NAME="$name_override"
+
+run_strace -a12 -echdir,exit_group -einject=chdir:signal=USR1"$suffix" \
../$NAME
match_diff
diff --git a/tests/qual_inject-syntax.test b/tests/qual_inject-syntax.test
index 20bc0c3..a53b01c 100755
--- a/tests/qual_inject-syntax.test
+++ b/tests/qual_inject-syntax.test
@@ -102,6 +102,12 @@
chdir:delay_exit=3:delay_exit=4 \
chdir:delay_enter=5:delay_exit=6:delay_enter=7 \
chdir:delay_exit=8:delay_enter=9:delay_exit=10 \
+ chdir:syscall=invalid \
+ chdir:syscall=chdir \
+ chdir:syscall=%file \
+ chdir:syscall=-42 \
+ chdir:syscall=42 \
+ chdir:syscall=gettid:syscall=gettid \
; do
$STRACE -e inject="$arg" true 2> "$LOG" &&
fail_with "$arg"
diff --git a/tests/qualify_personality.sh b/tests/qualify_personality.sh
new file mode 100644
index 0000000..7b19a2e
--- /dev/null
+++ b/tests/qualify_personality.sh
@@ -0,0 +1,94 @@
+#! /bin/sh -efu
+#
+# Common code for per-personality qualification tests
+#
+# Copyright (c) 2018 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${srcdir=.}/init.sh"
+
+[ 2 -le "$#" ] ||
+ fail_ 'No personality designation ("64", "32", "x32") specified'
+
+pers="$1"
+shift
+trace_expr="$1"
+shift
+skip="${1-}"
+
+case "$STRACE_NATIVE_ARCH" in
+x86_64)
+ supported_pers='64 32 x32'
+ ;;
+x32)
+ supported_pers='x32 32'
+ ;;
+aarch64|powerpc64|riscv|s390x|sparc64|tile)
+ supported_pers='64 32'
+ ;;
+*)
+ supported_pers="$(($SIZEOF_LONG * 8))"
+ ;;
+esac
+
+# Detect current personality designation
+if [ "x$STRACE_NATIVE_ARCH" = "x$STRACE_ARCH" ]; then
+ case "$STRACE_NATIVE_ARCH" in
+ x32)
+ cur_pers=x32
+ ;;
+ *)
+ cur_pers="$(($SIZEOF_LONG * 8))"
+ ;;
+ esac
+else
+ if [ "x$SIZEOF_KERNEL_LONG_T" = "x$SIZEOF_LONG" ]; then
+ [ 4 -eq "$SIZEOF_LONG" ] ||
+ fail_ "sizeof(long) = $SIZEOF_LONG != 4"
+ cur_pers=32
+ else
+ [ 8 -eq "$SIZEOF_KERNEL_LONG_T" ] ||
+ fail_ "sizeof(kernel_long_t) = $SIZEOF_KERNEL_LONG_T != 8"
+ [ 4 -eq "$SIZEOF_LONG" ] ||
+ fail_ "sizeof(long) = $SIZEOF_LONG != 4"
+ cur_pers=x32
+ fi
+fi
+
+pers_found=0
+set -- $supported_pers
+for i; do
+ [ "x$pers" != "x$i" ] || pers_found=1
+done
+
+[ "$pers_found" = 1 ] ||
+ skip_ "Personality '$pers' is not supported on architecture" \
+ "'$STRACE_NATIVE_ARCH' (supported personalities: $supported_pers)"
+
+# If tested personality is not equivalent to current personality, reset $NAME,
+# so "$NAME.in", which is used by test_trace_expr, points to an empty file.
+[ "x$pers" = "x$cur_pers" ] || NAME=qualify_personality_empty
+
+test_trace_expr "$skip" -e trace="${trace_expr}@${pers}"
diff --git a/tests/qualify_personality_empty.in b/tests/qualify_personality_empty.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/qualify_personality_empty.in
diff --git a/tests/readv.c b/tests/readv.c
index 8430ca5..cae4e6b 100644
--- a/tests/readv.c
+++ b/tests/readv.c
@@ -2,7 +2,7 @@
* Check decoding of readv and writev syscalls.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -89,7 +89,7 @@
fds[1], (long) writev(fds[1], w_iov, 0));
rc = writev(fds[1], w_iov + ARRAY_SIZE(w_iov_) - 1, 2);
- tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%u}, %p], 2)"
+ tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%u}, ... /* %p */], 2)"
" = %ld %s (%m)\n",
fds[1], w2_c, LENGTH_OF(w2_c), w_iov + ARRAY_SIZE(w_iov_),
rc, errno2name());
diff --git a/tests/request_key.c b/tests/request_key.c
index 866fe76..ce9b724 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -101,7 +101,7 @@
{ bogus_desc, NULL },
{ ARG_STR("\25\26\27\30\31") },
{ ARG_STR("desc") },
- { "overly long description", _STR("overly long ") "..." },
+ { "overly long description", STRINGIFY("overly long ") "..." },
};
struct {
@@ -113,7 +113,7 @@
{ bogus_info, NULL },
{ ARG_STR("\32\33\34\35\36") },
{ ARG_STR("info") },
- { "overly long info", _STR("overly long ") "..." },
+ { "overly long info", STRINGIFY("overly long ") "..." },
};
struct {
diff --git a/tests/s390_guarded_storage.c b/tests/s390_guarded_storage.c
index 69ac166..97475bb 100644
--- a/tests/s390_guarded_storage.c
+++ b/tests/s390_guarded_storage.c
@@ -175,8 +175,8 @@
static const kernel_ulong_t bogus_addr =
(kernel_ulong_t) 0xfacefeedac0ffeedULL;
- struct gs_cb *gscb = tail_alloc(sizeof(*gscb));
- struct gs_epl *gsepl = tail_alloc(sizeof(*gsepl));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct gs_cb, gscb);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct gs_epl, gsepl);
long rc;
diff --git a/tests/s390_runtime_instr.c b/tests/s390_runtime_instr.c
index 861bbd4..5d368a1 100644
--- a/tests/s390_runtime_instr.c
+++ b/tests/s390_runtime_instr.c
@@ -44,10 +44,11 @@
kernel_ulong_t cmd;
const char * cmd_str;
} cmd_args[] = {
- { 0, "???" },
- { 4, "???" },
- { (kernel_ulong_t) 0xdeafbeefdeadc0deULL, "???" },
- { 2, "STOP", },
+ { 0, "0 /* S390_RUNTIME_INSTR_??? */" },
+ { 4, "4 /* S390_RUNTIME_INSTR_??? */" },
+ { (kernel_ulong_t) 0xdeafbeefdeadc0deULL,
+ "-559038242 /* S390_RUNTIME_INSTR_??? */" },
+ { 2, "S390_RUNTIME_INSTR_STOP" },
};
static struct {
@@ -66,10 +67,8 @@
for (i = 0; i < ARRAY_SIZE(cmd_args); i++) {
rc = syscall(__NR_s390_runtime_instr, cmd_args[i].cmd, 0xdead);
- printf("s390_runtime_instr(%d /* S390_RUNTIME_INSTR_%s */) = "
- "%s\n",
- (int) cmd_args[i].cmd, cmd_args[i].cmd_str,
- sprintrc(rc));
+ printf("s390_runtime_instr(%s) = %s\n",
+ cmd_args[i].cmd_str, sprintrc(rc));
}
for (i = 0; i < ARRAY_SIZE(start_sig_args); i++) {
@@ -77,7 +76,7 @@
rc = syscall(__NR_s390_runtime_instr, 1, start_sig_args[i].sig);
saved_errno = errno;
- printf("s390_runtime_instr(1 /* S390_RUNTIME_INSTR_START */, ");
+ printf("s390_runtime_instr(S390_RUNTIME_INSTR_START, ");
if (start_sig_args[i].sig_str)
printf("%s", start_sig_args[i].sig_str);
diff --git a/tests/s390_runtime_instr.gen.test b/tests/s390_runtime_instr.gen.test
index 9197dc3..83e8150 100755
--- a/tests/s390_runtime_instr.gen.test
+++ b/tests/s390_runtime_instr.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (s390_runtime_instr -a50 ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (s390_runtime_instr -a44 ); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff -a50
+run_strace_match_diff -a44
diff --git a/tests/s390_sthyi.c b/tests/s390_sthyi.c
index 8f6bbfb..b7066e5 100644
--- a/tests/s390_sthyi.c
+++ b/tests/s390_sthyi.c
@@ -741,7 +741,7 @@
(kernel_ulong_t) 0xfee1deadfa57beefULL;
unsigned char *buf = tail_alloc(PAGE_SIZE);
- uint64_t *ret = tail_alloc(sizeof(*ret));
+ TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, ret);
long rc;
diff --git a/tests/scno.h b/tests/scno.h
index 7a05556..1912ef2 100644
--- a/tests/scno.h
+++ b/tests/scno.h
@@ -833,6 +833,9 @@
#ifndef __NR_statx
# define __NR_statx (SYSCALL_BIT | 291)
#endif
+#ifndef __NR_io_pgetevents
+# define __NR_io_pgetevents (SYSCALL_BIT | 292)
+#endif
#ifndef __NR_open
# define __NR_open (SYSCALL_BIT | 1024)
#endif
diff --git a/tests/seccomp-filter-v.c b/tests/seccomp-filter-v.c
index 34ab3b5..38def28 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -118,7 +118,7 @@
prog->len = 3;
syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, 0, prog);
tprintf("seccomp(SECCOMP_SET_MODE_FILTER, 0, {len=%u"
- ", filter=[%s, %p]}) = -1 EFAULT (%m)\n",
+ ", filter=[%s, ... /* %p */]}) = -1 EFAULT (%m)\n",
prog->len, kill_stmt_txt, filter + ARRAY_SIZE(filter_c));
prog->len = 0;
@@ -136,7 +136,8 @@
prog->filter = big_filter;
prog->len = BPF_MAXINSNS + 1;
tprintf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=[",
- "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|0xfffffffc",
+ "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|"
+ "SECCOMP_FILTER_FLAG_SPEC_ALLOW|0xfffffff8",
prog->len);
for (i = 0; i < BPF_MAXINSNS; ++i) {
if (i)
diff --git a/tests/seccomp-filter.c b/tests/seccomp-filter.c
index 7bc7656..53f8363 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -56,12 +56,13 @@
rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -1, prog);
printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=%p})"
" = %ld %s (%m)\n",
- "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|0xfffffffc",
+ "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|"
+ "SECCOMP_FILTER_FLAG_SPEC_ALLOW|0xfffffff8",
prog->len, prog->filter, rc, errno2name());
- rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -4L, efault);
+ rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -8L, efault);
printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, %p) = %ld %s (%m)\n",
- "0xfffffffc /* SECCOMP_FILTER_FLAG_??? */",
+ "0xfffffff8 /* SECCOMP_FILTER_FLAG_??? */",
efault, rc, errno2name());
puts("+++ exited with 0 +++");
diff --git a/tests/semop.c b/tests/semop.c
index 2366d38..4b14882 100644
--- a/tests/semop.c
+++ b/tests/semop.c
@@ -64,11 +64,11 @@
sem_b2->sem_flg = 0xbeef;
rc = semop(bogus_semid, sem_b2, 2);
- printf("semop(%d, [{%hu, %hd, %s%s%#hx}, %p], %u) = %s\n",
+ 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|" : "",
- sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT),
+ (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)),
sem_b2 + 1, 2, sprintrc(rc));
if (semop(id, sem_b, 1))
@@ -91,12 +91,12 @@
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"
+ 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|" : "",
- sem_b2->sem_flg & ~(SEM_UNDO | 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));
diff --git a/tests/set_mempolicy.c b/tests/set_mempolicy.c
index f3261a0..96ad7db 100644
--- a/tests/set_mempolicy.c
+++ b/tests/set_mempolicy.c
@@ -2,6 +2,7 @@
* Check decoding of set_mempolicy syscall.
*
* Copyright (c) 2016 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -76,7 +77,7 @@
printf("%#0*lx", (int) sizeof(long) * 2 + 2,
nodemask[i]);
} else {
- printf("%p", nodemask + i);
+ printf("... /* %p */", nodemask + i);
break;
}
}
diff --git a/tests/setgroups.c b/tests/setgroups.c
index 5645c22..a2851be 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 <[email protected]>
- * Copyright (c) 2016-2017 The strace developers.
+ * Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -115,7 +115,7 @@
errstr = sprintrc(rc);
printf("%s(2, [", SYSCALL_NAME);
printuid(*g1);
- printf(", %p]) = %s\n", g1 + 1, errstr);
+ printf(", ... /* %p */]) = %s\n", g1 + 1, errstr);
g2[0] = -2;
g2[1] = -3;
@@ -133,7 +133,7 @@
printuid(g2[0]);
printf(", ");
printuid(g2[1]);
- printf(", %p]) = %s\n", g2 + 2, errstr);
+ printf(", ... /* %p */]) = %s\n", g2 + 2, errstr);
g3[0] = 0;
g3[1] = 1;
diff --git a/tests/signal_receive.c b/tests/signal_receive.c
index 01c52e8..a464b8c 100644
--- a/tests/signal_receive.c
+++ b/tests/signal_receive.c
@@ -1,43 +1,127 @@
+/*
+ * Check decoding of signal delivery.
+ *
+ * Copyright (c) 2016-2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
#include "tests.h"
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
-void sig_print(const char *signame, const int pid, const int uid)
-{
- printf("kill(%d, %s) = 0\n"
- "--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d"
- ", si_uid=%d} ---\n",
- pid, signame, signame, signame, pid, uid);
-}
+static volatile int s_sig, s_code, s_pid, s_uid;
static void
-handler(int sig)
+handler(int sig, siginfo_t *info, void *ucontext)
{
+ s_sig = info->si_signo;
+ s_code = info->si_code;
+ s_pid = info->si_pid;
+ s_uid = info->si_uid;
}
int
main(void)
{
- int sig, pid = getpid(), uid = getuid();
- const struct sigaction act = { .sa_handler = handler };
- sigset_t mask;
- sigemptyset(&mask);
+ static const char prefix[] = "KERNEL BUG";
+ int printed = 0;
- for (sig = 1; sig <= 31; sig++) {
- if (sig != SIGKILL && sig != SIGSTOP) {
- sigaction(sig, &act, NULL);
- sigaddset(&mask, sig);
+ const int pid = getpid();
+ const int uid = geteuid();
+
+ for (int sig = 1; sig <= 31; ++sig) {
+ if (sig == SIGKILL || sig == SIGSTOP)
+ continue;
+
+ sigset_t mask;
+ sigemptyset(&mask);
+ sigaddset(&mask, sig);
+ if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+ perror_msg_and_fail("sigprocmask");
+
+ static const struct sigaction act = {
+ .sa_sigaction = handler,
+ .sa_flags = SA_SIGINFO
+ };
+ if (sigaction(sig, &act, NULL))
+ perror_msg_and_fail("sigaction: %d", sig);
+
+ if (kill(pid, sig) != 0)
+ perror_msg_and_fail("kill: %d", sig);
+
+#ifdef MPERS_IS_m32
+ /*
+ * The tracee has received a compat siginfo_t but
+ * the tracer has received a native siginfo_t.
+ */
+ const int e_sig = sig;
+ const int e_pid = pid;
+ const int e_uid = uid;
+#else
+ /*
+ * If the tracee is a native process,
+ * then the tracer is also native.
+ * If the tracee is a compat process,
+ * then the tracer is also compat.
+ * Anyway, both the tracee and the tracer
+ * have received the same siginfo_t.
+ */
+ const int e_sig = s_sig;
+ 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"
+ ", si_uid=%d} ---\n",
+ signal2name(sig), signal2name(e_sig), e_pid, e_uid);
+
+ if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) {
+ /*
+ * The kernel has failed to initialize siginfo_t
+ * properly. There is nothing that could be done
+ * on the strace side to workaround the kernel bug,
+ * so just print some useful diagnostics.
+ */
+ if (!printed) {
+ printed = 1;
+ fprintf(stderr, "%s: siginfo_t\n", prefix);
+ }
+ fprintf(stderr,
+ "%s: expected: si_signo=%d, si_code=%d"
+ ", si_pid=%d, 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);
}
}
- sigprocmask(SIG_UNBLOCK, &mask, NULL);
- for (sig = 1; sig <= 31; sig++) {
- if (sig != SIGKILL && sig != SIGSTOP) {
- if (kill(pid, sig) != 0)
- perror_msg_and_fail("kill: %d", sig);
- sig_print(signal2name(sig), pid, uid);
- }
+ if (printed) {
+ fprintf(stderr, "%s: end of diagnostics\n"
+ "*** PLEASE FIX THE KERNEL ***\n", prefix);
}
puts("+++ exited with 0 +++");
diff --git a/tests/so_peercred-Xabbrev.c b/tests/so_peercred-Xabbrev.c
new file mode 100644
index 0000000..a7056a6
--- /dev/null
+++ b/tests/so_peercred-Xabbrev.c
@@ -0,0 +1 @@
+#include "so_peercred.c"
diff --git a/tests/so_peercred-Xabbrev.gen.test b/tests/so_peercred-Xabbrev.gen.test
new file mode 100755
index 0000000..64a5538
--- /dev/null
+++ b/tests/so_peercred-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xabbrev -e trace=getsockopt -Xabbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xabbrev
diff --git a/tests/so_peercred-Xraw.c b/tests/so_peercred-Xraw.c
new file mode 100644
index 0000000..e45f2df
--- /dev/null
+++ b/tests/so_peercred-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "so_peercred.c"
diff --git a/tests/so_peercred-Xraw.gen.test b/tests/so_peercred-Xraw.gen.test
new file mode 100755
index 0000000..471ae59
--- /dev/null
+++ b/tests/so_peercred-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xraw -e trace=getsockopt -Xraw -a39); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xraw -a39
diff --git a/tests/so_peercred-Xverbose.c b/tests/so_peercred-Xverbose.c
new file mode 100644
index 0000000..1bb47e9
--- /dev/null
+++ b/tests/so_peercred-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "so_peercred.c"
diff --git a/tests/so_peercred-Xverbose.gen.test b/tests/so_peercred-Xverbose.gen.test
new file mode 100755
index 0000000..2926517
--- /dev/null
+++ b/tests/so_peercred-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred-Xverbose -e trace=getsockopt -Xverbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=getsockopt -Xverbose
diff --git a/tests/so_peercred.c b/tests/so_peercred.c
index 53bf071..6eac846 100644
--- a/tests/so_peercred.c
+++ b/tests/so_peercred.c
@@ -2,6 +2,7 @@
* Check decoding of SO_PEERCRED socket option.
*
* Copyright (c) 2017 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -46,6 +47,28 @@
return rc;
}
+static const char *
+so_str(void)
+{
+ static char buf[256];
+
+ if (!buf[0]) {
+#if XLAT_RAW
+ snprintf(buf, sizeof(buf),
+ "%#x, %#x", SOL_SOCKET, SO_PEERCRED);
+#elif XLAT_VERBOSE
+ snprintf(buf, sizeof(buf),
+ "%#x /* SOL_SOCKET */, %#x /* SO_PEERCRED */",
+ SOL_SOCKET, SO_PEERCRED);
+#else
+ snprintf(buf, sizeof(buf),
+ "SOL_SOCKET, SO_PEERCRED");
+#endif
+ }
+
+ return buf;
+}
+
int
main(void)
{
@@ -59,7 +82,7 @@
/* classic getsockopt */
*len = sizeof(*peercred);
get_peercred(sv[0], peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", sv[0]);
+ printf("getsockopt(%d, %s", sv[0], so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
PRINT_FIELD_UID(", ", *peercred, gid);
@@ -72,7 +95,7 @@
/* getsockopt with optlen larger than necessary - shortened */
*len = sizeof(*peercred) + 1;
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
PRINT_FIELD_UID(", ", *peercred, gid);
@@ -82,14 +105,14 @@
/* getsockopt with optlen smaller than usual - truncated to ucred.pid */
*len = sizeof(peercred->pid);
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
printf("}, [%d]) = %s\n", *len, errstr);
/* getsockopt with optlen smaller than usual - truncated to ucred.uid */
*len = offsetof(struct ucred, gid);
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED", fd);
+ printf("getsockopt(%d, %s", fd, so_str());
PRINT_FIELD_D(", {", *peercred, pid);
PRINT_FIELD_UID(", ", *peercred, uid);
printf("}, [%d]) = %s\n", *len, errstr);
@@ -97,20 +120,20 @@
/* getsockopt with optlen larger than usual - truncated to raw */
*len = sizeof(*peercred) - 1;
get_peercred(fd, peercred, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, ", fd);
+ printf("getsockopt(%d, %s, ", fd, so_str());
print_quoted_hex(peercred, *len);
printf(", [%d]) = %s\n", *len, errstr);
/* getsockopt optval EFAULT */
*len = sizeof(*peercred);
get_peercred(fd, &peercred->uid, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, %p, [%d]) = %s\n",
- fd, &peercred->uid, *len, errstr);
+ printf("getsockopt(%d, %s, %p, [%d]) = %s\n",
+ fd, so_str(), &peercred->uid, *len, errstr);
/* getsockopt optlen EFAULT */
get_peercred(fd, peercred, len + 1);
- printf("getsockopt(%d, SOL_SOCKET, SO_PEERCRED, %p, %p) = %s\n",
- fd, peercred, len + 1, errstr);
+ printf("getsockopt(%d, %s, %p, %p) = %s\n",
+ fd, so_str(), peercred, len + 1, errstr);
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests/sock_filter-v-Xabbrev.c b/tests/sock_filter-v-Xabbrev.c
new file mode 100644
index 0000000..ac680e2
--- /dev/null
+++ b/tests/sock_filter-v-Xabbrev.c
@@ -0,0 +1 @@
+#include "sock_filter-v.c"
diff --git a/tests/sock_filter-v-Xabbrev.gen.test b/tests/sock_filter-v-Xabbrev.gen.test
new file mode 100755
index 0000000..e52763f
--- /dev/null
+++ b/tests/sock_filter-v-Xabbrev.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xabbrev -v -e trace=getsockopt,setsockopt -X abbrev); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -v -e trace=getsockopt,setsockopt -X abbrev
diff --git a/tests/sock_filter-v-Xraw.c b/tests/sock_filter-v-Xraw.c
new file mode 100644
index 0000000..e85309c
--- /dev/null
+++ b/tests/sock_filter-v-Xraw.c
@@ -0,0 +1,2 @@
+#define XLAT_RAW 1
+#include "sock_filter-v.c"
diff --git a/tests/sock_filter-v-Xraw.gen.test b/tests/sock_filter-v-Xraw.gen.test
new file mode 100755
index 0000000..3c7df81
--- /dev/null
+++ b/tests/sock_filter-v-Xraw.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xraw -a 37 -v -e trace=getsockopt,setsockopt -X raw); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a 37 -v -e trace=getsockopt,setsockopt -X raw
diff --git a/tests/sock_filter-v-Xverbose.c b/tests/sock_filter-v-Xverbose.c
new file mode 100644
index 0000000..59d76bd
--- /dev/null
+++ b/tests/sock_filter-v-Xverbose.c
@@ -0,0 +1,2 @@
+#define XLAT_VERBOSE 1
+#include "sock_filter-v.c"
diff --git a/tests/sock_filter-v-Xverbose.gen.test b/tests/sock_filter-v-Xverbose.gen.test
new file mode 100755
index 0000000..b58c5b5
--- /dev/null
+++ b/tests/sock_filter-v-Xverbose.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sock_filter-v-Xverbose -v -e trace=getsockopt,setsockopt -X verbose); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -v -e trace=getsockopt,setsockopt -X verbose
diff --git a/tests/sock_filter-v.c b/tests/sock_filter-v.c
index 16d5c1c..6829786 100644
--- a/tests/sock_filter-v.c
+++ b/tests/sock_filter-v.c
@@ -2,6 +2,7 @@
* Check decoding of socket filters.
*
* Copyright (c) 2017 Dmitry V. Levin <[email protected]>
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,16 +36,30 @@
#include <sys/socket.h>
#include <linux/filter.h>
-#define PRINT_STMT_SYM(pfx, code, k) PRINT_STMT_SYM_(pfx, #code, #k)
-#define PRINT_STMT_SYM_(pfx, code, k) \
- printf("%sBPF_STMT(%s, %s)", pfx, code, k)
-#define PRINT_STMT_VAL(pfx, code, k) PRINT_STMT_VAL_(pfx, #code, k)
-#define PRINT_STMT_VAL_(pfx, code, k) \
- printf("%sBPF_STMT(%s, %#x)", pfx, code, k)
+/* SO_GET_FILTER was introduced by Linux commit v3.8-rc1~139^2~518 */
+#ifndef SO_GET_FILTER
+# define SO_GET_FILTER SO_ATTACH_FILTER
+#endif
-#define PRINT_JUMP(pfx, code, k, jt, jf) PRINT_JUMP_(pfx, #code, k, jt, jf)
-#define PRINT_JUMP_(pfx, code, k, jt, jf) \
- printf("%sBPF_JUMP(%s, %#x, %#x, %#x)", pfx, code, k, jt, jf)
+#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__)
+
+#define PRINT_JUMP(pfx, code_fmt, k, jt, jf, ...) \
+ printf("%sBPF_JUMP(" code_fmt ", %#x, %#x, %#x)", \
+ pfx, __VA_ARGS__, k, jt, jf)
static const struct sock_filter bpf_filter[] = {
BPF_STMT(BPF_LD|BPF_B|BPF_ABS, SKF_LL_OFF+4),
@@ -62,16 +77,43 @@
static void
print_filter(void)
{
- PRINT_STMT_SYM("[", BPF_LD|BPF_B|BPF_ABS, SKF_LL_OFF+4);
- PRINT_STMT_SYM(", ", BPF_LD|BPF_B|BPF_ABS, SKF_NET_OFF+8);
- PRINT_STMT_SYM(", ", BPF_LD|BPF_B|BPF_ABS, SKF_AD_OFF+SKF_AD_PROTOCOL);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JEQ, IPPROTO_UDP, 0, 5);
- PRINT_STMT_VAL(", ", BPF_LD|BPF_W|BPF_LEN, 0);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JGE, 100, 0, 3);
- PRINT_STMT_VAL(", ", BPF_LD|BPF_B|BPF_ABS, 42);
- PRINT_JUMP(", ", BPF_JMP|BPF_K|BPF_JEQ, 'a', 0, 1);
- PRINT_STMT_VAL(", ", BPF_RET|BPF_K, -1U);
- PRINT_STMT_VAL(", ", BPF_RET|BPF_K, 0);
+ PRINT_STMT("[", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+4",
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_LL_OFF));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+8",
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_NET_OFF));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ XLAT_FMT "+" XLAT_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ XLAT_ARGS(SKF_AD_OFF), XLAT_ARGS(SKF_AD_PROTOCOL));
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ IPPROTO_UDP, 0, 5,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JEQ));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_W), XLAT_ARGS(BPF_LEN),
+ 0);
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ 100, 0, 3,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JGE));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_LD), XLAT_ARGS(BPF_B), XLAT_ARGS(BPF_ABS),
+ 42);
+ PRINT_JUMP(", ", XLAT_FMT "|" XLAT_FMT "|" XLAT_FMT,
+ 'a', 0, 1,
+ XLAT_ARGS(BPF_JMP), XLAT_ARGS(BPF_K), XLAT_ARGS(BPF_JEQ));
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_RET), XLAT_ARGS(BPF_K),
+ -1U);
+ PRINT_STMT(", ", XLAT_FMT "|" XLAT_FMT,
+ HEX_FMT,
+ XLAT_ARGS(BPF_RET), XLAT_ARGS(BPF_K),
+ 0);
putchar(']');
}
@@ -80,7 +122,7 @@
static int
get_filter(int fd, void *val, socklen_t *len)
{
- int rc = getsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, val, len);
+ int rc = getsockopt(fd, SOL_SOCKET, SO_GET_FILTER, val, len);
errstr = sprintrc(rc);
return rc;
}
@@ -114,35 +156,41 @@
*len = BPF_MAXINSNS;
rc = get_filter(fd, NULL, len);
if (rc)
- perror_msg_and_skip("getsockopt SOL_SOCKET SO_ATTACH_FILTER");
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER"
- ", NULL, [%u->0]) = 0\n", fd, BPF_MAXINSNS);
+ perror_msg_and_skip("getsockopt SOL_SOCKET SO_GET_FILTER");
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", NULL, [%u->0]) "
+ "= 0\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER),
+ BPF_MAXINSNS);
/* getsockopt NULL optlen - EFAULT */
rc = get_filter(fd, NULL, NULL);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, NULL, NULL)"
- " = %s\n", fd, errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", NULL, NULL) "
+ "= %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), errstr);
/* attach a filter */
rc = set_filter(fd, prog, sizeof(*prog));
if (rc)
perror_msg_and_skip("setsockopt SOL_SOCKET SO_ATTACH_FILTER");
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, {len=%u, filter=",
- fd, prog->len);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", {len=%u, filter=",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_FILTER),
+ prog->len);
print_filter();
printf("}, %u) = 0\n", (unsigned int) sizeof(*prog));
/* setsockopt optlen is too small - EINVAL */
rc = set_filter(fd, prog, sizeof(*prog) - 4);
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p, %u) = %s\n",
- fd, prog, (unsigned int) sizeof(*prog) - 4, errstr);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, %u) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_FILTER), prog,
+ (unsigned int) sizeof(*prog) - 4, errstr);
#ifdef SO_ATTACH_REUSEPORT_CBPF
rc = setsockopt(fd, SOL_SOCKET, SO_ATTACH_REUSEPORT_CBPF,
prog, sizeof(*prog));
errstr = sprintrc(rc);
- printf("setsockopt(%d, SOL_SOCKET, SO_ATTACH_REUSEPORT_CBPF"
- ", {len=%u, filter=", fd, prog->len);
+ printf("setsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", {len=%u, filter=",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_ATTACH_REUSEPORT_CBPF),
+ prog->len);
print_filter();
printf("}, %u) = %s\n", (unsigned int) sizeof(*prog), errstr);
#endif
@@ -150,28 +198,30 @@
/* query sock_filter program length -> ARRAY_SIZE(bpf_filter) */
*len = 0;
rc = get_filter(fd, efault, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [0->%u]) = %s\n",
- fd, efault, (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [0->%u]) "
+ "= %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), efault,
+ (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
/* getsockopt optlen is too small - EINVAL */
*len = ARRAY_SIZE(bpf_filter) - 1;
rc = get_filter(fd, efault, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [%u]) = %s\n",
- fd, efault, (unsigned int) ARRAY_SIZE(bpf_filter) - 1, errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [%u]) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER), efault,
+ (unsigned int) ARRAY_SIZE(bpf_filter) - 1, errstr);
/* getsockopt optval EFAULT */
*len = ARRAY_SIZE(bpf_filter);
rc = get_filter(fd, filter + 1, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, %p"
- ", [%u]) = %s\n", fd, filter + 1,
- (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", %p, [%u]) = %s\n",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER),
+ filter + 1, (unsigned int) ARRAY_SIZE(bpf_filter), errstr);
/* getsockopt optlen is too large - truncated */
*len = ARRAY_SIZE(bpf_filter) + 1;
rc = get_filter(fd, filter, len);
- printf("getsockopt(%d, SOL_SOCKET, SO_ATTACH_FILTER, ", fd);
+ printf("getsockopt(%d, " XLAT_FMT ", " XLAT_FMT ", ",
+ fd, XLAT_ARGS(SOL_SOCKET), XLAT_ARGS(SO_GET_FILTER));
print_filter();
printf(", [%u->%d]) = %s\n",
(unsigned int) ARRAY_SIZE(bpf_filter) + 1, *len, errstr);
diff --git a/tests/strace-V.test b/tests/strace-V.test
index eb05e86..a0274c2 100755
--- a/tests/strace-V.test
+++ b/tests/strace-V.test
@@ -38,7 +38,8 @@
exit 1
}
-option_unwind=$(getoption USE_LIBUNWIND " stack-unwind")
+option_unwind=$(getoption ENABLE_STACKTRACE \
+ " stack-trace=$(getstr USE_UNWINDER)")
option_demangle=$(getoption USE_DEMANGLE " stack-demangle")
option_m32=
diff --git a/tests/strace-k-demangle.expected b/tests/strace-k-demangle.expected
new file mode 100644
index 0000000..e42e78f
--- /dev/null
+++ b/tests/strace-k-demangle.expected
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid ns::f3\(int\) ns::f2\(int\) ns::f1\(int\) ns::f0\(int\) main
diff --git a/tests/strace-k-demangle.test b/tests/strace-k-demangle.test
index 1616449..106a700 100755
--- a/tests/strace-k-demangle.test
+++ b/tests/strace-k-demangle.test
@@ -2,6 +2,5 @@
# Check strace -k symbol names demangling.
test_prog=../stack-fcall-mangled
-expected='getpid ns::f3(int) ns::f2(int) ns::f1(int) ns::f0(int) main '
. "${srcdir=.}"/strace-k.test
diff --git a/tests/strace-k.expected b/tests/strace-k.expected
new file mode 100644
index 0000000..840d648
--- /dev/null
+++ b/tests/strace-k.expected
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
diff --git a/tests/strace-k.test b/tests/strace-k.test
index 2a21a9d..fb1e2b3 100755
--- a/tests/strace-k.test
+++ b/tests/strace-k.test
@@ -4,7 +4,7 @@
#
# Copyright (c) 2014 Masatake YAMATO <[email protected]>
# Copyright (c) 2014-2016 Dmitry V. Levin <[email protected]>
-# Copyright (c) 2014-2017 The strace developers.
+# Copyright (c) 2014-2018 The strace developers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,20 +35,41 @@
[ -f /proc/self/maps ] ||
framework_skip_ '/proc/self/maps is not available'
+check_prog grep
check_prog sed
check_prog tr
-: ${test_prog=../stack-fcall}
-: ${expected='getpid f3 f2 f1 f0 main '}
-
-run_prog "$test_prog"
+run_prog "${test_prog=../stack-fcall}"
run_strace -e getpid -k $args
-result=$(sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
- tr '\n' ' ')
+expected="$srcdir/$NAME.expected"
+sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
+ tr '\n' ' ' |sed 's/ $//' > "$OUT"
-test "$result" = "$expected" || {
- echo "expected: \"$expected\""
- echo "result: \"$result\""
+LC_ALL=C grep -E -x -f "$expected" < "$OUT" > /dev/null || {
+ cat >&2 <<__EOF__
+Failed pattern of expected output: $(cat "$expected")
+Actual output: $(cat "$OUT")
+__EOF__
+
+ pattern=
+ case "$STRACE_ARCH" in
+ aarch64|i386|ppc*|s390*|sparc*|x32|x86*)
+ # These architectures are supported by elfutils libdw,
+ # see grep '\<HOOK\>.*\<abi_cfi\>' elfutils/backends
+ ;;
+ arm) pattern='No DWARF information found'
+ # This is also supported by elfutils libdw
+ # but the latter needs debuginfo for unwinding.
+ ;;
+ *) pattern='Unwinding not supported for this architecture'
+ ;;
+ esac
+ if [ -n "$pattern" ] &&
+ LC_ALL=C grep -x " > $pattern" < "$LOG" > /dev/null; then
+ cat < "$LOG" >&2
+ skip_ "stack tracing is not fully supported on $STRACE_ARCH yet"
+ fi
+
dump_log_and_fail_with "$STRACE $args output mismatch"
}
diff --git a/tests/struct_flock.c b/tests/struct_flock.c
deleted file mode 100644
index 428c038..0000000
--- a/tests/struct_flock.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2015-2016 Dmitry V. Levin <[email protected]>
- * Copyright (c) 2015-2017 The strace developers.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include "flock.h"
-
-#define FILE_LEN 4096
-
-#define TEST_FLOCK_EINVAL(cmd) test_flock_einval(cmd, #cmd)
-
-#ifdef HAVE_TYPEOF
-# define TYPEOF_FLOCK_OFF_T typeof(((struct_kernel_flock *) NULL)->l_len)
-#else
-# define TYPEOF_FLOCK_OFF_T off_t
-#endif
-
-static long
-invoke_test_syscall(const unsigned int cmd, void *const p)
-{
- const kernel_ulong_t fd = F8ILL_KULONG_MASK;
- const kernel_ulong_t op = F8ILL_KULONG_MASK | cmd;
-
- return syscall(TEST_SYSCALL_NR, fd, op, (unsigned long) p);
-}
-
-static void
-test_flock_einval(const int cmd, const char *name)
-{
- struct_kernel_flock fl = {
- .l_type = F_RDLCK,
- .l_start = (TYPEOF_FLOCK_OFF_T) 0xdefaced1facefeedULL,
- .l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL
- };
- long rc = invoke_test_syscall(cmd, &fl);
- 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, sprintrc(rc));
-}
-
-static void
-test_flock(void)
-{
- TEST_FLOCK_EINVAL(F_SETLK);
- TEST_FLOCK_EINVAL(F_SETLKW);
-
- struct_kernel_flock fl = {
- .l_type = F_RDLCK,
- .l_len = FILE_LEN
- };
- long rc = invoke_test_syscall(F_SETLK, &fl);
- 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, sprintrc(rc));
- if (rc)
- return;
-
- invoke_test_syscall(F_GETLK, &fl);
- 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(F_SETLK, &fl);
- printf("%s(0, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
- ", l_start=0, l_len=%d}) = 0\n",
- TEST_SYSCALL_STR, FILE_LEN);
-}
-
-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))
- perror_msg_and_fail("ftruncate");
-}
diff --git a/tests/test_nlattr.h b/tests/test_nlattr.h
index 43f467f..9038c0e 100644
--- a/tests/test_nlattr.h
+++ b/tests/test_nlattr.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 The strace developers.
+ * Copyright (c) 2017-2018 The strace developers.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -51,15 +51,17 @@
}
static void
-print_nlattr(const unsigned int nla_len, const char *const nla_type)
+print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_data)
{
- printf(", {{nla_len=%u, nla_type=%s}, ", nla_len, nla_type);
+ printf(", %s{{nla_len=%u, nla_type=%s}, ",
+ add_data ? "[" : "", nla_len, nla_type);
}
-#define TEST_NLATTR_(fd_, nlh0_, hdrlen_, \
+#define TEST_NLATTR_EX_(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, nla_type_str_, \
- nla_data_len_, src_, slen_, ...) \
+ nla_data_len_, nla_total_len_, \
+ src_, slen_, ...) \
do { \
struct nlmsghdr *const nlh = \
(nlh0_) - (NLA_HDRLEN + (slen_)); \
@@ -68,7 +70,7 @@
const unsigned int nla_len = \
NLA_HDRLEN + (nla_data_len_); \
const unsigned int msg_len = \
- NLMSG_SPACE(hdrlen_) + nla_len; \
+ NLMSG_SPACE(hdrlen_) + NLA_HDRLEN + (nla_total_len_); \
\
(init_msg_)(nlh, msg_len); \
init_nlattr(TEST_NLATTR_nla, nla_len, (nla_type_), \
@@ -80,14 +82,28 @@
\
printf("sendto(%d, {", (fd_)); \
(print_msg_)(msg_len); \
- print_nlattr(nla_len, (nla_type_str_)); \
+ print_nlattr(nla_len, (nla_type_str_), \
+ (nla_total_len_) > (nla_data_len_)); \
\
{ __VA_ARGS__; } \
\
+ if ((nla_total_len_) > (nla_data_len_)) \
+ printf("]"); \
+ \
printf("}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", \
msg_len, errstr); \
} while (0)
+#define TEST_NLATTR_(fd_, nlh0_, hdrlen_, \
+ init_msg_, print_msg_, \
+ nla_type_, nla_type_str_, \
+ nla_data_len_, src_, slen_, ...) \
+ TEST_NLATTR_EX_((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ (nla_data_len_), (nla_data_len_), \
+ (src_), (slen_), __VA_ARGS__)
+
#define TEST_NLATTR(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, \
@@ -106,11 +122,12 @@
sizeof(obj_) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
/* len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
- (init_msg_), (print_msg_), \
- (nla_type_), (nla_type_str_), \
- plen, (pattern_), plen, \
- (fallback_func)((pattern_), plen)); \
+ if (plen > 0) \
+ TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ plen, (pattern_), plen, \
+ (fallback_func)((pattern_), plen)); \
/* short read of sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
@@ -170,7 +187,7 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
printf("]")); \
/* short read of sizeof(obj_) */ \
@@ -183,11 +200,11 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf(", %p]", \
+ printf(", ... /* %p */]", \
RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_))) \
- + sizeof((obj_)[0]))); \
+ + sizeof(obj_) - sizeof((obj_)[0]))); \
/* sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
@@ -198,7 +215,7 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_); ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
printf("]")); \
} while (0)
@@ -206,21 +223,23 @@
#define TEST_NESTED_NLATTR_OBJECT_EX_(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
nla_type_, nla_type_str_, \
- pattern_, obj_, depth_, ...) \
+ pattern_, obj_, fallback_func, \
+ depth_, ...) \
do { \
const unsigned int plen = \
sizeof(obj_) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
/* len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
- (hdrlen_) + NLA_HDRLEN * depth_, \
- (init_msg_), (print_msg_), \
- (nla_type_), (nla_type_str_), \
- plen, (pattern_), plen, \
- print_quoted_hex((pattern_), plen); \
- size_t i; \
- for (i = 0; i < depth_; ++i) \
- printf("}")); \
+ if (plen > 0) \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
+ (init_msg_), (print_msg_), \
+ (nla_type_), (nla_type_str_), \
+ plen, (pattern_), plen, \
+ (fallback_func)((pattern_), plen); \
+ size_t i; \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* short read of sizeof(obj_) */ \
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
(hdrlen_) + NLA_HDRLEN * depth_, \
@@ -252,7 +271,8 @@
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
- (pattern_), (obj_), (depth_), \
+ (pattern_), (obj_), \
+ print_quoted_hex, (depth_), \
__VA_ARGS__)
#define TEST_NESTED_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \
@@ -261,27 +281,30 @@
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
- (pattern_), (obj_), 1, \
+ (pattern_), (obj_), \
+ print_quoted_hex, 1, \
__VA_ARGS__)
-#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
+#define TEST_NESTED_NLATTR_ARRAY_EX(fd_, nlh0_, hdrlen_, \
init_msg_, print_msg_, \
- nla_type_, pattern_, obj_, print_elem_)\
+ nla_type_, pattern_, obj_, depth_, \
+ print_elem_) \
do { \
const unsigned int plen = \
sizeof((obj_)[0]) - 1 > DEFAULT_STRLEN \
? DEFAULT_STRLEN : (int) sizeof((obj_)[0]) - 1; \
/* len < sizeof((obj_)[0]) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
plen, (pattern_), plen, \
print_quoted_hex((pattern_), plen); \
- printf("}")); \
+ for (size_t i = 0; i < depth_; ++i) \
+ printf("}")); \
/* sizeof((obj_)[0]) < len < sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_) - 1, \
@@ -290,12 +313,14 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf("]}")); \
+ printf("]"); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* short read of sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_), \
@@ -304,14 +329,16 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf(", %p]}", \
+ printf(", ... /* %p */]", \
RTA_DATA(TEST_NLATTR_nla) \
- + sizeof((obj_)[0]))); \
+ + sizeof(obj_) - sizeof((obj_)[0])); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
/* sizeof(obj_) */ \
- TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
- (hdrlen_) + NLA_HDRLEN, \
+ TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
+ (hdrlen_) + NLA_HDRLEN * depth_, \
(init_msg_), (print_msg_), \
(nla_type_), #nla_type_, \
sizeof(obj_), \
@@ -320,7 +347,17 @@
size_t i; \
for (i = 0; i < ARRAY_SIZE(obj_); ++i) { \
if (i) printf(", "); \
- (print_elem_)(&(obj_)[i]); \
+ (print_elem_)(&(obj_)[i], i); \
} \
- printf("]}")); \
+ printf("]"); \
+ for (i = 0; i < depth_; ++i) \
+ printf("}")); \
} while (0)
+
+#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
+ init_msg_, print_msg_, \
+ nla_type_, pattern_, obj_, print_elem_)\
+ TEST_NESTED_NLATTR_ARRAY_EX((fd_), (nlh0_), (hdrlen_), \
+ (init_msg_), (print_msg_), \
+ nla_type_, (pattern_), (obj_), 1, \
+ (print_elem_))
diff --git a/tests/tests.h b/tests/tests.h
index 3bf454d..248e341 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -62,6 +62,14 @@
# define VERBOSE 0
#endif
+/* xlat verbosity defaults */
+#ifndef XLAT_RAW
+# define XLAT_RAW 0
+#endif
+#ifndef XLAT_VERBOSE
+# define XLAT_VERBOSE 0
+#endif
+
#ifndef DEFAULT_STRLEN
/* Default maximum # of bytes printed in printstr et al. */
# define DEFAULT_STRLEN 32
@@ -109,6 +117,9 @@
void *tail_memdup(const void *, const size_t)
ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE((2));
+#define midtail_alloc(after_, before_) \
+ ((void *) ((char *) tail_alloc(((before_) + (after_))) + (before_)))
+
/*
* Allocate an object of the specified type at the end
* of a mapped memory region.
@@ -163,6 +174,12 @@
*/
void print_quoted_cstring(const char *str, size_t size);
+/*
+ * Print a NUL-terminated string `str' of length up to `size'
+ * in a quoted form.
+ */
+void print_quoted_stringn(const char *str, size_t size);
+
/* Print memory in a quoted form with optional escape characters. */
void print_quoted_memory_ex(const void *, size_t, bool quote,
const char *escape_chars);
@@ -277,7 +294,6 @@
#endif
#define LL_VAL_TO_PAIR(llval) LL_PAIR((long) ((llval) >> 32), (long) (llval))
-#define _STR(_arg) #_arg
#define ARG_STR(_arg) (_arg), #_arg
#define ARG_ULL_STR(_arg) _arg##ULL, #_arg
diff --git a/tests/trace_personality_32.gen.test b/tests/trace_personality_32.gen.test
new file mode 100755
index 0000000..a5f5c7d
--- /dev/null
+++ b/tests/trace_personality_32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_32 +qualify_personality.sh 32 'getcwd' 'fsync-y'); do not edit.
+set -- 32 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests/trace_personality_32.in b/tests/trace_personality_32.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests/trace_personality_32.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests/trace_personality_64.gen.test b/tests/trace_personality_64.gen.test
new file mode 100755
index 0000000..5b961ef
--- /dev/null
+++ b/tests/trace_personality_64.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_64 +qualify_personality.sh 64 'getcwd' 'fsync-y'); do not edit.
+set -- 64 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests/trace_personality_64.in b/tests/trace_personality_64.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests/trace_personality_64.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests/trace_personality_regex_32.gen.test b/tests/trace_personality_regex_32.gen.test
new file mode 100755
index 0000000..f2800d2
--- /dev/null
+++ b/tests/trace_personality_regex_32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_32 +qualify_personality.sh 32 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- 32 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests/trace_personality_regex_32.in b/tests/trace_personality_regex_32.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests/trace_personality_regex_32.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests/trace_personality_regex_64.gen.test b/tests/trace_personality_regex_64.gen.test
new file mode 100755
index 0000000..4b19f1b
--- /dev/null
+++ b/tests/trace_personality_regex_64.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_64 +qualify_personality.sh 64 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- 64 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests/trace_personality_regex_64.in b/tests/trace_personality_regex_64.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests/trace_personality_regex_64.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests/trace_personality_regex_x32.gen.test b/tests/trace_personality_regex_x32.gen.test
new file mode 100755
index 0000000..7f41671
--- /dev/null
+++ b/tests/trace_personality_regex_x32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_regex_x32 +qualify_personality.sh x32 '/clock.*' 'times|fcntl.*'); do not edit.
+set -- x32 '/clock.*' 'times|fcntl.*'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests/trace_personality_regex_x32.in b/tests/trace_personality_regex_x32.in
new file mode 100755
index 0000000..864de29
--- /dev/null
+++ b/tests/trace_personality_regex_x32.in
@@ -0,0 +1,3 @@
+clock_adjtime -a37
+clock_nanosleep
+clock_xettime -a36
diff --git a/tests/trace_personality_x32.gen.test b/tests/trace_personality_x32.gen.test
new file mode 100755
index 0000000..724499a
--- /dev/null
+++ b/tests/trace_personality_x32.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_personality_x32 +qualify_personality.sh x32 'getcwd' 'fsync-y'); do not edit.
+set -- x32 'getcwd' 'fsync-y'
+. "${srcdir=.}/qualify_personality.sh"
diff --git a/tests/trace_personality_x32.in b/tests/trace_personality_x32.in
new file mode 100644
index 0000000..9da47c1
--- /dev/null
+++ b/tests/trace_personality_x32.in
@@ -0,0 +1 @@
+getcwd -a18
diff --git a/tests/xet_thread_area_x86.c b/tests/xet_thread_area_x86.c
index 36591ec..d5be69f 100644
--- a/tests/xet_thread_area_x86.c
+++ b/tests/xet_thread_area_x86.c
@@ -152,9 +152,9 @@
int main(void)
{
- struct user_desc *ta1 = tail_alloc(sizeof(*ta1));
- struct user_desc *ta2 = tail_alloc(sizeof(*ta2));
- unsigned *bogus_entry_number = tail_alloc(sizeof(*bogus_entry_number));
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, ta1);
+ TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, ta2);
+ TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, bogus_entry_number);
long set_rc = -1;
diff --git a/time.c b/time.c
index 038c32f..1f44dca 100644
--- a/time.c
+++ b/time.c
@@ -116,7 +116,8 @@
SYS_FUNC(getitimer)
{
if (entering(tcp)) {
- printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
+ printxval_index(itimer_which, (unsigned int) tcp->u_arg[0],
+ "ITIMER_???");
tprints(", ");
} else {
print_itimerval(tcp, tcp->u_arg[1]);
@@ -128,7 +129,8 @@
SYS_FUNC(osf_getitimer)
{
if (entering(tcp)) {
- printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
+ printxval_index(itimer_which, (unsigned int) tcp->u_arg[0],
+ "ITIMER_???");
tprints(", ");
} else {
print_itimerval32(tcp, tcp->u_arg[1]);
@@ -140,7 +142,8 @@
SYS_FUNC(setitimer)
{
if (entering(tcp)) {
- printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
+ printxval_index(itimer_which, (unsigned int) tcp->u_arg[0],
+ "ITIMER_???");
tprints(", ");
print_itimerval(tcp, tcp->u_arg[1]);
tprints(", ");
@@ -154,7 +157,8 @@
SYS_FUNC(osf_setitimer)
{
if (entering(tcp)) {
- printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
+ printxval_index(itimer_which, (unsigned int) tcp->u_arg[0],
+ "ITIMER_???");
tprints(", ");
print_itimerval32(tcp, tcp->u_arg[1]);
tprints(", ");
@@ -172,7 +176,8 @@
{
if (print_timex(tcp, addr))
return 0;
- tcp->auxstr = xlookup(adjtimex_state, (kernel_ulong_t) tcp->u_rval);
+ tcp->auxstr = xlat_idx(adjtimex_state, ARRAY_SIZE(adjtimex_state) - 1,
+ (kernel_ulong_t) tcp->u_rval);
return RVAL_STR;
}
@@ -196,16 +201,19 @@
if ((clockid & CLOCKFD_MASK) == CLOCKFD)
tprintf("FD_TO_CLOCKID(%d)", CLOCKID_TO_FD(clockid));
else {
- if (CPUCLOCK_PERTHREAD(clockid))
- tprintf("MAKE_THREAD_CPUCLOCK(%d,", CPUCLOCK_PID(clockid));
- else
- tprintf("MAKE_PROCESS_CPUCLOCK(%d,", CPUCLOCK_PID(clockid));
- printxval(cpuclocknames, clockid & CLOCKFD_MASK, "CPUCLOCK_???");
+ tprintf("%s(%d,",
+ CPUCLOCK_PERTHREAD(clockid) ?
+ "MAKE_THREAD_CPUCLOCK" :
+ "MAKE_PROCESS_CPUCLOCK",
+ CPUCLOCK_PID(clockid));
+ printxval_index(cpuclocknames,
+ (unsigned int) clockid & CLOCKFD_MASK,
+ "CPUCLOCK_???");
tprints(")");
}
} else
#endif
- printxval(clocknames, clockid, "CLOCK_???");
+ printxval_index(clocknames, clockid, "CLOCK_???");
}
SYS_FUNC(clock_settime)
diff --git a/uid.c b/uid.c
index d8b169a..c56bf17 100644
--- a/uid.c
+++ b/uid.c
@@ -180,7 +180,7 @@
uid_t gid;
print_array(tcp, addr, len, &gid, sizeof(gid),
- umoven_or_printaddr, print_gid, 0);
+ tfetch_mem, print_gid, 0);
}
SYS_FUNC(setgroups)
diff --git a/unwind-libdw.c b/unwind-libdw.c
new file mode 100644
index 0000000..6039146
--- /dev/null
+++ b/unwind-libdw.c
@@ -0,0 +1,211 @@
+/*
+ * This file is based on a patch submitted by Mark Wielaard <[email protected]>
+ * to ltrace project:
+ * https://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=dfefa9f057857735a073ea655f5cb34351032c8e
+ *
+ * It was re-licensed for strace by the original author:
+ * https://lists.strace.io/pipermail/strace-devel/2018-March/008063.html
+ *
+ * Copyright (c) 2014-2018 Mark Wielaard <[email protected]>
+ * Copyright (c) 2018 Masatake YAMATO <[email protected]>
+ * Copyright (c) 2018 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+#include "unwind.h"
+#include "mmap_notify.h"
+#include <elfutils/libdwfl.h>
+
+struct ctx {
+ Dwfl *dwfl;
+ unsigned int last_proc_updating;
+};
+
+static unsigned int mapping_generation;
+
+static void
+update_mapping_generation(struct tcb *tcp, void *unused)
+{
+ mapping_generation++;
+}
+
+static void
+init(void)
+{
+ mmap_notify_register_client(update_mapping_generation, NULL);
+}
+
+static void *
+tcb_init(struct tcb *tcp)
+{
+ static const Dwfl_Callbacks proc_callbacks = {
+ .find_elf = dwfl_linux_proc_find_elf,
+ .find_debuginfo = dwfl_standard_find_debuginfo
+ };
+
+ Dwfl *dwfl = dwfl_begin(&proc_callbacks);
+ if (dwfl == NULL) {
+ error_msg("dwfl_begin: %s", dwfl_errmsg(-1));
+ return NULL;
+ }
+
+ int r = dwfl_linux_proc_attach(dwfl, tcp->pid, true);
+ if (r) {
+ const char *msg = NULL;
+
+ if (r < 0)
+ msg = dwfl_errmsg(-1);
+ else if (r > 0)
+ msg = strerror(r);
+
+ error_msg("dwfl_linux_proc_attach returned an error"
+ " for process %d: %s", tcp->pid, msg);
+ dwfl_end(dwfl);
+ return NULL;
+ }
+
+ struct ctx *ctx = xmalloc(sizeof(*ctx));
+ ctx->dwfl = dwfl;
+ ctx->last_proc_updating = 0;
+ return ctx;
+}
+
+static void
+tcb_fin(struct tcb *tcp)
+{
+ struct ctx *ctx = tcp->unwind_ctx;
+ if (ctx) {
+ dwfl_end(ctx->dwfl);
+ free(ctx);
+ }
+}
+
+static void
+flush_cache_maybe(struct tcb *tcp)
+{
+ struct ctx *ctx = tcp->unwind_ctx;
+ if (!ctx)
+ return;
+
+ if (ctx->last_proc_updating == mapping_generation)
+ return;
+
+ int r = dwfl_linux_proc_report(ctx->dwfl, tcp->pid);
+
+ if (r < 0)
+ error_msg("dwfl_linux_proc_report returned an error"
+ " for pid %d: %s", tcp->pid, dwfl_errmsg(-1));
+ else if (r > 0)
+ error_msg("dwfl_linux_proc_report returned an error"
+ " for pid %d", tcp->pid);
+ else if (dwfl_report_end(ctx->dwfl, NULL, NULL) != 0)
+ error_msg("dwfl_report_end returned an error"
+ " for pid %d: %s", tcp->pid, dwfl_errmsg(-1));
+
+ ctx->last_proc_updating = mapping_generation;
+}
+
+struct frame_user_data {
+ unwind_call_action_fn call_action;
+ unwind_error_action_fn error_action;
+ void *data;
+ int stack_depth;
+};
+
+static int
+frame_callback(Dwfl_Frame *state, void *arg)
+{
+ struct frame_user_data *user_data = arg;
+ Dwarf_Addr pc;
+ bool isactivation;
+
+ if (!dwfl_frame_pc(state, &pc, &isactivation)) {
+ /* Propagate the error to the caller. */
+ return -1;
+ }
+
+ 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);
+ }
+ /* Max number of frames to print reached? */
+ if (user_data->stack_depth-- == 0)
+ return DWARF_CB_ABORT;
+
+ return DWARF_CB_OK;
+}
+
+static void
+tcb_walk(struct tcb *tcp,
+ unwind_call_action_fn call_action,
+ unwind_error_action_fn error_action,
+ void *data)
+{
+ struct ctx *ctx = tcp->unwind_ctx;
+ if (!ctx)
+ return;
+
+ struct frame_user_data user_data = {
+ .call_action = call_action,
+ .error_action = error_action,
+ .data = data,
+ .stack_depth = 256,
+ };
+
+ flush_cache_maybe(tcp);
+
+ int r = dwfl_getthread_frames(ctx->dwfl, tcp->pid, frame_callback,
+ &user_data);
+ if (r)
+ error_action(data,
+ r < 0 ? dwfl_errmsg(-1) : "too many stack frames",
+ 0);
+}
+
+const struct unwind_unwinder_t unwinder = {
+ .name = "libdw",
+ .init = init,
+ .tcb_init = tcb_init,
+ .tcb_fin = tcb_fin,
+ .tcb_walk = tcb_walk,
+};
diff --git a/unwind-libunwind.c b/unwind-libunwind.c
index 38b3e2c..692f766 100644
--- a/unwind-libunwind.c
+++ b/unwind-libunwind.c
@@ -36,6 +36,8 @@
static void
init(void)
{
+ mmap_cache_enable();
+
libunwind_as = unw_create_addr_space(&_UPT_accessors, 0);
if (!libunwind_as)
error_msg_and_die("failed to create address space"
@@ -87,26 +89,25 @@
size_t *symbol_name_size)
{
unw_word_t ip;
- struct mmap_cache_t *cur_mmap_cache;
if (unw_get_reg(cursor, UNW_REG_IP, &ip) < 0) {
perror_msg("cannot walk the stack of process %d", tcp->pid);
return -1;
}
- cur_mmap_cache = mmap_cache_search(tcp, ip);
- if (cur_mmap_cache
+ struct mmap_cache_entry_t *entry = mmap_cache_search(tcp, ip);
+
+ if (entry
/* ignore mappings that have no PROT_EXEC bit set */
- && (cur_mmap_cache->protections & MMAP_CACHE_PROT_EXECUTABLE)) {
- unsigned long true_offset;
+ && (entry->protections & MMAP_CACHE_PROT_EXECUTABLE)) {
unw_word_t function_offset;
get_symbol_name(cursor, symbol_name, symbol_name_size,
&function_offset);
- true_offset = ip - cur_mmap_cache->start_addr +
- cur_mmap_cache->mmap_offset;
+ unsigned long true_offset =
+ ip - entry->start_addr + entry->mmap_offset;
call_action(data,
- cur_mmap_cache->binary_filename,
+ entry->binary_filename,
*symbol_name,
function_offset,
true_offset);
@@ -125,10 +126,10 @@
}
static void
-tcb_walk(struct tcb *tcp,
- unwind_call_action_fn call_action,
- unwind_error_action_fn error_action,
- void *data)
+walk(struct tcb *tcp,
+ unwind_call_action_fn call_action,
+ unwind_error_action_fn error_action,
+ void *data)
{
char *symbol_name;
size_t symbol_name_size = 40;
@@ -137,8 +138,6 @@
if (!tcp->mmap_cache)
error_func_msg_and_die("mmap_cache is NULL");
- if (tcp->mmap_cache_size == 0)
- error_func_msg_and_die("mmap_cache is empty");
symbol_name = xmalloc(symbol_name_size);
@@ -159,9 +158,27 @@
}
static void
-tcb_flush_cache(struct tcb *tcp)
+tcb_walk(struct tcb *tcp,
+ unwind_call_action_fn call_action,
+ unwind_error_action_fn error_action,
+ void *data)
{
- unw_flush_cache(libunwind_as, 0, 0);
+ switch (mmap_cache_rebuild_if_invalid(tcp, __func__)) {
+ case MMAP_CACHE_REBUILD_RENEWED:
+ /*
+ * Rebuild the unwinder internal cache.
+ * Called when mmap cache subsystem detects a
+ * change of tracee memory mapping.
+ */
+ unw_flush_cache(libunwind_as, 0, 0);
+ ATTRIBUTE_FALLTHROUGH;
+ case MMAP_CACHE_REBUILD_READY:
+ walk(tcp, call_action, error_action, data);
+ break;
+ default:
+ /* Do nothing */
+ ;
+ }
}
const struct unwind_unwinder_t unwinder = {
@@ -170,5 +187,4 @@
.tcb_init = tcb_init,
.tcb_fin = tcb_fin,
.tcb_walk = tcb_walk,
- .tcb_flush_cache = tcb_flush_cache,
};
diff --git a/unwind.c b/unwind.c
index 41d0740..e4c6623 100644
--- a/unwind.c
+++ b/unwind.c
@@ -26,7 +26,6 @@
*/
#include "defs.h"
-#include "mmap_cache.h"
#include "unwind.h"
#ifdef USE_DEMANGLE
@@ -59,7 +58,6 @@
{
if (unwinder.init)
unwinder.init();
- mmap_cache_enable();
}
void
@@ -78,6 +76,9 @@
void
unwind_tcb_fin(struct tcb *tcp)
{
+ if (!tcp->unwind_queue)
+ return;
+
queue_print(tcp->unwind_queue);
free(tcp->unwind_queue);
tcp->unwind_queue = NULL;
@@ -293,19 +294,8 @@
debug_func_msg("head: tcp=%p, queue=%p",
tcp, tcp->unwind_queue->head);
queue_print(tcp->unwind_queue);
- } else switch (mmap_cache_rebuild_if_invalid(tcp, __func__)) {
- case MMAP_CACHE_REBUILD_RENEWED:
- unwinder.tcb_flush_cache(tcp);
- ATTRIBUTE_FALLTHROUGH;
- case MMAP_CACHE_REBUILD_READY:
- debug_func_msg("walk: tcp=%p, queue=%p",
- tcp, tcp->unwind_queue->head);
- unwinder.tcb_walk(tcp, print_call_cb, print_error_cb, NULL);
- break;
- default:
- /* Do nothing */
- ;
- }
+ } else
+ unwinder.tcb_walk(tcp, print_call_cb, print_error_cb, NULL);
}
/*
@@ -322,19 +312,10 @@
#endif
if (tcp->unwind_queue->head)
error_msg_and_die("bug: unprinted entries in queue");
-
- switch (mmap_cache_rebuild_if_invalid(tcp, __func__)) {
- case MMAP_CACHE_REBUILD_RENEWED:
- unwinder.tcb_flush_cache(tcp);
- ATTRIBUTE_FALLTHROUGH;
- case MMAP_CACHE_REBUILD_READY:
- unwinder.tcb_walk(tcp, queue_put_call, queue_put_error,
- tcp->unwind_queue);
- debug_func_msg("tcp=%p, queue=%p",
+ else {
+ debug_func_msg("walk: tcp=%p, queue=%p",
tcp, tcp->unwind_queue->head);
- break;
- default:
- /* Do nothing */
- ;
+ unwinder.tcb_walk(tcp, queue_put_call, queue_put_error,
+ tcp->unwind_queue);
}
}
diff --git a/unwind.h b/unwind.h
index 3a6065b..678c561 100644
--- a/unwind.h
+++ b/unwind.h
@@ -63,12 +63,6 @@
unwind_call_action_fn,
unwind_error_action_fn,
void *);
-
- /*
- * Rebuild the unwinder internal cache. Called when mmap cache
- * subsystem detects a change of tracee memory mapping.
- */
- void (*tcb_flush_cache)(struct tcb *);
};
extern const struct unwind_unwinder_t unwinder;
diff --git a/util.c b/util.c
index ce51662..035f57b 100644
--- a/util.c
+++ b/util.c
@@ -44,6 +44,7 @@
#include <sys/uio.h>
#include "largefile_wrappers.h"
+#include "xlat.h"
#include "xstring.h"
int
@@ -236,12 +237,6 @@
tprintf("%#" PRIx64, addr);
}
-void
-printaddr(const kernel_ulong_t addr)
-{
- printaddr64(addr);
-}
-
#define DEF_PRINTNUM(name, type) \
bool \
printnum_ ## name(struct tcb *const tcp, const kernel_ulong_t addr, \
@@ -693,7 +688,8 @@
alloc_size = 4 * size;
if (alloc_size / 4 != size) {
- error_msg("Out of memory");
+ error_func_msg("requested %u bytes exceeds %u bytes limit",
+ size, -1U / 4);
tprints("???");
return -1;
}
@@ -706,7 +702,8 @@
} else {
outstr = buf = malloc(alloc_size);
if (!buf) {
- error_msg("Out of memory");
+ error_func_msg("memory exhausted when tried to allocate"
+ " %u bytes", alloc_size);
tprints("???");
return -1;
}
@@ -870,25 +867,30 @@
} iovu;
#define iov iovu.iov64
#define sizeof_iov \
- (current_wordsize == 4 ? sizeof(*iovu.iov32) : sizeof(*iovu.iov64))
+ (current_wordsize == 4 ? (unsigned int) sizeof(*iovu.iov32) \
+ : (unsigned int) sizeof(*iovu.iov64))
#define iov_iov_base(i) \
(current_wordsize == 4 ? (uint64_t) iovu.iov32[i].base : iovu.iov64[i].base)
#define iov_iov_len(i) \
(current_wordsize == 4 ? (uint64_t) iovu.iov32[i].len : iovu.iov64[i].len)
#else
struct iovec *iov;
-#define sizeof_iov sizeof(*iov)
+#define sizeof_iov ((unsigned int) sizeof(*iov))
#define iov_iov_base(i) ptr_to_kulong(iov[i].iov_base)
#define iov_iov_len(i) iov[i].iov_len
#endif
int i;
- unsigned size;
+ unsigned int size = sizeof_iov * len;
+ if (size / sizeof_iov != (unsigned int) len) {
+ error_func_msg("requested %u iovec elements exceeds"
+ " %u iovec limit", len, -1U / sizeof_iov);
+ return;
+ }
- size = sizeof_iov * len;
- /* Assuming no sane program has millions of iovs */
- if ((unsigned)len > 1024*1024 /* insane or negative size? */
- || (iov = malloc(size)) == NULL) {
- error_msg("Out of memory");
+ iov = malloc(size);
+ if (!iov) {
+ error_func_msg("memory exhausted when tried to allocate"
+ " %u bytes", size);
return;
}
if (umoven(tcp, addr, size, iov) >= 0) {
@@ -928,6 +930,9 @@
const unsigned char *src;
int i;
+ if ((len < 0) || (len > INT_MAX - 16))
+ return;
+
memset(outbuf, ' ', sizeof(outbuf));
if (strsize < len + 16) {
@@ -935,7 +940,8 @@
str = malloc(len + 16);
if (!str) {
strsize = -1;
- error_msg("Out of memory");
+ error_func_msg("memory exhausted when tried to allocate"
+ " %zu bytes", (size_t) (len + 16));
return;
}
strsize = len + 16;
@@ -983,29 +989,70 @@
}
}
-int
-umoven_or_printaddr(struct tcb *const tcp, const kernel_ulong_t addr,
- const unsigned int len, void *const our_addr)
+bool
+tfetch_mem64(struct tcb *const tcp, const uint64_t addr,
+ const unsigned int len, void *const our_addr)
{
- if (!addr || !verbose(tcp) || (exiting(tcp) && syserror(tcp)) ||
- umoven(tcp, addr, len, our_addr) < 0) {
- printaddr(addr);
- return -1;
- }
- return 0;
+ return addr && verbose(tcp) &&
+ (entering(tcp) || !syserror(tcp)) &&
+ !umoven(tcp, addr, len, our_addr);
+}
+
+bool
+tfetch_mem64_ignore_syserror(struct tcb *const tcp, const uint64_t addr,
+ const unsigned int len, void *const our_addr)
+{
+ return addr && verbose(tcp) &&
+ !umoven(tcp, addr, len, our_addr);
}
int
-umoven_or_printaddr_ignore_syserror(struct tcb *const tcp,
- const kernel_ulong_t addr,
- const unsigned int len,
- void *const our_addr)
+umoven_or_printaddr64(struct tcb *const tcp, const uint64_t addr,
+ const unsigned int len, void *const our_addr)
{
- if (!addr || !verbose(tcp) || umoven(tcp, addr, len, our_addr) < 0) {
- printaddr(addr);
- return -1;
- }
- return 0;
+ if (tfetch_mem64(tcp, addr, len, our_addr))
+ return 0;
+ printaddr64(addr);
+ return -1;
+}
+
+int
+umoven_or_printaddr64_ignore_syserror(struct tcb *const tcp,
+ const uint64_t addr,
+ const unsigned int len,
+ void *const our_addr)
+{
+ if (tfetch_mem64_ignore_syserror(tcp, addr, len, our_addr))
+ return 0;
+ printaddr64(addr);
+ return -1;
+}
+
+bool
+print_int32_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size,
+ void *data)
+{
+ tprintf("%" PRId32, *(int32_t *) elem_buf);
+
+ return true;
+}
+
+bool
+print_uint32_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size,
+ void *data)
+{
+ tprintf("%" PRIu32, *(uint32_t *) elem_buf);
+
+ return true;
+}
+
+bool
+print_uint64_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size,
+ void *data)
+{
+ tprintf("%" PRIu64, *(uint64_t *) elem_buf);
+
+ return true;
}
/*
@@ -1014,8 +1061,8 @@
*
* Array elements are being fetched to the address specified by elem_buf.
*
- * The fetcher callback function specified by umoven_func should follow
- * the same semantics as umoven_or_printaddr function.
+ * The fetcher callback function specified by tfetch_mem_func should follow
+ * the same semantics as tfetch_mem function.
*
* The printer callback function specified by print_func is expected
* to print something; if it returns false, no more iterations will be made.
@@ -1027,9 +1074,7 @@
* - "NULL", if start_addr is NULL;
* - "[]", if nmemb is 0;
* - start_addr, if nmemb * elem_size overflows or wraps around;
- * - nothing, if the first element cannot be fetched
- * (if umoven_func returns non-zero), but it is assumed that
- * umoven_func has printed the address it failed to fetch data from;
+ * - start_addr, if the first tfetch_mem_func invocation returned false;
* - elements of the array, delimited by ", ", with the array itself
* enclosed with [] brackets.
*
@@ -1038,25 +1083,22 @@
* - "..." is printed instead of max_strlen+1 element
* and no more iterations will be made.
*
- * This function returns true only if
- * - umoven_func has been called at least once AND
- * - umoven_func has not returned false.
+ * This function returns true only if tfetch_mem_func has returned true
+ * at least once.
*/
bool
-print_array(struct tcb *const tcp,
- const kernel_ulong_t start_addr,
- const size_t nmemb,
- void *const elem_buf,
- const size_t elem_size,
- int (*const umoven_func)(struct tcb *,
- kernel_ulong_t,
- unsigned int,
- void *),
- bool (*const print_func)(struct tcb *,
- void *elem_buf,
- size_t elem_size,
- void *opaque_data),
- void *const opaque_data)
+print_array_ex(struct tcb *const tcp,
+ const kernel_ulong_t start_addr,
+ const size_t nmemb,
+ void *const 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) {
tprints("NULL");
@@ -1080,13 +1122,22 @@
(abbrev(tcp) && max_strlen < nmemb) ?
start_addr + elem_size * max_strlen : end_addr;
kernel_ulong_t cur;
+ kernel_ulong_t idx = 0;
+ enum xlat_style xlat_style = flags & XLAT_STYLE_MASK;
- for (cur = start_addr; cur < end_addr; cur += elem_size) {
+ for (cur = start_addr; cur < end_addr; cur += elem_size, idx++) {
if (cur != start_addr)
tprints(", ");
- if (umoven_func(tcp, cur, elem_size, elem_buf))
+ if (!tfetch_mem_func(tcp, cur, elem_size, elem_buf)) {
+ if (cur == start_addr)
+ printaddr(cur);
+ else {
+ tprints("...");
+ printaddr_comment(cur);
+ }
break;
+ }
if (cur == start_addr)
tprints("[");
@@ -1097,6 +1148,25 @@
break;
}
+ if (flags & PAF_PRINT_INDICES) {
+ tprints("[");
+
+ 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);
+ }
+
+ tprints("] = ");
+ }
+
if (!print_func(tcp, elem_buf, elem_size, opaque_data)) {
cur = end_addr;
break;
diff --git a/v4l2.c b/v4l2.c
index 7081c81..da1eb55 100644
--- a/v4l2.c
+++ b/v4l2.c
@@ -64,17 +64,6 @@
#include "print_fields.h"
#include "xstring.h"
-/* some historical constants */
-#ifndef V4L2_CID_HCENTER
-#define V4L2_CID_HCENTER (V4L2_CID_BASE+22)
-#endif
-#ifndef V4L2_CID_VCENTER
-#define V4L2_CID_VCENTER (V4L2_CID_BASE+23)
-#endif
-#ifndef V4L2_CID_BAND_STOP_FILTER
-#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
-#endif
-
/* 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))
@@ -281,7 +270,7 @@
tprintf(", chromakey=%#x, clips=", f->fmt.win.chromakey);
ret = print_array(tcp, ptr_to_kulong(f->fmt.win.clips),
f->fmt.win.clipcount, &clip, sizeof(clip),
- umoven_or_printaddr, print_v4l2_clip, 0);
+ 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
@@ -624,6 +613,12 @@
return RVAL_IOCTL_DECODED;
}
+/*
+ * We include it here and not before print_v4l2_ext_controls as we need
+ * V4L2_CTRL_CLASS_* definitions for V4L2_CID_*_BASE ones.
+ */
+#include "xlat/v4l2_control_classes.h"
+#include "xlat/v4l2_control_id_bases.h"
#include "xlat/v4l2_control_ids.h"
static int
@@ -729,7 +724,8 @@
const unsigned long next = c.id & V4L2_CTRL_FLAG_NEXT_CTRL;
set_tcb_priv_ulong(tcp, next);
if (next) {
- tprints("V4L2_CTRL_FLAG_NEXT_CTRL|");
+ print_xlat(V4L2_CTRL_FLAG_NEXT_CTRL);
+ tprints("|");
c.id &= ~V4L2_CTRL_FLAG_NEXT_CTRL;
}
#endif
@@ -824,8 +820,6 @@
return true;
}
-#include "xlat/v4l2_control_classes.h"
-
static int
print_v4l2_ext_controls(struct tcb *const tcp, const kernel_ulong_t arg,
const bool is_get)
@@ -859,7 +853,7 @@
struct_v4l2_ext_control ctrl;
bool fail = !print_array(tcp, ptr_to_kulong(c.controls), c.count,
&ctrl, sizeof(ctrl),
- umoven_or_printaddr_ignore_syserror,
+ tfetch_mem_ignore_syserror,
print_v4l2_ext_control, 0);
if (exiting(tcp) && syserror(tcp))
diff --git a/xlat.c b/xlat.c
index be58f72..4614cef 100644
--- a/xlat.c
+++ b/xlat.c
@@ -33,12 +33,54 @@
#include "xstring.h"
#include <stdarg.h>
+static inline enum xlat_style
+get_xlat_style(enum xlat_style style)
+{
+ if (xlat_verbose(style) == XLAT_STYLE_DEFAULT)
+ return style | xlat_verbosity;
+
+ return style;
+}
+
+static inline const char *
+sprint_xlat_val(uint64_t val, enum xlat_style style)
+{
+ static char buf[sizeof(val) * 3];
+
+ switch (xlat_format(style)) {
+ case XLAT_STYLE_FMT_D:
+ xsprintf(buf, "%" PRId64, val);
+ break;
+
+ case XLAT_STYLE_FMT_U:
+ xsprintf(buf, "%" PRIu64, val);
+ break;
+
+ case XLAT_STYLE_FMT_X:
+ xsprintf(buf, "%#" PRIx64, val);
+ break;
+ }
+
+ return buf;
+}
+
+static inline void
+print_xlat_val(uint64_t val, enum xlat_style style)
+{
+ tprints(sprint_xlat_val(val, style));
+}
+
const char *
xlookup(const struct xlat *xlat, const uint64_t val)
{
- for (; xlat->str != NULL; xlat++)
- if (xlat->val == val)
- return xlat->str;
+ static const struct xlat *pos;
+
+ if (xlat)
+ pos = xlat;
+
+ for (; pos->str != NULL; pos++)
+ if (pos->val == val)
+ return pos->str;
return NULL;
}
@@ -53,59 +95,109 @@
const char *
xlat_search(const struct xlat *xlat, const size_t nmemb, const uint64_t val)
{
+ static const struct xlat *pos;
+ static size_t memb_left;
+
+ if (xlat) {
+ pos = xlat;
+ memb_left = nmemb;
+ }
+
const struct xlat *e =
bsearch((const void *) &val,
- xlat, nmemb, sizeof(*xlat), xlat_bsearch_compare);
+ pos, memb_left, sizeof(*pos), xlat_bsearch_compare);
- return e ? e->str : NULL;
+ if (e) {
+ memb_left -= e - pos;
+ return e->str;
+ } else {
+ return NULL;
+ }
}
/**
* Print entry in struct xlat table, if there.
*
- * @param val Value to search a literal representation for.
- * @param dflt String (abbreviated in comment syntax) which should be emitted
- * if no appropriate xlat value has been found.
- * @param xlat (And the following arguments) Pointers to arrays of xlat values.
- * The last argument should be NULL.
- * @return 1 if appropriate xlat value has been found, 0 otherwise.
+ * @param val Value to search a 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 xlat (And the following arguments) Pointers to arrays of xlat values.
+ * The last argument should be NULL.
+ * @return 1 if appropriate xlat value has been found, 0 otherwise.
*/
int
-printxvals(const uint64_t val, const char *dflt, const struct xlat *xlat, ...)
+printxvals_ex(const uint64_t val, const char *dflt, enum xlat_style style,
+ const struct xlat *xlat, ...)
{
+ static const struct xlat *last;
+
+ style = get_xlat_style(style);
+
+ if (xlat_verbose(style) == XLAT_STYLE_RAW) {
+ print_xlat_val(val, style);
+ return 0;
+ }
+
+ const char *str = NULL;
va_list args;
va_start(args, xlat);
+
+ if (!xlat)
+ xlat = last;
+
for (; xlat; xlat = va_arg(args, const struct xlat *)) {
- const char *str = xlookup(xlat, val);
+ last = xlat;
+
+ str = xlookup(xlat, val);
if (str) {
- tprints(str);
- va_end(args);
- return 1;
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) {
+ print_xlat_val(val, style);
+ tprints_comment(str);
+ } else {
+ tprints(str);
+ }
+
+ goto printxvals_ex_end;
}
}
+
/* No hits -- print raw # instead. */
- tprintf("%#" PRIx64, val);
+ print_xlat_val(val, style);
tprints_comment(dflt);
+printxvals_ex_end:
va_end(args);
- return 0;
+ return !!str;
}
int
-sprintxval(char *const buf, const size_t size, const struct xlat *const x,
- const unsigned int val, const char *const dflt)
+sprintxval_ex(char *const buf, const size_t size, const struct xlat *const x,
+ const unsigned int val, const char *const dflt,
+ enum xlat_style style)
{
+ style = get_xlat_style(style);
+
+ if (xlat_verbose(style) == XLAT_STYLE_RAW)
+ return xsnprintf(buf, size, "%s", sprint_xlat_val(val, style));
+
const char *const str = xlookup(x, val);
- if (str)
- return xsnprintf(buf, size, "%s", str);
+ if (str) {
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE)
+ return xsnprintf(buf, size, "%s /* %s */",
+ sprint_xlat_val(val, style), str);
+ else
+ return xsnprintf(buf, size, "%s", str);
+ }
if (dflt)
- return xsnprintf(buf, size, "%#x /* %s */", val, dflt);
+ return xsnprintf(buf, size, "%s /* %s */",
+ sprint_xlat_val(val, style), dflt);
- return xsnprintf(buf, size, "%#x", val);
+ return xsnprintf(buf, size, "%s", sprint_xlat_val(val, style));
}
/**
@@ -119,82 +211,227 @@
* @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.
*/
-int
-printxval_searchn(const struct xlat *xlat, size_t xlat_size, uint64_t val,
- const char *dflt)
+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))
{
- const char *s = xlat_search(xlat, xlat_size, val);
+ 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) {
- tprints(s);
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) {
+ print_xlat_val(val, style);
+ tprints_comment(s);
+ } else {
+ tprints(s);
+ }
return 1;
}
- tprintf("%#" PRIx64, val);
+ 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) {
+ 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'
* Return static string. If 0 is provided as flags, and there is no flag that
* has the value of 0 (it should be the first in xlat table), return NULL.
+ *
+ * Expected output:
+ * +------------+------------+---------+------------+
+ * | flags != 0 | xlat found | style | output |
+ * +------------+------------+---------+------------+
+ * | false | (any) | raw | <none> |
+ * | true | (any) | raw | VAL |
+ * +------------+------------+---------+------------+
+ * | false | false | abbrev | <none> |
+ * | true | false | abbrev | VAL |
+ * | (any) | true | abbrev | XLAT |
+ * +------------+------------+---------+------------+
+ * | false | false | verbose | <none> |
+ * | true | false | verbose | VAL |
+ * | (any) | true | verbose | VAL (XLAT) |
+ * +------------+------------+---------+------------+
*/
const char *
-sprintflags(const char *prefix, const struct xlat *xlat, uint64_t flags)
+sprintflags_ex(const char *prefix, const struct xlat *xlat, uint64_t flags,
+ enum xlat_style style)
{
static char outstr[1024];
char *outptr;
int found = 0;
outptr = stpcpy(outstr, prefix);
+ style = get_xlat_style(style);
- if (flags == 0 && xlat->val == 0 && xlat->str) {
- strcpy(outptr, xlat->str);
+ if (xlat_verbose(style) == XLAT_STYLE_RAW) {
+ if (!flags)
+ return NULL;
+
+ outptr = xappendstr(outstr, outptr, "%s",
+ sprint_xlat_val(flags, style));
+
return outstr;
}
- for (; xlat->str; xlat++) {
+ if (flags == 0 && xlat->val == 0 && xlat->str) {
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) {
+ outptr = xappendstr(outstr, outptr, "0 /* %s */",
+ xlat->str);
+ } else {
+ strcpy(outptr, xlat->str);
+ }
+
+ return outstr;
+ }
+
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE && flags)
+ 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)
+ outptr = stpcpy(outptr, " /* ");
+
outptr = stpcpy(outptr, xlat->str);
found = 1;
flags &= ~xlat->val;
- if (!flags)
- break;
}
}
if (flags) {
if (found)
*outptr++ = '|';
- outptr = xappendstr(outstr, outptr, "%#" PRIx64, flags);
+ if (found || xlat_verbose(style) != XLAT_STYLE_VERBOSE)
+ outptr = xappendstr(outstr, outptr, "%s",
+ sprint_xlat_val(flags, style));
} else {
if (!found)
return NULL;
}
+ if (found && xlat_verbose(style) == XLAT_STYLE_VERBOSE)
+ outptr = stpcpy(outptr, " */");
+
return outstr;
}
+/**
+ * Print flags from multiple xlat tables.
+ *
+ * Expected output:
+ * +------------+--------------+------------+---------+------------+
+ * | flags != 0 | dflt != NULL | xlat found | style | output |
+ * +------------+--------------+------------+---------+------------+
+ * | false | false | (any) | raw | <none> |
+ * | false | true | (any) | raw | VAL |
+ * | true | (any) | (any) | raw | VAL |
+ * +------------+--------------+------------+---------+------------+
+ * | false | false | false | abbrev | <none> |
+ * | false | true | false | abbrev | VAL |
+ * | true | false | false | abbrev | VAL |
+ * | true | true | false | abbrev | VAL (DFLT) |
+ * | (any) | (any) | true | abbrev | XLAT |
+ * +------------+--------------+------------+---------+------------+
+ * | false | false | false | verbose | <none> |
+ * | false | true | false | verbose | VAL |
+ * | true | false | false | verbose | VAL |
+ * | true | true | false | verbose | VAL (DFLT) |
+ * | (any) | (any) | true | verbose | VAL (XLAT) |
+ * +------------+--------------+------------+---------+------------+
+ */
int
-printflags_ex(uint64_t flags, const char *dflt, const struct xlat *xlat, ...)
+printflags_ex(uint64_t flags, const char *dflt, enum xlat_style style,
+ const struct xlat *xlat, ...)
{
+ style = get_xlat_style(style);
+
+ if (xlat_verbose(style) == XLAT_STYLE_RAW) {
+ if (flags || dflt) {
+ print_xlat_val(flags, style);
+ return 1;
+ }
+
+ return 0;
+ }
+
+ const char *init_sep = "";
unsigned int n = 0;
va_list args;
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) {
+ init_sep = " /* ";
+ if (flags)
+ print_xlat_val(flags, 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)) {
- tprintf("%s%s", (n++ ? "|" : ""), xlat->str);
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE
+ && !flags)
+ tprints("0");
+ tprintf("%s%s",
+ (n++ ? "|" : init_sep), xlat->str);
flags &= ~xlat->val;
}
if (!flags)
@@ -205,12 +442,17 @@
if (n) {
if (flags) {
- tprintf("|%#" PRIx64, flags);
+ tprints("|");
+ print_xlat_val(flags, style);
n++;
}
+
+ if (xlat_verbose(style) == XLAT_STYLE_VERBOSE)
+ tprints(" */");
} else {
if (flags) {
- tprintf("%#" PRIx64, flags);
+ if (xlat_verbose(style) != XLAT_STYLE_VERBOSE)
+ print_xlat_val(flags, style);
tprints_comment(dflt);
} else {
if (dflt)
@@ -220,3 +462,50 @@
return n;
}
+
+void
+print_xlat_ex(const uint64_t val, const char *str, enum xlat_style style)
+{
+ style = get_xlat_style(style);
+
+ switch (xlat_verbose(style)) {
+ case XLAT_STYLE_ABBREV:
+ if (str) {
+ tprints(str);
+ break;
+ }
+ ATTRIBUTE_FALLTHROUGH;
+
+ case XLAT_STYLE_RAW:
+ print_xlat_val(val, style);
+ break;
+
+ default:
+ error_func_msg("Unexpected style value of %#x", style);
+ ATTRIBUTE_FALLTHROUGH;
+
+ case XLAT_STYLE_VERBOSE:
+ print_xlat_val(val, 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 aaa7aab..e86df79 100644
--- a/xlat.h
+++ b/xlat.h
@@ -3,6 +3,44 @@
# include <stdint.h>
+enum xlat_type {
+ XT_NORMAL,
+ XT_SORTED,
+ XT_INDEXED,
+};
+
+enum xlat_style {
+ /**
+ * Special value that is used for passing to *print{xval,flags}*_ex
+ * routines that indicates that no overriding of user-supplied xlat
+ * verbosity/formatting configuration is intended.
+ */
+ XLAT_STYLE_DEFAULT = 0,
+
+ /** Print xlat value as is without xlat processing */
+ XLAT_STYLE_RAW = 1 << 0,
+ /**
+ * Historic strace style, process xlat and print the result (xlat
+ * constant name/combination of flags), raw number only if nothing is
+ * found.
+ */
+ XLAT_STYLE_ABBREV = 1 << 1,
+ /** Always print both raw number and xlat processing result. */
+ XLAT_STYLE_VERBOSE = XLAT_STYLE_RAW | XLAT_STYLE_ABBREV,
+
+#define XLAT_STYLE_FORMAT_SHIFT 2
+#define XLAT_STYLE_VERBOSITY_MASK ((1 << XLAT_STYLE_FORMAT_SHIFT) - 1)
+
+ XLAT_STYLE_FMT_X = 0 << XLAT_STYLE_FORMAT_SHIFT,
+ XLAT_STYLE_FMT_U = 1 << XLAT_STYLE_FORMAT_SHIFT,
+ XLAT_STYLE_FMT_D = 2 << XLAT_STYLE_FORMAT_SHIFT,
+
+#define XLAT_STYLE_FORMAT_MASK (3 << XLAT_STYLE_FORMAT_SHIFT)
+
+#define XLAT_STYLE_SPEC_BITS (XLAT_STYLE_FORMAT_SHIFT + 2)
+#define XLAT_STYLE_MASK ((1 << XLAT_STYLE_SPEC_BITS) - 1)
+};
+
struct xlat {
uint64_t val;
const char *str;
diff --git a/xlat/Makemodule.am b/xlat/Makemodule.am
index 378c047..cd7d3ac 100644
--- a/xlat/Makemodule.am
+++ b/xlat/Makemodule.am
@@ -1,5 +1,5 @@
-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/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/baud_options.in xlat/blkpg_ops.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_rval.in xlat/bpf_size.in xlat/bpf_src.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_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/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/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/evdev_sync.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/fcntl64cmds.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/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in xlat/getrandom_flags.in xlat/getsockipoptions.in xlat/getsockipv6options.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/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/ipccalls.in xlat/itimer_which.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_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/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_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/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/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_sw_ids.in xlat/perf_type_id.in xlat/personality_flags.in xlat/personality_types.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_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/quota_formats.in xlat/quotacmds.in xlat/quotatypes.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_brport_attrs.in xlat/rtnl_ifla_events.in xlat/rtnl_ifla_info_attrs.in xlat/rtnl_ifla_port_attrs.in xlat/rtnl_ifla_vf_port_attrs.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/setsockipoptions.in xlat/setsockipv6options.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/smc_diag_attrs.in xlat/smc_diag_extended_flags.in xlat/smc_link_group_roles.in xlat/smc_states.in xlat/sock_type_flags.in xlat/socketcalls.in xlat/socketlayers.in xlat/sockipoptions.in xlat/sockipv6options.in xlat/sockipxoptions.in xlat/socknetlinkoptions.in xlat/sockoptions.in xlat/sockpacketoptions.in xlat/sockrawoptions.in xlat/socksctpoptions.in xlat/socktcpoptions.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/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/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_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/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/baud_options.h xlat/blkpg_ops.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_rval.h xlat/bpf_size.h xlat/bpf_src.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_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/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/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/evdev_sync.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/fcntl64cmds.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/futexops.h xlat/futexwakecmps.h xlat/futexwakeops.h xlat/getrandom_flags.h xlat/getsockipoptions.h xlat/getsockipv6options.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/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/ipccalls.h xlat/itimer_which.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_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/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_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/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/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_sw_ids.h xlat/perf_type_id.h xlat/personality_flags.h xlat/personality_types.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_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/quota_formats.h xlat/quotacmds.h xlat/quotatypes.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_brport_attrs.h xlat/rtnl_ifla_events.h xlat/rtnl_ifla_info_attrs.h xlat/rtnl_ifla_port_attrs.h xlat/rtnl_ifla_vf_port_attrs.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/setsockipoptions.h xlat/setsockipv6options.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/smc_diag_attrs.h xlat/smc_diag_extended_flags.h xlat/smc_link_group_roles.h xlat/smc_states.h xlat/sock_type_flags.h xlat/socketcalls.h xlat/socketlayers.h xlat/sockipoptions.h xlat/sockipv6options.h xlat/sockipxoptions.h xlat/socknetlinkoptions.h xlat/sockoptions.h xlat/sockpacketoptions.h xlat/sockrawoptions.h xlat/socksctpoptions.h xlat/socktcpoptions.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/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/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_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
+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/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/baud_options.in xlat/bdaddr_types.in xlat/blkpg_ops.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/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/evdev_sync.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/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_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/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/quota_formats.in xlat/quotacmds.in xlat/quotatypes.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_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_diag_attrs.in xlat/smc_diag_extended_flags.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_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_tcp_options.in xlat/sock_tipc_options.in xlat/sock_tls_options.in xlat/sock_type_flags.in xlat/sock_udp_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/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/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/baud_options.h xlat/bdaddr_types.h xlat/blkpg_ops.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/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/evdev_sync.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/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_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/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/quota_formats.h xlat/quotacmds.h xlat/quotatypes.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_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_diag_attrs.h xlat/smc_diag_extended_flags.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_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_tcp_options.h xlat/sock_tipc_options.h xlat/sock_tls_options.h xlat/sock_type_flags.h xlat/sock_udp_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/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
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/addrfams.h: $(top_srcdir)/xlat/addrfams.in $(top_srcdir)/xlat/gen.sh
@@ -28,8 +28,14 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/baud_options.h: $(top_srcdir)/xlat/baud_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bdaddr_types.h: $(top_srcdir)/xlat/bdaddr_types.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/blkpg_ops.h: $(top_srcdir)/xlat/blkpg_ops.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bluetooth_l2_cid.h: $(top_srcdir)/xlat/bluetooth_l2_cid.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bluetooth_l2_psm.h: $(top_srcdir)/xlat/bluetooth_l2_psm.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bootflags1.h: $(top_srcdir)/xlat/bootflags1.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bootflags2.h: $(top_srcdir)/xlat/bootflags2.in $(top_srcdir)/xlat/gen.sh
@@ -64,6 +70,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_prog_types.h: $(top_srcdir)/xlat/bpf_prog_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_query_flags.h: $(top_srcdir)/xlat/bpf_query_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_rval.h: $(top_srcdir)/xlat/bpf_rval.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/bpf_size.h: $(top_srcdir)/xlat/bpf_size.in $(top_srcdir)/xlat/gen.sh
@@ -88,6 +96,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_compress_types.h: $(top_srcdir)/xlat/btrfs_compress_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_cont_reading_from_srcdev_mode.h: $(top_srcdir)/xlat/btrfs_cont_reading_from_srcdev_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_defrag_flags.h: $(top_srcdir)/xlat/btrfs_defrag_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/btrfs_dev_replace_cmds.h: $(top_srcdir)/xlat/btrfs_dev_replace_cmds.in $(top_srcdir)/xlat/gen.sh
@@ -130,6 +140,10 @@
$(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
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/can_protocols.h: $(top_srcdir)/xlat/can_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/cap.h: $(top_srcdir)/xlat/cap.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/cap_mask0.h: $(top_srcdir)/xlat/cap_mask0.in $(top_srcdir)/xlat/gen.sh
@@ -156,6 +170,18 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/dm_flags.h: $(top_srcdir)/xlat/dm_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_class.h: $(top_srcdir)/xlat/ebpf_class.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_mode.h: $(top_srcdir)/xlat/ebpf_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_op_alu.h: $(top_srcdir)/xlat/ebpf_op_alu.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_op_jmp.h: $(top_srcdir)/xlat/ebpf_op_jmp.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_regs.h: $(top_srcdir)/xlat/ebpf_regs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ebpf_size.h: $(top_srcdir)/xlat/ebpf_size.in $(top_srcdir)/xlat/gen.sh
+ $(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/epollctls.h: $(top_srcdir)/xlat/epollctls.in $(top_srcdir)/xlat/gen.sh
@@ -208,8 +234,6 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fan_mark_flags.h: $(top_srcdir)/xlat/fan_mark_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/fcntl64cmds.h: $(top_srcdir)/xlat/fcntl64cmds.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fcntlcmds.h: $(top_srcdir)/xlat/fcntlcmds.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/fdflags.h: $(top_srcdir)/xlat/fdflags.in $(top_srcdir)/xlat/gen.sh
@@ -234,9 +258,11 @@
$(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/getsockipoptions.h: $(top_srcdir)/xlat/getsockipoptions.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/getsock_ip_options.h: $(top_srcdir)/xlat/getsock_ip_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/getsockipv6options.h: $(top_srcdir)/xlat/getsockipv6options.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/getsock_ipv6_options.h: $(top_srcdir)/xlat/getsock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/getsock_options.h: $(top_srcdir)/xlat/getsock_options.in $(top_srcdir)/xlat/gen.sh
$(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 $< $@
@@ -256,6 +282,14 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/iffflags.h: $(top_srcdir)/xlat/iffflags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/in6_addr_gen_mode.h: $(top_srcdir)/xlat/in6_addr_gen_mode.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet6_devconf_indices.h: $(top_srcdir)/xlat/inet6_devconf_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet6_if_flags.h: $(top_srcdir)/xlat/inet6_if_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_devconf_indices.h: $(top_srcdir)/xlat/inet_devconf_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/inet_diag_attrs.h: $(top_srcdir)/xlat/inet_diag_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/inet_diag_bytecodes.h: $(top_srcdir)/xlat/inet_diag_bytecodes.in $(top_srcdir)/xlat/gen.sh
@@ -282,10 +316,18 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ipc_msg_flags.h: $(top_srcdir)/xlat/ipc_msg_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ipc_private.h: $(top_srcdir)/xlat/ipc_private.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ipccalls.h: $(top_srcdir)/xlat/ipccalls.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/irda_protocols.h: $(top_srcdir)/xlat/irda_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/isdn_protocols.h: $(top_srcdir)/xlat/isdn_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/itimer_which.h: $(top_srcdir)/xlat/itimer_which.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/kcm_protocols.h: $(top_srcdir)/xlat/kcm_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/kcmp_types.h: $(top_srcdir)/xlat/kcmp_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/kexec_arch_values.h: $(top_srcdir)/xlat/kexec_arch_values.in $(top_srcdir)/xlat/gen.sh
@@ -394,6 +436,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_protocols.h: $(top_srcdir)/xlat/netlink_protocols.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_sk_meminfo_indices.h: $(top_srcdir)/xlat/netlink_sk_meminfo_indices.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_socket_flags.h: $(top_srcdir)/xlat/netlink_socket_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/netlink_states.h: $(top_srcdir)/xlat/netlink_states.in $(top_srcdir)/xlat/gen.sh
@@ -422,6 +466,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nf_ulog_msg_types.h: $(top_srcdir)/xlat/nf_ulog_msg_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nfc_protocols.h: $(top_srcdir)/xlat/nfc_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nl_audit_types.h: $(top_srcdir)/xlat/nl_audit_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nl_crypto_types.h: $(top_srcdir)/xlat/nl_crypto_types.in $(top_srcdir)/xlat/gen.sh
@@ -444,6 +490,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/nt_descriptor_types.h: $(top_srcdir)/xlat/nt_descriptor_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/numa_node.h: $(top_srcdir)/xlat/numa_node.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/open_access_modes.h: $(top_srcdir)/xlat/open_access_modes.in $(top_srcdir)/xlat/gen.sh
$(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
@@ -474,6 +522,10 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_hw_id.h: $(top_srcdir)/xlat/perf_hw_id.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_ioctl_cmds.h: $(top_srcdir)/xlat/perf_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_ioctl_flags.h: $(top_srcdir)/xlat/perf_ioctl_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_sw_ids.h: $(top_srcdir)/xlat/perf_sw_ids.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/perf_type_id.h: $(top_srcdir)/xlat/perf_type_id.in $(top_srcdir)/xlat/gen.sh
@@ -482,6 +534,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/personality_types.h: $(top_srcdir)/xlat/personality_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/phonet_protocols.h: $(top_srcdir)/xlat/phonet_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(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
@@ -500,6 +554,12 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_set_mm.h: $(top_srcdir)/xlat/pr_set_mm.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_cmds.h: $(top_srcdir)/xlat/pr_spec_cmds.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_get_store_bypass_flags.h: $(top_srcdir)/xlat/pr_spec_get_store_bypass_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_spec_set_store_bypass_flags.h: $(top_srcdir)/xlat/pr_spec_set_store_bypass_flags.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_sve_vl_flags.h: $(top_srcdir)/xlat/pr_sve_vl_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/pr_tsc.h: $(top_srcdir)/xlat/pr_tsc.in $(top_srcdir)/xlat/gen.sh
@@ -552,12 +612,20 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_dcb_attrs.h: $(top_srcdir)/xlat/rtnl_dcb_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_af_spec_inet6_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_af_spec_inet6_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_af_spec_inet_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_af_spec_inet_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_brport_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_brport_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_events.h: $(top_srcdir)/xlat/rtnl_ifla_events.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_info_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_info_data_bridge_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_data_bridge_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rtnl_ifla_info_data_tun_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_info_data_tun_attrs.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_port_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_port_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/rtnl_ifla_vf_port_attrs.h: $(top_srcdir)/xlat/rtnl_ifla_vf_port_attrs.in $(top_srcdir)/xlat/gen.sh
@@ -636,9 +704,11 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/setns_types.h: $(top_srcdir)/xlat/setns_types.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/setsockipoptions.h: $(top_srcdir)/xlat/setsockipoptions.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/setsock_ip_options.h: $(top_srcdir)/xlat/setsock_ip_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/setsockipv6options.h: $(top_srcdir)/xlat/setsockipv6options.in $(top_srcdir)/xlat/gen.sh
+$(top_srcdir)/xlat/setsock_ipv6_options.h: $(top_srcdir)/xlat/setsock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/setsock_options.h: $(top_srcdir)/xlat/setsock_options.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sfd_flags.h: $(top_srcdir)/xlat/sfd_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
@@ -690,38 +760,78 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/skf_ad.h: $(top_srcdir)/xlat/skf_ad.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/skf_off.h: $(top_srcdir)/xlat/skf_off.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_diag_attrs.h: $(top_srcdir)/xlat/smc_diag_attrs.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_diag_extended_flags.h: $(top_srcdir)/xlat/smc_diag_extended_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_link_group_roles.h: $(top_srcdir)/xlat/smc_link_group_roles.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_protocols.h: $(top_srcdir)/xlat/smc_protocols.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/smc_states.h: $(top_srcdir)/xlat/smc_states.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/snmp_icmp6_stats.h: $(top_srcdir)/xlat/snmp_icmp6_stats.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/snmp_ip_stats.h: $(top_srcdir)/xlat/snmp_ip_stats.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_alg_options.h: $(top_srcdir)/xlat/sock_alg_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_bluetooth_options.h: $(top_srcdir)/xlat/sock_bluetooth_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_caif_options.h: $(top_srcdir)/xlat/sock_caif_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_dccp_options.h: $(top_srcdir)/xlat/sock_dccp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ip_options.h: $(top_srcdir)/xlat/sock_ip_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ipv6_options.h: $(top_srcdir)/xlat/sock_ipv6_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_ipx_options.h: $(top_srcdir)/xlat/sock_ipx_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_irda_options.h: $(top_srcdir)/xlat/sock_irda_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_iucv_options.h: $(top_srcdir)/xlat/sock_iucv_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_kcm_options.h: $(top_srcdir)/xlat/sock_kcm_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_llc_options.h: $(top_srcdir)/xlat/sock_llc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_netlink_options.h: $(top_srcdir)/xlat/sock_netlink_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_nfcllcp_options.h: $(top_srcdir)/xlat/sock_nfcllcp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_options.h: $(top_srcdir)/xlat/sock_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_packet_options.h: $(top_srcdir)/xlat/sock_packet_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_pnp_options.h: $(top_srcdir)/xlat/sock_pnp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_pppol2tp_options.h: $(top_srcdir)/xlat/sock_pppol2tp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_raw_options.h: $(top_srcdir)/xlat/sock_raw_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_rds_options.h: $(top_srcdir)/xlat/sock_rds_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_rxrpc_options.h: $(top_srcdir)/xlat/sock_rxrpc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_sctp_options.h: $(top_srcdir)/xlat/sock_sctp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tcp_options.h: $(top_srcdir)/xlat/sock_tcp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tipc_options.h: $(top_srcdir)/xlat/sock_tipc_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_tls_options.h: $(top_srcdir)/xlat/sock_tls_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sock_type_flags.h: $(top_srcdir)/xlat/sock_type_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_udp_options.h: $(top_srcdir)/xlat/sock_udp_options.in $(top_srcdir)/xlat/gen.sh
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socketcalls.h: $(top_srcdir)/xlat/socketcalls.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socketlayers.h: $(top_srcdir)/xlat/socketlayers.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipoptions.h: $(top_srcdir)/xlat/sockipoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipv6options.h: $(top_srcdir)/xlat/sockipv6options.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockipxoptions.h: $(top_srcdir)/xlat/sockipxoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socknetlinkoptions.h: $(top_srcdir)/xlat/socknetlinkoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockoptions.h: $(top_srcdir)/xlat/sockoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockpacketoptions.h: $(top_srcdir)/xlat/sockpacketoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/sockrawoptions.h: $(top_srcdir)/xlat/sockrawoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socksctpoptions.h: $(top_srcdir)/xlat/socksctpoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/socktcpoptions.h: $(top_srcdir)/xlat/socktcpoptions.in $(top_srcdir)/xlat/gen.sh
- $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/socktypes.h: $(top_srcdir)/xlat/socktypes.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/sparc_kern_features.h: $(top_srcdir)/xlat/sparc_kern_features.in $(top_srcdir)/xlat/gen.sh
@@ -776,6 +886,8 @@
$(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
+ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ubi_volume_props.h: $(top_srcdir)/xlat/ubi_volume_props.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/ubi_volume_types.h: $(top_srcdir)/xlat/ubi_volume_types.in $(top_srcdir)/xlat/gen.sh
@@ -816,6 +928,8 @@
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
$(top_srcdir)/xlat/v4l2_control_flags.h: $(top_srcdir)/xlat/v4l2_control_flags.in $(top_srcdir)/xlat/gen.sh
$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_control_id_bases.h: $(top_srcdir)/xlat/v4l2_control_id_bases.in $(top_srcdir)/xlat/gen.sh
+ $(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_types.h: $(top_srcdir)/xlat/v4l2_control_types.in $(top_srcdir)/xlat/gen.sh
diff --git a/xlat/access_flags.h b/xlat/access_flags.h
index a30f082..e12a08c 100644
--- a/xlat/access_flags.h
+++ b/xlat/access_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/access_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat access_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat access_flags in mpers mode
+
+# else
static
const struct xlat access_flags[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/addrfams.h b/xlat/addrfams.h
index 5dc4118..9593936 100644
--- a/xlat/addrfams.h
+++ b/xlat/addrfams.h
@@ -1,185 +1,369 @@
/* Generated by ./xlat/gen.sh from ./xlat/addrfams.in; do not edit. */
-#if !(defined(AF_UNSPEC) || (defined(HAVE_DECL_AF_UNSPEC) && HAVE_DECL_AF_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(AF_UNSPEC) || (defined(HAVE_DECL_AF_UNSPEC) && HAVE_DECL_AF_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_UNSPEC) == (0), "AF_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_UNSPEC 0
#endif
-#if !(defined(AF_UNIX) || (defined(HAVE_DECL_AF_UNIX) && HAVE_DECL_AF_UNIX))
+#if defined(AF_UNIX) || (defined(HAVE_DECL_AF_UNIX) && HAVE_DECL_AF_UNIX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_UNIX) == (1), "AF_UNIX != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_UNIX 1
#endif
-#if !(defined(AF_INET) || (defined(HAVE_DECL_AF_INET) && HAVE_DECL_AF_INET))
+#if defined(AF_INET) || (defined(HAVE_DECL_AF_INET) && HAVE_DECL_AF_INET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_INET) == (2), "AF_INET != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_INET 2
#endif
-#if !(defined(AF_AX25) || (defined(HAVE_DECL_AF_AX25) && HAVE_DECL_AF_AX25))
+#if defined(AF_AX25) || (defined(HAVE_DECL_AF_AX25) && HAVE_DECL_AF_AX25)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_AX25) == (3), "AF_AX25 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_AX25 3
#endif
-#if !(defined(AF_IPX) || (defined(HAVE_DECL_AF_IPX) && HAVE_DECL_AF_IPX))
+#if defined(AF_IPX) || (defined(HAVE_DECL_AF_IPX) && HAVE_DECL_AF_IPX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_IPX) == (4), "AF_IPX != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_IPX 4
#endif
-#if !(defined(AF_APPLETALK) || (defined(HAVE_DECL_AF_APPLETALK) && HAVE_DECL_AF_APPLETALK))
+#if defined(AF_APPLETALK) || (defined(HAVE_DECL_AF_APPLETALK) && HAVE_DECL_AF_APPLETALK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_APPLETALK) == (5), "AF_APPLETALK != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_APPLETALK 5
#endif
-#if !(defined(AF_NETROM) || (defined(HAVE_DECL_AF_NETROM) && HAVE_DECL_AF_NETROM))
+#if defined(AF_NETROM) || (defined(HAVE_DECL_AF_NETROM) && HAVE_DECL_AF_NETROM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_NETROM) == (6), "AF_NETROM != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_NETROM 6
#endif
-#if !(defined(AF_BRIDGE) || (defined(HAVE_DECL_AF_BRIDGE) && HAVE_DECL_AF_BRIDGE))
+#if defined(AF_BRIDGE) || (defined(HAVE_DECL_AF_BRIDGE) && HAVE_DECL_AF_BRIDGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_BRIDGE) == (7), "AF_BRIDGE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_BRIDGE 7
#endif
-#if !(defined(AF_ATMPVC) || (defined(HAVE_DECL_AF_ATMPVC) && HAVE_DECL_AF_ATMPVC))
+#if defined(AF_ATMPVC) || (defined(HAVE_DECL_AF_ATMPVC) && HAVE_DECL_AF_ATMPVC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_ATMPVC) == (8), "AF_ATMPVC != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_ATMPVC 8
#endif
-#if !(defined(AF_X25) || (defined(HAVE_DECL_AF_X25) && HAVE_DECL_AF_X25))
+#if defined(AF_X25) || (defined(HAVE_DECL_AF_X25) && HAVE_DECL_AF_X25)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_X25) == (9), "AF_X25 != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_X25 9
#endif
-#if !(defined(AF_INET6) || (defined(HAVE_DECL_AF_INET6) && HAVE_DECL_AF_INET6))
+#if defined(AF_INET6) || (defined(HAVE_DECL_AF_INET6) && HAVE_DECL_AF_INET6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_INET6) == (10), "AF_INET6 != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_INET6 10
#endif
-#if !(defined(AF_ROSE) || (defined(HAVE_DECL_AF_ROSE) && HAVE_DECL_AF_ROSE))
+#if defined(AF_ROSE) || (defined(HAVE_DECL_AF_ROSE) && HAVE_DECL_AF_ROSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_ROSE) == (11), "AF_ROSE != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_ROSE 11
#endif
-#if !(defined(AF_DECnet) || (defined(HAVE_DECL_AF_DECnet) && HAVE_DECL_AF_DECnet))
+#if defined(AF_DECnet) || (defined(HAVE_DECL_AF_DECnet) && HAVE_DECL_AF_DECnet)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_DECnet) == (12), "AF_DECnet != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_DECnet 12
#endif
-#if !(defined(AF_NETBEUI) || (defined(HAVE_DECL_AF_NETBEUI) && HAVE_DECL_AF_NETBEUI))
+#if defined(AF_NETBEUI) || (defined(HAVE_DECL_AF_NETBEUI) && HAVE_DECL_AF_NETBEUI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_NETBEUI) == (13), "AF_NETBEUI != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_NETBEUI 13
#endif
-#if !(defined(AF_SECURITY) || (defined(HAVE_DECL_AF_SECURITY) && HAVE_DECL_AF_SECURITY))
+#if defined(AF_SECURITY) || (defined(HAVE_DECL_AF_SECURITY) && HAVE_DECL_AF_SECURITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_SECURITY) == (14), "AF_SECURITY != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_SECURITY 14
#endif
-#if !(defined(AF_KEY) || (defined(HAVE_DECL_AF_KEY) && HAVE_DECL_AF_KEY))
+#if defined(AF_KEY) || (defined(HAVE_DECL_AF_KEY) && HAVE_DECL_AF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_KEY) == (15), "AF_KEY != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_KEY 15
#endif
-#if !(defined(AF_NETLINK) || (defined(HAVE_DECL_AF_NETLINK) && HAVE_DECL_AF_NETLINK))
+#if defined(AF_NETLINK) || (defined(HAVE_DECL_AF_NETLINK) && HAVE_DECL_AF_NETLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_NETLINK) == (16), "AF_NETLINK != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_NETLINK 16
#endif
-#if !(defined(AF_PACKET) || (defined(HAVE_DECL_AF_PACKET) && HAVE_DECL_AF_PACKET))
+#if defined(AF_PACKET) || (defined(HAVE_DECL_AF_PACKET) && HAVE_DECL_AF_PACKET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_PACKET) == (17), "AF_PACKET != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_PACKET 17
#endif
-#if !(defined(AF_ASH) || (defined(HAVE_DECL_AF_ASH) && HAVE_DECL_AF_ASH))
+#if defined(AF_ASH) || (defined(HAVE_DECL_AF_ASH) && HAVE_DECL_AF_ASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_ASH) == (18), "AF_ASH != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_ASH 18
#endif
-#if !(defined(AF_ECONET) || (defined(HAVE_DECL_AF_ECONET) && HAVE_DECL_AF_ECONET))
+#if defined(AF_ECONET) || (defined(HAVE_DECL_AF_ECONET) && HAVE_DECL_AF_ECONET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_ECONET) == (19), "AF_ECONET != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_ECONET 19
#endif
-#if !(defined(AF_ATMSVC) || (defined(HAVE_DECL_AF_ATMSVC) && HAVE_DECL_AF_ATMSVC))
+#if defined(AF_ATMSVC) || (defined(HAVE_DECL_AF_ATMSVC) && HAVE_DECL_AF_ATMSVC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_ATMSVC) == (20), "AF_ATMSVC != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_ATMSVC 20
#endif
-#if !(defined(AF_RDS) || (defined(HAVE_DECL_AF_RDS) && HAVE_DECL_AF_RDS))
+#if defined(AF_RDS) || (defined(HAVE_DECL_AF_RDS) && HAVE_DECL_AF_RDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_RDS) == (21), "AF_RDS != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_RDS 21
#endif
-#if !(defined(AF_SNA) || (defined(HAVE_DECL_AF_SNA) && HAVE_DECL_AF_SNA))
+#if defined(AF_SNA) || (defined(HAVE_DECL_AF_SNA) && HAVE_DECL_AF_SNA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_SNA) == (22), "AF_SNA != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_SNA 22
#endif
-#if !(defined(AF_IRDA) || (defined(HAVE_DECL_AF_IRDA) && HAVE_DECL_AF_IRDA))
+#if defined(AF_IRDA) || (defined(HAVE_DECL_AF_IRDA) && HAVE_DECL_AF_IRDA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_IRDA) == (23), "AF_IRDA != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_IRDA 23
#endif
-#if !(defined(AF_PPPOX) || (defined(HAVE_DECL_AF_PPPOX) && HAVE_DECL_AF_PPPOX))
+#if defined(AF_PPPOX) || (defined(HAVE_DECL_AF_PPPOX) && HAVE_DECL_AF_PPPOX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_PPPOX) == (24), "AF_PPPOX != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_PPPOX 24
#endif
-#if !(defined(AF_WANPIPE) || (defined(HAVE_DECL_AF_WANPIPE) && HAVE_DECL_AF_WANPIPE))
+#if defined(AF_WANPIPE) || (defined(HAVE_DECL_AF_WANPIPE) && HAVE_DECL_AF_WANPIPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_WANPIPE) == (25), "AF_WANPIPE != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_WANPIPE 25
#endif
-#if !(defined(AF_LLC) || (defined(HAVE_DECL_AF_LLC) && HAVE_DECL_AF_LLC))
+#if defined(AF_LLC) || (defined(HAVE_DECL_AF_LLC) && HAVE_DECL_AF_LLC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_LLC) == (26), "AF_LLC != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_LLC 26
#endif
-#if !(defined(AF_IB) || (defined(HAVE_DECL_AF_IB) && HAVE_DECL_AF_IB))
+#if defined(AF_IB) || (defined(HAVE_DECL_AF_IB) && HAVE_DECL_AF_IB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_IB) == (27), "AF_IB != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_IB 27
#endif
-#if !(defined(AF_MPLS) || (defined(HAVE_DECL_AF_MPLS) && HAVE_DECL_AF_MPLS))
+#if defined(AF_MPLS) || (defined(HAVE_DECL_AF_MPLS) && HAVE_DECL_AF_MPLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_MPLS) == (28), "AF_MPLS != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_MPLS 28
#endif
-#if !(defined(AF_CAN) || (defined(HAVE_DECL_AF_CAN) && HAVE_DECL_AF_CAN))
+#if defined(AF_CAN) || (defined(HAVE_DECL_AF_CAN) && HAVE_DECL_AF_CAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_CAN) == (29), "AF_CAN != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_CAN 29
#endif
-#if !(defined(AF_TIPC) || (defined(HAVE_DECL_AF_TIPC) && HAVE_DECL_AF_TIPC))
+#if defined(AF_TIPC) || (defined(HAVE_DECL_AF_TIPC) && HAVE_DECL_AF_TIPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_TIPC) == (30), "AF_TIPC != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_TIPC 30
#endif
-#if !(defined(AF_BLUETOOTH) || (defined(HAVE_DECL_AF_BLUETOOTH) && HAVE_DECL_AF_BLUETOOTH))
+#if defined(AF_BLUETOOTH) || (defined(HAVE_DECL_AF_BLUETOOTH) && HAVE_DECL_AF_BLUETOOTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_BLUETOOTH) == (31), "AF_BLUETOOTH != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_BLUETOOTH 31
#endif
-#if !(defined(AF_IUCV) || (defined(HAVE_DECL_AF_IUCV) && HAVE_DECL_AF_IUCV))
+#if defined(AF_IUCV) || (defined(HAVE_DECL_AF_IUCV) && HAVE_DECL_AF_IUCV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_IUCV) == (32), "AF_IUCV != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_IUCV 32
#endif
-#if !(defined(AF_RXRPC) || (defined(HAVE_DECL_AF_RXRPC) && HAVE_DECL_AF_RXRPC))
+#if defined(AF_RXRPC) || (defined(HAVE_DECL_AF_RXRPC) && HAVE_DECL_AF_RXRPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_RXRPC) == (33), "AF_RXRPC != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_RXRPC 33
#endif
-#if !(defined(AF_ISDN) || (defined(HAVE_DECL_AF_ISDN) && HAVE_DECL_AF_ISDN))
+#if defined(AF_ISDN) || (defined(HAVE_DECL_AF_ISDN) && HAVE_DECL_AF_ISDN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_ISDN) == (34), "AF_ISDN != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_ISDN 34
#endif
-#if !(defined(AF_PHONET) || (defined(HAVE_DECL_AF_PHONET) && HAVE_DECL_AF_PHONET))
+#if defined(AF_PHONET) || (defined(HAVE_DECL_AF_PHONET) && HAVE_DECL_AF_PHONET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_PHONET) == (35), "AF_PHONET != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_PHONET 35
#endif
-#if !(defined(AF_IEEE802154) || (defined(HAVE_DECL_AF_IEEE802154) && HAVE_DECL_AF_IEEE802154))
+#if defined(AF_IEEE802154) || (defined(HAVE_DECL_AF_IEEE802154) && HAVE_DECL_AF_IEEE802154)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_IEEE802154) == (36), "AF_IEEE802154 != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_IEEE802154 36
#endif
-#if !(defined(AF_CAIF) || (defined(HAVE_DECL_AF_CAIF) && HAVE_DECL_AF_CAIF))
+#if defined(AF_CAIF) || (defined(HAVE_DECL_AF_CAIF) && HAVE_DECL_AF_CAIF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_CAIF) == (37), "AF_CAIF != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_CAIF 37
#endif
-#if !(defined(AF_ALG) || (defined(HAVE_DECL_AF_ALG) && HAVE_DECL_AF_ALG))
+#if defined(AF_ALG) || (defined(HAVE_DECL_AF_ALG) && HAVE_DECL_AF_ALG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_ALG) == (38), "AF_ALG != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_ALG 38
#endif
-#if !(defined(AF_NFC) || (defined(HAVE_DECL_AF_NFC) && HAVE_DECL_AF_NFC))
+#if defined(AF_NFC) || (defined(HAVE_DECL_AF_NFC) && HAVE_DECL_AF_NFC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_NFC) == (39), "AF_NFC != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_NFC 39
#endif
-#if !(defined(AF_VSOCK) || (defined(HAVE_DECL_AF_VSOCK) && HAVE_DECL_AF_VSOCK))
+#if defined(AF_VSOCK) || (defined(HAVE_DECL_AF_VSOCK) && HAVE_DECL_AF_VSOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_VSOCK) == (40), "AF_VSOCK != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_VSOCK 40
#endif
-#if !(defined(AF_KCM) || (defined(HAVE_DECL_AF_KCM) && HAVE_DECL_AF_KCM))
+#if defined(AF_KCM) || (defined(HAVE_DECL_AF_KCM) && HAVE_DECL_AF_KCM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_KCM) == (41), "AF_KCM != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_KCM 41
#endif
-#if !(defined(AF_QIPCRTR) || (defined(HAVE_DECL_AF_QIPCRTR) && HAVE_DECL_AF_QIPCRTR))
+#if defined(AF_QIPCRTR) || (defined(HAVE_DECL_AF_QIPCRTR) && HAVE_DECL_AF_QIPCRTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_QIPCRTR) == (42), "AF_QIPCRTR != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_QIPCRTR 42
#endif
-#if !(defined(AF_SMC) || (defined(HAVE_DECL_AF_SMC) && HAVE_DECL_AF_SMC))
+#if defined(AF_SMC) || (defined(HAVE_DECL_AF_SMC) && HAVE_DECL_AF_SMC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AF_SMC) == (43), "AF_SMC != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AF_SMC 43
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat addrfams[] = {
- XLAT(AF_UNSPEC),
- XLAT(AF_UNIX),
- XLAT(AF_INET),
- XLAT(AF_AX25),
- XLAT(AF_IPX),
- XLAT(AF_APPLETALK),
- XLAT(AF_NETROM),
- XLAT(AF_BRIDGE),
- XLAT(AF_ATMPVC),
- XLAT(AF_X25),
- XLAT(AF_INET6),
- XLAT(AF_ROSE),
- XLAT(AF_DECnet),
- XLAT(AF_NETBEUI),
- XLAT(AF_SECURITY),
- XLAT(AF_KEY),
- XLAT(AF_NETLINK),
- XLAT(AF_PACKET),
- XLAT(AF_ASH),
- XLAT(AF_ECONET),
- XLAT(AF_ATMSVC),
- XLAT(AF_RDS),
- XLAT(AF_SNA),
- XLAT(AF_IRDA),
- XLAT(AF_PPPOX),
- XLAT(AF_WANPIPE),
- XLAT(AF_LLC),
- XLAT(AF_IB),
- XLAT(AF_MPLS),
- XLAT(AF_CAN),
- XLAT(AF_TIPC),
- XLAT(AF_BLUETOOTH),
- XLAT(AF_IUCV),
- XLAT(AF_RXRPC),
- XLAT(AF_ISDN),
- XLAT(AF_PHONET),
- XLAT(AF_IEEE802154),
- XLAT(AF_CAIF),
- XLAT(AF_ALG),
- XLAT(AF_NFC),
- XLAT(AF_VSOCK),
- XLAT(AF_KCM),
- XLAT(AF_QIPCRTR),
- XLAT(AF_SMC),
+ [AF_UNSPEC] = XLAT(AF_UNSPEC),
+ [AF_UNIX] = XLAT(AF_UNIX),
+ [AF_INET] = XLAT(AF_INET),
+ [AF_AX25] = XLAT(AF_AX25),
+ [AF_IPX] = XLAT(AF_IPX),
+ [AF_APPLETALK] = XLAT(AF_APPLETALK),
+ [AF_NETROM] = XLAT(AF_NETROM),
+ [AF_BRIDGE] = XLAT(AF_BRIDGE),
+ [AF_ATMPVC] = XLAT(AF_ATMPVC),
+ [AF_X25] = XLAT(AF_X25),
+ [AF_INET6] = XLAT(AF_INET6),
+ [AF_ROSE] = XLAT(AF_ROSE),
+ [AF_DECnet] = XLAT(AF_DECnet),
+ [AF_NETBEUI] = XLAT(AF_NETBEUI),
+ [AF_SECURITY] = XLAT(AF_SECURITY),
+ [AF_KEY] = XLAT(AF_KEY),
+ [AF_NETLINK] = XLAT(AF_NETLINK),
+ [AF_PACKET] = XLAT(AF_PACKET),
+ [AF_ASH] = XLAT(AF_ASH),
+ [AF_ECONET] = XLAT(AF_ECONET),
+ [AF_ATMSVC] = XLAT(AF_ATMSVC),
+ [AF_RDS] = XLAT(AF_RDS),
+ [AF_SNA] = XLAT(AF_SNA),
+ [AF_IRDA] = XLAT(AF_IRDA),
+ [AF_PPPOX] = XLAT(AF_PPPOX),
+ [AF_WANPIPE] = XLAT(AF_WANPIPE),
+ [AF_LLC] = XLAT(AF_LLC),
+ [AF_IB] = XLAT(AF_IB),
+ [AF_MPLS] = XLAT(AF_MPLS),
+ [AF_CAN] = XLAT(AF_CAN),
+ [AF_TIPC] = XLAT(AF_TIPC),
+ [AF_BLUETOOTH] = XLAT(AF_BLUETOOTH),
+ [AF_IUCV] = XLAT(AF_IUCV),
+ [AF_RXRPC] = XLAT(AF_RXRPC),
+ [AF_ISDN] = XLAT(AF_ISDN),
+ [AF_PHONET] = XLAT(AF_PHONET),
+ [AF_IEEE802154] = XLAT(AF_IEEE802154),
+ [AF_CAIF] = XLAT(AF_CAIF),
+ [AF_ALG] = XLAT(AF_ALG),
+ [AF_NFC] = XLAT(AF_NFC),
+ [AF_VSOCK] = XLAT(AF_VSOCK),
+ [AF_KCM] = XLAT(AF_KCM),
+ [AF_QIPCRTR] = XLAT(AF_QIPCRTR),
+ [AF_SMC] = XLAT(AF_SMC),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/addrfams.in b/xlat/addrfams.in
index 427d993..5824c3b 100644
--- a/xlat/addrfams.in
+++ b/xlat/addrfams.in
@@ -1,3 +1,4 @@
+#value_indexed
AF_UNSPEC 0
AF_UNIX 1
AF_INET 2
diff --git a/xlat/adjtimex_modes.h b/xlat/adjtimex_modes.h
index 7415fe8..4c198f3 100644
--- a/xlat/adjtimex_modes.h
+++ b/xlat/adjtimex_modes.h
@@ -1,56 +1,128 @@
/* Generated by ./xlat/gen.sh from ./xlat/adjtimex_modes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ADJ_OFFSET_SS_READ) || (defined(HAVE_DECL_ADJ_OFFSET_SS_READ) && HAVE_DECL_ADJ_OFFSET_SS_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_OFFSET_SS_READ) == (0xa001), "ADJ_OFFSET_SS_READ != 0xa001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_OFFSET_SS_READ 0xa001
+#endif
+#if defined(ADJ_OFFSET_SINGLESHOT) || (defined(HAVE_DECL_ADJ_OFFSET_SINGLESHOT) && HAVE_DECL_ADJ_OFFSET_SINGLESHOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_OFFSET_SINGLESHOT) == (0x8001), "ADJ_OFFSET_SINGLESHOT != 0x8001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_OFFSET_SINGLESHOT 0x8001
+#endif
+#if defined(ADJ_OFFSET) || (defined(HAVE_DECL_ADJ_OFFSET) && HAVE_DECL_ADJ_OFFSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_OFFSET) == (0x0001), "ADJ_OFFSET != 0x0001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_OFFSET 0x0001
+#endif
+#if defined(ADJ_FREQUENCY) || (defined(HAVE_DECL_ADJ_FREQUENCY) && HAVE_DECL_ADJ_FREQUENCY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_FREQUENCY) == (0x0002), "ADJ_FREQUENCY != 0x0002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_FREQUENCY 0x0002
+#endif
+#if defined(ADJ_MAXERROR) || (defined(HAVE_DECL_ADJ_MAXERROR) && HAVE_DECL_ADJ_MAXERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_MAXERROR) == (0x0004), "ADJ_MAXERROR != 0x0004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_MAXERROR 0x0004
+#endif
+#if defined(ADJ_ESTERROR) || (defined(HAVE_DECL_ADJ_ESTERROR) && HAVE_DECL_ADJ_ESTERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_ESTERROR) == (0x0008), "ADJ_ESTERROR != 0x0008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_ESTERROR 0x0008
+#endif
+#if defined(ADJ_STATUS) || (defined(HAVE_DECL_ADJ_STATUS) && HAVE_DECL_ADJ_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_STATUS) == (0x0010), "ADJ_STATUS != 0x0010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_STATUS 0x0010
+#endif
+#if defined(ADJ_TIMECONST) || (defined(HAVE_DECL_ADJ_TIMECONST) && HAVE_DECL_ADJ_TIMECONST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_TIMECONST) == (0x0020), "ADJ_TIMECONST != 0x0020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_TIMECONST 0x0020
+#endif
+#if defined(ADJ_TAI) || (defined(HAVE_DECL_ADJ_TAI) && HAVE_DECL_ADJ_TAI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_TAI) == (0x0080), "ADJ_TAI != 0x0080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_TAI 0x0080
+#endif
+#if defined(ADJ_SETOFFSET) || (defined(HAVE_DECL_ADJ_SETOFFSET) && HAVE_DECL_ADJ_SETOFFSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_SETOFFSET) == (0x0100), "ADJ_SETOFFSET != 0x0100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_SETOFFSET 0x0100
+#endif
+#if defined(ADJ_MICRO) || (defined(HAVE_DECL_ADJ_MICRO) && HAVE_DECL_ADJ_MICRO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_MICRO) == (0x1000), "ADJ_MICRO != 0x1000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_MICRO 0x1000
+#endif
+#if defined(ADJ_NANO) || (defined(HAVE_DECL_ADJ_NANO) && HAVE_DECL_ADJ_NANO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_NANO) == (0x2000), "ADJ_NANO != 0x2000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_NANO 0x2000
+#endif
+#if defined(ADJ_TICK) || (defined(HAVE_DECL_ADJ_TICK) && HAVE_DECL_ADJ_TICK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADJ_TICK) == (0x4000), "ADJ_TICK != 0x4000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ADJ_TICK 0x4000
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat adjtimex_modes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat adjtimex_modes[] = {
- XLAT(0),
-#if defined(ADJ_OFFSET) || (defined(HAVE_DECL_ADJ_OFFSET) && HAVE_DECL_ADJ_OFFSET)
- XLAT(ADJ_OFFSET),
-#endif
-#if defined(ADJ_FREQUENCY) || (defined(HAVE_DECL_ADJ_FREQUENCY) && HAVE_DECL_ADJ_FREQUENCY)
- XLAT(ADJ_FREQUENCY),
-#endif
-#if defined(ADJ_MAXERROR) || (defined(HAVE_DECL_ADJ_MAXERROR) && HAVE_DECL_ADJ_MAXERROR)
- XLAT(ADJ_MAXERROR),
-#endif
-#if defined(ADJ_ESTERROR) || (defined(HAVE_DECL_ADJ_ESTERROR) && HAVE_DECL_ADJ_ESTERROR)
- XLAT(ADJ_ESTERROR),
-#endif
-#if defined(ADJ_STATUS) || (defined(HAVE_DECL_ADJ_STATUS) && HAVE_DECL_ADJ_STATUS)
- XLAT(ADJ_STATUS),
-#endif
-#if defined(ADJ_TIMECONST) || (defined(HAVE_DECL_ADJ_TIMECONST) && HAVE_DECL_ADJ_TIMECONST)
- XLAT(ADJ_TIMECONST),
-#endif
-#if defined(ADJ_TAI) || (defined(HAVE_DECL_ADJ_TAI) && HAVE_DECL_ADJ_TAI)
- XLAT(ADJ_TAI),
-#endif
-#if defined(ADJ_SETOFFSET) || (defined(HAVE_DECL_ADJ_SETOFFSET) && HAVE_DECL_ADJ_SETOFFSET)
- XLAT(ADJ_SETOFFSET),
-#endif
-#if defined(ADJ_MICRO) || (defined(HAVE_DECL_ADJ_MICRO) && HAVE_DECL_ADJ_MICRO)
- XLAT(ADJ_MICRO),
-#endif
-#if defined(ADJ_NANO) || (defined(HAVE_DECL_ADJ_NANO) && HAVE_DECL_ADJ_NANO)
- XLAT(ADJ_NANO),
-#endif
-#if defined(ADJ_TICK) || (defined(HAVE_DECL_ADJ_TICK) && HAVE_DECL_ADJ_TICK)
- XLAT(ADJ_TICK),
-#endif
-#if defined(ADJ_OFFSET_SINGLESHOT) || (defined(HAVE_DECL_ADJ_OFFSET_SINGLESHOT) && HAVE_DECL_ADJ_OFFSET_SINGLESHOT)
- XLAT(ADJ_OFFSET_SINGLESHOT),
-#endif
-#if defined(ADJ_OFFSET_SS_READ) || (defined(HAVE_DECL_ADJ_OFFSET_SS_READ) && HAVE_DECL_ADJ_OFFSET_SS_READ)
- XLAT(ADJ_OFFSET_SS_READ),
-#endif
+ XLAT(ADJ_OFFSET_SS_READ),
+ XLAT(ADJ_OFFSET_SINGLESHOT),
+ XLAT(ADJ_OFFSET),
+ XLAT(ADJ_FREQUENCY),
+ XLAT(ADJ_MAXERROR),
+ XLAT(ADJ_ESTERROR),
+ XLAT(ADJ_STATUS),
+ XLAT(ADJ_TIMECONST),
+ XLAT(ADJ_TAI),
+ XLAT(ADJ_SETOFFSET),
+ XLAT(ADJ_MICRO),
+ XLAT(ADJ_NANO),
+ XLAT(ADJ_TICK),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/adjtimex_modes.in b/xlat/adjtimex_modes.in
index e2ca680..fa616e6 100644
--- a/xlat/adjtimex_modes.in
+++ b/xlat/adjtimex_modes.in
@@ -1,14 +1,13 @@
-0
-ADJ_OFFSET
-ADJ_FREQUENCY
-ADJ_MAXERROR
-ADJ_ESTERROR
-ADJ_STATUS
-ADJ_TIMECONST
-ADJ_TAI
-ADJ_SETOFFSET
-ADJ_MICRO
-ADJ_NANO
-ADJ_TICK
-ADJ_OFFSET_SINGLESHOT
-ADJ_OFFSET_SS_READ
+ADJ_OFFSET_SS_READ 0xa001
+ADJ_OFFSET_SINGLESHOT 0x8001
+ADJ_OFFSET 0x0001
+ADJ_FREQUENCY 0x0002
+ADJ_MAXERROR 0x0004
+ADJ_ESTERROR 0x0008
+ADJ_STATUS 0x0010
+ADJ_TIMECONST 0x0020
+ADJ_TAI 0x0080
+ADJ_SETOFFSET 0x0100
+ADJ_MICRO 0x1000
+ADJ_NANO 0x2000
+ADJ_TICK 0x4000
diff --git a/xlat/adjtimex_state.h b/xlat/adjtimex_state.h
index 888f1b6..01b760c 100644
--- a/xlat/adjtimex_state.h
+++ b/xlat/adjtimex_state.h
@@ -1,32 +1,70 @@
/* Generated by ./xlat/gen.sh from ./xlat/adjtimex_state.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat adjtimex_state in mpers mode
-
+#if defined(TIME_OK) || (defined(HAVE_DECL_TIME_OK) && HAVE_DECL_TIME_OK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIME_OK) == (0), "TIME_OK != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define TIME_OK 0
+#endif
+#if defined(TIME_INS) || (defined(HAVE_DECL_TIME_INS) && HAVE_DECL_TIME_INS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIME_INS) == (1), "TIME_INS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIME_INS 1
+#endif
+#if defined(TIME_DEL) || (defined(HAVE_DECL_TIME_DEL) && HAVE_DECL_TIME_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIME_DEL) == (2), "TIME_DEL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIME_DEL 2
+#endif
+#if defined(TIME_OOP) || (defined(HAVE_DECL_TIME_OOP) && HAVE_DECL_TIME_OOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIME_OOP) == (3), "TIME_OOP != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIME_OOP 3
+#endif
+#if defined(TIME_WAIT) || (defined(HAVE_DECL_TIME_WAIT) && HAVE_DECL_TIME_WAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIME_WAIT) == (4), "TIME_WAIT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIME_WAIT 4
+#endif
+#if defined(TIME_ERROR) || (defined(HAVE_DECL_TIME_ERROR) && HAVE_DECL_TIME_ERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIME_ERROR) == (5), "TIME_ERROR != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIME_ERROR 5
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat adjtimex_state in mpers mode
+
+# else
static
const struct xlat adjtimex_state[] = {
-#if defined(TIME_OK) || (defined(HAVE_DECL_TIME_OK) && HAVE_DECL_TIME_OK)
- XLAT(TIME_OK),
-#endif
-#if defined(TIME_INS) || (defined(HAVE_DECL_TIME_INS) && HAVE_DECL_TIME_INS)
- XLAT(TIME_INS),
-#endif
-#if defined(TIME_DEL) || (defined(HAVE_DECL_TIME_DEL) && HAVE_DECL_TIME_DEL)
- XLAT(TIME_DEL),
-#endif
-#if defined(TIME_OOP) || (defined(HAVE_DECL_TIME_OOP) && HAVE_DECL_TIME_OOP)
- XLAT(TIME_OOP),
-#endif
-#if defined(TIME_WAIT) || (defined(HAVE_DECL_TIME_WAIT) && HAVE_DECL_TIME_WAIT)
- XLAT(TIME_WAIT),
-#endif
-#if defined(TIME_ERROR) || (defined(HAVE_DECL_TIME_ERROR) && HAVE_DECL_TIME_ERROR)
- XLAT(TIME_ERROR),
-#endif
+ [TIME_OK] = XLAT(TIME_OK),
+ [TIME_INS] = XLAT(TIME_INS),
+ [TIME_DEL] = XLAT(TIME_DEL),
+ [TIME_OOP] = XLAT(TIME_OOP),
+ [TIME_WAIT] = XLAT(TIME_WAIT),
+ [TIME_ERROR] = XLAT(TIME_ERROR),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/adjtimex_state.in b/xlat/adjtimex_state.in
index 873b9a1..c4ec23c 100644
--- a/xlat/adjtimex_state.in
+++ b/xlat/adjtimex_state.in
@@ -1,6 +1,7 @@
-TIME_OK
-TIME_INS
-TIME_DEL
-TIME_OOP
-TIME_WAIT
-TIME_ERROR
+#value_indexed
+TIME_OK 0
+TIME_INS 1
+TIME_DEL 2
+TIME_OOP 3
+TIME_WAIT 4
+TIME_ERROR 5
diff --git a/xlat/adjtimex_status.h b/xlat/adjtimex_status.h
index 16e7811..1c3084d 100644
--- a/xlat/adjtimex_status.h
+++ b/xlat/adjtimex_status.h
@@ -1,64 +1,152 @@
/* Generated by ./xlat/gen.sh from ./xlat/adjtimex_status.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(STA_PLL) || (defined(HAVE_DECL_STA_PLL) && HAVE_DECL_STA_PLL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_PLL) == (0x0001), "STA_PLL != 0x0001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_PLL 0x0001
+#endif
+#if defined(STA_PPSFREQ) || (defined(HAVE_DECL_STA_PPSFREQ) && HAVE_DECL_STA_PPSFREQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_PPSFREQ) == (0x0002), "STA_PPSFREQ != 0x0002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_PPSFREQ 0x0002
+#endif
+#if defined(STA_PPSTIME) || (defined(HAVE_DECL_STA_PPSTIME) && HAVE_DECL_STA_PPSTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_PPSTIME) == (0x0004), "STA_PPSTIME != 0x0004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_PPSTIME 0x0004
+#endif
+#if defined(STA_FLL) || (defined(HAVE_DECL_STA_FLL) && HAVE_DECL_STA_FLL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_FLL) == (0x0008), "STA_FLL != 0x0008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_FLL 0x0008
+#endif
+#if defined(STA_INS) || (defined(HAVE_DECL_STA_INS) && HAVE_DECL_STA_INS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_INS) == (0x0010), "STA_INS != 0x0010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_INS 0x0010
+#endif
+#if defined(STA_DEL) || (defined(HAVE_DECL_STA_DEL) && HAVE_DECL_STA_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_DEL) == (0x0020), "STA_DEL != 0x0020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_DEL 0x0020
+#endif
+#if defined(STA_UNSYNC) || (defined(HAVE_DECL_STA_UNSYNC) && HAVE_DECL_STA_UNSYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_UNSYNC) == (0x0040), "STA_UNSYNC != 0x0040");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_UNSYNC 0x0040
+#endif
+#if defined(STA_FREQHOLD) || (defined(HAVE_DECL_STA_FREQHOLD) && HAVE_DECL_STA_FREQHOLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_FREQHOLD) == (0x0080), "STA_FREQHOLD != 0x0080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_FREQHOLD 0x0080
+#endif
+#if defined(STA_PPSSIGNAL) || (defined(HAVE_DECL_STA_PPSSIGNAL) && HAVE_DECL_STA_PPSSIGNAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_PPSSIGNAL) == (0x0100), "STA_PPSSIGNAL != 0x0100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_PPSSIGNAL 0x0100
+#endif
+#if defined(STA_PPSJITTER) || (defined(HAVE_DECL_STA_PPSJITTER) && HAVE_DECL_STA_PPSJITTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_PPSJITTER) == (0x0200), "STA_PPSJITTER != 0x0200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_PPSJITTER 0x0200
+#endif
+#if defined(STA_PPSWANDER) || (defined(HAVE_DECL_STA_PPSWANDER) && HAVE_DECL_STA_PPSWANDER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_PPSWANDER) == (0x0400), "STA_PPSWANDER != 0x0400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_PPSWANDER 0x0400
+#endif
+#if defined(STA_PPSERROR) || (defined(HAVE_DECL_STA_PPSERROR) && HAVE_DECL_STA_PPSERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_PPSERROR) == (0x0800), "STA_PPSERROR != 0x0800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_PPSERROR 0x0800
+#endif
+#if defined(STA_CLOCKERR) || (defined(HAVE_DECL_STA_CLOCKERR) && HAVE_DECL_STA_CLOCKERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_CLOCKERR) == (0x1000), "STA_CLOCKERR != 0x1000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_CLOCKERR 0x1000
+#endif
+#if defined(STA_NANO) || (defined(HAVE_DECL_STA_NANO) && HAVE_DECL_STA_NANO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_NANO) == (0x2000), "STA_NANO != 0x2000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_NANO 0x2000
+#endif
+#if defined(STA_MODE) || (defined(HAVE_DECL_STA_MODE) && HAVE_DECL_STA_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_MODE) == (0x4000), "STA_MODE != 0x4000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_MODE 0x4000
+#endif
+#if defined(STA_CLK) || (defined(HAVE_DECL_STA_CLK) && HAVE_DECL_STA_CLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STA_CLK) == (0x8000), "STA_CLK != 0x8000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define STA_CLK 0x8000
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat adjtimex_status[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat adjtimex_status[] = {
-#if defined(STA_PLL) || (defined(HAVE_DECL_STA_PLL) && HAVE_DECL_STA_PLL)
- XLAT(STA_PLL),
-#endif
-#if defined(STA_PPSFREQ) || (defined(HAVE_DECL_STA_PPSFREQ) && HAVE_DECL_STA_PPSFREQ)
- XLAT(STA_PPSFREQ),
-#endif
-#if defined(STA_PPSTIME) || (defined(HAVE_DECL_STA_PPSTIME) && HAVE_DECL_STA_PPSTIME)
- XLAT(STA_PPSTIME),
-#endif
-#if defined(STA_FLL) || (defined(HAVE_DECL_STA_FLL) && HAVE_DECL_STA_FLL)
- XLAT(STA_FLL),
-#endif
-#if defined(STA_INS) || (defined(HAVE_DECL_STA_INS) && HAVE_DECL_STA_INS)
- XLAT(STA_INS),
-#endif
-#if defined(STA_DEL) || (defined(HAVE_DECL_STA_DEL) && HAVE_DECL_STA_DEL)
- XLAT(STA_DEL),
-#endif
-#if defined(STA_UNSYNC) || (defined(HAVE_DECL_STA_UNSYNC) && HAVE_DECL_STA_UNSYNC)
- XLAT(STA_UNSYNC),
-#endif
-#if defined(STA_FREQHOLD) || (defined(HAVE_DECL_STA_FREQHOLD) && HAVE_DECL_STA_FREQHOLD)
- XLAT(STA_FREQHOLD),
-#endif
-#if defined(STA_PPSSIGNAL) || (defined(HAVE_DECL_STA_PPSSIGNAL) && HAVE_DECL_STA_PPSSIGNAL)
- XLAT(STA_PPSSIGNAL),
-#endif
-#if defined(STA_PPSJITTER) || (defined(HAVE_DECL_STA_PPSJITTER) && HAVE_DECL_STA_PPSJITTER)
- XLAT(STA_PPSJITTER),
-#endif
-#if defined(STA_PPSWANDER) || (defined(HAVE_DECL_STA_PPSWANDER) && HAVE_DECL_STA_PPSWANDER)
- XLAT(STA_PPSWANDER),
-#endif
-#if defined(STA_PPSERROR) || (defined(HAVE_DECL_STA_PPSERROR) && HAVE_DECL_STA_PPSERROR)
- XLAT(STA_PPSERROR),
-#endif
-#if defined(STA_CLOCKERR) || (defined(HAVE_DECL_STA_CLOCKERR) && HAVE_DECL_STA_CLOCKERR)
- XLAT(STA_CLOCKERR),
-#endif
-#if defined(STA_NANO) || (defined(HAVE_DECL_STA_NANO) && HAVE_DECL_STA_NANO)
- XLAT(STA_NANO),
-#endif
-#if defined(STA_MODE) || (defined(HAVE_DECL_STA_MODE) && HAVE_DECL_STA_MODE)
- XLAT(STA_MODE),
-#endif
-#if defined(STA_CLK) || (defined(HAVE_DECL_STA_CLK) && HAVE_DECL_STA_CLK)
- XLAT(STA_CLK),
-#endif
+ XLAT(STA_PLL),
+ XLAT(STA_PPSFREQ),
+ XLAT(STA_PPSTIME),
+ XLAT(STA_FLL),
+ XLAT(STA_INS),
+ XLAT(STA_DEL),
+ XLAT(STA_UNSYNC),
+ XLAT(STA_FREQHOLD),
+ XLAT(STA_PPSSIGNAL),
+ XLAT(STA_PPSJITTER),
+ XLAT(STA_PPSWANDER),
+ XLAT(STA_PPSERROR),
+ XLAT(STA_CLOCKERR),
+ XLAT(STA_NANO),
+ XLAT(STA_MODE),
+ XLAT(STA_CLK),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/adjtimex_status.in b/xlat/adjtimex_status.in
index c6b6264..7b83da8 100644
--- a/xlat/adjtimex_status.in
+++ b/xlat/adjtimex_status.in
@@ -1,16 +1,16 @@
-STA_PLL
-STA_PPSFREQ
-STA_PPSTIME
-STA_FLL
-STA_INS
-STA_DEL
-STA_UNSYNC
-STA_FREQHOLD
-STA_PPSSIGNAL
-STA_PPSJITTER
-STA_PPSWANDER
-STA_PPSERROR
-STA_CLOCKERR
-STA_NANO
-STA_MODE
-STA_CLK
+STA_PLL 0x0001
+STA_PPSFREQ 0x0002
+STA_PPSTIME 0x0004
+STA_FLL 0x0008
+STA_INS 0x0010
+STA_DEL 0x0020
+STA_UNSYNC 0x0040
+STA_FREQHOLD 0x0080
+STA_PPSSIGNAL 0x0100
+STA_PPSJITTER 0x0200
+STA_PPSWANDER 0x0400
+STA_PPSERROR 0x0800
+STA_CLOCKERR 0x1000
+STA_NANO 0x2000
+STA_MODE 0x4000
+STA_CLK 0x8000
diff --git a/xlat/advise.h b/xlat/advise.h
index 526219d..cf52522 100644
--- a/xlat/advise.h
+++ b/xlat/advise.h
@@ -1,32 +1,92 @@
/* Generated by ./xlat/gen.sh from ./xlat/advise.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat advise in mpers mode
-
+#if defined(POSIX_FADV_NORMAL) || (defined(HAVE_DECL_POSIX_FADV_NORMAL) && HAVE_DECL_POSIX_FADV_NORMAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_NORMAL) == (0), "POSIX_FADV_NORMAL != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define POSIX_FADV_NORMAL 0
+#endif
+#if defined(POSIX_FADV_RANDOM) || (defined(HAVE_DECL_POSIX_FADV_RANDOM) && HAVE_DECL_POSIX_FADV_RANDOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_RANDOM) == (1), "POSIX_FADV_RANDOM != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define POSIX_FADV_RANDOM 1
+#endif
+#if defined(POSIX_FADV_SEQUENTIAL) || (defined(HAVE_DECL_POSIX_FADV_SEQUENTIAL) && HAVE_DECL_POSIX_FADV_SEQUENTIAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_SEQUENTIAL) == (2), "POSIX_FADV_SEQUENTIAL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define POSIX_FADV_SEQUENTIAL 2
+#endif
+#if defined(POSIX_FADV_WILLNEED) || (defined(HAVE_DECL_POSIX_FADV_WILLNEED) && HAVE_DECL_POSIX_FADV_WILLNEED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_WILLNEED) == (3), "POSIX_FADV_WILLNEED != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define POSIX_FADV_WILLNEED 3
+#endif
+#if defined __s390x__
+#if defined(POSIX_FADV_DONTNEED) || (defined(HAVE_DECL_POSIX_FADV_DONTNEED) && HAVE_DECL_POSIX_FADV_DONTNEED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_DONTNEED) == (6), "POSIX_FADV_DONTNEED != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define POSIX_FADV_DONTNEED 6
+#endif
+#if defined(POSIX_FADV_NOREUSE) || (defined(HAVE_DECL_POSIX_FADV_NOREUSE) && HAVE_DECL_POSIX_FADV_NOREUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_NOREUSE) == (7), "POSIX_FADV_NOREUSE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define POSIX_FADV_NOREUSE 7
+#endif
+#else
+#if defined(POSIX_FADV_DONTNEED) || (defined(HAVE_DECL_POSIX_FADV_DONTNEED) && HAVE_DECL_POSIX_FADV_DONTNEED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_DONTNEED) == (4), "POSIX_FADV_DONTNEED != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define POSIX_FADV_DONTNEED 4
+#endif
+#if defined(POSIX_FADV_NOREUSE) || (defined(HAVE_DECL_POSIX_FADV_NOREUSE) && HAVE_DECL_POSIX_FADV_NOREUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POSIX_FADV_NOREUSE) == (5), "POSIX_FADV_NOREUSE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define POSIX_FADV_NOREUSE 5
+#endif
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat advise in mpers mode
+
+# else
static
const struct xlat advise[] = {
-#if defined(POSIX_FADV_NORMAL) || (defined(HAVE_DECL_POSIX_FADV_NORMAL) && HAVE_DECL_POSIX_FADV_NORMAL)
- XLAT(POSIX_FADV_NORMAL),
-#endif
-#if defined(POSIX_FADV_RANDOM) || (defined(HAVE_DECL_POSIX_FADV_RANDOM) && HAVE_DECL_POSIX_FADV_RANDOM)
- XLAT(POSIX_FADV_RANDOM),
-#endif
-#if defined(POSIX_FADV_SEQUENTIAL) || (defined(HAVE_DECL_POSIX_FADV_SEQUENTIAL) && HAVE_DECL_POSIX_FADV_SEQUENTIAL)
- XLAT(POSIX_FADV_SEQUENTIAL),
-#endif
-#if defined(POSIX_FADV_WILLNEED) || (defined(HAVE_DECL_POSIX_FADV_WILLNEED) && HAVE_DECL_POSIX_FADV_WILLNEED)
- XLAT(POSIX_FADV_WILLNEED),
-#endif
-#if defined(POSIX_FADV_DONTNEED) || (defined(HAVE_DECL_POSIX_FADV_DONTNEED) && HAVE_DECL_POSIX_FADV_DONTNEED)
- XLAT(POSIX_FADV_DONTNEED),
-#endif
-#if defined(POSIX_FADV_NOREUSE) || (defined(HAVE_DECL_POSIX_FADV_NOREUSE) && HAVE_DECL_POSIX_FADV_NOREUSE)
- XLAT(POSIX_FADV_NOREUSE),
+ XLAT(POSIX_FADV_NORMAL),
+ XLAT(POSIX_FADV_RANDOM),
+ XLAT(POSIX_FADV_SEQUENTIAL),
+ XLAT(POSIX_FADV_WILLNEED),
+#if defined __s390x__
+ XLAT(POSIX_FADV_DONTNEED),
+ XLAT(POSIX_FADV_NOREUSE),
+#else
+ XLAT(POSIX_FADV_DONTNEED),
+ XLAT(POSIX_FADV_NOREUSE),
#endif
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/advise.in b/xlat/advise.in
index 47540e0..5284335 100644
--- a/xlat/advise.in
+++ b/xlat/advise.in
@@ -1,6 +1,11 @@
-POSIX_FADV_NORMAL
-POSIX_FADV_RANDOM
-POSIX_FADV_SEQUENTIAL
-POSIX_FADV_WILLNEED
-POSIX_FADV_DONTNEED
-POSIX_FADV_NOREUSE
+POSIX_FADV_NORMAL 0
+POSIX_FADV_RANDOM 1
+POSIX_FADV_SEQUENTIAL 2
+POSIX_FADV_WILLNEED 3
+#if defined __s390x__
+POSIX_FADV_DONTNEED 6
+POSIX_FADV_NOREUSE 7
+#else
+POSIX_FADV_DONTNEED 4
+POSIX_FADV_NOREUSE 5
+#endif
diff --git a/xlat/af_packet_types.h b/xlat/af_packet_types.h
index 72bb419..c104813 100644
--- a/xlat/af_packet_types.h
+++ b/xlat/af_packet_types.h
@@ -1,35 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/af_packet_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat af_packet_types in mpers mode
-
+#if defined(PACKET_HOST) || (defined(HAVE_DECL_PACKET_HOST) && HAVE_DECL_PACKET_HOST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_HOST) == (0), "PACKET_HOST != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define PACKET_HOST 0
+#endif
+#if defined(PACKET_BROADCAST) || (defined(HAVE_DECL_PACKET_BROADCAST) && HAVE_DECL_PACKET_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_BROADCAST) == (1), "PACKET_BROADCAST != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PACKET_BROADCAST 1
+#endif
+#if defined(PACKET_MULTICAST) || (defined(HAVE_DECL_PACKET_MULTICAST) && HAVE_DECL_PACKET_MULTICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_MULTICAST) == (2), "PACKET_MULTICAST != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PACKET_MULTICAST 2
+#endif
+#if defined(PACKET_OTHERHOST) || (defined(HAVE_DECL_PACKET_OTHERHOST) && HAVE_DECL_PACKET_OTHERHOST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_OTHERHOST) == (3), "PACKET_OTHERHOST != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PACKET_OTHERHOST 3
+#endif
+#if defined(PACKET_OUTGOING) || (defined(HAVE_DECL_PACKET_OUTGOING) && HAVE_DECL_PACKET_OUTGOING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_OUTGOING) == (4), "PACKET_OUTGOING != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PACKET_OUTGOING 4
+#endif
+#if defined(PACKET_LOOPBACK) || (defined(HAVE_DECL_PACKET_LOOPBACK) && HAVE_DECL_PACKET_LOOPBACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_LOOPBACK) == (5), "PACKET_LOOPBACK != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PACKET_LOOPBACK 5
+#endif
+#if defined(PACKET_USER) || (defined(HAVE_DECL_PACKET_USER) && HAVE_DECL_PACKET_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_USER) == (6), "PACKET_USER != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PACKET_USER 6
+#endif
+#if defined(PACKET_KERNEL) || (defined(HAVE_DECL_PACKET_KERNEL) && HAVE_DECL_PACKET_KERNEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PACKET_KERNEL) == (7), "PACKET_KERNEL != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PACKET_KERNEL 7
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat af_packet_types in mpers mode
+
+# else
static
const struct xlat af_packet_types[] = {
-#if defined(PACKET_HOST) || (defined(HAVE_DECL_PACKET_HOST) && HAVE_DECL_PACKET_HOST)
- XLAT(PACKET_HOST),
-#endif
-#if defined(PACKET_BROADCAST) || (defined(HAVE_DECL_PACKET_BROADCAST) && HAVE_DECL_PACKET_BROADCAST)
- XLAT(PACKET_BROADCAST),
-#endif
-#if defined(PACKET_MULTICAST) || (defined(HAVE_DECL_PACKET_MULTICAST) && HAVE_DECL_PACKET_MULTICAST)
- XLAT(PACKET_MULTICAST),
-#endif
-#if defined(PACKET_OTHERHOST) || (defined(HAVE_DECL_PACKET_OTHERHOST) && HAVE_DECL_PACKET_OTHERHOST)
- XLAT(PACKET_OTHERHOST),
-#endif
-#if defined(PACKET_OUTGOING) || (defined(HAVE_DECL_PACKET_OUTGOING) && HAVE_DECL_PACKET_OUTGOING)
- XLAT(PACKET_OUTGOING),
-#endif
-#if defined(PACKET_LOOPBACK) || (defined(HAVE_DECL_PACKET_LOOPBACK) && HAVE_DECL_PACKET_LOOPBACK)
- XLAT(PACKET_LOOPBACK),
-#endif
-#if defined(PACKET_FASTROUTE) || (defined(HAVE_DECL_PACKET_FASTROUTE) && HAVE_DECL_PACKET_FASTROUTE)
- XLAT(PACKET_FASTROUTE),
-#endif
+ [PACKET_HOST] = XLAT(PACKET_HOST),
+ [PACKET_BROADCAST] = XLAT(PACKET_BROADCAST),
+ [PACKET_MULTICAST] = XLAT(PACKET_MULTICAST),
+ [PACKET_OTHERHOST] = XLAT(PACKET_OTHERHOST),
+ [PACKET_OUTGOING] = XLAT(PACKET_OUTGOING),
+ [PACKET_LOOPBACK] = XLAT(PACKET_LOOPBACK),
+ [PACKET_USER] = XLAT(PACKET_USER),
+ [PACKET_KERNEL] = XLAT(PACKET_KERNEL),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/af_packet_types.in b/xlat/af_packet_types.in
index 18cf655..68f7515 100644
--- a/xlat/af_packet_types.in
+++ b/xlat/af_packet_types.in
@@ -1,7 +1,9 @@
-PACKET_HOST
-PACKET_BROADCAST
-PACKET_MULTICAST
-PACKET_OTHERHOST
-PACKET_OUTGOING
-PACKET_LOOPBACK
-PACKET_FASTROUTE
+#value_indexed
+PACKET_HOST 0
+PACKET_BROADCAST 1
+PACKET_MULTICAST 2
+PACKET_OTHERHOST 3
+PACKET_OUTGOING 4
+PACKET_LOOPBACK 5
+PACKET_USER 6
+PACKET_KERNEL 7
diff --git a/xlat/archvals.h b/xlat/archvals.h
index f8fb9c1..2e5264a 100644
--- a/xlat/archvals.h
+++ b/xlat/archvals.h
@@ -1,37 +1,79 @@
/* Generated by ./xlat/gen.sh from ./xlat/archvals.in; do not edit. */
-#if !(defined(ARCH_SET_GS) || (defined(HAVE_DECL_ARCH_SET_GS) && HAVE_DECL_ARCH_SET_GS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ARCH_SET_GS) || (defined(HAVE_DECL_ARCH_SET_GS) && HAVE_DECL_ARCH_SET_GS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_SET_GS) == (0x1001), "ARCH_SET_GS != 0x1001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_SET_GS 0x1001
#endif
-#if !(defined(ARCH_SET_FS) || (defined(HAVE_DECL_ARCH_SET_FS) && HAVE_DECL_ARCH_SET_FS))
+#if defined(ARCH_SET_FS) || (defined(HAVE_DECL_ARCH_SET_FS) && HAVE_DECL_ARCH_SET_FS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_SET_FS) == (0x1002), "ARCH_SET_FS != 0x1002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_SET_FS 0x1002
#endif
-#if !(defined(ARCH_GET_FS) || (defined(HAVE_DECL_ARCH_GET_FS) && HAVE_DECL_ARCH_GET_FS))
+#if defined(ARCH_GET_FS) || (defined(HAVE_DECL_ARCH_GET_FS) && HAVE_DECL_ARCH_GET_FS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_GET_FS) == (0x1003), "ARCH_GET_FS != 0x1003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_GET_FS 0x1003
#endif
-#if !(defined(ARCH_GET_GS) || (defined(HAVE_DECL_ARCH_GET_GS) && HAVE_DECL_ARCH_GET_GS))
+#if defined(ARCH_GET_GS) || (defined(HAVE_DECL_ARCH_GET_GS) && HAVE_DECL_ARCH_GET_GS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_GET_GS) == (0x1004), "ARCH_GET_GS != 0x1004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_GET_GS 0x1004
#endif
-#if !(defined(ARCH_GET_CPUID) || (defined(HAVE_DECL_ARCH_GET_CPUID) && HAVE_DECL_ARCH_GET_CPUID))
+#if defined(ARCH_GET_CPUID) || (defined(HAVE_DECL_ARCH_GET_CPUID) && HAVE_DECL_ARCH_GET_CPUID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_GET_CPUID) == (0x1011), "ARCH_GET_CPUID != 0x1011");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_GET_CPUID 0x1011
#endif
-#if !(defined(ARCH_SET_CPUID) || (defined(HAVE_DECL_ARCH_SET_CPUID) && HAVE_DECL_ARCH_SET_CPUID))
+#if defined(ARCH_SET_CPUID) || (defined(HAVE_DECL_ARCH_SET_CPUID) && HAVE_DECL_ARCH_SET_CPUID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_SET_CPUID) == (0x1012), "ARCH_SET_CPUID != 0x1012");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_SET_CPUID 0x1012
#endif
-#if !(defined(ARCH_MAP_VDSO_X32) || (defined(HAVE_DECL_ARCH_MAP_VDSO_X32) && HAVE_DECL_ARCH_MAP_VDSO_X32))
+#if defined(ARCH_MAP_VDSO_X32) || (defined(HAVE_DECL_ARCH_MAP_VDSO_X32) && HAVE_DECL_ARCH_MAP_VDSO_X32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_MAP_VDSO_X32) == (0x2001), "ARCH_MAP_VDSO_X32 != 0x2001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_MAP_VDSO_X32 0x2001
#endif
-#if !(defined(ARCH_MAP_VDSO_32) || (defined(HAVE_DECL_ARCH_MAP_VDSO_32) && HAVE_DECL_ARCH_MAP_VDSO_32))
+#if defined(ARCH_MAP_VDSO_32) || (defined(HAVE_DECL_ARCH_MAP_VDSO_32) && HAVE_DECL_ARCH_MAP_VDSO_32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_MAP_VDSO_32) == (0x2002), "ARCH_MAP_VDSO_32 != 0x2002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_MAP_VDSO_32 0x2002
#endif
-#if !(defined(ARCH_MAP_VDSO_64) || (defined(HAVE_DECL_ARCH_MAP_VDSO_64) && HAVE_DECL_ARCH_MAP_VDSO_64))
+#if defined(ARCH_MAP_VDSO_64) || (defined(HAVE_DECL_ARCH_MAP_VDSO_64) && HAVE_DECL_ARCH_MAP_VDSO_64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARCH_MAP_VDSO_64) == (0x2003), "ARCH_MAP_VDSO_64 != 0x2003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ARCH_MAP_VDSO_64 0x2003
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat archvals in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat archvals in mpers mode
+
+# else
static
const struct xlat archvals[] = {
@@ -47,4 +89,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/arp_hardware_types.h b/xlat/arp_hardware_types.h
index 200456e..3da3fc5 100644
--- a/xlat/arp_hardware_types.h
+++ b/xlat/arp_hardware_types.h
@@ -1,207 +1,546 @@
/* Generated by ./xlat/gen.sh from ./xlat/arp_hardware_types.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-const struct xlat arp_hardware_types[] = {
#if defined(ARPHRD_NETROM) || (defined(HAVE_DECL_ARPHRD_NETROM) && HAVE_DECL_ARPHRD_NETROM)
- XLAT(ARPHRD_NETROM),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_NETROM) == (0), "ARPHRD_NETROM != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_NETROM 0
#endif
#if defined(ARPHRD_ETHER) || (defined(HAVE_DECL_ARPHRD_ETHER) && HAVE_DECL_ARPHRD_ETHER)
- XLAT(ARPHRD_ETHER),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_ETHER) == (1), "ARPHRD_ETHER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_ETHER 1
#endif
#if defined(ARPHRD_EETHER) || (defined(HAVE_DECL_ARPHRD_EETHER) && HAVE_DECL_ARPHRD_EETHER)
- XLAT(ARPHRD_EETHER),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_EETHER) == (2), "ARPHRD_EETHER != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_EETHER 2
#endif
#if defined(ARPHRD_AX25) || (defined(HAVE_DECL_ARPHRD_AX25) && HAVE_DECL_ARPHRD_AX25)
- XLAT(ARPHRD_AX25),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_AX25) == (3), "ARPHRD_AX25 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_AX25 3
#endif
#if defined(ARPHRD_PRONET) || (defined(HAVE_DECL_ARPHRD_PRONET) && HAVE_DECL_ARPHRD_PRONET)
- XLAT(ARPHRD_PRONET),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_PRONET) == (4), "ARPHRD_PRONET != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_PRONET 4
#endif
#if defined(ARPHRD_CHAOS) || (defined(HAVE_DECL_ARPHRD_CHAOS) && HAVE_DECL_ARPHRD_CHAOS)
- XLAT(ARPHRD_CHAOS),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_CHAOS) == (5), "ARPHRD_CHAOS != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_CHAOS 5
#endif
#if defined(ARPHRD_IEEE802) || (defined(HAVE_DECL_ARPHRD_IEEE802) && HAVE_DECL_ARPHRD_IEEE802)
- XLAT(ARPHRD_IEEE802),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE802) == (6), "ARPHRD_IEEE802 != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE802 6
#endif
#if defined(ARPHRD_ARCNET) || (defined(HAVE_DECL_ARPHRD_ARCNET) && HAVE_DECL_ARPHRD_ARCNET)
- XLAT(ARPHRD_ARCNET),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_ARCNET) == (7), "ARPHRD_ARCNET != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_ARCNET 7
#endif
#if defined(ARPHRD_APPLETLK) || (defined(HAVE_DECL_ARPHRD_APPLETLK) && HAVE_DECL_ARPHRD_APPLETLK)
- XLAT(ARPHRD_APPLETLK),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_APPLETLK) == (8), "ARPHRD_APPLETLK != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_APPLETLK 8
#endif
#if defined(ARPHRD_DLCI) || (defined(HAVE_DECL_ARPHRD_DLCI) && HAVE_DECL_ARPHRD_DLCI)
- XLAT(ARPHRD_DLCI),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_DLCI) == (15), "ARPHRD_DLCI != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_DLCI 15
#endif
#if defined(ARPHRD_ATM) || (defined(HAVE_DECL_ARPHRD_ATM) && HAVE_DECL_ARPHRD_ATM)
- XLAT(ARPHRD_ATM),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_ATM) == (19), "ARPHRD_ATM != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_ATM 19
#endif
#if defined(ARPHRD_METRICOM) || (defined(HAVE_DECL_ARPHRD_METRICOM) && HAVE_DECL_ARPHRD_METRICOM)
- XLAT(ARPHRD_METRICOM),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_METRICOM) == (23), "ARPHRD_METRICOM != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_METRICOM 23
#endif
#if defined(ARPHRD_IEEE1394) || (defined(HAVE_DECL_ARPHRD_IEEE1394) && HAVE_DECL_ARPHRD_IEEE1394)
- XLAT(ARPHRD_IEEE1394),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE1394) == (24), "ARPHRD_IEEE1394 != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE1394 24
#endif
#if defined(ARPHRD_EUI64) || (defined(HAVE_DECL_ARPHRD_EUI64) && HAVE_DECL_ARPHRD_EUI64)
- XLAT(ARPHRD_EUI64),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_EUI64) == (27), "ARPHRD_EUI64 != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_EUI64 27
#endif
#if defined(ARPHRD_INFINIBAND) || (defined(HAVE_DECL_ARPHRD_INFINIBAND) && HAVE_DECL_ARPHRD_INFINIBAND)
- XLAT(ARPHRD_INFINIBAND),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_INFINIBAND) == (32), "ARPHRD_INFINIBAND != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_INFINIBAND 32
#endif
#if defined(ARPHRD_SLIP) || (defined(HAVE_DECL_ARPHRD_SLIP) && HAVE_DECL_ARPHRD_SLIP)
- XLAT(ARPHRD_SLIP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_SLIP) == (256), "ARPHRD_SLIP != 256");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_SLIP 256
#endif
#if defined(ARPHRD_CSLIP) || (defined(HAVE_DECL_ARPHRD_CSLIP) && HAVE_DECL_ARPHRD_CSLIP)
- XLAT(ARPHRD_CSLIP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_CSLIP) == (257), "ARPHRD_CSLIP != 257");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_CSLIP 257
#endif
#if defined(ARPHRD_SLIP6) || (defined(HAVE_DECL_ARPHRD_SLIP6) && HAVE_DECL_ARPHRD_SLIP6)
- XLAT(ARPHRD_SLIP6),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_SLIP6) == (258), "ARPHRD_SLIP6 != 258");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_SLIP6 258
#endif
#if defined(ARPHRD_CSLIP6) || (defined(HAVE_DECL_ARPHRD_CSLIP6) && HAVE_DECL_ARPHRD_CSLIP6)
- XLAT(ARPHRD_CSLIP6),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_CSLIP6) == (259), "ARPHRD_CSLIP6 != 259");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_CSLIP6 259
#endif
#if defined(ARPHRD_RSRVD) || (defined(HAVE_DECL_ARPHRD_RSRVD) && HAVE_DECL_ARPHRD_RSRVD)
- XLAT(ARPHRD_RSRVD),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_RSRVD) == (260), "ARPHRD_RSRVD != 260");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_RSRVD 260
#endif
#if defined(ARPHRD_ADAPT) || (defined(HAVE_DECL_ARPHRD_ADAPT) && HAVE_DECL_ARPHRD_ADAPT)
- XLAT(ARPHRD_ADAPT),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_ADAPT) == (264), "ARPHRD_ADAPT != 264");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_ADAPT 264
#endif
#if defined(ARPHRD_ROSE) || (defined(HAVE_DECL_ARPHRD_ROSE) && HAVE_DECL_ARPHRD_ROSE)
- XLAT(ARPHRD_ROSE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_ROSE) == (270), "ARPHRD_ROSE != 270");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_ROSE 270
#endif
#if defined(ARPHRD_X25) || (defined(HAVE_DECL_ARPHRD_X25) && HAVE_DECL_ARPHRD_X25)
- XLAT(ARPHRD_X25),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_X25) == (271), "ARPHRD_X25 != 271");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_X25 271
#endif
#if defined(ARPHRD_HWX25) || (defined(HAVE_DECL_ARPHRD_HWX25) && HAVE_DECL_ARPHRD_HWX25)
- XLAT(ARPHRD_HWX25),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_HWX25) == (272), "ARPHRD_HWX25 != 272");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_HWX25 272
#endif
#if defined(ARPHRD_CAN) || (defined(HAVE_DECL_ARPHRD_CAN) && HAVE_DECL_ARPHRD_CAN)
- XLAT(ARPHRD_CAN),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_CAN) == (280), "ARPHRD_CAN != 280");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_CAN 280
#endif
#if defined(ARPHRD_PPP) || (defined(HAVE_DECL_ARPHRD_PPP) && HAVE_DECL_ARPHRD_PPP)
- XLAT(ARPHRD_PPP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_PPP) == (512), "ARPHRD_PPP != 512");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_PPP 512
#endif
#if defined(ARPHRD_CISCO) || (defined(HAVE_DECL_ARPHRD_CISCO) && HAVE_DECL_ARPHRD_CISCO)
- XLAT(ARPHRD_CISCO),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_CISCO) == (513), "ARPHRD_CISCO != 513");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_CISCO 513
#endif
#if defined(ARPHRD_LAPB) || (defined(HAVE_DECL_ARPHRD_LAPB) && HAVE_DECL_ARPHRD_LAPB)
- XLAT(ARPHRD_LAPB),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_LAPB) == (516), "ARPHRD_LAPB != 516");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_LAPB 516
#endif
#if defined(ARPHRD_DDCMP) || (defined(HAVE_DECL_ARPHRD_DDCMP) && HAVE_DECL_ARPHRD_DDCMP)
- XLAT(ARPHRD_DDCMP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_DDCMP) == (517), "ARPHRD_DDCMP != 517");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_DDCMP 517
#endif
#if defined(ARPHRD_RAWHDLC) || (defined(HAVE_DECL_ARPHRD_RAWHDLC) && HAVE_DECL_ARPHRD_RAWHDLC)
- XLAT(ARPHRD_RAWHDLC),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_RAWHDLC) == (518), "ARPHRD_RAWHDLC != 518");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_RAWHDLC 518
#endif
#if defined(ARPHRD_RAWIP) || (defined(HAVE_DECL_ARPHRD_RAWIP) && HAVE_DECL_ARPHRD_RAWIP)
- XLAT(ARPHRD_RAWIP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_RAWIP) == (519), "ARPHRD_RAWIP != 519");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_RAWIP 519
#endif
#if defined(ARPHRD_TUNNEL) || (defined(HAVE_DECL_ARPHRD_TUNNEL) && HAVE_DECL_ARPHRD_TUNNEL)
- XLAT(ARPHRD_TUNNEL),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_TUNNEL) == (768), "ARPHRD_TUNNEL != 768");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_TUNNEL 768
#endif
#if defined(ARPHRD_TUNNEL6) || (defined(HAVE_DECL_ARPHRD_TUNNEL6) && HAVE_DECL_ARPHRD_TUNNEL6)
- XLAT(ARPHRD_TUNNEL6),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_TUNNEL6) == (769), "ARPHRD_TUNNEL6 != 769");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_TUNNEL6 769
#endif
#if defined(ARPHRD_FRAD) || (defined(HAVE_DECL_ARPHRD_FRAD) && HAVE_DECL_ARPHRD_FRAD)
- XLAT(ARPHRD_FRAD),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_FRAD) == (770), "ARPHRD_FRAD != 770");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_FRAD 770
#endif
#if defined(ARPHRD_SKIP) || (defined(HAVE_DECL_ARPHRD_SKIP) && HAVE_DECL_ARPHRD_SKIP)
- XLAT(ARPHRD_SKIP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_SKIP) == (771), "ARPHRD_SKIP != 771");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_SKIP 771
#endif
#if defined(ARPHRD_LOOPBACK) || (defined(HAVE_DECL_ARPHRD_LOOPBACK) && HAVE_DECL_ARPHRD_LOOPBACK)
- XLAT(ARPHRD_LOOPBACK),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_LOOPBACK) == (772), "ARPHRD_LOOPBACK != 772");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_LOOPBACK 772
#endif
#if defined(ARPHRD_LOCALTLK) || (defined(HAVE_DECL_ARPHRD_LOCALTLK) && HAVE_DECL_ARPHRD_LOCALTLK)
- XLAT(ARPHRD_LOCALTLK),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_LOCALTLK) == (773), "ARPHRD_LOCALTLK != 773");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_LOCALTLK 773
#endif
#if defined(ARPHRD_FDDI) || (defined(HAVE_DECL_ARPHRD_FDDI) && HAVE_DECL_ARPHRD_FDDI)
- XLAT(ARPHRD_FDDI),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_FDDI) == (774), "ARPHRD_FDDI != 774");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_FDDI 774
#endif
#if defined(ARPHRD_BIF) || (defined(HAVE_DECL_ARPHRD_BIF) && HAVE_DECL_ARPHRD_BIF)
- XLAT(ARPHRD_BIF),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_BIF) == (775), "ARPHRD_BIF != 775");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_BIF 775
#endif
#if defined(ARPHRD_SIT) || (defined(HAVE_DECL_ARPHRD_SIT) && HAVE_DECL_ARPHRD_SIT)
- XLAT(ARPHRD_SIT),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_SIT) == (776), "ARPHRD_SIT != 776");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_SIT 776
#endif
#if defined(ARPHRD_IPDDP) || (defined(HAVE_DECL_ARPHRD_IPDDP) && HAVE_DECL_ARPHRD_IPDDP)
- XLAT(ARPHRD_IPDDP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IPDDP) == (777), "ARPHRD_IPDDP != 777");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IPDDP 777
#endif
#if defined(ARPHRD_IPGRE) || (defined(HAVE_DECL_ARPHRD_IPGRE) && HAVE_DECL_ARPHRD_IPGRE)
- XLAT(ARPHRD_IPGRE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IPGRE) == (778), "ARPHRD_IPGRE != 778");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IPGRE 778
#endif
#if defined(ARPHRD_PIMREG) || (defined(HAVE_DECL_ARPHRD_PIMREG) && HAVE_DECL_ARPHRD_PIMREG)
- XLAT(ARPHRD_PIMREG),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_PIMREG) == (779), "ARPHRD_PIMREG != 779");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_PIMREG 779
#endif
#if defined(ARPHRD_HIPPI) || (defined(HAVE_DECL_ARPHRD_HIPPI) && HAVE_DECL_ARPHRD_HIPPI)
- XLAT(ARPHRD_HIPPI),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_HIPPI) == (780), "ARPHRD_HIPPI != 780");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_HIPPI 780
#endif
#if defined(ARPHRD_ASH) || (defined(HAVE_DECL_ARPHRD_ASH) && HAVE_DECL_ARPHRD_ASH)
- XLAT(ARPHRD_ASH),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_ASH) == (781), "ARPHRD_ASH != 781");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_ASH 781
#endif
#if defined(ARPHRD_ECONET) || (defined(HAVE_DECL_ARPHRD_ECONET) && HAVE_DECL_ARPHRD_ECONET)
- XLAT(ARPHRD_ECONET),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_ECONET) == (782), "ARPHRD_ECONET != 782");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_ECONET 782
#endif
#if defined(ARPHRD_IRDA) || (defined(HAVE_DECL_ARPHRD_IRDA) && HAVE_DECL_ARPHRD_IRDA)
- XLAT(ARPHRD_IRDA),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IRDA) == (783), "ARPHRD_IRDA != 783");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IRDA 783
#endif
#if defined(ARPHRD_FCPP) || (defined(HAVE_DECL_ARPHRD_FCPP) && HAVE_DECL_ARPHRD_FCPP)
- XLAT(ARPHRD_FCPP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_FCPP) == (784), "ARPHRD_FCPP != 784");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_FCPP 784
#endif
#if defined(ARPHRD_FCAL) || (defined(HAVE_DECL_ARPHRD_FCAL) && HAVE_DECL_ARPHRD_FCAL)
- XLAT(ARPHRD_FCAL),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_FCAL) == (785), "ARPHRD_FCAL != 785");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_FCAL 785
#endif
#if defined(ARPHRD_FCPL) || (defined(HAVE_DECL_ARPHRD_FCPL) && HAVE_DECL_ARPHRD_FCPL)
- XLAT(ARPHRD_FCPL),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_FCPL) == (786), "ARPHRD_FCPL != 786");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_FCPL 786
#endif
#if defined(ARPHRD_FCFABRIC) || (defined(HAVE_DECL_ARPHRD_FCFABRIC) && HAVE_DECL_ARPHRD_FCFABRIC)
- XLAT(ARPHRD_FCFABRIC),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_FCFABRIC) == (787), "ARPHRD_FCFABRIC != 787");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_FCFABRIC 787
#endif
#if defined(ARPHRD_IEEE802_TR) || (defined(HAVE_DECL_ARPHRD_IEEE802_TR) && HAVE_DECL_ARPHRD_IEEE802_TR)
- XLAT(ARPHRD_IEEE802_TR),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE802_TR) == (800), "ARPHRD_IEEE802_TR != 800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE802_TR 800
#endif
#if defined(ARPHRD_IEEE80211) || (defined(HAVE_DECL_ARPHRD_IEEE80211) && HAVE_DECL_ARPHRD_IEEE80211)
- XLAT(ARPHRD_IEEE80211),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE80211) == (801), "ARPHRD_IEEE80211 != 801");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE80211 801
#endif
#if defined(ARPHRD_IEEE80211_PRISM) || (defined(HAVE_DECL_ARPHRD_IEEE80211_PRISM) && HAVE_DECL_ARPHRD_IEEE80211_PRISM)
- XLAT(ARPHRD_IEEE80211_PRISM),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE80211_PRISM) == (802), "ARPHRD_IEEE80211_PRISM != 802");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE80211_PRISM 802
#endif
#if defined(ARPHRD_IEEE80211_RADIOTAP) || (defined(HAVE_DECL_ARPHRD_IEEE80211_RADIOTAP) && HAVE_DECL_ARPHRD_IEEE80211_RADIOTAP)
- XLAT(ARPHRD_IEEE80211_RADIOTAP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE80211_RADIOTAP) == (803), "ARPHRD_IEEE80211_RADIOTAP != 803");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE80211_RADIOTAP 803
#endif
#if defined(ARPHRD_IEEE802154) || (defined(HAVE_DECL_ARPHRD_IEEE802154) && HAVE_DECL_ARPHRD_IEEE802154)
- XLAT(ARPHRD_IEEE802154),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE802154) == (804), "ARPHRD_IEEE802154 != 804");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE802154 804
#endif
#if defined(ARPHRD_IEEE802154_MONITOR) || (defined(HAVE_DECL_ARPHRD_IEEE802154_MONITOR) && HAVE_DECL_ARPHRD_IEEE802154_MONITOR)
- XLAT(ARPHRD_IEEE802154_MONITOR),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IEEE802154_MONITOR) == (805), "ARPHRD_IEEE802154_MONITOR != 805");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IEEE802154_MONITOR 805
#endif
#if defined(ARPHRD_PHONET) || (defined(HAVE_DECL_ARPHRD_PHONET) && HAVE_DECL_ARPHRD_PHONET)
- XLAT(ARPHRD_PHONET),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_PHONET) == (820), "ARPHRD_PHONET != 820");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_PHONET 820
#endif
#if defined(ARPHRD_PHONET_PIPE) || (defined(HAVE_DECL_ARPHRD_PHONET_PIPE) && HAVE_DECL_ARPHRD_PHONET_PIPE)
- XLAT(ARPHRD_PHONET_PIPE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_PHONET_PIPE) == (821), "ARPHRD_PHONET_PIPE != 821");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_PHONET_PIPE 821
#endif
#if defined(ARPHRD_CAIF) || (defined(HAVE_DECL_ARPHRD_CAIF) && HAVE_DECL_ARPHRD_CAIF)
- XLAT(ARPHRD_CAIF),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_CAIF) == (822), "ARPHRD_CAIF != 822");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_CAIF 822
#endif
#if defined(ARPHRD_IP6GRE) || (defined(HAVE_DECL_ARPHRD_IP6GRE) && HAVE_DECL_ARPHRD_IP6GRE)
- XLAT(ARPHRD_IP6GRE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_IP6GRE) == (823), "ARPHRD_IP6GRE != 823");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_IP6GRE 823
#endif
#if defined(ARPHRD_NETLINK) || (defined(HAVE_DECL_ARPHRD_NETLINK) && HAVE_DECL_ARPHRD_NETLINK)
- XLAT(ARPHRD_NETLINK),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_NETLINK) == (824), "ARPHRD_NETLINK != 824");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_NETLINK 824
#endif
#if defined(ARPHRD_6LOWPAN) || (defined(HAVE_DECL_ARPHRD_6LOWPAN) && HAVE_DECL_ARPHRD_6LOWPAN)
- XLAT(ARPHRD_6LOWPAN),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_6LOWPAN) == (825), "ARPHRD_6LOWPAN != 825");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_6LOWPAN 825
#endif
#if defined(ARPHRD_VSOCKMON) || (defined(HAVE_DECL_ARPHRD_VSOCKMON) && HAVE_DECL_ARPHRD_VSOCKMON)
- XLAT(ARPHRD_VSOCKMON),
-#endif
-#if defined(ARPHRD_VOID) || (defined(HAVE_DECL_ARPHRD_VOID) && HAVE_DECL_ARPHRD_VOID)
- XLAT(ARPHRD_VOID),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_VSOCKMON) == (826), "ARPHRD_VSOCKMON != 826");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_VSOCKMON 826
#endif
#if defined(ARPHRD_NONE) || (defined(HAVE_DECL_ARPHRD_NONE) && HAVE_DECL_ARPHRD_NONE)
- XLAT(ARPHRD_NONE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_NONE) == (0xFFFE), "ARPHRD_NONE != 0xFFFE");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_NONE 0xFFFE
#endif
+#if defined(ARPHRD_VOID) || (defined(HAVE_DECL_ARPHRD_VOID) && HAVE_DECL_ARPHRD_VOID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ARPHRD_VOID) == (0xFFFF), "ARPHRD_VOID != 0xFFFF");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ARPHRD_VOID 0xFFFF
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
+
+const struct xlat arp_hardware_types[] = {
+
+ XLAT(ARPHRD_NETROM),
+ XLAT(ARPHRD_ETHER),
+ XLAT(ARPHRD_EETHER),
+ XLAT(ARPHRD_AX25),
+ XLAT(ARPHRD_PRONET),
+ XLAT(ARPHRD_CHAOS),
+ XLAT(ARPHRD_IEEE802),
+ XLAT(ARPHRD_ARCNET),
+ XLAT(ARPHRD_APPLETLK),
+ XLAT(ARPHRD_DLCI),
+ XLAT(ARPHRD_ATM),
+ XLAT(ARPHRD_METRICOM),
+ XLAT(ARPHRD_IEEE1394),
+ XLAT(ARPHRD_EUI64),
+ XLAT(ARPHRD_INFINIBAND),
+ XLAT(ARPHRD_SLIP),
+ XLAT(ARPHRD_CSLIP),
+ XLAT(ARPHRD_SLIP6),
+ XLAT(ARPHRD_CSLIP6),
+ XLAT(ARPHRD_RSRVD),
+ XLAT(ARPHRD_ADAPT),
+ XLAT(ARPHRD_ROSE),
+ XLAT(ARPHRD_X25),
+ XLAT(ARPHRD_HWX25),
+ XLAT(ARPHRD_CAN),
+ XLAT(ARPHRD_PPP),
+ XLAT(ARPHRD_CISCO),
+ XLAT(ARPHRD_LAPB),
+ XLAT(ARPHRD_DDCMP),
+ XLAT(ARPHRD_RAWHDLC),
+ XLAT(ARPHRD_RAWIP),
+ XLAT(ARPHRD_TUNNEL),
+ XLAT(ARPHRD_TUNNEL6),
+ XLAT(ARPHRD_FRAD),
+ XLAT(ARPHRD_SKIP),
+ XLAT(ARPHRD_LOOPBACK),
+ XLAT(ARPHRD_LOCALTLK),
+ XLAT(ARPHRD_FDDI),
+ XLAT(ARPHRD_BIF),
+ XLAT(ARPHRD_SIT),
+ XLAT(ARPHRD_IPDDP),
+ XLAT(ARPHRD_IPGRE),
+ XLAT(ARPHRD_PIMREG),
+ XLAT(ARPHRD_HIPPI),
+ XLAT(ARPHRD_ASH),
+ XLAT(ARPHRD_ECONET),
+ XLAT(ARPHRD_IRDA),
+ XLAT(ARPHRD_FCPP),
+ XLAT(ARPHRD_FCAL),
+ XLAT(ARPHRD_FCPL),
+ XLAT(ARPHRD_FCFABRIC),
+ XLAT(ARPHRD_IEEE802_TR),
+ XLAT(ARPHRD_IEEE80211),
+ XLAT(ARPHRD_IEEE80211_PRISM),
+ XLAT(ARPHRD_IEEE80211_RADIOTAP),
+ XLAT(ARPHRD_IEEE802154),
+ XLAT(ARPHRD_IEEE802154_MONITOR),
+ XLAT(ARPHRD_PHONET),
+ XLAT(ARPHRD_PHONET_PIPE),
+ XLAT(ARPHRD_CAIF),
+ XLAT(ARPHRD_IP6GRE),
+ XLAT(ARPHRD_NETLINK),
+ XLAT(ARPHRD_6LOWPAN),
+ XLAT(ARPHRD_VSOCKMON),
+ XLAT(ARPHRD_NONE),
+ XLAT(ARPHRD_VOID),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/arp_hardware_types.in b/xlat/arp_hardware_types.in
index e307455..3d81314 100644
--- a/xlat/arp_hardware_types.in
+++ b/xlat/arp_hardware_types.in
@@ -1,66 +1,67 @@
-ARPHRD_NETROM
-ARPHRD_ETHER
-ARPHRD_EETHER
-ARPHRD_AX25
-ARPHRD_PRONET
-ARPHRD_CHAOS
-ARPHRD_IEEE802
-ARPHRD_ARCNET
-ARPHRD_APPLETLK
-ARPHRD_DLCI
-ARPHRD_ATM
-ARPHRD_METRICOM
-ARPHRD_IEEE1394
-ARPHRD_EUI64
-ARPHRD_INFINIBAND
-ARPHRD_SLIP
-ARPHRD_CSLIP
-ARPHRD_SLIP6
-ARPHRD_CSLIP6
-ARPHRD_RSRVD
-ARPHRD_ADAPT
-ARPHRD_ROSE
-ARPHRD_X25
-ARPHRD_HWX25
-ARPHRD_CAN
-ARPHRD_PPP
-ARPHRD_CISCO
-ARPHRD_LAPB
-ARPHRD_DDCMP
-ARPHRD_RAWHDLC
-ARPHRD_RAWIP
-ARPHRD_TUNNEL
-ARPHRD_TUNNEL6
-ARPHRD_FRAD
-ARPHRD_SKIP
-ARPHRD_LOOPBACK
-ARPHRD_LOCALTLK
-ARPHRD_FDDI
-ARPHRD_BIF
-ARPHRD_SIT
-ARPHRD_IPDDP
-ARPHRD_IPGRE
-ARPHRD_PIMREG
-ARPHRD_HIPPI
-ARPHRD_ASH
-ARPHRD_ECONET
-ARPHRD_IRDA
-ARPHRD_FCPP
-ARPHRD_FCAL
-ARPHRD_FCPL
-ARPHRD_FCFABRIC
-ARPHRD_IEEE802_TR
-ARPHRD_IEEE80211
-ARPHRD_IEEE80211_PRISM
-ARPHRD_IEEE80211_RADIOTAP
-ARPHRD_IEEE802154
-ARPHRD_IEEE802154_MONITOR
-ARPHRD_PHONET
-ARPHRD_PHONET_PIPE
-ARPHRD_CAIF
-ARPHRD_IP6GRE
-ARPHRD_NETLINK
-ARPHRD_6LOWPAN
-ARPHRD_VSOCKMON
-ARPHRD_VOID
-ARPHRD_NONE
+/* sort -k2,2g */
+ARPHRD_NETROM 0
+ARPHRD_ETHER 1
+ARPHRD_EETHER 2
+ARPHRD_AX25 3
+ARPHRD_PRONET 4
+ARPHRD_CHAOS 5
+ARPHRD_IEEE802 6
+ARPHRD_ARCNET 7
+ARPHRD_APPLETLK 8
+ARPHRD_DLCI 15
+ARPHRD_ATM 19
+ARPHRD_METRICOM 23
+ARPHRD_IEEE1394 24
+ARPHRD_EUI64 27
+ARPHRD_INFINIBAND 32
+ARPHRD_SLIP 256
+ARPHRD_CSLIP 257
+ARPHRD_SLIP6 258
+ARPHRD_CSLIP6 259
+ARPHRD_RSRVD 260
+ARPHRD_ADAPT 264
+ARPHRD_ROSE 270
+ARPHRD_X25 271
+ARPHRD_HWX25 272
+ARPHRD_CAN 280
+ARPHRD_PPP 512
+ARPHRD_CISCO 513
+ARPHRD_LAPB 516
+ARPHRD_DDCMP 517
+ARPHRD_RAWHDLC 518
+ARPHRD_RAWIP 519
+ARPHRD_TUNNEL 768
+ARPHRD_TUNNEL6 769
+ARPHRD_FRAD 770
+ARPHRD_SKIP 771
+ARPHRD_LOOPBACK 772
+ARPHRD_LOCALTLK 773
+ARPHRD_FDDI 774
+ARPHRD_BIF 775
+ARPHRD_SIT 776
+ARPHRD_IPDDP 777
+ARPHRD_IPGRE 778
+ARPHRD_PIMREG 779
+ARPHRD_HIPPI 780
+ARPHRD_ASH 781
+ARPHRD_ECONET 782
+ARPHRD_IRDA 783
+ARPHRD_FCPP 784
+ARPHRD_FCAL 785
+ARPHRD_FCPL 786
+ARPHRD_FCFABRIC 787
+ARPHRD_IEEE802_TR 800
+ARPHRD_IEEE80211 801
+ARPHRD_IEEE80211_PRISM 802
+ARPHRD_IEEE80211_RADIOTAP 803
+ARPHRD_IEEE802154 804
+ARPHRD_IEEE802154_MONITOR 805
+ARPHRD_PHONET 820
+ARPHRD_PHONET_PIPE 821
+ARPHRD_CAIF 822
+ARPHRD_IP6GRE 823
+ARPHRD_NETLINK 824
+ARPHRD_6LOWPAN 825
+ARPHRD_VSOCKMON 826
+ARPHRD_NONE 0xFFFE
+ARPHRD_VOID 0xFFFF
diff --git a/xlat/at_flags.h b/xlat/at_flags.h
index 5bebc0b..bb16a8e 100644
--- a/xlat/at_flags.h
+++ b/xlat/at_flags.h
@@ -1,21 +1,47 @@
/* Generated by ./xlat/gen.sh from ./xlat/at_flags.in; do not edit. */
-#if !(defined(AT_SYMLINK_NOFOLLOW) || (defined(HAVE_DECL_AT_SYMLINK_NOFOLLOW) && HAVE_DECL_AT_SYMLINK_NOFOLLOW))
+
+#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_REMOVEDIR) || (defined(HAVE_DECL_AT_REMOVEDIR) && HAVE_DECL_AT_REMOVEDIR))
+#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))
+#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))
+#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))
+#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 IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat at_flags[] = {
XLAT(AT_SYMLINK_NOFOLLOW),
@@ -26,4 +52,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/at_statx_sync_types.h b/xlat/at_statx_sync_types.h
index 4babb01..2850d53 100644
--- a/xlat/at_statx_sync_types.h
+++ b/xlat/at_statx_sync_types.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/at_statx_sync_types.in; do not edit. */
-#if !(defined(AT_STATX_SYNC_AS_STAT) || (defined(HAVE_DECL_AT_STATX_SYNC_AS_STAT) && HAVE_DECL_AT_STATX_SYNC_AS_STAT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(AT_STATX_SYNC_AS_STAT) || (defined(HAVE_DECL_AT_STATX_SYNC_AS_STAT) && HAVE_DECL_AT_STATX_SYNC_AS_STAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AT_STATX_SYNC_AS_STAT) == (0x0000), "AT_STATX_SYNC_AS_STAT != 0x0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AT_STATX_SYNC_AS_STAT 0x0000
#endif
-#if !(defined(AT_STATX_FORCE_SYNC) || (defined(HAVE_DECL_AT_STATX_FORCE_SYNC) && HAVE_DECL_AT_STATX_FORCE_SYNC))
+#if defined(AT_STATX_FORCE_SYNC) || (defined(HAVE_DECL_AT_STATX_FORCE_SYNC) && HAVE_DECL_AT_STATX_FORCE_SYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AT_STATX_FORCE_SYNC) == (0x2000), "AT_STATX_FORCE_SYNC != 0x2000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AT_STATX_FORCE_SYNC 0x2000
#endif
-#if !(defined(AT_STATX_DONT_SYNC) || (defined(HAVE_DECL_AT_STATX_DONT_SYNC) && HAVE_DECL_AT_STATX_DONT_SYNC))
+#if defined(AT_STATX_DONT_SYNC) || (defined(HAVE_DECL_AT_STATX_DONT_SYNC) && HAVE_DECL_AT_STATX_DONT_SYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AT_STATX_DONT_SYNC) == (0x4000), "AT_STATX_DONT_SYNC != 0x4000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AT_STATX_DONT_SYNC 0x4000
#endif
-#if !(defined(AT_STATX_SYNC_TYPE) || (defined(HAVE_DECL_AT_STATX_SYNC_TYPE) && HAVE_DECL_AT_STATX_SYNC_TYPE))
+#if defined(AT_STATX_SYNC_TYPE) || (defined(HAVE_DECL_AT_STATX_SYNC_TYPE) && HAVE_DECL_AT_STATX_SYNC_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AT_STATX_SYNC_TYPE) == (0x6000), "AT_STATX_SYNC_TYPE != 0x6000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AT_STATX_SYNC_TYPE 0x6000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat at_statx_sync_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat at_statx_sync_types in mpers mode
+
+# else
static
const struct xlat at_statx_sync_types[] = {
@@ -28,4 +50,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/atomic_ops.h b/xlat/atomic_ops.h
index 224dfea..17e0323 100644
--- a/xlat/atomic_ops.h
+++ b/xlat/atomic_ops.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/atomic_ops.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat atomic_ops in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat atomic_ops in mpers mode
+
+# else
static
const struct xlat atomic_ops[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/audit_arch.h b/xlat/audit_arch.h
index 7883fa8..13928d9 100644
--- a/xlat/audit_arch.h
+++ b/xlat/audit_arch.h
@@ -1,4 +1,8 @@
/* Generated by ./xlat/gen.sh from ./xlat/audit_arch.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
#ifdef EM_ARM
#endif
#ifdef EM_FRV
@@ -8,15 +12,17 @@
#ifdef EM_OPENRISC
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat audit_arch[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat audit_arch[] = {
#if defined(AUDIT_ARCH_AARCH64) || (defined(HAVE_DECL_AUDIT_ARCH_AARCH64) && HAVE_DECL_AUDIT_ARCH_AARCH64)
@@ -126,4 +132,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/baud_options.h b/xlat/baud_options.h
index 0ea7336..62e706f 100644
--- a/xlat/baud_options.h
+++ b/xlat/baud_options.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/baud_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat baud_options in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat baud_options in mpers mode
+
+# else
static
const struct xlat baud_options[] = {
@@ -110,4 +116,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bdaddr_types.h b/xlat/bdaddr_types.h
new file mode 100644
index 0000000..110ee4d
--- /dev/null
+++ b/xlat/bdaddr_types.h
@@ -0,0 +1,46 @@
+/* Generated by ./xlat/gen.sh from ./xlat/bdaddr_types.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BDADDR_BREDR) || (defined(HAVE_DECL_BDADDR_BREDR) && HAVE_DECL_BDADDR_BREDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BDADDR_BREDR) == (0), "BDADDR_BREDR != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BDADDR_BREDR 0
+#endif
+#if defined(BDADDR_LE_PUBLIC) || (defined(HAVE_DECL_BDADDR_LE_PUBLIC) && HAVE_DECL_BDADDR_LE_PUBLIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BDADDR_LE_PUBLIC) == (1), "BDADDR_LE_PUBLIC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BDADDR_LE_PUBLIC 1
+#endif
+#if defined(BDADDR_LE_RANDOM) || (defined(HAVE_DECL_BDADDR_LE_RANDOM) && HAVE_DECL_BDADDR_LE_RANDOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BDADDR_LE_RANDOM) == (2), "BDADDR_LE_RANDOM != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BDADDR_LE_RANDOM 2
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bdaddr_types in mpers mode
+
+# else
+
+static
+const struct xlat bdaddr_types[] = {
+ [BDADDR_BREDR] = XLAT(BDADDR_BREDR),
+ [BDADDR_LE_PUBLIC] = XLAT(BDADDR_LE_PUBLIC),
+ [BDADDR_LE_RANDOM] = XLAT(BDADDR_LE_RANDOM),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bdaddr_types.in b/xlat/bdaddr_types.in
new file mode 100644
index 0000000..b81b6fc
--- /dev/null
+++ b/xlat/bdaddr_types.in
@@ -0,0 +1,4 @@
+#value_indexed
+BDADDR_BREDR 0
+BDADDR_LE_PUBLIC 1
+BDADDR_LE_RANDOM 2
diff --git a/xlat/blkpg_ops.h b/xlat/blkpg_ops.h
index bc36705..81171dc 100644
--- a/xlat/blkpg_ops.h
+++ b/xlat/blkpg_ops.h
@@ -1,23 +1,41 @@
/* Generated by ./xlat/gen.sh from ./xlat/blkpg_ops.in; do not edit. */
-#if !(defined(BLKPG_ADD_PARTITION) || (defined(HAVE_DECL_BLKPG_ADD_PARTITION) && HAVE_DECL_BLKPG_ADD_PARTITION))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BLKPG_ADD_PARTITION) || (defined(HAVE_DECL_BLKPG_ADD_PARTITION) && HAVE_DECL_BLKPG_ADD_PARTITION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BLKPG_ADD_PARTITION) == (1), "BLKPG_ADD_PARTITION != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BLKPG_ADD_PARTITION 1
#endif
-#if !(defined(BLKPG_DEL_PARTITION) || (defined(HAVE_DECL_BLKPG_DEL_PARTITION) && HAVE_DECL_BLKPG_DEL_PARTITION))
+#if defined(BLKPG_DEL_PARTITION) || (defined(HAVE_DECL_BLKPG_DEL_PARTITION) && HAVE_DECL_BLKPG_DEL_PARTITION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BLKPG_DEL_PARTITION) == (2), "BLKPG_DEL_PARTITION != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BLKPG_DEL_PARTITION 2
#endif
-#if !(defined(BLKPG_RESIZE_PARTITION) || (defined(HAVE_DECL_BLKPG_RESIZE_PARTITION) && HAVE_DECL_BLKPG_RESIZE_PARTITION))
+#if defined(BLKPG_RESIZE_PARTITION) || (defined(HAVE_DECL_BLKPG_RESIZE_PARTITION) && HAVE_DECL_BLKPG_RESIZE_PARTITION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BLKPG_RESIZE_PARTITION) == (3), "BLKPG_RESIZE_PARTITION != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BLKPG_RESIZE_PARTITION 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat blkpg_ops[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat blkpg_ops[] = {
XLAT(BLKPG_ADD_PARTITION),
XLAT(BLKPG_DEL_PARTITION),
@@ -25,4 +43,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bluetooth_l2_cid.h b/xlat/bluetooth_l2_cid.h
new file mode 100644
index 0000000..654e5aa
--- /dev/null
+++ b/xlat/bluetooth_l2_cid.h
@@ -0,0 +1,103 @@
+/* Generated by ./xlat/gen.sh from ./xlat/bluetooth_l2_cid.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(L2CAP_CID_SIGNALING) || (defined(HAVE_DECL_L2CAP_CID_SIGNALING) && HAVE_DECL_L2CAP_CID_SIGNALING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_SIGNALING) == (0x0001), "L2CAP_CID_SIGNALING != 0x0001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_SIGNALING 0x0001
+#endif
+#if defined(L2CAP_CID_CONN_LESS) || (defined(HAVE_DECL_L2CAP_CID_CONN_LESS) && HAVE_DECL_L2CAP_CID_CONN_LESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_CONN_LESS) == (0x0002), "L2CAP_CID_CONN_LESS != 0x0002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_CONN_LESS 0x0002
+#endif
+#if defined(L2CAP_CID_A2MP) || (defined(HAVE_DECL_L2CAP_CID_A2MP) && HAVE_DECL_L2CAP_CID_A2MP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_A2MP) == (0x0003), "L2CAP_CID_A2MP != 0x0003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_A2MP 0x0003
+#endif
+#if defined(L2CAP_CID_ATT) || (defined(HAVE_DECL_L2CAP_CID_ATT) && HAVE_DECL_L2CAP_CID_ATT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_ATT) == (0x0004), "L2CAP_CID_ATT != 0x0004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_ATT 0x0004
+#endif
+#if defined(L2CAP_CID_LE_SIGNALING) || (defined(HAVE_DECL_L2CAP_CID_LE_SIGNALING) && HAVE_DECL_L2CAP_CID_LE_SIGNALING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_LE_SIGNALING) == (0x0005), "L2CAP_CID_LE_SIGNALING != 0x0005");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_LE_SIGNALING 0x0005
+#endif
+#if defined(L2CAP_CID_SMP) || (defined(HAVE_DECL_L2CAP_CID_SMP) && HAVE_DECL_L2CAP_CID_SMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_SMP) == (0x0006), "L2CAP_CID_SMP != 0x0006");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_SMP 0x0006
+#endif
+#if defined(L2CAP_CID_SMP_BREDR) || (defined(HAVE_DECL_L2CAP_CID_SMP_BREDR) && HAVE_DECL_L2CAP_CID_SMP_BREDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_SMP_BREDR) == (0x0007), "L2CAP_CID_SMP_BREDR != 0x0007");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_SMP_BREDR 0x0007
+#endif
+#if defined(L2CAP_CID_DYN_START) || (defined(HAVE_DECL_L2CAP_CID_DYN_START) && HAVE_DECL_L2CAP_CID_DYN_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_DYN_START) == (0x0040), "L2CAP_CID_DYN_START != 0x0040");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_DYN_START 0x0040
+#endif
+#if defined(L2CAP_CID_LE_DYN_END) || (defined(HAVE_DECL_L2CAP_CID_LE_DYN_END) && HAVE_DECL_L2CAP_CID_LE_DYN_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_LE_DYN_END) == (0x007f), "L2CAP_CID_LE_DYN_END != 0x007f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_LE_DYN_END 0x007f
+#endif
+#if defined(L2CAP_CID_DYN_END) || (defined(HAVE_DECL_L2CAP_CID_DYN_END) && HAVE_DECL_L2CAP_CID_DYN_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_CID_DYN_END) == (0xffff), "L2CAP_CID_DYN_END != 0xffff");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_CID_DYN_END 0xffff
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bluetooth_l2_cid in mpers mode
+
+# else
+
+static
+const struct xlat bluetooth_l2_cid[] = {
+
+ XLAT(L2CAP_CID_SIGNALING),
+ XLAT(L2CAP_CID_CONN_LESS),
+ XLAT(L2CAP_CID_A2MP),
+ XLAT(L2CAP_CID_ATT),
+ XLAT(L2CAP_CID_LE_SIGNALING),
+ XLAT(L2CAP_CID_SMP),
+ XLAT(L2CAP_CID_SMP_BREDR),
+ XLAT(L2CAP_CID_DYN_START),
+ XLAT(L2CAP_CID_LE_DYN_END),
+ XLAT(L2CAP_CID_DYN_END),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bluetooth_l2_cid.in b/xlat/bluetooth_l2_cid.in
new file mode 100644
index 0000000..5fd8fd1
--- /dev/null
+++ b/xlat/bluetooth_l2_cid.in
@@ -0,0 +1,11 @@
+/* sort -k2,2 */
+L2CAP_CID_SIGNALING 0x0001
+L2CAP_CID_CONN_LESS 0x0002
+L2CAP_CID_A2MP 0x0003
+L2CAP_CID_ATT 0x0004
+L2CAP_CID_LE_SIGNALING 0x0005
+L2CAP_CID_SMP 0x0006
+L2CAP_CID_SMP_BREDR 0x0007
+L2CAP_CID_DYN_START 0x0040
+L2CAP_CID_LE_DYN_END 0x007f
+L2CAP_CID_DYN_END 0xffff
diff --git a/xlat/bluetooth_l2_psm.h b/xlat/bluetooth_l2_psm.h
new file mode 100644
index 0000000..358316a
--- /dev/null
+++ b/xlat/bluetooth_l2_psm.h
@@ -0,0 +1,95 @@
+/* Generated by ./xlat/gen.sh from ./xlat/bluetooth_l2_psm.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(L2CAP_PSM_SDP) || (defined(HAVE_DECL_L2CAP_PSM_SDP) && HAVE_DECL_L2CAP_PSM_SDP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_SDP) == (0x0001), "L2CAP_PSM_SDP != 0x0001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_SDP 0x0001
+#endif
+#if defined(L2CAP_PSM_RFCOMM) || (defined(HAVE_DECL_L2CAP_PSM_RFCOMM) && HAVE_DECL_L2CAP_PSM_RFCOMM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_RFCOMM) == (0x0003), "L2CAP_PSM_RFCOMM != 0x0003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_RFCOMM 0x0003
+#endif
+#if defined(L2CAP_PSM_3DSP) || (defined(HAVE_DECL_L2CAP_PSM_3DSP) && HAVE_DECL_L2CAP_PSM_3DSP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_3DSP) == (0x0021), "L2CAP_PSM_3DSP != 0x0021");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_3DSP 0x0021
+#endif
+#if defined(L2CAP_PSM_IPSP) || (defined(HAVE_DECL_L2CAP_PSM_IPSP) && HAVE_DECL_L2CAP_PSM_IPSP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_IPSP) == (0x0023), "L2CAP_PSM_IPSP != 0x0023");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_IPSP 0x0023
+#endif
+#if defined(L2CAP_PSM_LE_DYN_START) || (defined(HAVE_DECL_L2CAP_PSM_LE_DYN_START) && HAVE_DECL_L2CAP_PSM_LE_DYN_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_LE_DYN_START) == (0x0080), "L2CAP_PSM_LE_DYN_START != 0x0080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_LE_DYN_START 0x0080
+#endif
+#if defined(L2CAP_PSM_LE_DYN_END) || (defined(HAVE_DECL_L2CAP_PSM_LE_DYN_END) && HAVE_DECL_L2CAP_PSM_LE_DYN_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_LE_DYN_END) == (0x00ff), "L2CAP_PSM_LE_DYN_END != 0x00ff");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_LE_DYN_END 0x00ff
+#endif
+#if defined(L2CAP_PSM_DYN_START) || (defined(HAVE_DECL_L2CAP_PSM_DYN_START) && HAVE_DECL_L2CAP_PSM_DYN_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_DYN_START) == (0x1001), "L2CAP_PSM_DYN_START != 0x1001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_DYN_START 0x1001
+#endif
+#if defined(L2CAP_PSM_AUTO_END) || (defined(HAVE_DECL_L2CAP_PSM_AUTO_END) && HAVE_DECL_L2CAP_PSM_AUTO_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_AUTO_END) == (0x10ff), "L2CAP_PSM_AUTO_END != 0x10ff");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_AUTO_END 0x10ff
+#endif
+#if defined(L2CAP_PSM_DYN_END) || (defined(HAVE_DECL_L2CAP_PSM_DYN_END) && HAVE_DECL_L2CAP_PSM_DYN_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((L2CAP_PSM_DYN_END) == (0xffff), "L2CAP_PSM_DYN_END != 0xffff");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define L2CAP_PSM_DYN_END 0xffff
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bluetooth_l2_psm in mpers mode
+
+# else
+
+static
+const struct xlat bluetooth_l2_psm[] = {
+
+ XLAT(L2CAP_PSM_SDP),
+ XLAT(L2CAP_PSM_RFCOMM),
+ XLAT(L2CAP_PSM_3DSP),
+ XLAT(L2CAP_PSM_IPSP),
+ XLAT(L2CAP_PSM_LE_DYN_START),
+ XLAT(L2CAP_PSM_LE_DYN_END),
+ XLAT(L2CAP_PSM_DYN_START),
+ XLAT(L2CAP_PSM_AUTO_END),
+ XLAT(L2CAP_PSM_DYN_END),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bluetooth_l2_psm.in b/xlat/bluetooth_l2_psm.in
new file mode 100644
index 0000000..afac026
--- /dev/null
+++ b/xlat/bluetooth_l2_psm.in
@@ -0,0 +1,10 @@
+/* sort -k2,2 */
+L2CAP_PSM_SDP 0x0001
+L2CAP_PSM_RFCOMM 0x0003
+L2CAP_PSM_3DSP 0x0021
+L2CAP_PSM_IPSP 0x0023
+L2CAP_PSM_LE_DYN_START 0x0080
+L2CAP_PSM_LE_DYN_END 0x00ff
+L2CAP_PSM_DYN_START 0x1001
+L2CAP_PSM_AUTO_END 0x10ff
+L2CAP_PSM_DYN_END 0xffff
diff --git a/xlat/bootflags1.h b/xlat/bootflags1.h
index fb27140..d868f9c 100644
--- a/xlat/bootflags1.h
+++ b/xlat/bootflags1.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/bootflags1.in; do not edit. */
-#if !(defined(LINUX_REBOOT_MAGIC1) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC1) && HAVE_DECL_LINUX_REBOOT_MAGIC1))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LINUX_REBOOT_MAGIC1) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC1) && HAVE_DECL_LINUX_REBOOT_MAGIC1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_MAGIC1) == (0xfee1dead), "LINUX_REBOOT_MAGIC1 != 0xfee1dead");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_MAGIC1 0xfee1dead
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bootflags1 in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bootflags1 in mpers mode
+
+# else
static
const struct xlat bootflags1[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bootflags2.h b/xlat/bootflags2.h
index 612aae1..6560af3 100644
--- a/xlat/bootflags2.h
+++ b/xlat/bootflags2.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/bootflags2.in; do not edit. */
-#if !(defined(LINUX_REBOOT_MAGIC2) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2) && HAVE_DECL_LINUX_REBOOT_MAGIC2))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LINUX_REBOOT_MAGIC2) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2) && HAVE_DECL_LINUX_REBOOT_MAGIC2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_MAGIC2) == (672274793), "LINUX_REBOOT_MAGIC2 != 672274793");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_MAGIC2 672274793
#endif
-#if !(defined(LINUX_REBOOT_MAGIC2A) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2A) && HAVE_DECL_LINUX_REBOOT_MAGIC2A))
+#if defined(LINUX_REBOOT_MAGIC2A) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2A) && HAVE_DECL_LINUX_REBOOT_MAGIC2A)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_MAGIC2A) == (85072278), "LINUX_REBOOT_MAGIC2A != 85072278");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_MAGIC2A 85072278
#endif
-#if !(defined(LINUX_REBOOT_MAGIC2B) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2B) && HAVE_DECL_LINUX_REBOOT_MAGIC2B))
+#if defined(LINUX_REBOOT_MAGIC2B) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2B) && HAVE_DECL_LINUX_REBOOT_MAGIC2B)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_MAGIC2B) == (369367448), "LINUX_REBOOT_MAGIC2B != 369367448");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_MAGIC2B 369367448
#endif
-#if !(defined(LINUX_REBOOT_MAGIC2C) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2C) && HAVE_DECL_LINUX_REBOOT_MAGIC2C))
+#if defined(LINUX_REBOOT_MAGIC2C) || (defined(HAVE_DECL_LINUX_REBOOT_MAGIC2C) && HAVE_DECL_LINUX_REBOOT_MAGIC2C)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_MAGIC2C) == (537993216), "LINUX_REBOOT_MAGIC2C != 537993216");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_MAGIC2C 537993216
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bootflags2 in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bootflags2 in mpers mode
+
+# else
static
const struct xlat bootflags2[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bootflags3.h b/xlat/bootflags3.h
index 47ea9cf..e11a06f 100644
--- a/xlat/bootflags3.h
+++ b/xlat/bootflags3.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/bootflags3.in; do not edit. */
-#if !(defined(LINUX_REBOOT_CMD_RESTART) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_RESTART) && HAVE_DECL_LINUX_REBOOT_CMD_RESTART))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LINUX_REBOOT_CMD_RESTART) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_RESTART) && HAVE_DECL_LINUX_REBOOT_CMD_RESTART)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_RESTART) == (0x01234567), "LINUX_REBOOT_CMD_RESTART != 0x01234567");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_RESTART 0x01234567
#endif
-#if !(defined(LINUX_REBOOT_CMD_HALT) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_HALT) && HAVE_DECL_LINUX_REBOOT_CMD_HALT))
+#if defined(LINUX_REBOOT_CMD_HALT) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_HALT) && HAVE_DECL_LINUX_REBOOT_CMD_HALT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_HALT) == (0xCDEF0123), "LINUX_REBOOT_CMD_HALT != 0xCDEF0123");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_HALT 0xCDEF0123
#endif
-#if !(defined(LINUX_REBOOT_CMD_CAD_ON) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_CAD_ON) && HAVE_DECL_LINUX_REBOOT_CMD_CAD_ON))
+#if defined(LINUX_REBOOT_CMD_CAD_ON) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_CAD_ON) && HAVE_DECL_LINUX_REBOOT_CMD_CAD_ON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_CAD_ON) == (0x89ABCDEF), "LINUX_REBOOT_CMD_CAD_ON != 0x89ABCDEF");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_CAD_ON 0x89ABCDEF
#endif
-#if !(defined(LINUX_REBOOT_CMD_CAD_OFF) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_CAD_OFF) && HAVE_DECL_LINUX_REBOOT_CMD_CAD_OFF))
+#if defined(LINUX_REBOOT_CMD_CAD_OFF) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_CAD_OFF) && HAVE_DECL_LINUX_REBOOT_CMD_CAD_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_CAD_OFF) == (0x00000000), "LINUX_REBOOT_CMD_CAD_OFF != 0x00000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_CAD_OFF 0x00000000
#endif
-#if !(defined(LINUX_REBOOT_CMD_POWER_OFF) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_POWER_OFF) && HAVE_DECL_LINUX_REBOOT_CMD_POWER_OFF))
+#if defined(LINUX_REBOOT_CMD_POWER_OFF) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_POWER_OFF) && HAVE_DECL_LINUX_REBOOT_CMD_POWER_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_POWER_OFF) == (0x4321FEDC), "LINUX_REBOOT_CMD_POWER_OFF != 0x4321FEDC");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_POWER_OFF 0x4321FEDC
#endif
-#if !(defined(LINUX_REBOOT_CMD_RESTART2) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_RESTART2) && HAVE_DECL_LINUX_REBOOT_CMD_RESTART2))
+#if defined(LINUX_REBOOT_CMD_RESTART2) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_RESTART2) && HAVE_DECL_LINUX_REBOOT_CMD_RESTART2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_RESTART2) == (0xA1B2C3D4), "LINUX_REBOOT_CMD_RESTART2 != 0xA1B2C3D4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4
#endif
-#if !(defined(LINUX_REBOOT_CMD_SW_SUSPEND) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_SW_SUSPEND) && HAVE_DECL_LINUX_REBOOT_CMD_SW_SUSPEND))
+#if defined(LINUX_REBOOT_CMD_SW_SUSPEND) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_SW_SUSPEND) && HAVE_DECL_LINUX_REBOOT_CMD_SW_SUSPEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_SW_SUSPEND) == (0xD000FCE2), "LINUX_REBOOT_CMD_SW_SUSPEND != 0xD000FCE2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
#endif
-#if !(defined(LINUX_REBOOT_CMD_KEXEC) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_KEXEC) && HAVE_DECL_LINUX_REBOOT_CMD_KEXEC))
+#if defined(LINUX_REBOOT_CMD_KEXEC) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_KEXEC) && HAVE_DECL_LINUX_REBOOT_CMD_KEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LINUX_REBOOT_CMD_KEXEC) == (0x45584543), "LINUX_REBOOT_CMD_KEXEC != 0x45584543");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LINUX_REBOOT_CMD_KEXEC 0x45584543
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bootflags3 in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bootflags3 in mpers mode
+
+# else
static
const struct xlat bootflags3[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_attach_flags.h b/xlat/bpf_attach_flags.h
index 1543860..753d8f1 100644
--- a/xlat/bpf_attach_flags.h
+++ b/xlat/bpf_attach_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_attach_flags.in; do not edit. */
-#if !(defined(BPF_F_ALLOW_OVERRIDE) || (defined(HAVE_DECL_BPF_F_ALLOW_OVERRIDE) && HAVE_DECL_BPF_F_ALLOW_OVERRIDE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_ALLOW_OVERRIDE 1
#endif
-#if !(defined(BPF_F_ALLOW_MULTI) || (defined(HAVE_DECL_BPF_F_ALLOW_MULTI) && HAVE_DECL_BPF_F_ALLOW_MULTI))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_ALLOW_MULTI 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bpf_attach_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bpf_attach_flags in mpers mode
+
+# else
static
const struct xlat bpf_attach_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_attach_type.h b/xlat/bpf_attach_type.h
index dac8f1e..aa83f4a 100644
--- a/xlat/bpf_attach_type.h
+++ b/xlat/bpf_attach_type.h
@@ -1,42 +1,134 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_attach_type.in; do not edit. */
-#if !(defined(BPF_CGROUP_INET_INGRESS) || (defined(HAVE_DECL_BPF_CGROUP_INET_INGRESS) && HAVE_DECL_BPF_CGROUP_INET_INGRESS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_CGROUP_INET_INGRESS) || (defined(HAVE_DECL_BPF_CGROUP_INET_INGRESS) && HAVE_DECL_BPF_CGROUP_INET_INGRESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET_INGRESS) == (0), "BPF_CGROUP_INET_INGRESS != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_CGROUP_INET_INGRESS 0
#endif
-#if !(defined(BPF_CGROUP_INET_EGRESS) || (defined(HAVE_DECL_BPF_CGROUP_INET_EGRESS) && HAVE_DECL_BPF_CGROUP_INET_EGRESS))
+#if defined(BPF_CGROUP_INET_EGRESS) || (defined(HAVE_DECL_BPF_CGROUP_INET_EGRESS) && HAVE_DECL_BPF_CGROUP_INET_EGRESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET_EGRESS) == (1), "BPF_CGROUP_INET_EGRESS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_CGROUP_INET_EGRESS 1
#endif
-#if !(defined(BPF_CGROUP_INET_SOCK_CREATE) || (defined(HAVE_DECL_BPF_CGROUP_INET_SOCK_CREATE) && HAVE_DECL_BPF_CGROUP_INET_SOCK_CREATE))
+#if defined(BPF_CGROUP_INET_SOCK_CREATE) || (defined(HAVE_DECL_BPF_CGROUP_INET_SOCK_CREATE) && HAVE_DECL_BPF_CGROUP_INET_SOCK_CREATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET_SOCK_CREATE) == (2), "BPF_CGROUP_INET_SOCK_CREATE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_CGROUP_INET_SOCK_CREATE 2
#endif
-#if !(defined(BPF_CGROUP_SOCK_OPS) || (defined(HAVE_DECL_BPF_CGROUP_SOCK_OPS) && HAVE_DECL_BPF_CGROUP_SOCK_OPS))
+#if defined(BPF_CGROUP_SOCK_OPS) || (defined(HAVE_DECL_BPF_CGROUP_SOCK_OPS) && HAVE_DECL_BPF_CGROUP_SOCK_OPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_SOCK_OPS) == (3), "BPF_CGROUP_SOCK_OPS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_CGROUP_SOCK_OPS 3
#endif
-#if !(defined(BPF_SK_SKB_STREAM_PARSER) || (defined(HAVE_DECL_BPF_SK_SKB_STREAM_PARSER) && HAVE_DECL_BPF_SK_SKB_STREAM_PARSER))
+#if defined(BPF_SK_SKB_STREAM_PARSER) || (defined(HAVE_DECL_BPF_SK_SKB_STREAM_PARSER) && HAVE_DECL_BPF_SK_SKB_STREAM_PARSER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_SK_SKB_STREAM_PARSER) == (4), "BPF_SK_SKB_STREAM_PARSER != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_SK_SKB_STREAM_PARSER 4
#endif
-#if !(defined(BPF_SK_SKB_STREAM_VERDICT) || (defined(HAVE_DECL_BPF_SK_SKB_STREAM_VERDICT) && HAVE_DECL_BPF_SK_SKB_STREAM_VERDICT))
+#if defined(BPF_SK_SKB_STREAM_VERDICT) || (defined(HAVE_DECL_BPF_SK_SKB_STREAM_VERDICT) && HAVE_DECL_BPF_SK_SKB_STREAM_VERDICT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_SK_SKB_STREAM_VERDICT) == (5), "BPF_SK_SKB_STREAM_VERDICT != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_SK_SKB_STREAM_VERDICT 5
#endif
-#if !(defined(BPF_CGROUP_DEVICE) || (defined(HAVE_DECL_BPF_CGROUP_DEVICE) && HAVE_DECL_BPF_CGROUP_DEVICE))
+#if defined(BPF_CGROUP_DEVICE) || (defined(HAVE_DECL_BPF_CGROUP_DEVICE) && HAVE_DECL_BPF_CGROUP_DEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_DEVICE) == (6), "BPF_CGROUP_DEVICE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_CGROUP_DEVICE 6
#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat bpf_attach_type in mpers mode
-
+#if defined(BPF_SK_MSG_VERDICT) || (defined(HAVE_DECL_BPF_SK_MSG_VERDICT) && HAVE_DECL_BPF_SK_MSG_VERDICT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_SK_MSG_VERDICT) == (7), "BPF_SK_MSG_VERDICT != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_SK_MSG_VERDICT 7
+#endif
+#if defined(BPF_CGROUP_INET4_BIND) || (defined(HAVE_DECL_BPF_CGROUP_INET4_BIND) && HAVE_DECL_BPF_CGROUP_INET4_BIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET4_BIND) == (8), "BPF_CGROUP_INET4_BIND != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CGROUP_INET4_BIND 8
+#endif
+#if defined(BPF_CGROUP_INET6_BIND) || (defined(HAVE_DECL_BPF_CGROUP_INET6_BIND) && HAVE_DECL_BPF_CGROUP_INET6_BIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET6_BIND) == (9), "BPF_CGROUP_INET6_BIND != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CGROUP_INET6_BIND 9
+#endif
+#if defined(BPF_CGROUP_INET4_CONNECT) || (defined(HAVE_DECL_BPF_CGROUP_INET4_CONNECT) && HAVE_DECL_BPF_CGROUP_INET4_CONNECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET4_CONNECT) == (10), "BPF_CGROUP_INET4_CONNECT != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CGROUP_INET4_CONNECT 10
+#endif
+#if defined(BPF_CGROUP_INET6_CONNECT) || (defined(HAVE_DECL_BPF_CGROUP_INET6_CONNECT) && HAVE_DECL_BPF_CGROUP_INET6_CONNECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET6_CONNECT) == (11), "BPF_CGROUP_INET6_CONNECT != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CGROUP_INET6_CONNECT 11
+#endif
+#if defined(BPF_CGROUP_INET4_POST_BIND) || (defined(HAVE_DECL_BPF_CGROUP_INET4_POST_BIND) && HAVE_DECL_BPF_CGROUP_INET4_POST_BIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET4_POST_BIND) == (12), "BPF_CGROUP_INET4_POST_BIND != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CGROUP_INET4_POST_BIND 12
+#endif
+#if defined(BPF_CGROUP_INET6_POST_BIND) || (defined(HAVE_DECL_BPF_CGROUP_INET6_POST_BIND) && HAVE_DECL_BPF_CGROUP_INET6_POST_BIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CGROUP_INET6_POST_BIND) == (13), "BPF_CGROUP_INET6_POST_BIND != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CGROUP_INET6_POST_BIND 13
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_attach_type in mpers mode
+
+# else
static
const struct xlat bpf_attach_type[] = {
- XLAT(BPF_CGROUP_INET_INGRESS),
- XLAT(BPF_CGROUP_INET_EGRESS),
- XLAT(BPF_CGROUP_INET_SOCK_CREATE),
- XLAT(BPF_CGROUP_SOCK_OPS),
- XLAT(BPF_SK_SKB_STREAM_PARSER),
- XLAT(BPF_SK_SKB_STREAM_VERDICT),
- XLAT(BPF_CGROUP_DEVICE),
+ [BPF_CGROUP_INET_INGRESS] = XLAT(BPF_CGROUP_INET_INGRESS),
+ [BPF_CGROUP_INET_EGRESS] = XLAT(BPF_CGROUP_INET_EGRESS),
+ [BPF_CGROUP_INET_SOCK_CREATE] = XLAT(BPF_CGROUP_INET_SOCK_CREATE),
+ [BPF_CGROUP_SOCK_OPS] = XLAT(BPF_CGROUP_SOCK_OPS),
+ [BPF_SK_SKB_STREAM_PARSER] = XLAT(BPF_SK_SKB_STREAM_PARSER),
+ [BPF_SK_SKB_STREAM_VERDICT] = XLAT(BPF_SK_SKB_STREAM_VERDICT),
+ [BPF_CGROUP_DEVICE] = XLAT(BPF_CGROUP_DEVICE),
+ [BPF_SK_MSG_VERDICT] = XLAT(BPF_SK_MSG_VERDICT),
+ [BPF_CGROUP_INET4_BIND] = XLAT(BPF_CGROUP_INET4_BIND),
+ [BPF_CGROUP_INET6_BIND] = XLAT(BPF_CGROUP_INET6_BIND),
+ [BPF_CGROUP_INET4_CONNECT] = XLAT(BPF_CGROUP_INET4_CONNECT),
+ [BPF_CGROUP_INET6_CONNECT] = XLAT(BPF_CGROUP_INET6_CONNECT),
+ [BPF_CGROUP_INET4_POST_BIND] = XLAT(BPF_CGROUP_INET4_POST_BIND),
+ [BPF_CGROUP_INET6_POST_BIND] = XLAT(BPF_CGROUP_INET6_POST_BIND),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_attach_type.in b/xlat/bpf_attach_type.in
index ad912b7..9438107 100644
--- a/xlat/bpf_attach_type.in
+++ b/xlat/bpf_attach_type.in
@@ -1,3 +1,4 @@
+#value_indexed
BPF_CGROUP_INET_INGRESS 0
BPF_CGROUP_INET_EGRESS 1
BPF_CGROUP_INET_SOCK_CREATE 2
@@ -5,3 +6,10 @@
BPF_SK_SKB_STREAM_PARSER 4
BPF_SK_SKB_STREAM_VERDICT 5
BPF_CGROUP_DEVICE 6
+BPF_SK_MSG_VERDICT 7
+BPF_CGROUP_INET4_BIND 8
+BPF_CGROUP_INET6_BIND 9
+BPF_CGROUP_INET4_CONNECT 10
+BPF_CGROUP_INET6_CONNECT 11
+BPF_CGROUP_INET4_POST_BIND 12
+BPF_CGROUP_INET6_POST_BIND 13
diff --git a/xlat/bpf_class.h b/xlat/bpf_class.h
index bdabc9a..a45ebd7 100644
--- a/xlat/bpf_class.h
+++ b/xlat/bpf_class.h
@@ -1,38 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_class.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_class in mpers mode
-
+#if defined(BPF_LD) || (defined(HAVE_DECL_BPF_LD) && HAVE_DECL_BPF_LD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_LD) == (0x0), "BPF_LD != 0x0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_LD 0x0
+#endif
+#if defined(BPF_LDX) || (defined(HAVE_DECL_BPF_LDX) && HAVE_DECL_BPF_LDX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_LDX) == (0x1), "BPF_LDX != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_LDX 0x1
+#endif
+#if defined(BPF_ST) || (defined(HAVE_DECL_BPF_ST) && HAVE_DECL_BPF_ST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ST) == (0x2), "BPF_ST != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ST 0x2
+#endif
+#if defined(BPF_STX) || (defined(HAVE_DECL_BPF_STX) && HAVE_DECL_BPF_STX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_STX) == (0x3), "BPF_STX != 0x3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_STX 0x3
+#endif
+#if defined(BPF_ALU) || (defined(HAVE_DECL_BPF_ALU) && HAVE_DECL_BPF_ALU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ALU) == (0x4), "BPF_ALU != 0x4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ALU 0x4
+#endif
+#if defined(BPF_JMP) || (defined(HAVE_DECL_BPF_JMP) && HAVE_DECL_BPF_JMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JMP) == (0x5), "BPF_JMP != 0x5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JMP 0x5
+#endif
+#if defined(BPF_RET) || (defined(HAVE_DECL_BPF_RET) && HAVE_DECL_BPF_RET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_RET) == (0x6), "BPF_RET != 0x6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_RET 0x6
+#endif
+#if defined(BPF_MISC) || (defined(HAVE_DECL_BPF_MISC) && HAVE_DECL_BPF_MISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MISC) == (0x7), "BPF_MISC != 0x7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MISC 0x7
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_class in mpers mode
+
+# else
static
const struct xlat bpf_class[] = {
-#if defined(BPF_LD) || (defined(HAVE_DECL_BPF_LD) && HAVE_DECL_BPF_LD)
- XLAT(BPF_LD),
-#endif
-#if defined(BPF_LDX) || (defined(HAVE_DECL_BPF_LDX) && HAVE_DECL_BPF_LDX)
- XLAT(BPF_LDX),
-#endif
-#if defined(BPF_ST) || (defined(HAVE_DECL_BPF_ST) && HAVE_DECL_BPF_ST)
- XLAT(BPF_ST),
-#endif
-#if defined(BPF_STX) || (defined(HAVE_DECL_BPF_STX) && HAVE_DECL_BPF_STX)
- XLAT(BPF_STX),
-#endif
-#if defined(BPF_ALU) || (defined(HAVE_DECL_BPF_ALU) && HAVE_DECL_BPF_ALU)
- XLAT(BPF_ALU),
-#endif
-#if defined(BPF_JMP) || (defined(HAVE_DECL_BPF_JMP) && HAVE_DECL_BPF_JMP)
- XLAT(BPF_JMP),
-#endif
-#if defined(BPF_RET) || (defined(HAVE_DECL_BPF_RET) && HAVE_DECL_BPF_RET)
- XLAT(BPF_RET),
-#endif
-#if defined(BPF_MISC) || (defined(HAVE_DECL_BPF_MISC) && HAVE_DECL_BPF_MISC)
- XLAT(BPF_MISC),
-#endif
+ [BPF_LD] = XLAT(BPF_LD),
+ [BPF_LDX] = XLAT(BPF_LDX),
+ [BPF_ST] = XLAT(BPF_ST),
+ [BPF_STX] = XLAT(BPF_STX),
+ [BPF_ALU] = XLAT(BPF_ALU),
+ [BPF_JMP] = XLAT(BPF_JMP),
+ [BPF_RET] = XLAT(BPF_RET),
+ [BPF_MISC] = XLAT(BPF_MISC),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_class.in b/xlat/bpf_class.in
index f8bd3d7..69f6d16 100644
--- a/xlat/bpf_class.in
+++ b/xlat/bpf_class.in
@@ -1,8 +1,9 @@
-BPF_LD
-BPF_LDX
-BPF_ST
-BPF_STX
-BPF_ALU
-BPF_JMP
-BPF_RET
-BPF_MISC
+#value_indexed
+BPF_LD 0x0
+BPF_LDX 0x1
+BPF_ST 0x2
+BPF_STX 0x3
+BPF_ALU 0x4
+BPF_JMP 0x5
+BPF_RET 0x6
+BPF_MISC 0x7
diff --git a/xlat/bpf_commands.h b/xlat/bpf_commands.h
index d51ab1d..d0653b3 100644
--- a/xlat/bpf_commands.h
+++ b/xlat/bpf_commands.h
@@ -1,78 +1,166 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_commands.in; do not edit. */
-#if !(defined(BPF_MAP_CREATE) || (defined(HAVE_DECL_BPF_MAP_CREATE) && HAVE_DECL_BPF_MAP_CREATE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_MAP_CREATE) || (defined(HAVE_DECL_BPF_MAP_CREATE) && HAVE_DECL_BPF_MAP_CREATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_CREATE) == (0), "BPF_MAP_CREATE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_CREATE 0
#endif
-#if !(defined(BPF_MAP_LOOKUP_ELEM) || (defined(HAVE_DECL_BPF_MAP_LOOKUP_ELEM) && HAVE_DECL_BPF_MAP_LOOKUP_ELEM))
+#if defined(BPF_MAP_LOOKUP_ELEM) || (defined(HAVE_DECL_BPF_MAP_LOOKUP_ELEM) && HAVE_DECL_BPF_MAP_LOOKUP_ELEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_LOOKUP_ELEM) == (1), "BPF_MAP_LOOKUP_ELEM != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_LOOKUP_ELEM 1
#endif
-#if !(defined(BPF_MAP_UPDATE_ELEM) || (defined(HAVE_DECL_BPF_MAP_UPDATE_ELEM) && HAVE_DECL_BPF_MAP_UPDATE_ELEM))
+#if defined(BPF_MAP_UPDATE_ELEM) || (defined(HAVE_DECL_BPF_MAP_UPDATE_ELEM) && HAVE_DECL_BPF_MAP_UPDATE_ELEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_UPDATE_ELEM) == (2), "BPF_MAP_UPDATE_ELEM != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_UPDATE_ELEM 2
#endif
-#if !(defined(BPF_MAP_DELETE_ELEM) || (defined(HAVE_DECL_BPF_MAP_DELETE_ELEM) && HAVE_DECL_BPF_MAP_DELETE_ELEM))
+#if defined(BPF_MAP_DELETE_ELEM) || (defined(HAVE_DECL_BPF_MAP_DELETE_ELEM) && HAVE_DECL_BPF_MAP_DELETE_ELEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_DELETE_ELEM) == (3), "BPF_MAP_DELETE_ELEM != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_DELETE_ELEM 3
#endif
-#if !(defined(BPF_MAP_GET_NEXT_KEY) || (defined(HAVE_DECL_BPF_MAP_GET_NEXT_KEY) && HAVE_DECL_BPF_MAP_GET_NEXT_KEY))
+#if defined(BPF_MAP_GET_NEXT_KEY) || (defined(HAVE_DECL_BPF_MAP_GET_NEXT_KEY) && HAVE_DECL_BPF_MAP_GET_NEXT_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_GET_NEXT_KEY) == (4), "BPF_MAP_GET_NEXT_KEY != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_GET_NEXT_KEY 4
#endif
-#if !(defined(BPF_PROG_LOAD) || (defined(HAVE_DECL_BPF_PROG_LOAD) && HAVE_DECL_BPF_PROG_LOAD))
+#if defined(BPF_PROG_LOAD) || (defined(HAVE_DECL_BPF_PROG_LOAD) && HAVE_DECL_BPF_PROG_LOAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_LOAD) == (5), "BPF_PROG_LOAD != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_LOAD 5
#endif
-#if !(defined(BPF_OBJ_PIN) || (defined(HAVE_DECL_BPF_OBJ_PIN) && HAVE_DECL_BPF_OBJ_PIN))
+#if defined(BPF_OBJ_PIN) || (defined(HAVE_DECL_BPF_OBJ_PIN) && HAVE_DECL_BPF_OBJ_PIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_OBJ_PIN) == (6), "BPF_OBJ_PIN != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_OBJ_PIN 6
#endif
-#if !(defined(BPF_OBJ_GET) || (defined(HAVE_DECL_BPF_OBJ_GET) && HAVE_DECL_BPF_OBJ_GET))
+#if defined(BPF_OBJ_GET) || (defined(HAVE_DECL_BPF_OBJ_GET) && HAVE_DECL_BPF_OBJ_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_OBJ_GET) == (7), "BPF_OBJ_GET != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_OBJ_GET 7
#endif
-#if !(defined(BPF_PROG_ATTACH) || (defined(HAVE_DECL_BPF_PROG_ATTACH) && HAVE_DECL_BPF_PROG_ATTACH))
+#if defined(BPF_PROG_ATTACH) || (defined(HAVE_DECL_BPF_PROG_ATTACH) && HAVE_DECL_BPF_PROG_ATTACH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_ATTACH) == (8), "BPF_PROG_ATTACH != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_ATTACH 8
#endif
-#if !(defined(BPF_PROG_DETACH) || (defined(HAVE_DECL_BPF_PROG_DETACH) && HAVE_DECL_BPF_PROG_DETACH))
+#if defined(BPF_PROG_DETACH) || (defined(HAVE_DECL_BPF_PROG_DETACH) && HAVE_DECL_BPF_PROG_DETACH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_DETACH) == (9), "BPF_PROG_DETACH != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_DETACH 9
#endif
-#if !(defined(BPF_PROG_TEST_RUN) || (defined(HAVE_DECL_BPF_PROG_TEST_RUN) && HAVE_DECL_BPF_PROG_TEST_RUN))
+#if defined(BPF_PROG_TEST_RUN) || (defined(HAVE_DECL_BPF_PROG_TEST_RUN) && HAVE_DECL_BPF_PROG_TEST_RUN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TEST_RUN) == (10), "BPF_PROG_TEST_RUN != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TEST_RUN 10
#endif
-#if !(defined(BPF_PROG_GET_NEXT_ID) || (defined(HAVE_DECL_BPF_PROG_GET_NEXT_ID) && HAVE_DECL_BPF_PROG_GET_NEXT_ID))
+#if defined(BPF_PROG_GET_NEXT_ID) || (defined(HAVE_DECL_BPF_PROG_GET_NEXT_ID) && HAVE_DECL_BPF_PROG_GET_NEXT_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_GET_NEXT_ID) == (11), "BPF_PROG_GET_NEXT_ID != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_GET_NEXT_ID 11
#endif
-#if !(defined(BPF_MAP_GET_NEXT_ID) || (defined(HAVE_DECL_BPF_MAP_GET_NEXT_ID) && HAVE_DECL_BPF_MAP_GET_NEXT_ID))
+#if defined(BPF_MAP_GET_NEXT_ID) || (defined(HAVE_DECL_BPF_MAP_GET_NEXT_ID) && HAVE_DECL_BPF_MAP_GET_NEXT_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_GET_NEXT_ID) == (12), "BPF_MAP_GET_NEXT_ID != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_GET_NEXT_ID 12
#endif
-#if !(defined(BPF_PROG_GET_FD_BY_ID) || (defined(HAVE_DECL_BPF_PROG_GET_FD_BY_ID) && HAVE_DECL_BPF_PROG_GET_FD_BY_ID))
+#if defined(BPF_PROG_GET_FD_BY_ID) || (defined(HAVE_DECL_BPF_PROG_GET_FD_BY_ID) && HAVE_DECL_BPF_PROG_GET_FD_BY_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_GET_FD_BY_ID) == (13), "BPF_PROG_GET_FD_BY_ID != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_GET_FD_BY_ID 13
#endif
-#if !(defined(BPF_MAP_GET_FD_BY_ID) || (defined(HAVE_DECL_BPF_MAP_GET_FD_BY_ID) && HAVE_DECL_BPF_MAP_GET_FD_BY_ID))
+#if defined(BPF_MAP_GET_FD_BY_ID) || (defined(HAVE_DECL_BPF_MAP_GET_FD_BY_ID) && HAVE_DECL_BPF_MAP_GET_FD_BY_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_GET_FD_BY_ID) == (14), "BPF_MAP_GET_FD_BY_ID != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_GET_FD_BY_ID 14
#endif
-#if !(defined(BPF_OBJ_GET_INFO_BY_FD) || (defined(HAVE_DECL_BPF_OBJ_GET_INFO_BY_FD) && HAVE_DECL_BPF_OBJ_GET_INFO_BY_FD))
+#if defined(BPF_OBJ_GET_INFO_BY_FD) || (defined(HAVE_DECL_BPF_OBJ_GET_INFO_BY_FD) && HAVE_DECL_BPF_OBJ_GET_INFO_BY_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_OBJ_GET_INFO_BY_FD) == (15), "BPF_OBJ_GET_INFO_BY_FD != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_OBJ_GET_INFO_BY_FD 15
#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat bpf_commands in mpers mode
-
+#if defined(BPF_PROG_QUERY) || (defined(HAVE_DECL_BPF_PROG_QUERY) && HAVE_DECL_BPF_PROG_QUERY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_QUERY) == (16), "BPF_PROG_QUERY != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_PROG_QUERY 16
+#endif
+#if defined(BPF_RAW_TRACEPOINT_OPEN) || (defined(HAVE_DECL_BPF_RAW_TRACEPOINT_OPEN) && HAVE_DECL_BPF_RAW_TRACEPOINT_OPEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_RAW_TRACEPOINT_OPEN) == (17), "BPF_RAW_TRACEPOINT_OPEN != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_RAW_TRACEPOINT_OPEN 17
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_commands in mpers mode
+
+# else
static
const struct xlat bpf_commands[] = {
- XLAT(BPF_MAP_CREATE),
- XLAT(BPF_MAP_LOOKUP_ELEM),
- XLAT(BPF_MAP_UPDATE_ELEM),
- XLAT(BPF_MAP_DELETE_ELEM),
- XLAT(BPF_MAP_GET_NEXT_KEY),
- XLAT(BPF_PROG_LOAD),
- XLAT(BPF_OBJ_PIN),
- XLAT(BPF_OBJ_GET),
- XLAT(BPF_PROG_ATTACH),
- XLAT(BPF_PROG_DETACH),
- XLAT(BPF_PROG_TEST_RUN),
- XLAT(BPF_PROG_GET_NEXT_ID),
- XLAT(BPF_MAP_GET_NEXT_ID),
- XLAT(BPF_PROG_GET_FD_BY_ID),
- XLAT(BPF_MAP_GET_FD_BY_ID),
- XLAT(BPF_OBJ_GET_INFO_BY_FD),
+ [BPF_MAP_CREATE] = XLAT(BPF_MAP_CREATE),
+ [BPF_MAP_LOOKUP_ELEM] = XLAT(BPF_MAP_LOOKUP_ELEM),
+ [BPF_MAP_UPDATE_ELEM] = XLAT(BPF_MAP_UPDATE_ELEM),
+ [BPF_MAP_DELETE_ELEM] = XLAT(BPF_MAP_DELETE_ELEM),
+ [BPF_MAP_GET_NEXT_KEY] = XLAT(BPF_MAP_GET_NEXT_KEY),
+ [BPF_PROG_LOAD] = XLAT(BPF_PROG_LOAD),
+ [BPF_OBJ_PIN] = XLAT(BPF_OBJ_PIN),
+ [BPF_OBJ_GET] = XLAT(BPF_OBJ_GET),
+ [BPF_PROG_ATTACH] = XLAT(BPF_PROG_ATTACH),
+ [BPF_PROG_DETACH] = XLAT(BPF_PROG_DETACH),
+ [BPF_PROG_TEST_RUN] = XLAT(BPF_PROG_TEST_RUN),
+ [BPF_PROG_GET_NEXT_ID] = XLAT(BPF_PROG_GET_NEXT_ID),
+ [BPF_MAP_GET_NEXT_ID] = XLAT(BPF_MAP_GET_NEXT_ID),
+ [BPF_PROG_GET_FD_BY_ID] = XLAT(BPF_PROG_GET_FD_BY_ID),
+ [BPF_MAP_GET_FD_BY_ID] = XLAT(BPF_MAP_GET_FD_BY_ID),
+ [BPF_OBJ_GET_INFO_BY_FD] = XLAT(BPF_OBJ_GET_INFO_BY_FD),
+ [BPF_PROG_QUERY] = XLAT(BPF_PROG_QUERY),
+ [BPF_RAW_TRACEPOINT_OPEN] = XLAT(BPF_RAW_TRACEPOINT_OPEN),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_commands.in b/xlat/bpf_commands.in
index cb7403d..54fd7ad 100644
--- a/xlat/bpf_commands.in
+++ b/xlat/bpf_commands.in
@@ -1,3 +1,4 @@
+#value_indexed
BPF_MAP_CREATE 0
BPF_MAP_LOOKUP_ELEM 1
BPF_MAP_UPDATE_ELEM 2
@@ -14,3 +15,5 @@
BPF_PROG_GET_FD_BY_ID 13
BPF_MAP_GET_FD_BY_ID 14
BPF_OBJ_GET_INFO_BY_FD 15
+BPF_PROG_QUERY 16
+BPF_RAW_TRACEPOINT_OPEN 17
diff --git a/xlat/bpf_file_mode_flags.h b/xlat/bpf_file_mode_flags.h
index 22f88b4..3a6baf5 100644
--- a/xlat/bpf_file_mode_flags.h
+++ b/xlat/bpf_file_mode_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_file_mode_flags.in; do not edit. */
-#if !(defined(BPF_F_RDONLY) || (defined(HAVE_DECL_BPF_F_RDONLY) && HAVE_DECL_BPF_F_RDONLY))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_F_RDONLY) || (defined(HAVE_DECL_BPF_F_RDONLY) && HAVE_DECL_BPF_F_RDONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_RDONLY) == ((1U << 3)), "BPF_F_RDONLY != (1U << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_RDONLY (1U << 3)
#endif
-#if !(defined(BPF_F_WRONLY) || (defined(HAVE_DECL_BPF_F_WRONLY) && HAVE_DECL_BPF_F_WRONLY))
+#if defined(BPF_F_WRONLY) || (defined(HAVE_DECL_BPF_F_WRONLY) && HAVE_DECL_BPF_F_WRONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_WRONLY) == ((1U << 4)), "BPF_F_WRONLY != (1U << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_WRONLY (1U << 4)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bpf_file_mode_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bpf_file_mode_flags in mpers mode
+
+# else
static
const struct xlat bpf_file_mode_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_map_flags.h b/xlat/bpf_map_flags.h
index 7ec7f9b..5d02440 100644
--- a/xlat/bpf_map_flags.h
+++ b/xlat/bpf_map_flags.h
@@ -1,26 +1,70 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_map_flags.in; do not edit. */
-#if !(defined(BPF_F_NO_PREALLOC) || (defined(HAVE_DECL_BPF_F_NO_PREALLOC) && HAVE_DECL_BPF_F_NO_PREALLOC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_F_NO_PREALLOC) || (defined(HAVE_DECL_BPF_F_NO_PREALLOC) && HAVE_DECL_BPF_F_NO_PREALLOC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_NO_PREALLOC) == (1), "BPF_F_NO_PREALLOC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_NO_PREALLOC 1
#endif
-#if !(defined(BPF_F_NO_COMMON_LRU) || (defined(HAVE_DECL_BPF_F_NO_COMMON_LRU) && HAVE_DECL_BPF_F_NO_COMMON_LRU))
+#if defined(BPF_F_NO_COMMON_LRU) || (defined(HAVE_DECL_BPF_F_NO_COMMON_LRU) && HAVE_DECL_BPF_F_NO_COMMON_LRU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_NO_COMMON_LRU) == (2), "BPF_F_NO_COMMON_LRU != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_NO_COMMON_LRU 2
#endif
-#if !(defined(BPF_F_NUMA_NODE) || (defined(HAVE_DECL_BPF_F_NUMA_NODE) && HAVE_DECL_BPF_F_NUMA_NODE))
+#if defined(BPF_F_NUMA_NODE) || (defined(HAVE_DECL_BPF_F_NUMA_NODE) && HAVE_DECL_BPF_F_NUMA_NODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_NUMA_NODE) == (4), "BPF_F_NUMA_NODE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_NUMA_NODE 4
#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat bpf_map_flags in mpers mode
-
+#if defined(BPF_F_RDONLY) || (defined(HAVE_DECL_BPF_F_RDONLY) && HAVE_DECL_BPF_F_RDONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_RDONLY) == ((1U << 3)), "BPF_F_RDONLY != (1U << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_F_RDONLY (1U << 3)
+#endif
+#if defined(BPF_F_WRONLY) || (defined(HAVE_DECL_BPF_F_WRONLY) && HAVE_DECL_BPF_F_WRONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_WRONLY) == ((1U << 4)), "BPF_F_WRONLY != (1U << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_F_WRONLY (1U << 4)
+#endif
+#if defined(BPF_F_STACK_BUILD_ID) || (defined(HAVE_DECL_BPF_F_STACK_BUILD_ID) && HAVE_DECL_BPF_F_STACK_BUILD_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_STACK_BUILD_ID) == ((1U << 5)), "BPF_F_STACK_BUILD_ID != (1U << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_F_STACK_BUILD_ID (1U << 5)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_map_flags in mpers mode
+
+# else
static
const struct xlat bpf_map_flags[] = {
XLAT(BPF_F_NO_PREALLOC),
XLAT(BPF_F_NO_COMMON_LRU),
XLAT(BPF_F_NUMA_NODE),
+ XLAT(BPF_F_RDONLY),
+ XLAT(BPF_F_WRONLY),
+ XLAT(BPF_F_STACK_BUILD_ID),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_map_flags.in b/xlat/bpf_map_flags.in
index 3137be4..a8f405b 100644
--- a/xlat/bpf_map_flags.in
+++ b/xlat/bpf_map_flags.in
@@ -1,3 +1,6 @@
BPF_F_NO_PREALLOC 1
BPF_F_NO_COMMON_LRU 2
BPF_F_NUMA_NODE 4
+BPF_F_RDONLY (1U << 3)
+BPF_F_WRONLY (1U << 4)
+BPF_F_STACK_BUILD_ID (1U << 5)
diff --git a/xlat/bpf_map_types.h b/xlat/bpf_map_types.h
index 24363e2..28a2191 100644
--- a/xlat/bpf_map_types.h
+++ b/xlat/bpf_map_types.h
@@ -1,82 +1,158 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_map_types.in; do not edit. */
-#if !(defined(BPF_MAP_TYPE_UNSPEC) || (defined(HAVE_DECL_BPF_MAP_TYPE_UNSPEC) && HAVE_DECL_BPF_MAP_TYPE_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_MAP_TYPE_UNSPEC) || (defined(HAVE_DECL_BPF_MAP_TYPE_UNSPEC) && HAVE_DECL_BPF_MAP_TYPE_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_UNSPEC) == (0), "BPF_MAP_TYPE_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_UNSPEC 0
#endif
-#if !(defined(BPF_MAP_TYPE_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_HASH) && HAVE_DECL_BPF_MAP_TYPE_HASH))
+#if defined(BPF_MAP_TYPE_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_HASH) && HAVE_DECL_BPF_MAP_TYPE_HASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_HASH) == (1), "BPF_MAP_TYPE_HASH != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_HASH 1
#endif
-#if !(defined(BPF_MAP_TYPE_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_ARRAY))
+#if defined(BPF_MAP_TYPE_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_ARRAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_ARRAY) == (2), "BPF_MAP_TYPE_ARRAY != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_ARRAY 2
#endif
-#if !(defined(BPF_MAP_TYPE_PROG_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_PROG_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_PROG_ARRAY))
+#if defined(BPF_MAP_TYPE_PROG_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_PROG_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_PROG_ARRAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_PROG_ARRAY) == (3), "BPF_MAP_TYPE_PROG_ARRAY != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_PROG_ARRAY 3
#endif
-#if !(defined(BPF_MAP_TYPE_PERF_EVENT_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_PERF_EVENT_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_PERF_EVENT_ARRAY))
+#if defined(BPF_MAP_TYPE_PERF_EVENT_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_PERF_EVENT_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_PERF_EVENT_ARRAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_PERF_EVENT_ARRAY) == (4), "BPF_MAP_TYPE_PERF_EVENT_ARRAY != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_PERF_EVENT_ARRAY 4
#endif
-#if !(defined(BPF_MAP_TYPE_PERCPU_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_PERCPU_HASH) && HAVE_DECL_BPF_MAP_TYPE_PERCPU_HASH))
+#if defined(BPF_MAP_TYPE_PERCPU_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_PERCPU_HASH) && HAVE_DECL_BPF_MAP_TYPE_PERCPU_HASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_PERCPU_HASH) == (5), "BPF_MAP_TYPE_PERCPU_HASH != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_PERCPU_HASH 5
#endif
-#if !(defined(BPF_MAP_TYPE_PERCPU_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_PERCPU_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_PERCPU_ARRAY))
+#if defined(BPF_MAP_TYPE_PERCPU_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_PERCPU_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_PERCPU_ARRAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_PERCPU_ARRAY) == (6), "BPF_MAP_TYPE_PERCPU_ARRAY != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_PERCPU_ARRAY 6
#endif
-#if !(defined(BPF_MAP_TYPE_STACK_TRACE) || (defined(HAVE_DECL_BPF_MAP_TYPE_STACK_TRACE) && HAVE_DECL_BPF_MAP_TYPE_STACK_TRACE))
+#if defined(BPF_MAP_TYPE_STACK_TRACE) || (defined(HAVE_DECL_BPF_MAP_TYPE_STACK_TRACE) && HAVE_DECL_BPF_MAP_TYPE_STACK_TRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_STACK_TRACE) == (7), "BPF_MAP_TYPE_STACK_TRACE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_STACK_TRACE 7
#endif
-#if !(defined(BPF_MAP_TYPE_CGROUP_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_CGROUP_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_CGROUP_ARRAY))
+#if defined(BPF_MAP_TYPE_CGROUP_ARRAY) || (defined(HAVE_DECL_BPF_MAP_TYPE_CGROUP_ARRAY) && HAVE_DECL_BPF_MAP_TYPE_CGROUP_ARRAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_CGROUP_ARRAY) == (8), "BPF_MAP_TYPE_CGROUP_ARRAY != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_CGROUP_ARRAY 8
#endif
-#if !(defined(BPF_MAP_TYPE_LRU_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_LRU_HASH) && HAVE_DECL_BPF_MAP_TYPE_LRU_HASH))
+#if defined(BPF_MAP_TYPE_LRU_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_LRU_HASH) && HAVE_DECL_BPF_MAP_TYPE_LRU_HASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_LRU_HASH) == (9), "BPF_MAP_TYPE_LRU_HASH != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_LRU_HASH 9
#endif
-#if !(defined(BPF_MAP_TYPE_LRU_PERCPU_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_LRU_PERCPU_HASH) && HAVE_DECL_BPF_MAP_TYPE_LRU_PERCPU_HASH))
+#if defined(BPF_MAP_TYPE_LRU_PERCPU_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_LRU_PERCPU_HASH) && HAVE_DECL_BPF_MAP_TYPE_LRU_PERCPU_HASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_LRU_PERCPU_HASH) == (10), "BPF_MAP_TYPE_LRU_PERCPU_HASH != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_LRU_PERCPU_HASH 10
#endif
-#if !(defined(BPF_MAP_TYPE_LPM_TRIE) || (defined(HAVE_DECL_BPF_MAP_TYPE_LPM_TRIE) && HAVE_DECL_BPF_MAP_TYPE_LPM_TRIE))
+#if defined(BPF_MAP_TYPE_LPM_TRIE) || (defined(HAVE_DECL_BPF_MAP_TYPE_LPM_TRIE) && HAVE_DECL_BPF_MAP_TYPE_LPM_TRIE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_LPM_TRIE) == (11), "BPF_MAP_TYPE_LPM_TRIE != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_LPM_TRIE 11
#endif
-#if !(defined(BPF_MAP_TYPE_ARRAY_OF_MAPS) || (defined(HAVE_DECL_BPF_MAP_TYPE_ARRAY_OF_MAPS) && HAVE_DECL_BPF_MAP_TYPE_ARRAY_OF_MAPS))
+#if defined(BPF_MAP_TYPE_ARRAY_OF_MAPS) || (defined(HAVE_DECL_BPF_MAP_TYPE_ARRAY_OF_MAPS) && HAVE_DECL_BPF_MAP_TYPE_ARRAY_OF_MAPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_ARRAY_OF_MAPS) == (12), "BPF_MAP_TYPE_ARRAY_OF_MAPS != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_ARRAY_OF_MAPS 12
#endif
-#if !(defined(BPF_MAP_TYPE_HASH_OF_MAPS) || (defined(HAVE_DECL_BPF_MAP_TYPE_HASH_OF_MAPS) && HAVE_DECL_BPF_MAP_TYPE_HASH_OF_MAPS))
+#if defined(BPF_MAP_TYPE_HASH_OF_MAPS) || (defined(HAVE_DECL_BPF_MAP_TYPE_HASH_OF_MAPS) && HAVE_DECL_BPF_MAP_TYPE_HASH_OF_MAPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_HASH_OF_MAPS) == (13), "BPF_MAP_TYPE_HASH_OF_MAPS != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_HASH_OF_MAPS 13
#endif
-#if !(defined(BPF_MAP_TYPE_DEVMAP) || (defined(HAVE_DECL_BPF_MAP_TYPE_DEVMAP) && HAVE_DECL_BPF_MAP_TYPE_DEVMAP))
+#if defined(BPF_MAP_TYPE_DEVMAP) || (defined(HAVE_DECL_BPF_MAP_TYPE_DEVMAP) && HAVE_DECL_BPF_MAP_TYPE_DEVMAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_DEVMAP) == (14), "BPF_MAP_TYPE_DEVMAP != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_DEVMAP 14
#endif
-#if !(defined(BPF_MAP_TYPE_SOCKMAP) || (defined(HAVE_DECL_BPF_MAP_TYPE_SOCKMAP) && HAVE_DECL_BPF_MAP_TYPE_SOCKMAP))
+#if defined(BPF_MAP_TYPE_SOCKMAP) || (defined(HAVE_DECL_BPF_MAP_TYPE_SOCKMAP) && HAVE_DECL_BPF_MAP_TYPE_SOCKMAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_SOCKMAP) == (15), "BPF_MAP_TYPE_SOCKMAP != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_SOCKMAP 15
#endif
-#if !(defined(BPF_MAP_TYPE_CPUMAP) || (defined(HAVE_DECL_BPF_MAP_TYPE_CPUMAP) && HAVE_DECL_BPF_MAP_TYPE_CPUMAP))
+#if defined(BPF_MAP_TYPE_CPUMAP) || (defined(HAVE_DECL_BPF_MAP_TYPE_CPUMAP) && HAVE_DECL_BPF_MAP_TYPE_CPUMAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MAP_TYPE_CPUMAP) == (16), "BPF_MAP_TYPE_CPUMAP != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_MAP_TYPE_CPUMAP 16
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bpf_map_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bpf_map_types in mpers mode
+
+# else
static
const struct xlat bpf_map_types[] = {
- XLAT(BPF_MAP_TYPE_UNSPEC),
- XLAT(BPF_MAP_TYPE_HASH),
- XLAT(BPF_MAP_TYPE_ARRAY),
- XLAT(BPF_MAP_TYPE_PROG_ARRAY),
- XLAT(BPF_MAP_TYPE_PERF_EVENT_ARRAY),
- XLAT(BPF_MAP_TYPE_PERCPU_HASH),
- XLAT(BPF_MAP_TYPE_PERCPU_ARRAY),
- XLAT(BPF_MAP_TYPE_STACK_TRACE),
- XLAT(BPF_MAP_TYPE_CGROUP_ARRAY),
- XLAT(BPF_MAP_TYPE_LRU_HASH),
- XLAT(BPF_MAP_TYPE_LRU_PERCPU_HASH),
- XLAT(BPF_MAP_TYPE_LPM_TRIE),
- XLAT(BPF_MAP_TYPE_ARRAY_OF_MAPS),
- XLAT(BPF_MAP_TYPE_HASH_OF_MAPS),
- XLAT(BPF_MAP_TYPE_DEVMAP),
- XLAT(BPF_MAP_TYPE_SOCKMAP),
- XLAT(BPF_MAP_TYPE_CPUMAP),
+ [BPF_MAP_TYPE_UNSPEC] = XLAT(BPF_MAP_TYPE_UNSPEC),
+ [BPF_MAP_TYPE_HASH] = XLAT(BPF_MAP_TYPE_HASH),
+ [BPF_MAP_TYPE_ARRAY] = XLAT(BPF_MAP_TYPE_ARRAY),
+ [BPF_MAP_TYPE_PROG_ARRAY] = XLAT(BPF_MAP_TYPE_PROG_ARRAY),
+ [BPF_MAP_TYPE_PERF_EVENT_ARRAY] = XLAT(BPF_MAP_TYPE_PERF_EVENT_ARRAY),
+ [BPF_MAP_TYPE_PERCPU_HASH] = XLAT(BPF_MAP_TYPE_PERCPU_HASH),
+ [BPF_MAP_TYPE_PERCPU_ARRAY] = XLAT(BPF_MAP_TYPE_PERCPU_ARRAY),
+ [BPF_MAP_TYPE_STACK_TRACE] = XLAT(BPF_MAP_TYPE_STACK_TRACE),
+ [BPF_MAP_TYPE_CGROUP_ARRAY] = XLAT(BPF_MAP_TYPE_CGROUP_ARRAY),
+ [BPF_MAP_TYPE_LRU_HASH] = XLAT(BPF_MAP_TYPE_LRU_HASH),
+ [BPF_MAP_TYPE_LRU_PERCPU_HASH] = XLAT(BPF_MAP_TYPE_LRU_PERCPU_HASH),
+ [BPF_MAP_TYPE_LPM_TRIE] = XLAT(BPF_MAP_TYPE_LPM_TRIE),
+ [BPF_MAP_TYPE_ARRAY_OF_MAPS] = XLAT(BPF_MAP_TYPE_ARRAY_OF_MAPS),
+ [BPF_MAP_TYPE_HASH_OF_MAPS] = XLAT(BPF_MAP_TYPE_HASH_OF_MAPS),
+ [BPF_MAP_TYPE_DEVMAP] = XLAT(BPF_MAP_TYPE_DEVMAP),
+ [BPF_MAP_TYPE_SOCKMAP] = XLAT(BPF_MAP_TYPE_SOCKMAP),
+ [BPF_MAP_TYPE_CPUMAP] = XLAT(BPF_MAP_TYPE_CPUMAP),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_map_types.in b/xlat/bpf_map_types.in
index 3f74d2a..99b08c8 100644
--- a/xlat/bpf_map_types.in
+++ b/xlat/bpf_map_types.in
@@ -1,3 +1,4 @@
+#value_indexed
BPF_MAP_TYPE_UNSPEC 0
BPF_MAP_TYPE_HASH 1
BPF_MAP_TYPE_ARRAY 2
diff --git a/xlat/bpf_map_update_elem_flags.h b/xlat/bpf_map_update_elem_flags.h
index 038863e..4ec5d17 100644
--- a/xlat/bpf_map_update_elem_flags.h
+++ b/xlat/bpf_map_update_elem_flags.h
@@ -1,26 +1,46 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_map_update_elem_flags.in; do not edit. */
-#if !(defined(BPF_ANY) || (defined(HAVE_DECL_BPF_ANY) && HAVE_DECL_BPF_ANY))
+
+#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_NOEXIST) || (defined(HAVE_DECL_BPF_NOEXIST) && HAVE_DECL_BPF_NOEXIST))
+#if defined(BPF_NOEXIST) || (defined(HAVE_DECL_BPF_NOEXIST) && HAVE_DECL_BPF_NOEXIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_NOEXIST) == (1), "BPF_NOEXIST != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_NOEXIST 1
#endif
-#if !(defined(BPF_EXIST) || (defined(HAVE_DECL_BPF_EXIST) && HAVE_DECL_BPF_EXIST))
+#if defined(BPF_EXIST) || (defined(HAVE_DECL_BPF_EXIST) && HAVE_DECL_BPF_EXIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_EXIST) == (2), "BPF_EXIST != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_EXIST 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bpf_map_update_elem_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bpf_map_update_elem_flags in mpers mode
+
+# else
static
const struct xlat bpf_map_update_elem_flags[] = {
- XLAT(BPF_ANY),
- XLAT(BPF_NOEXIST),
- XLAT(BPF_EXIST),
+ [BPF_ANY] = XLAT(BPF_ANY),
+ [BPF_NOEXIST] = XLAT(BPF_NOEXIST),
+ [BPF_EXIST] = XLAT(BPF_EXIST),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_map_update_elem_flags.in b/xlat/bpf_map_update_elem_flags.in
index 6b1d61f..e9322ea 100644
--- a/xlat/bpf_map_update_elem_flags.in
+++ b/xlat/bpf_map_update_elem_flags.in
@@ -1,3 +1,4 @@
+#value_indexed
BPF_ANY 0
BPF_NOEXIST 1
BPF_EXIST 2
diff --git a/xlat/bpf_miscop.h b/xlat/bpf_miscop.h
index bedf35b..3a930e6 100644
--- a/xlat/bpf_miscop.h
+++ b/xlat/bpf_miscop.h
@@ -1,20 +1,38 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_miscop.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_miscop in mpers mode
-
+#if defined(BPF_TAX) || (defined(HAVE_DECL_BPF_TAX) && HAVE_DECL_BPF_TAX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_TAX) == (0x00), "BPF_TAX != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_TAX 0x00
+#endif
+#if defined(BPF_TXA) || (defined(HAVE_DECL_BPF_TXA) && HAVE_DECL_BPF_TXA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_TXA) == (0x80), "BPF_TXA != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_TXA 0x80
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_miscop in mpers mode
+
+# else
static
const struct xlat bpf_miscop[] = {
-#if defined(BPF_TAX) || (defined(HAVE_DECL_BPF_TAX) && HAVE_DECL_BPF_TAX)
- XLAT(BPF_TAX),
-#endif
-#if defined(BPF_TXA) || (defined(HAVE_DECL_BPF_TXA) && HAVE_DECL_BPF_TXA)
- XLAT(BPF_TXA),
-#endif
+ XLAT(BPF_TAX),
+ XLAT(BPF_TXA),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_miscop.in b/xlat/bpf_miscop.in
index c9703b1..6df47b3 100644
--- a/xlat/bpf_miscop.in
+++ b/xlat/bpf_miscop.in
@@ -1,2 +1,2 @@
-BPF_TAX
-BPF_TXA
+BPF_TAX 0x00
+BPF_TXA 0x80
diff --git a/xlat/bpf_mode.h b/xlat/bpf_mode.h
index 0e3c862..5cb73d6 100644
--- a/xlat/bpf_mode.h
+++ b/xlat/bpf_mode.h
@@ -1,35 +1,78 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_mode.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_mode in mpers mode
-
+#if defined(BPF_IMM) || (defined(HAVE_DECL_BPF_IMM) && HAVE_DECL_BPF_IMM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_IMM) == (0x00), "BPF_IMM != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_IMM 0x00
+#endif
+#if defined(BPF_ABS) || (defined(HAVE_DECL_BPF_ABS) && HAVE_DECL_BPF_ABS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ABS) == (0x20), "BPF_ABS != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ABS 0x20
+#endif
+#if defined(BPF_IND) || (defined(HAVE_DECL_BPF_IND) && HAVE_DECL_BPF_IND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_IND) == (0x40), "BPF_IND != 0x40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_IND 0x40
+#endif
+#if defined(BPF_MEM) || (defined(HAVE_DECL_BPF_MEM) && HAVE_DECL_BPF_MEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MEM) == (0x60), "BPF_MEM != 0x60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MEM 0x60
+#endif
+#if defined(BPF_LEN) || (defined(HAVE_DECL_BPF_LEN) && HAVE_DECL_BPF_LEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_LEN) == (0x80), "BPF_LEN != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_LEN 0x80
+#endif
+#if defined(BPF_MSH) || (defined(HAVE_DECL_BPF_MSH) && HAVE_DECL_BPF_MSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MSH) == (0xa0), "BPF_MSH != 0xa0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MSH 0xa0
+#endif
+#if defined(BPF_XADD) || (defined(HAVE_DECL_BPF_XADD) && HAVE_DECL_BPF_XADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_XADD) == (0xc0), "BPF_XADD != 0xc0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_XADD 0xc0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_mode in mpers mode
+
+# else
static
const struct xlat bpf_mode[] = {
-#if defined(BPF_IMM) || (defined(HAVE_DECL_BPF_IMM) && HAVE_DECL_BPF_IMM)
- XLAT(BPF_IMM),
-#endif
-#if defined(BPF_ABS) || (defined(HAVE_DECL_BPF_ABS) && HAVE_DECL_BPF_ABS)
- XLAT(BPF_ABS),
-#endif
-#if defined(BPF_IND) || (defined(HAVE_DECL_BPF_IND) && HAVE_DECL_BPF_IND)
- XLAT(BPF_IND),
-#endif
-#if defined(BPF_MEM) || (defined(HAVE_DECL_BPF_MEM) && HAVE_DECL_BPF_MEM)
- XLAT(BPF_MEM),
-#endif
-#if defined(BPF_LEN) || (defined(HAVE_DECL_BPF_LEN) && HAVE_DECL_BPF_LEN)
- XLAT(BPF_LEN),
-#endif
-#if defined(BPF_MSH) || (defined(HAVE_DECL_BPF_MSH) && HAVE_DECL_BPF_MSH)
- XLAT(BPF_MSH),
-#endif
-#if defined(BPF_XADD) || (defined(HAVE_DECL_BPF_XADD) && HAVE_DECL_BPF_XADD)
- XLAT(BPF_XADD),
-#endif
+ XLAT(BPF_IMM),
+ XLAT(BPF_ABS),
+ XLAT(BPF_IND),
+ XLAT(BPF_MEM),
+ XLAT(BPF_LEN),
+ XLAT(BPF_MSH),
+ XLAT(BPF_XADD),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_mode.in b/xlat/bpf_mode.in
index 10adecd..a412c0e 100644
--- a/xlat/bpf_mode.in
+++ b/xlat/bpf_mode.in
@@ -1,7 +1,7 @@
-BPF_IMM
-BPF_ABS
-BPF_IND
-BPF_MEM
-BPF_LEN
-BPF_MSH
-BPF_XADD
+BPF_IMM 0x00
+BPF_ABS 0x20
+BPF_IND 0x40
+BPF_MEM 0x60
+BPF_LEN 0x80
+BPF_MSH 0xa0
+BPF_XADD 0xc0
diff --git a/xlat/bpf_op_alu.h b/xlat/bpf_op_alu.h
index 047dbe2..96be423 100644
--- a/xlat/bpf_op_alu.h
+++ b/xlat/bpf_op_alu.h
@@ -1,56 +1,134 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_op_alu.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_op_alu in mpers mode
-
+#if defined(BPF_ADD) || (defined(HAVE_DECL_BPF_ADD) && HAVE_DECL_BPF_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ADD) == (0x00), "BPF_ADD != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_ADD 0x00
+#endif
+#if defined(BPF_SUB) || (defined(HAVE_DECL_BPF_SUB) && HAVE_DECL_BPF_SUB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_SUB) == (0x10), "BPF_SUB != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_SUB 0x10
+#endif
+#if defined(BPF_MUL) || (defined(HAVE_DECL_BPF_MUL) && HAVE_DECL_BPF_MUL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MUL) == (0x20), "BPF_MUL != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MUL 0x20
+#endif
+#if defined(BPF_DIV) || (defined(HAVE_DECL_BPF_DIV) && HAVE_DECL_BPF_DIV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_DIV) == (0x30), "BPF_DIV != 0x30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_DIV 0x30
+#endif
+#if defined(BPF_OR) || (defined(HAVE_DECL_BPF_OR) && HAVE_DECL_BPF_OR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_OR) == (0x40), "BPF_OR != 0x40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_OR 0x40
+#endif
+#if defined(BPF_AND) || (defined(HAVE_DECL_BPF_AND) && HAVE_DECL_BPF_AND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_AND) == (0x50), "BPF_AND != 0x50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_AND 0x50
+#endif
+#if defined(BPF_LSH) || (defined(HAVE_DECL_BPF_LSH) && HAVE_DECL_BPF_LSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_LSH) == (0x60), "BPF_LSH != 0x60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_LSH 0x60
+#endif
+#if defined(BPF_RSH) || (defined(HAVE_DECL_BPF_RSH) && HAVE_DECL_BPF_RSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_RSH) == (0x70), "BPF_RSH != 0x70");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_RSH 0x70
+#endif
+#if defined(BPF_NEG) || (defined(HAVE_DECL_BPF_NEG) && HAVE_DECL_BPF_NEG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_NEG) == (0x80), "BPF_NEG != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_NEG 0x80
+#endif
+#if defined(BPF_MOD) || (defined(HAVE_DECL_BPF_MOD) && HAVE_DECL_BPF_MOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MOD) == (0x90), "BPF_MOD != 0x90");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MOD 0x90
+#endif
+#if defined(BPF_XOR) || (defined(HAVE_DECL_BPF_XOR) && HAVE_DECL_BPF_XOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_XOR) == (0xa0), "BPF_XOR != 0xa0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_XOR 0xa0
+#endif
+#if defined(BPF_MOV) || (defined(HAVE_DECL_BPF_MOV) && HAVE_DECL_BPF_MOV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MOV) == (0xb0), "BPF_MOV != 0xb0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MOV 0xb0
+#endif
+#if defined(BPF_ARSH) || (defined(HAVE_DECL_BPF_ARSH) && HAVE_DECL_BPF_ARSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ARSH) == (0xc0), "BPF_ARSH != 0xc0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ARSH 0xc0
+#endif
+#if defined(BPF_END) || (defined(HAVE_DECL_BPF_END) && HAVE_DECL_BPF_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_END) == (0xd0), "BPF_END != 0xd0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_END 0xd0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_op_alu in mpers mode
+
+# else
static
const struct xlat bpf_op_alu[] = {
-#if defined(BPF_ADD) || (defined(HAVE_DECL_BPF_ADD) && HAVE_DECL_BPF_ADD)
- XLAT(BPF_ADD),
-#endif
-#if defined(BPF_SUB) || (defined(HAVE_DECL_BPF_SUB) && HAVE_DECL_BPF_SUB)
- XLAT(BPF_SUB),
-#endif
-#if defined(BPF_MUL) || (defined(HAVE_DECL_BPF_MUL) && HAVE_DECL_BPF_MUL)
- XLAT(BPF_MUL),
-#endif
-#if defined(BPF_DIV) || (defined(HAVE_DECL_BPF_DIV) && HAVE_DECL_BPF_DIV)
- XLAT(BPF_DIV),
-#endif
-#if defined(BPF_OR) || (defined(HAVE_DECL_BPF_OR) && HAVE_DECL_BPF_OR)
- XLAT(BPF_OR),
-#endif
-#if defined(BPF_AND) || (defined(HAVE_DECL_BPF_AND) && HAVE_DECL_BPF_AND)
- XLAT(BPF_AND),
-#endif
-#if defined(BPF_LSH) || (defined(HAVE_DECL_BPF_LSH) && HAVE_DECL_BPF_LSH)
- XLAT(BPF_LSH),
-#endif
-#if defined(BPF_RSH) || (defined(HAVE_DECL_BPF_RSH) && HAVE_DECL_BPF_RSH)
- XLAT(BPF_RSH),
-#endif
-#if defined(BPF_NEG) || (defined(HAVE_DECL_BPF_NEG) && HAVE_DECL_BPF_NEG)
- XLAT(BPF_NEG),
-#endif
-#if defined(BPF_MOD) || (defined(HAVE_DECL_BPF_MOD) && HAVE_DECL_BPF_MOD)
- XLAT(BPF_MOD),
-#endif
-#if defined(BPF_XOR) || (defined(HAVE_DECL_BPF_XOR) && HAVE_DECL_BPF_XOR)
- XLAT(BPF_XOR),
-#endif
-#if defined(BPF_MOV) || (defined(HAVE_DECL_BPF_MOV) && HAVE_DECL_BPF_MOV)
- XLAT(BPF_MOV),
-#endif
-#if defined(BPF_ARSH) || (defined(HAVE_DECL_BPF_ARSH) && HAVE_DECL_BPF_ARSH)
- XLAT(BPF_ARSH),
-#endif
-#if defined(BPF_END) || (defined(HAVE_DECL_BPF_END) && HAVE_DECL_BPF_END)
- XLAT(BPF_END),
-#endif
+ XLAT(BPF_ADD),
+ XLAT(BPF_SUB),
+ XLAT(BPF_MUL),
+ XLAT(BPF_DIV),
+ XLAT(BPF_OR),
+ XLAT(BPF_AND),
+ XLAT(BPF_LSH),
+ XLAT(BPF_RSH),
+ XLAT(BPF_NEG),
+ XLAT(BPF_MOD),
+ XLAT(BPF_XOR),
+ XLAT(BPF_MOV),
+ XLAT(BPF_ARSH),
+ XLAT(BPF_END),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_op_alu.in b/xlat/bpf_op_alu.in
index 580b68b..5016a46 100644
--- a/xlat/bpf_op_alu.in
+++ b/xlat/bpf_op_alu.in
@@ -1,14 +1,14 @@
-BPF_ADD
-BPF_SUB
-BPF_MUL
-BPF_DIV
-BPF_OR
-BPF_AND
-BPF_LSH
-BPF_RSH
-BPF_NEG
-BPF_MOD
-BPF_XOR
-BPF_MOV
-BPF_ARSH
-BPF_END
+BPF_ADD 0x00
+BPF_SUB 0x10
+BPF_MUL 0x20
+BPF_DIV 0x30
+BPF_OR 0x40
+BPF_AND 0x50
+BPF_LSH 0x60
+BPF_RSH 0x70
+BPF_NEG 0x80
+BPF_MOD 0x90
+BPF_XOR 0xa0
+BPF_MOV 0xb0
+BPF_ARSH 0xc0
+BPF_END 0xd0
diff --git a/xlat/bpf_op_jmp.h b/xlat/bpf_op_jmp.h
index 9bb2acd..56d1a42 100644
--- a/xlat/bpf_op_jmp.h
+++ b/xlat/bpf_op_jmp.h
@@ -1,56 +1,134 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_op_jmp.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_op_jmp in mpers mode
-
+#if defined(BPF_JA) || (defined(HAVE_DECL_BPF_JA) && HAVE_DECL_BPF_JA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JA) == (0x00), "BPF_JA != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_JA 0x00
+#endif
+#if defined(BPF_JEQ) || (defined(HAVE_DECL_BPF_JEQ) && HAVE_DECL_BPF_JEQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JEQ) == (0x10), "BPF_JEQ != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JEQ 0x10
+#endif
+#if defined(BPF_JGT) || (defined(HAVE_DECL_BPF_JGT) && HAVE_DECL_BPF_JGT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JGT) == (0x20), "BPF_JGT != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JGT 0x20
+#endif
+#if defined(BPF_JGE) || (defined(HAVE_DECL_BPF_JGE) && HAVE_DECL_BPF_JGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JGE) == (0x30), "BPF_JGE != 0x30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JGE 0x30
+#endif
+#if defined(BPF_JSET) || (defined(HAVE_DECL_BPF_JSET) && HAVE_DECL_BPF_JSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSET) == (0x40), "BPF_JSET != 0x40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSET 0x40
+#endif
+#if defined(BPF_JNE) || (defined(HAVE_DECL_BPF_JNE) && HAVE_DECL_BPF_JNE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JNE) == (0x50), "BPF_JNE != 0x50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JNE 0x50
+#endif
+#if defined(BPF_JSGT) || (defined(HAVE_DECL_BPF_JSGT) && HAVE_DECL_BPF_JSGT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSGT) == (0x60), "BPF_JSGT != 0x60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSGT 0x60
+#endif
+#if defined(BPF_JSGE) || (defined(HAVE_DECL_BPF_JSGE) && HAVE_DECL_BPF_JSGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSGE) == (0x70), "BPF_JSGE != 0x70");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSGE 0x70
+#endif
+#if defined(BPF_CALL) || (defined(HAVE_DECL_BPF_CALL) && HAVE_DECL_BPF_CALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CALL) == (0x80), "BPF_CALL != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CALL 0x80
+#endif
+#if defined(BPF_EXIT) || (defined(HAVE_DECL_BPF_EXIT) && HAVE_DECL_BPF_EXIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_EXIT) == (0x90), "BPF_EXIT != 0x90");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_EXIT 0x90
+#endif
+#if defined(BPF_JLT) || (defined(HAVE_DECL_BPF_JLT) && HAVE_DECL_BPF_JLT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JLT) == (0xa0), "BPF_JLT != 0xa0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JLT 0xa0
+#endif
+#if defined(BPF_JLE) || (defined(HAVE_DECL_BPF_JLE) && HAVE_DECL_BPF_JLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JLE) == (0xb0), "BPF_JLE != 0xb0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JLE 0xb0
+#endif
+#if defined(BPF_JSLT) || (defined(HAVE_DECL_BPF_JSLT) && HAVE_DECL_BPF_JSLT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSLT) == (0xc0), "BPF_JSLT != 0xc0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSLT 0xc0
+#endif
+#if defined(BPF_JSLE) || (defined(HAVE_DECL_BPF_JSLE) && HAVE_DECL_BPF_JSLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSLE) == (0xd0), "BPF_JSLE != 0xd0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSLE 0xd0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_op_jmp in mpers mode
+
+# else
static
const struct xlat bpf_op_jmp[] = {
-#if defined(BPF_JA) || (defined(HAVE_DECL_BPF_JA) && HAVE_DECL_BPF_JA)
- XLAT(BPF_JA),
-#endif
-#if defined(BPF_JEQ) || (defined(HAVE_DECL_BPF_JEQ) && HAVE_DECL_BPF_JEQ)
- XLAT(BPF_JEQ),
-#endif
-#if defined(BPF_JGT) || (defined(HAVE_DECL_BPF_JGT) && HAVE_DECL_BPF_JGT)
- XLAT(BPF_JGT),
-#endif
-#if defined(BPF_JGE) || (defined(HAVE_DECL_BPF_JGE) && HAVE_DECL_BPF_JGE)
- XLAT(BPF_JGE),
-#endif
-#if defined(BPF_JSET) || (defined(HAVE_DECL_BPF_JSET) && HAVE_DECL_BPF_JSET)
- XLAT(BPF_JSET),
-#endif
-#if defined(BPF_JNE) || (defined(HAVE_DECL_BPF_JNE) && HAVE_DECL_BPF_JNE)
- XLAT(BPF_JNE),
-#endif
-#if defined(BPF_JLT) || (defined(HAVE_DECL_BPF_JLT) && HAVE_DECL_BPF_JLT)
- XLAT(BPF_JLT),
-#endif
-#if defined(BPF_JLE) || (defined(HAVE_DECL_BPF_JLE) && HAVE_DECL_BPF_JLE)
- XLAT(BPF_JLE),
-#endif
-#if defined(BPF_JSGT) || (defined(HAVE_DECL_BPF_JSGT) && HAVE_DECL_BPF_JSGT)
- XLAT(BPF_JSGT),
-#endif
-#if defined(BPF_JSGE) || (defined(HAVE_DECL_BPF_JSGE) && HAVE_DECL_BPF_JSGE)
- XLAT(BPF_JSGE),
-#endif
-#if defined(BPF_JSLT) || (defined(HAVE_DECL_BPF_JSLT) && HAVE_DECL_BPF_JSLT)
- XLAT(BPF_JSLT),
-#endif
-#if defined(BPF_JSLE) || (defined(HAVE_DECL_BPF_JSLE) && HAVE_DECL_BPF_JSLE)
- XLAT(BPF_JSLE),
-#endif
-#if defined(BPF_CALL) || (defined(HAVE_DECL_BPF_CALL) && HAVE_DECL_BPF_CALL)
- XLAT(BPF_CALL),
-#endif
-#if defined(BPF_EXIT) || (defined(HAVE_DECL_BPF_EXIT) && HAVE_DECL_BPF_EXIT)
- XLAT(BPF_EXIT),
-#endif
+ XLAT(BPF_JA),
+ XLAT(BPF_JEQ),
+ XLAT(BPF_JGT),
+ XLAT(BPF_JGE),
+ XLAT(BPF_JSET),
+ XLAT(BPF_JNE),
+ XLAT(BPF_JSGT),
+ XLAT(BPF_JSGE),
+ XLAT(BPF_CALL),
+ XLAT(BPF_EXIT),
+ XLAT(BPF_JLT),
+ XLAT(BPF_JLE),
+ XLAT(BPF_JSLT),
+ XLAT(BPF_JSLE),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_op_jmp.in b/xlat/bpf_op_jmp.in
index 48fcb07..1e9b6f7 100644
--- a/xlat/bpf_op_jmp.in
+++ b/xlat/bpf_op_jmp.in
@@ -1,14 +1,14 @@
-BPF_JA
-BPF_JEQ
-BPF_JGT
-BPF_JGE
-BPF_JSET
-BPF_JNE
-BPF_JLT
-BPF_JLE
-BPF_JSGT
-BPF_JSGE
-BPF_JSLT
-BPF_JSLE
-BPF_CALL
-BPF_EXIT
+BPF_JA 0x00
+BPF_JEQ 0x10
+BPF_JGT 0x20
+BPF_JGE 0x30
+BPF_JSET 0x40
+BPF_JNE 0x50
+BPF_JSGT 0x60
+BPF_JSGE 0x70
+BPF_CALL 0x80
+BPF_EXIT 0x90
+BPF_JLT 0xa0
+BPF_JLE 0xb0
+BPF_JSLT 0xc0
+BPF_JSLE 0xd0
diff --git a/xlat/bpf_prog_flags.h b/xlat/bpf_prog_flags.h
index 076f374..9443631 100644
--- a/xlat/bpf_prog_flags.h
+++ b/xlat/bpf_prog_flags.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_prog_flags.in; do not edit. */
-#if !(defined(BPF_F_STRICT_ALIGNMENT) || (defined(HAVE_DECL_BPF_F_STRICT_ALIGNMENT) && HAVE_DECL_BPF_F_STRICT_ALIGNMENT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_F_STRICT_ALIGNMENT) || (defined(HAVE_DECL_BPF_F_STRICT_ALIGNMENT) && HAVE_DECL_BPF_F_STRICT_ALIGNMENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_STRICT_ALIGNMENT) == (1), "BPF_F_STRICT_ALIGNMENT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_F_STRICT_ALIGNMENT 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bpf_prog_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bpf_prog_flags in mpers mode
+
+# else
static
const struct xlat bpf_prog_flags[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_prog_types.h b/xlat/bpf_prog_types.h
index 63e0dae..efaae9e 100644
--- a/xlat/bpf_prog_types.h
+++ b/xlat/bpf_prog_types.h
@@ -1,78 +1,166 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_prog_types.in; do not edit. */
-#if !(defined(BPF_PROG_TYPE_UNSPEC) || (defined(HAVE_DECL_BPF_PROG_TYPE_UNSPEC) && HAVE_DECL_BPF_PROG_TYPE_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_PROG_TYPE_UNSPEC) || (defined(HAVE_DECL_BPF_PROG_TYPE_UNSPEC) && HAVE_DECL_BPF_PROG_TYPE_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_UNSPEC) == (0), "BPF_PROG_TYPE_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_UNSPEC 0
#endif
-#if !(defined(BPF_PROG_TYPE_SOCKET_FILTER) || (defined(HAVE_DECL_BPF_PROG_TYPE_SOCKET_FILTER) && HAVE_DECL_BPF_PROG_TYPE_SOCKET_FILTER))
+#if defined(BPF_PROG_TYPE_SOCKET_FILTER) || (defined(HAVE_DECL_BPF_PROG_TYPE_SOCKET_FILTER) && HAVE_DECL_BPF_PROG_TYPE_SOCKET_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_SOCKET_FILTER) == (1), "BPF_PROG_TYPE_SOCKET_FILTER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_SOCKET_FILTER 1
#endif
-#if !(defined(BPF_PROG_TYPE_KPROBE) || (defined(HAVE_DECL_BPF_PROG_TYPE_KPROBE) && HAVE_DECL_BPF_PROG_TYPE_KPROBE))
+#if defined(BPF_PROG_TYPE_KPROBE) || (defined(HAVE_DECL_BPF_PROG_TYPE_KPROBE) && HAVE_DECL_BPF_PROG_TYPE_KPROBE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_KPROBE) == (2), "BPF_PROG_TYPE_KPROBE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_KPROBE 2
#endif
-#if !(defined(BPF_PROG_TYPE_SCHED_CLS) || (defined(HAVE_DECL_BPF_PROG_TYPE_SCHED_CLS) && HAVE_DECL_BPF_PROG_TYPE_SCHED_CLS))
+#if defined(BPF_PROG_TYPE_SCHED_CLS) || (defined(HAVE_DECL_BPF_PROG_TYPE_SCHED_CLS) && HAVE_DECL_BPF_PROG_TYPE_SCHED_CLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_SCHED_CLS) == (3), "BPF_PROG_TYPE_SCHED_CLS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_SCHED_CLS 3
#endif
-#if !(defined(BPF_PROG_TYPE_SCHED_ACT) || (defined(HAVE_DECL_BPF_PROG_TYPE_SCHED_ACT) && HAVE_DECL_BPF_PROG_TYPE_SCHED_ACT))
+#if defined(BPF_PROG_TYPE_SCHED_ACT) || (defined(HAVE_DECL_BPF_PROG_TYPE_SCHED_ACT) && HAVE_DECL_BPF_PROG_TYPE_SCHED_ACT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_SCHED_ACT) == (4), "BPF_PROG_TYPE_SCHED_ACT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_SCHED_ACT 4
#endif
-#if !(defined(BPF_PROG_TYPE_TRACEPOINT) || (defined(HAVE_DECL_BPF_PROG_TYPE_TRACEPOINT) && HAVE_DECL_BPF_PROG_TYPE_TRACEPOINT))
+#if defined(BPF_PROG_TYPE_TRACEPOINT) || (defined(HAVE_DECL_BPF_PROG_TYPE_TRACEPOINT) && HAVE_DECL_BPF_PROG_TYPE_TRACEPOINT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_TRACEPOINT) == (5), "BPF_PROG_TYPE_TRACEPOINT != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_TRACEPOINT 5
#endif
-#if !(defined(BPF_PROG_TYPE_XDP) || (defined(HAVE_DECL_BPF_PROG_TYPE_XDP) && HAVE_DECL_BPF_PROG_TYPE_XDP))
+#if defined(BPF_PROG_TYPE_XDP) || (defined(HAVE_DECL_BPF_PROG_TYPE_XDP) && HAVE_DECL_BPF_PROG_TYPE_XDP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_XDP) == (6), "BPF_PROG_TYPE_XDP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_XDP 6
#endif
-#if !(defined(BPF_PROG_TYPE_PERF_EVENT) || (defined(HAVE_DECL_BPF_PROG_TYPE_PERF_EVENT) && HAVE_DECL_BPF_PROG_TYPE_PERF_EVENT))
+#if defined(BPF_PROG_TYPE_PERF_EVENT) || (defined(HAVE_DECL_BPF_PROG_TYPE_PERF_EVENT) && HAVE_DECL_BPF_PROG_TYPE_PERF_EVENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_PERF_EVENT) == (7), "BPF_PROG_TYPE_PERF_EVENT != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_PERF_EVENT 7
#endif
-#if !(defined(BPF_PROG_TYPE_CGROUP_SKB) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_SKB) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_SKB))
+#if defined(BPF_PROG_TYPE_CGROUP_SKB) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_SKB) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_SKB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_CGROUP_SKB) == (8), "BPF_PROG_TYPE_CGROUP_SKB != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_CGROUP_SKB 8
#endif
-#if !(defined(BPF_PROG_TYPE_CGROUP_SOCK) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCK) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCK))
+#if defined(BPF_PROG_TYPE_CGROUP_SOCK) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCK) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_CGROUP_SOCK) == (9), "BPF_PROG_TYPE_CGROUP_SOCK != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_CGROUP_SOCK 9
#endif
-#if !(defined(BPF_PROG_TYPE_LWT_IN) || (defined(HAVE_DECL_BPF_PROG_TYPE_LWT_IN) && HAVE_DECL_BPF_PROG_TYPE_LWT_IN))
+#if defined(BPF_PROG_TYPE_LWT_IN) || (defined(HAVE_DECL_BPF_PROG_TYPE_LWT_IN) && HAVE_DECL_BPF_PROG_TYPE_LWT_IN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_LWT_IN) == (10), "BPF_PROG_TYPE_LWT_IN != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_LWT_IN 10
#endif
-#if !(defined(BPF_PROG_TYPE_LWT_OUT) || (defined(HAVE_DECL_BPF_PROG_TYPE_LWT_OUT) && HAVE_DECL_BPF_PROG_TYPE_LWT_OUT))
+#if defined(BPF_PROG_TYPE_LWT_OUT) || (defined(HAVE_DECL_BPF_PROG_TYPE_LWT_OUT) && HAVE_DECL_BPF_PROG_TYPE_LWT_OUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_LWT_OUT) == (11), "BPF_PROG_TYPE_LWT_OUT != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_LWT_OUT 11
#endif
-#if !(defined(BPF_PROG_TYPE_LWT_XMIT) || (defined(HAVE_DECL_BPF_PROG_TYPE_LWT_XMIT) && HAVE_DECL_BPF_PROG_TYPE_LWT_XMIT))
+#if defined(BPF_PROG_TYPE_LWT_XMIT) || (defined(HAVE_DECL_BPF_PROG_TYPE_LWT_XMIT) && HAVE_DECL_BPF_PROG_TYPE_LWT_XMIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_LWT_XMIT) == (12), "BPF_PROG_TYPE_LWT_XMIT != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_LWT_XMIT 12
#endif
-#if !(defined(BPF_PROG_TYPE_SOCK_OPS) || (defined(HAVE_DECL_BPF_PROG_TYPE_SOCK_OPS) && HAVE_DECL_BPF_PROG_TYPE_SOCK_OPS))
+#if defined(BPF_PROG_TYPE_SOCK_OPS) || (defined(HAVE_DECL_BPF_PROG_TYPE_SOCK_OPS) && HAVE_DECL_BPF_PROG_TYPE_SOCK_OPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_SOCK_OPS) == (13), "BPF_PROG_TYPE_SOCK_OPS != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_SOCK_OPS 13
#endif
-#if !(defined(BPF_PROG_TYPE_SK_SKB) || (defined(HAVE_DECL_BPF_PROG_TYPE_SK_SKB) && HAVE_DECL_BPF_PROG_TYPE_SK_SKB))
+#if defined(BPF_PROG_TYPE_SK_SKB) || (defined(HAVE_DECL_BPF_PROG_TYPE_SK_SKB) && HAVE_DECL_BPF_PROG_TYPE_SK_SKB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_SK_SKB) == (14), "BPF_PROG_TYPE_SK_SKB != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_SK_SKB 14
#endif
-#if !(defined(BPF_PROG_TYPE_CGROUP_DEVICE) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_DEVICE) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_DEVICE))
+#if defined(BPF_PROG_TYPE_CGROUP_DEVICE) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_DEVICE) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_DEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_CGROUP_DEVICE) == (15), "BPF_PROG_TYPE_CGROUP_DEVICE != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BPF_PROG_TYPE_CGROUP_DEVICE 15
#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat bpf_prog_types in mpers mode
-
+#if defined(BPF_PROG_TYPE_SK_MSG) || (defined(HAVE_DECL_BPF_PROG_TYPE_SK_MSG) && HAVE_DECL_BPF_PROG_TYPE_SK_MSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_SK_MSG) == (16), "BPF_PROG_TYPE_SK_MSG != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_PROG_TYPE_SK_MSG 16
+#endif
+#if defined(BPF_PROG_TYPE_RAW_TRACEPOINT) || (defined(HAVE_DECL_BPF_PROG_TYPE_RAW_TRACEPOINT) && HAVE_DECL_BPF_PROG_TYPE_RAW_TRACEPOINT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_PROG_TYPE_RAW_TRACEPOINT) == (17), "BPF_PROG_TYPE_RAW_TRACEPOINT != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_PROG_TYPE_RAW_TRACEPOINT 17
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_prog_types in mpers mode
+
+# else
static
const struct xlat bpf_prog_types[] = {
- XLAT(BPF_PROG_TYPE_UNSPEC),
- XLAT(BPF_PROG_TYPE_SOCKET_FILTER),
- XLAT(BPF_PROG_TYPE_KPROBE),
- XLAT(BPF_PROG_TYPE_SCHED_CLS),
- XLAT(BPF_PROG_TYPE_SCHED_ACT),
- XLAT(BPF_PROG_TYPE_TRACEPOINT),
- XLAT(BPF_PROG_TYPE_XDP),
- XLAT(BPF_PROG_TYPE_PERF_EVENT),
- XLAT(BPF_PROG_TYPE_CGROUP_SKB),
- XLAT(BPF_PROG_TYPE_CGROUP_SOCK),
- XLAT(BPF_PROG_TYPE_LWT_IN),
- XLAT(BPF_PROG_TYPE_LWT_OUT),
- XLAT(BPF_PROG_TYPE_LWT_XMIT),
- XLAT(BPF_PROG_TYPE_SOCK_OPS),
- XLAT(BPF_PROG_TYPE_SK_SKB),
- XLAT(BPF_PROG_TYPE_CGROUP_DEVICE),
+ [BPF_PROG_TYPE_UNSPEC] = XLAT(BPF_PROG_TYPE_UNSPEC),
+ [BPF_PROG_TYPE_SOCKET_FILTER] = XLAT(BPF_PROG_TYPE_SOCKET_FILTER),
+ [BPF_PROG_TYPE_KPROBE] = XLAT(BPF_PROG_TYPE_KPROBE),
+ [BPF_PROG_TYPE_SCHED_CLS] = XLAT(BPF_PROG_TYPE_SCHED_CLS),
+ [BPF_PROG_TYPE_SCHED_ACT] = XLAT(BPF_PROG_TYPE_SCHED_ACT),
+ [BPF_PROG_TYPE_TRACEPOINT] = XLAT(BPF_PROG_TYPE_TRACEPOINT),
+ [BPF_PROG_TYPE_XDP] = XLAT(BPF_PROG_TYPE_XDP),
+ [BPF_PROG_TYPE_PERF_EVENT] = XLAT(BPF_PROG_TYPE_PERF_EVENT),
+ [BPF_PROG_TYPE_CGROUP_SKB] = XLAT(BPF_PROG_TYPE_CGROUP_SKB),
+ [BPF_PROG_TYPE_CGROUP_SOCK] = XLAT(BPF_PROG_TYPE_CGROUP_SOCK),
+ [BPF_PROG_TYPE_LWT_IN] = XLAT(BPF_PROG_TYPE_LWT_IN),
+ [BPF_PROG_TYPE_LWT_OUT] = XLAT(BPF_PROG_TYPE_LWT_OUT),
+ [BPF_PROG_TYPE_LWT_XMIT] = XLAT(BPF_PROG_TYPE_LWT_XMIT),
+ [BPF_PROG_TYPE_SOCK_OPS] = XLAT(BPF_PROG_TYPE_SOCK_OPS),
+ [BPF_PROG_TYPE_SK_SKB] = XLAT(BPF_PROG_TYPE_SK_SKB),
+ [BPF_PROG_TYPE_CGROUP_DEVICE] = XLAT(BPF_PROG_TYPE_CGROUP_DEVICE),
+ [BPF_PROG_TYPE_SK_MSG] = XLAT(BPF_PROG_TYPE_SK_MSG),
+ [BPF_PROG_TYPE_RAW_TRACEPOINT] = XLAT(BPF_PROG_TYPE_RAW_TRACEPOINT),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_prog_types.in b/xlat/bpf_prog_types.in
index 8038c9e..7fee390 100644
--- a/xlat/bpf_prog_types.in
+++ b/xlat/bpf_prog_types.in
@@ -1,3 +1,4 @@
+#value_indexed
BPF_PROG_TYPE_UNSPEC 0
BPF_PROG_TYPE_SOCKET_FILTER 1
BPF_PROG_TYPE_KPROBE 2
@@ -14,3 +15,5 @@
BPF_PROG_TYPE_SOCK_OPS 13
BPF_PROG_TYPE_SK_SKB 14
BPF_PROG_TYPE_CGROUP_DEVICE 15
+BPF_PROG_TYPE_SK_MSG 16
+BPF_PROG_TYPE_RAW_TRACEPOINT 17
diff --git a/xlat/bpf_query_flags.h b/xlat/bpf_query_flags.h
new file mode 100644
index 0000000..38f84b4
--- /dev/null
+++ b/xlat/bpf_query_flags.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/bpf_query_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_F_QUERY_EFFECTIVE) || (defined(HAVE_DECL_BPF_F_QUERY_EFFECTIVE) && HAVE_DECL_BPF_F_QUERY_EFFECTIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_F_QUERY_EFFECTIVE) == ((1U << 0)), "BPF_F_QUERY_EFFECTIVE != (1U << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_F_QUERY_EFFECTIVE (1U << 0)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_query_flags in mpers mode
+
+# else
+
+static
+const struct xlat bpf_query_flags[] = {
+ XLAT(BPF_F_QUERY_EFFECTIVE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_query_flags.in b/xlat/bpf_query_flags.in
new file mode 100644
index 0000000..b380ac1
--- /dev/null
+++ b/xlat/bpf_query_flags.in
@@ -0,0 +1 @@
+BPF_F_QUERY_EFFECTIVE (1U << 0)
diff --git a/xlat/bpf_rval.h b/xlat/bpf_rval.h
index 8f84f03..85a11c1 100644
--- a/xlat/bpf_rval.h
+++ b/xlat/bpf_rval.h
@@ -1,23 +1,46 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_rval.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_rval in mpers mode
-
+#if defined(BPF_K) || (defined(HAVE_DECL_BPF_K) && HAVE_DECL_BPF_K)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_K) == (0x00), "BPF_K != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_K 0x00
+#endif
+#if defined(BPF_X) || (defined(HAVE_DECL_BPF_X) && HAVE_DECL_BPF_X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_X) == (0x08), "BPF_X != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_X 0x08
+#endif
+#if defined(BPF_A) || (defined(HAVE_DECL_BPF_A) && HAVE_DECL_BPF_A)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_A) == (0x10), "BPF_A != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_A 0x10
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_rval in mpers mode
+
+# else
static
const struct xlat bpf_rval[] = {
-#if defined(BPF_K) || (defined(HAVE_DECL_BPF_K) && HAVE_DECL_BPF_K)
- XLAT(BPF_K),
-#endif
-#if defined(BPF_X) || (defined(HAVE_DECL_BPF_X) && HAVE_DECL_BPF_X)
- XLAT(BPF_X),
-#endif
-#if defined(BPF_A) || (defined(HAVE_DECL_BPF_A) && HAVE_DECL_BPF_A)
- XLAT(BPF_A),
-#endif
+ XLAT(BPF_K),
+ XLAT(BPF_X),
+ XLAT(BPF_A),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_rval.in b/xlat/bpf_rval.in
index 44e137e..37073bd 100644
--- a/xlat/bpf_rval.in
+++ b/xlat/bpf_rval.in
@@ -1,3 +1,3 @@
-BPF_K
-BPF_X
-BPF_A
+BPF_K 0x00
+BPF_X 0x08
+BPF_A 0x10
diff --git a/xlat/bpf_size.h b/xlat/bpf_size.h
index f07bc9c..51aa539 100644
--- a/xlat/bpf_size.h
+++ b/xlat/bpf_size.h
@@ -1,26 +1,54 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_size.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_size in mpers mode
-
+#if defined(BPF_W) || (defined(HAVE_DECL_BPF_W) && HAVE_DECL_BPF_W)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_W) == (0x00), "BPF_W != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_W 0x00
+#endif
+#if defined(BPF_H) || (defined(HAVE_DECL_BPF_H) && HAVE_DECL_BPF_H)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_H) == (0x08), "BPF_H != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_H 0x08
+#endif
+#if defined(BPF_B) || (defined(HAVE_DECL_BPF_B) && HAVE_DECL_BPF_B)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_B) == (0x10), "BPF_B != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_B 0x10
+#endif
+#if defined(BPF_DW) || (defined(HAVE_DECL_BPF_DW) && HAVE_DECL_BPF_DW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_DW) == (0x18), "BPF_DW != 0x18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_DW 0x18
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_size in mpers mode
+
+# else
static
const struct xlat bpf_size[] = {
-#if defined(BPF_W) || (defined(HAVE_DECL_BPF_W) && HAVE_DECL_BPF_W)
- XLAT(BPF_W),
-#endif
-#if defined(BPF_H) || (defined(HAVE_DECL_BPF_H) && HAVE_DECL_BPF_H)
- XLAT(BPF_H),
-#endif
-#if defined(BPF_B) || (defined(HAVE_DECL_BPF_B) && HAVE_DECL_BPF_B)
- XLAT(BPF_B),
-#endif
-#if defined(BPF_DW) || (defined(HAVE_DECL_BPF_DW) && HAVE_DECL_BPF_DW)
- XLAT(BPF_DW),
-#endif
+ XLAT(BPF_W),
+ XLAT(BPF_H),
+ XLAT(BPF_B),
+ XLAT(BPF_DW),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_size.in b/xlat/bpf_size.in
index 5e0a508..104428f 100644
--- a/xlat/bpf_size.in
+++ b/xlat/bpf_size.in
@@ -1,4 +1,4 @@
-BPF_W
-BPF_H
-BPF_B
-BPF_DW
+BPF_W 0x00
+BPF_H 0x08
+BPF_B 0x10
+BPF_DW 0x18
diff --git a/xlat/bpf_src.h b/xlat/bpf_src.h
index c063e75..eee32dd 100644
--- a/xlat/bpf_src.h
+++ b/xlat/bpf_src.h
@@ -1,20 +1,38 @@
/* Generated by ./xlat/gen.sh from ./xlat/bpf_src.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bpf_src in mpers mode
-
+#if defined(BPF_K) || (defined(HAVE_DECL_BPF_K) && HAVE_DECL_BPF_K)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_K) == (0x00), "BPF_K != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BPF_K 0x00
+#endif
+#if defined(BPF_X) || (defined(HAVE_DECL_BPF_X) && HAVE_DECL_BPF_X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_X) == (0x08), "BPF_X != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_X 0x08
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bpf_src in mpers mode
+
+# else
static
const struct xlat bpf_src[] = {
-#if defined(BPF_K) || (defined(HAVE_DECL_BPF_K) && HAVE_DECL_BPF_K)
- XLAT(BPF_K),
-#endif
-#if defined(BPF_X) || (defined(HAVE_DECL_BPF_X) && HAVE_DECL_BPF_X)
- XLAT(BPF_X),
-#endif
+ XLAT(BPF_K),
+ XLAT(BPF_X),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bpf_src.in b/xlat/bpf_src.in
index ede6abb..4623717 100644
--- a/xlat/bpf_src.in
+++ b/xlat/bpf_src.in
@@ -1,2 +1,2 @@
-BPF_K
-BPF_X
+BPF_K 0x00
+BPF_X 0x08
diff --git a/xlat/bsg_flags.h b/xlat/bsg_flags.h
index c5f28d9..fc0f083 100644
--- a/xlat/bsg_flags.h
+++ b/xlat/bsg_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/bsg_flags.in; do not edit. */
-#if !(defined(BSG_FLAG_Q_AT_TAIL) || (defined(HAVE_DECL_BSG_FLAG_Q_AT_TAIL) && HAVE_DECL_BSG_FLAG_Q_AT_TAIL))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BSG_FLAG_Q_AT_TAIL) || (defined(HAVE_DECL_BSG_FLAG_Q_AT_TAIL) && HAVE_DECL_BSG_FLAG_Q_AT_TAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BSG_FLAG_Q_AT_TAIL) == (0x10), "BSG_FLAG_Q_AT_TAIL != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BSG_FLAG_Q_AT_TAIL 0x10
#endif
-#if !(defined(BSG_FLAG_Q_AT_HEAD) || (defined(HAVE_DECL_BSG_FLAG_Q_AT_HEAD) && HAVE_DECL_BSG_FLAG_Q_AT_HEAD))
+#if defined(BSG_FLAG_Q_AT_HEAD) || (defined(HAVE_DECL_BSG_FLAG_Q_AT_HEAD) && HAVE_DECL_BSG_FLAG_Q_AT_HEAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BSG_FLAG_Q_AT_HEAD) == (0x20), "BSG_FLAG_Q_AT_HEAD != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BSG_FLAG_Q_AT_HEAD 0x20
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat bsg_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat bsg_flags in mpers mode
+
+# else
static
const struct xlat bsg_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bsg_protocol.h b/xlat/bsg_protocol.h
index 541085d..fba6c1e 100644
--- a/xlat/bsg_protocol.h
+++ b/xlat/bsg_protocol.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/bsg_protocol.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bsg_protocol in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bsg_protocol in mpers mode
+
+# else
static
const struct xlat bsg_protocol[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bsg_subprotocol.h b/xlat/bsg_subprotocol.h
index 8073213..20752c4 100644
--- a/xlat/bsg_subprotocol.h
+++ b/xlat/bsg_subprotocol.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/bsg_subprotocol.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bsg_subprotocol in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bsg_subprotocol in mpers mode
+
+# else
static
const struct xlat bsg_subprotocol[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bt_protocols.h b/xlat/bt_protocols.h
index 7b0e164..bd2db01 100644
--- a/xlat/bt_protocols.h
+++ b/xlat/bt_protocols.h
@@ -1,38 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/bt_protocols.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat bt_protocols in mpers mode
-
+#if defined(BTPROTO_L2CAP) || (defined(HAVE_DECL_BTPROTO_L2CAP) && HAVE_DECL_BTPROTO_L2CAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_L2CAP) == (0), "BTPROTO_L2CAP != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define BTPROTO_L2CAP 0
+#endif
+#if defined(BTPROTO_HCI) || (defined(HAVE_DECL_BTPROTO_HCI) && HAVE_DECL_BTPROTO_HCI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_HCI) == (1), "BTPROTO_HCI != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTPROTO_HCI 1
+#endif
+#if defined(BTPROTO_SCO) || (defined(HAVE_DECL_BTPROTO_SCO) && HAVE_DECL_BTPROTO_SCO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_SCO) == (2), "BTPROTO_SCO != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTPROTO_SCO 2
+#endif
+#if defined(BTPROTO_RFCOMM) || (defined(HAVE_DECL_BTPROTO_RFCOMM) && HAVE_DECL_BTPROTO_RFCOMM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_RFCOMM) == (3), "BTPROTO_RFCOMM != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTPROTO_RFCOMM 3
+#endif
+#if defined(BTPROTO_BNEP) || (defined(HAVE_DECL_BTPROTO_BNEP) && HAVE_DECL_BTPROTO_BNEP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_BNEP) == (4), "BTPROTO_BNEP != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTPROTO_BNEP 4
+#endif
+#if defined(BTPROTO_CMTP) || (defined(HAVE_DECL_BTPROTO_CMTP) && HAVE_DECL_BTPROTO_CMTP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_CMTP) == (5), "BTPROTO_CMTP != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTPROTO_CMTP 5
+#endif
+#if defined(BTPROTO_HIDP) || (defined(HAVE_DECL_BTPROTO_HIDP) && HAVE_DECL_BTPROTO_HIDP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_HIDP) == (6), "BTPROTO_HIDP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTPROTO_HIDP 6
+#endif
+#if defined(BTPROTO_AVDTP) || (defined(HAVE_DECL_BTPROTO_AVDTP) && HAVE_DECL_BTPROTO_AVDTP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTPROTO_AVDTP) == (7), "BTPROTO_AVDTP != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTPROTO_AVDTP 7
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat bt_protocols in mpers mode
+
+# else
static
const struct xlat bt_protocols[] = {
-#if defined(BTPROTO_L2CAP) || (defined(HAVE_DECL_BTPROTO_L2CAP) && HAVE_DECL_BTPROTO_L2CAP)
- XLAT(BTPROTO_L2CAP),
-#endif
-#if defined(BTPROTO_HCI) || (defined(HAVE_DECL_BTPROTO_HCI) && HAVE_DECL_BTPROTO_HCI)
- XLAT(BTPROTO_HCI),
-#endif
-#if defined(BTPROTO_SCO) || (defined(HAVE_DECL_BTPROTO_SCO) && HAVE_DECL_BTPROTO_SCO)
- XLAT(BTPROTO_SCO),
-#endif
-#if defined(BTPROTO_RFCOMM) || (defined(HAVE_DECL_BTPROTO_RFCOMM) && HAVE_DECL_BTPROTO_RFCOMM)
- XLAT(BTPROTO_RFCOMM),
-#endif
-#if defined(BTPROTO_BNEP) || (defined(HAVE_DECL_BTPROTO_BNEP) && HAVE_DECL_BTPROTO_BNEP)
- XLAT(BTPROTO_BNEP),
-#endif
-#if defined(BTPROTO_CMTP) || (defined(HAVE_DECL_BTPROTO_CMTP) && HAVE_DECL_BTPROTO_CMTP)
- XLAT(BTPROTO_CMTP),
-#endif
-#if defined(BTPROTO_HIDP) || (defined(HAVE_DECL_BTPROTO_HIDP) && HAVE_DECL_BTPROTO_HIDP)
- XLAT(BTPROTO_HIDP),
-#endif
-#if defined(BTPROTO_AVDTP) || (defined(HAVE_DECL_BTPROTO_AVDTP) && HAVE_DECL_BTPROTO_AVDTP)
- XLAT(BTPROTO_AVDTP),
-#endif
+ [BTPROTO_L2CAP] = XLAT(BTPROTO_L2CAP),
+ [BTPROTO_HCI] = XLAT(BTPROTO_HCI),
+ [BTPROTO_SCO] = XLAT(BTPROTO_SCO),
+ [BTPROTO_RFCOMM] = XLAT(BTPROTO_RFCOMM),
+ [BTPROTO_BNEP] = XLAT(BTPROTO_BNEP),
+ [BTPROTO_CMTP] = XLAT(BTPROTO_CMTP),
+ [BTPROTO_HIDP] = XLAT(BTPROTO_HIDP),
+ [BTPROTO_AVDTP] = XLAT(BTPROTO_AVDTP),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/bt_protocols.in b/xlat/bt_protocols.in
index 1f7f348..a0ad056 100644
--- a/xlat/bt_protocols.in
+++ b/xlat/bt_protocols.in
@@ -1,8 +1,9 @@
-BTPROTO_L2CAP
-BTPROTO_HCI
-BTPROTO_SCO
-BTPROTO_RFCOMM
-BTPROTO_BNEP
-BTPROTO_CMTP
-BTPROTO_HIDP
-BTPROTO_AVDTP
+#value_indexed
+BTPROTO_L2CAP 0
+BTPROTO_HCI 1
+BTPROTO_SCO 2
+BTPROTO_RFCOMM 3
+BTPROTO_BNEP 4
+BTPROTO_CMTP 5
+BTPROTO_HIDP 6
+BTPROTO_AVDTP 7
diff --git a/xlat/btrfs_balance_args.h b/xlat/btrfs_balance_args.h
index d1f1091..11eced6 100644
--- a/xlat/btrfs_balance_args.h
+++ b/xlat/btrfs_balance_args.h
@@ -1,47 +1,97 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_balance_args.in; do not edit. */
-#if !(defined(BTRFS_BALANCE_ARGS_PROFILES) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_PROFILES) && HAVE_DECL_BTRFS_BALANCE_ARGS_PROFILES))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_BALANCE_ARGS_PROFILES) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_PROFILES) && HAVE_DECL_BTRFS_BALANCE_ARGS_PROFILES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_PROFILES) == ((1ULL << 0)), "BTRFS_BALANCE_ARGS_PROFILES != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_PROFILES (1ULL << 0)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_USAGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE))
+#if defined(BTRFS_BALANCE_ARGS_USAGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_USAGE) == ((1ULL << 1)), "BTRFS_BALANCE_ARGS_USAGE != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_USAGE (1ULL << 1)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_DEVID) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_DEVID) && HAVE_DECL_BTRFS_BALANCE_ARGS_DEVID))
+#if defined(BTRFS_BALANCE_ARGS_DEVID) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_DEVID) && HAVE_DECL_BTRFS_BALANCE_ARGS_DEVID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_DEVID) == ((1ULL << 2)), "BTRFS_BALANCE_ARGS_DEVID != (1ULL << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_DEVID (1ULL << 2)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_DRANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_DRANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_DRANGE))
+#if defined(BTRFS_BALANCE_ARGS_DRANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_DRANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_DRANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_DRANGE) == ((1ULL << 3)), "BTRFS_BALANCE_ARGS_DRANGE != (1ULL << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_DRANGE (1ULL << 3)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_VRANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_VRANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_VRANGE))
+#if defined(BTRFS_BALANCE_ARGS_VRANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_VRANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_VRANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_VRANGE) == ((1ULL << 4)), "BTRFS_BALANCE_ARGS_VRANGE != (1ULL << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_VRANGE (1ULL << 4)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_LIMIT) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT) && HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT))
+#if defined(BTRFS_BALANCE_ARGS_LIMIT) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT) && HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_LIMIT) == ((1ULL << 5)), "BTRFS_BALANCE_ARGS_LIMIT != (1ULL << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_LIMIT (1ULL << 5)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_LIMIT_RANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT_RANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT_RANGE))
+#if defined(BTRFS_BALANCE_ARGS_LIMIT_RANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT_RANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_LIMIT_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_LIMIT_RANGE) == ((1ULL << 6)), "BTRFS_BALANCE_ARGS_LIMIT_RANGE != (1ULL << 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_LIMIT_RANGE (1ULL << 6)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_STRIPES_RANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_STRIPES_RANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_STRIPES_RANGE))
+#if defined(BTRFS_BALANCE_ARGS_STRIPES_RANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_STRIPES_RANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_STRIPES_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_STRIPES_RANGE) == ((1ULL << 7)), "BTRFS_BALANCE_ARGS_STRIPES_RANGE != (1ULL << 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_STRIPES_RANGE (1ULL << 7)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_CONVERT) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_CONVERT) && HAVE_DECL_BTRFS_BALANCE_ARGS_CONVERT))
+#if defined(BTRFS_BALANCE_ARGS_CONVERT) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_CONVERT) && HAVE_DECL_BTRFS_BALANCE_ARGS_CONVERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_CONVERT) == ((1ULL << 8)), "BTRFS_BALANCE_ARGS_CONVERT != (1ULL << 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_CONVERT (1ULL << 8)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_SOFT) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_SOFT) && HAVE_DECL_BTRFS_BALANCE_ARGS_SOFT))
+#if defined(BTRFS_BALANCE_ARGS_SOFT) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_SOFT) && HAVE_DECL_BTRFS_BALANCE_ARGS_SOFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_SOFT) == ((1ULL << 9)), "BTRFS_BALANCE_ARGS_SOFT != (1ULL << 9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_SOFT (1ULL << 9)
#endif
-#if !(defined(BTRFS_BALANCE_ARGS_USAGE_RANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE_RANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE_RANGE))
+#if defined(BTRFS_BALANCE_ARGS_USAGE_RANGE) || (defined(HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE_RANGE) && HAVE_DECL_BTRFS_BALANCE_ARGS_USAGE_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ARGS_USAGE_RANGE) == ((1ULL << 10)), "BTRFS_BALANCE_ARGS_USAGE_RANGE != (1ULL << 10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ARGS_USAGE_RANGE (1ULL << 10)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_balance_args[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_balance_args[] = {
XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_PROFILES),
XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_USAGE),
@@ -57,4 +107,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_balance_ctl_cmds.h b/xlat/btrfs_balance_ctl_cmds.h
index 9bdc820..a7c0040 100644
--- a/xlat/btrfs_balance_ctl_cmds.h
+++ b/xlat/btrfs_balance_ctl_cmds.h
@@ -1,24 +1,40 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_balance_ctl_cmds.in; do not edit. */
-#if !(defined(BTRFS_BALANCE_CTL_PAUSE) || (defined(HAVE_DECL_BTRFS_BALANCE_CTL_PAUSE) && HAVE_DECL_BTRFS_BALANCE_CTL_PAUSE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_BALANCE_CTL_PAUSE) || (defined(HAVE_DECL_BTRFS_BALANCE_CTL_PAUSE) && HAVE_DECL_BTRFS_BALANCE_CTL_PAUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_CTL_PAUSE) == (1), "BTRFS_BALANCE_CTL_PAUSE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_CTL_PAUSE 1
#endif
-#if !(defined(BTRFS_BALANCE_CTL_CANCEL) || (defined(HAVE_DECL_BTRFS_BALANCE_CTL_CANCEL) && HAVE_DECL_BTRFS_BALANCE_CTL_CANCEL))
+#if defined(BTRFS_BALANCE_CTL_CANCEL) || (defined(HAVE_DECL_BTRFS_BALANCE_CTL_CANCEL) && HAVE_DECL_BTRFS_BALANCE_CTL_CANCEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_CTL_CANCEL) == (2), "BTRFS_BALANCE_CTL_CANCEL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_CTL_CANCEL 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_balance_ctl_cmds[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_balance_ctl_cmds[] = {
XLAT(BTRFS_BALANCE_CTL_PAUSE),
XLAT(BTRFS_BALANCE_CTL_CANCEL),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_balance_flags.h b/xlat/btrfs_balance_flags.h
index c071b6e..8753755 100644
--- a/xlat/btrfs_balance_flags.h
+++ b/xlat/btrfs_balance_flags.h
@@ -1,29 +1,55 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_balance_flags.in; do not edit. */
-#if !(defined(BTRFS_BALANCE_DATA) || (defined(HAVE_DECL_BTRFS_BALANCE_DATA) && HAVE_DECL_BTRFS_BALANCE_DATA))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_BALANCE_DATA) || (defined(HAVE_DECL_BTRFS_BALANCE_DATA) && HAVE_DECL_BTRFS_BALANCE_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_DATA) == ((1ULL << 0)), "BTRFS_BALANCE_DATA != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_DATA (1ULL << 0)
#endif
-#if !(defined(BTRFS_BALANCE_SYSTEM) || (defined(HAVE_DECL_BTRFS_BALANCE_SYSTEM) && HAVE_DECL_BTRFS_BALANCE_SYSTEM))
+#if defined(BTRFS_BALANCE_SYSTEM) || (defined(HAVE_DECL_BTRFS_BALANCE_SYSTEM) && HAVE_DECL_BTRFS_BALANCE_SYSTEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_SYSTEM) == ((1ULL << 1)), "BTRFS_BALANCE_SYSTEM != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_SYSTEM (1ULL << 1)
#endif
-#if !(defined(BTRFS_BALANCE_METADATA) || (defined(HAVE_DECL_BTRFS_BALANCE_METADATA) && HAVE_DECL_BTRFS_BALANCE_METADATA))
+#if defined(BTRFS_BALANCE_METADATA) || (defined(HAVE_DECL_BTRFS_BALANCE_METADATA) && HAVE_DECL_BTRFS_BALANCE_METADATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_METADATA) == ((1ULL << 2)), "BTRFS_BALANCE_METADATA != (1ULL << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_METADATA (1ULL << 2)
#endif
-#if !(defined(BTRFS_BALANCE_FORCE) || (defined(HAVE_DECL_BTRFS_BALANCE_FORCE) && HAVE_DECL_BTRFS_BALANCE_FORCE))
+#if defined(BTRFS_BALANCE_FORCE) || (defined(HAVE_DECL_BTRFS_BALANCE_FORCE) && HAVE_DECL_BTRFS_BALANCE_FORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_FORCE) == ((1ULL << 3)), "BTRFS_BALANCE_FORCE != (1ULL << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_FORCE (1ULL << 3)
#endif
-#if !(defined(BTRFS_BALANCE_RESUME) || (defined(HAVE_DECL_BTRFS_BALANCE_RESUME) && HAVE_DECL_BTRFS_BALANCE_RESUME))
+#if defined(BTRFS_BALANCE_RESUME) || (defined(HAVE_DECL_BTRFS_BALANCE_RESUME) && HAVE_DECL_BTRFS_BALANCE_RESUME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_RESUME) == ((1ULL << 4)), "BTRFS_BALANCE_RESUME != (1ULL << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_RESUME (1ULL << 4)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_balance_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_balance_flags[] = {
XLAT_TYPE(uint64_t, BTRFS_BALANCE_DATA),
XLAT_TYPE(uint64_t, BTRFS_BALANCE_SYSTEM),
@@ -33,4 +59,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_balance_state.h b/xlat/btrfs_balance_state.h
index 64c8511..1a14a03 100644
--- a/xlat/btrfs_balance_state.h
+++ b/xlat/btrfs_balance_state.h
@@ -1,23 +1,41 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_balance_state.in; do not edit. */
-#if !(defined(BTRFS_BALANCE_STATE_RUNNING) || (defined(HAVE_DECL_BTRFS_BALANCE_STATE_RUNNING) && HAVE_DECL_BTRFS_BALANCE_STATE_RUNNING))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_BALANCE_STATE_RUNNING) || (defined(HAVE_DECL_BTRFS_BALANCE_STATE_RUNNING) && HAVE_DECL_BTRFS_BALANCE_STATE_RUNNING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_STATE_RUNNING) == ((1ULL << 0)), "BTRFS_BALANCE_STATE_RUNNING != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_STATE_RUNNING (1ULL << 0)
#endif
-#if !(defined(BTRFS_BALANCE_STATE_PAUSE_REQ) || (defined(HAVE_DECL_BTRFS_BALANCE_STATE_PAUSE_REQ) && HAVE_DECL_BTRFS_BALANCE_STATE_PAUSE_REQ))
+#if defined(BTRFS_BALANCE_STATE_PAUSE_REQ) || (defined(HAVE_DECL_BTRFS_BALANCE_STATE_PAUSE_REQ) && HAVE_DECL_BTRFS_BALANCE_STATE_PAUSE_REQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_STATE_PAUSE_REQ) == ((1ULL << 1)), "BTRFS_BALANCE_STATE_PAUSE_REQ != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_STATE_PAUSE_REQ (1ULL << 1)
#endif
-#if !(defined(BTRFS_BALANCE_STATE_CANCEL_REQ) || (defined(HAVE_DECL_BTRFS_BALANCE_STATE_CANCEL_REQ) && HAVE_DECL_BTRFS_BALANCE_STATE_CANCEL_REQ))
+#if defined(BTRFS_BALANCE_STATE_CANCEL_REQ) || (defined(HAVE_DECL_BTRFS_BALANCE_STATE_CANCEL_REQ) && HAVE_DECL_BTRFS_BALANCE_STATE_CANCEL_REQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_STATE_CANCEL_REQ) == ((1ULL << 2)), "BTRFS_BALANCE_STATE_CANCEL_REQ != (1ULL << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_STATE_CANCEL_REQ (1ULL << 2)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_balance_state[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_balance_state[] = {
XLAT(BTRFS_BALANCE_STATE_RUNNING),
XLAT(BTRFS_BALANCE_STATE_PAUSE_REQ),
@@ -25,4 +43,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_compress_types.h b/xlat/btrfs_compress_types.h
index dd89c63..50fa15f 100644
--- a/xlat/btrfs_compress_types.h
+++ b/xlat/btrfs_compress_types.h
@@ -1,23 +1,41 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_compress_types.in; do not edit. */
-#if !(defined(BTRFS_COMPRESS_NONE) || (defined(HAVE_DECL_BTRFS_COMPRESS_NONE) && HAVE_DECL_BTRFS_COMPRESS_NONE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_COMPRESS_NONE) || (defined(HAVE_DECL_BTRFS_COMPRESS_NONE) && HAVE_DECL_BTRFS_COMPRESS_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_COMPRESS_NONE) == (0), "BTRFS_COMPRESS_NONE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_COMPRESS_NONE 0
#endif
-#if !(defined(BTRFS_COMPRESS_ZLIB) || (defined(HAVE_DECL_BTRFS_COMPRESS_ZLIB) && HAVE_DECL_BTRFS_COMPRESS_ZLIB))
+#if defined(BTRFS_COMPRESS_ZLIB) || (defined(HAVE_DECL_BTRFS_COMPRESS_ZLIB) && HAVE_DECL_BTRFS_COMPRESS_ZLIB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_COMPRESS_ZLIB) == (1), "BTRFS_COMPRESS_ZLIB != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_COMPRESS_ZLIB 1
#endif
-#if !(defined(BTRFS_COMPRESS_LZO) || (defined(HAVE_DECL_BTRFS_COMPRESS_LZO) && HAVE_DECL_BTRFS_COMPRESS_LZO))
+#if defined(BTRFS_COMPRESS_LZO) || (defined(HAVE_DECL_BTRFS_COMPRESS_LZO) && HAVE_DECL_BTRFS_COMPRESS_LZO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_COMPRESS_LZO) == (2), "BTRFS_COMPRESS_LZO != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_COMPRESS_LZO 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_compress_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_compress_types[] = {
XLAT(BTRFS_COMPRESS_NONE),
XLAT(BTRFS_COMPRESS_ZLIB),
@@ -25,4 +43,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_cont_reading_from_srcdev_mode.h b/xlat/btrfs_cont_reading_from_srcdev_mode.h
new file mode 100644
index 0000000..4904e93
--- /dev/null
+++ b/xlat/btrfs_cont_reading_from_srcdev_mode.h
@@ -0,0 +1,40 @@
+/* Generated by ./xlat/gen.sh from ./xlat/btrfs_cont_reading_from_srcdev_mode.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS) == (0), "BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS 0
+#endif
+#if defined(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID) == (1), "BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID 1
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+extern const struct xlat btrfs_cont_reading_from_srcdev_mode[];
+
+# else
+
+# 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
+};
+
+# 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
new file mode 100644
index 0000000..0a1decf
--- /dev/null
+++ b/xlat/btrfs_cont_reading_from_srcdev_mode.in
@@ -0,0 +1,2 @@
+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 2990b21..7fac3a4 100644
--- a/xlat/btrfs_defrag_flags.h
+++ b/xlat/btrfs_defrag_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_defrag_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_defrag_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_defrag_flags[] = {
#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),
@@ -19,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_dev_replace_cmds.h b/xlat/btrfs_dev_replace_cmds.h
index 83bd044..f612ebd 100644
--- a/xlat/btrfs_dev_replace_cmds.h
+++ b/xlat/btrfs_dev_replace_cmds.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_dev_replace_cmds.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_dev_replace_cmds[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_dev_replace_cmds[] = {
#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),
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_dev_replace_results.h b/xlat/btrfs_dev_replace_results.h
index 62fe4f8..cf96f4f 100644
--- a/xlat/btrfs_dev_replace_results.h
+++ b/xlat/btrfs_dev_replace_results.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_dev_replace_results.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_dev_replace_results[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_dev_replace_results[] = {
#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),
@@ -25,4 +31,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_dev_replace_state.h b/xlat/btrfs_dev_replace_state.h
index 7095c1a..de5cf7b 100644
--- a/xlat/btrfs_dev_replace_state.h
+++ b/xlat/btrfs_dev_replace_state.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_dev_replace_state.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_dev_replace_state[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_dev_replace_state[] = {
#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),
@@ -28,4 +34,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_dev_stats_flags.h b/xlat/btrfs_dev_stats_flags.h
index 7bfbb09..29793e5 100644
--- a/xlat/btrfs_dev_stats_flags.h
+++ b/xlat/btrfs_dev_stats_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_dev_stats_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_dev_stats_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_dev_stats_flags[] = {
#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),
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_dev_stats_values.h b/xlat/btrfs_dev_stats_values.h
index eaaeff0..0715071 100644
--- a/xlat/btrfs_dev_stats_values.h
+++ b/xlat/btrfs_dev_stats_values.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_dev_stats_values.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_dev_stats_values[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_dev_stats_values[] = {
XLAT_TYPE(uint64_t, BTRFS_DEV_STAT_WRITE_ERRS),
XLAT_TYPE(uint64_t, BTRFS_DEV_STAT_READ_ERRS),
@@ -18,4 +24,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_features_compat.h b/xlat/btrfs_features_compat.h
index d1e61d8..754dc9e 100644
--- a/xlat/btrfs_features_compat.h
+++ b/xlat/btrfs_features_compat.h
@@ -1,16 +1,24 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_features_compat.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_features_compat[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_features_compat[] = {
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_features_compat_ro.h b/xlat/btrfs_features_compat_ro.h
index 324324a..348782b 100644
--- a/xlat/btrfs_features_compat_ro.h
+++ b/xlat/btrfs_features_compat_ro.h
@@ -1,24 +1,40 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_features_compat_ro.in; do not edit. */
-#if !(defined(BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE) || (defined(HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE) && HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE) || (defined(HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE) && HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE) == ((1ULL << 0)), "BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
#endif
-#if !(defined(BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID) || (defined(HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID) && HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID))
+#if defined(BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID) || (defined(HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID) && HAVE_DECL_BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID) == ((1ULL << 1)), "BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_features_compat_ro[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_features_compat_ro[] = {
XLAT_TYPE(uint64_t, BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE),
XLAT_TYPE(uint64_t, BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_features_incompat.h b/xlat/btrfs_features_incompat.h
index b012f41..e7f5c98 100644
--- a/xlat/btrfs_features_incompat.h
+++ b/xlat/btrfs_features_incompat.h
@@ -1,44 +1,90 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_features_incompat.in; do not edit. */
-#if !(defined(BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF) == ((1ULL << 0)), "BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL))
+#if defined(BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL) == ((1ULL << 1)), "BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS))
+#if defined(BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS) == ((1ULL << 2)), "BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS != (1ULL << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO))
+#if defined(BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO) == ((1ULL << 3)), "BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO != (1ULL << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2))
+#if defined(BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2) == ((1ULL << 4)), "BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 != (1ULL << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_BIG_METADATA) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_BIG_METADATA) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_BIG_METADATA))
+#if defined(BTRFS_FEATURE_INCOMPAT_BIG_METADATA) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_BIG_METADATA) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_BIG_METADATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_BIG_METADATA) == ((1ULL << 5)), "BTRFS_FEATURE_INCOMPAT_BIG_METADATA != (1ULL << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_BIG_METADATA (1ULL << 5)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF))
+#if defined(BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF) == ((1ULL << 6)), "BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF != (1ULL << 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF (1ULL << 6)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_RAID56) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_RAID56) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_RAID56))
+#if defined(BTRFS_FEATURE_INCOMPAT_RAID56) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_RAID56) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_RAID56)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_RAID56) == ((1ULL << 7)), "BTRFS_FEATURE_INCOMPAT_RAID56 != (1ULL << 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_RAID56 (1ULL << 7)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA))
+#if defined(BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) == ((1ULL << 8)), "BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA != (1ULL << 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8)
#endif
-#if !(defined(BTRFS_FEATURE_INCOMPAT_NO_HOLES) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_NO_HOLES) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_NO_HOLES))
+#if defined(BTRFS_FEATURE_INCOMPAT_NO_HOLES) || (defined(HAVE_DECL_BTRFS_FEATURE_INCOMPAT_NO_HOLES) && HAVE_DECL_BTRFS_FEATURE_INCOMPAT_NO_HOLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FEATURE_INCOMPAT_NO_HOLES) == ((1ULL << 9)), "BTRFS_FEATURE_INCOMPAT_NO_HOLES != (1ULL << 9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_features_incompat[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_features_incompat[] = {
XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF),
XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL),
@@ -53,4 +99,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_key_types.h b/xlat/btrfs_key_types.h
index 1a72165..71fcaba 100644
--- a/xlat/btrfs_key_types.h
+++ b/xlat/btrfs_key_types.h
@@ -1,137 +1,307 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_key_types.in; do not edit. */
-#if !(defined(BTRFS_INODE_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_INODE_ITEM_KEY) && HAVE_DECL_BTRFS_INODE_ITEM_KEY))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_INODE_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_INODE_ITEM_KEY) && HAVE_DECL_BTRFS_INODE_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_INODE_ITEM_KEY) == (1), "BTRFS_INODE_ITEM_KEY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_INODE_ITEM_KEY 1
#endif
-#if !(defined(BTRFS_INODE_REF_KEY) || (defined(HAVE_DECL_BTRFS_INODE_REF_KEY) && HAVE_DECL_BTRFS_INODE_REF_KEY))
+#if defined(BTRFS_INODE_REF_KEY) || (defined(HAVE_DECL_BTRFS_INODE_REF_KEY) && HAVE_DECL_BTRFS_INODE_REF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_INODE_REF_KEY) == (12), "BTRFS_INODE_REF_KEY != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_INODE_REF_KEY 12
#endif
-#if !(defined(BTRFS_INODE_EXTREF_KEY) || (defined(HAVE_DECL_BTRFS_INODE_EXTREF_KEY) && HAVE_DECL_BTRFS_INODE_EXTREF_KEY))
+#if defined(BTRFS_INODE_EXTREF_KEY) || (defined(HAVE_DECL_BTRFS_INODE_EXTREF_KEY) && HAVE_DECL_BTRFS_INODE_EXTREF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_INODE_EXTREF_KEY) == (13), "BTRFS_INODE_EXTREF_KEY != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_INODE_EXTREF_KEY 13
#endif
-#if !(defined(BTRFS_XATTR_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_XATTR_ITEM_KEY) && HAVE_DECL_BTRFS_XATTR_ITEM_KEY))
+#if defined(BTRFS_XATTR_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_XATTR_ITEM_KEY) && HAVE_DECL_BTRFS_XATTR_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_XATTR_ITEM_KEY) == (24), "BTRFS_XATTR_ITEM_KEY != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_XATTR_ITEM_KEY 24
#endif
-#if !(defined(BTRFS_ORPHAN_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_ORPHAN_ITEM_KEY) && HAVE_DECL_BTRFS_ORPHAN_ITEM_KEY))
+#if defined(BTRFS_ORPHAN_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_ORPHAN_ITEM_KEY) && HAVE_DECL_BTRFS_ORPHAN_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_ORPHAN_ITEM_KEY) == (48), "BTRFS_ORPHAN_ITEM_KEY != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_ORPHAN_ITEM_KEY 48
#endif
-#if !(defined(BTRFS_DIR_LOG_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_DIR_LOG_ITEM_KEY) && HAVE_DECL_BTRFS_DIR_LOG_ITEM_KEY))
+#if defined(BTRFS_DIR_LOG_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_DIR_LOG_ITEM_KEY) && HAVE_DECL_BTRFS_DIR_LOG_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DIR_LOG_ITEM_KEY) == (60), "BTRFS_DIR_LOG_ITEM_KEY != 60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DIR_LOG_ITEM_KEY 60
#endif
-#if !(defined(BTRFS_DIR_LOG_INDEX_KEY) || (defined(HAVE_DECL_BTRFS_DIR_LOG_INDEX_KEY) && HAVE_DECL_BTRFS_DIR_LOG_INDEX_KEY))
+#if defined(BTRFS_DIR_LOG_INDEX_KEY) || (defined(HAVE_DECL_BTRFS_DIR_LOG_INDEX_KEY) && HAVE_DECL_BTRFS_DIR_LOG_INDEX_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DIR_LOG_INDEX_KEY) == (72), "BTRFS_DIR_LOG_INDEX_KEY != 72");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DIR_LOG_INDEX_KEY 72
#endif
-#if !(defined(BTRFS_DIR_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_DIR_ITEM_KEY) && HAVE_DECL_BTRFS_DIR_ITEM_KEY))
+#if defined(BTRFS_DIR_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_DIR_ITEM_KEY) && HAVE_DECL_BTRFS_DIR_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DIR_ITEM_KEY) == (84), "BTRFS_DIR_ITEM_KEY != 84");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DIR_ITEM_KEY 84
#endif
-#if !(defined(BTRFS_DIR_INDEX_KEY) || (defined(HAVE_DECL_BTRFS_DIR_INDEX_KEY) && HAVE_DECL_BTRFS_DIR_INDEX_KEY))
+#if defined(BTRFS_DIR_INDEX_KEY) || (defined(HAVE_DECL_BTRFS_DIR_INDEX_KEY) && HAVE_DECL_BTRFS_DIR_INDEX_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DIR_INDEX_KEY) == (96), "BTRFS_DIR_INDEX_KEY != 96");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DIR_INDEX_KEY 96
#endif
-#if !(defined(BTRFS_EXTENT_DATA_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_DATA_KEY) && HAVE_DECL_BTRFS_EXTENT_DATA_KEY))
+#if defined(BTRFS_EXTENT_DATA_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_DATA_KEY) && HAVE_DECL_BTRFS_EXTENT_DATA_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_EXTENT_DATA_KEY) == (108), "BTRFS_EXTENT_DATA_KEY != 108");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_EXTENT_DATA_KEY 108
#endif
-#if !(defined(BTRFS_EXTENT_CSUM_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_CSUM_KEY) && HAVE_DECL_BTRFS_EXTENT_CSUM_KEY))
+#if defined(BTRFS_EXTENT_CSUM_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_CSUM_KEY) && HAVE_DECL_BTRFS_EXTENT_CSUM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_EXTENT_CSUM_KEY) == (128), "BTRFS_EXTENT_CSUM_KEY != 128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_EXTENT_CSUM_KEY 128
#endif
-#if !(defined(BTRFS_ROOT_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_ROOT_ITEM_KEY) && HAVE_DECL_BTRFS_ROOT_ITEM_KEY))
+#if defined(BTRFS_ROOT_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_ROOT_ITEM_KEY) && HAVE_DECL_BTRFS_ROOT_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_ROOT_ITEM_KEY) == (132), "BTRFS_ROOT_ITEM_KEY != 132");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_ROOT_ITEM_KEY 132
#endif
-#if !(defined(BTRFS_ROOT_BACKREF_KEY) || (defined(HAVE_DECL_BTRFS_ROOT_BACKREF_KEY) && HAVE_DECL_BTRFS_ROOT_BACKREF_KEY))
+#if defined(BTRFS_ROOT_BACKREF_KEY) || (defined(HAVE_DECL_BTRFS_ROOT_BACKREF_KEY) && HAVE_DECL_BTRFS_ROOT_BACKREF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_ROOT_BACKREF_KEY) == (144), "BTRFS_ROOT_BACKREF_KEY != 144");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_ROOT_BACKREF_KEY 144
#endif
-#if !(defined(BTRFS_ROOT_REF_KEY) || (defined(HAVE_DECL_BTRFS_ROOT_REF_KEY) && HAVE_DECL_BTRFS_ROOT_REF_KEY))
+#if defined(BTRFS_ROOT_REF_KEY) || (defined(HAVE_DECL_BTRFS_ROOT_REF_KEY) && HAVE_DECL_BTRFS_ROOT_REF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_ROOT_REF_KEY) == (156), "BTRFS_ROOT_REF_KEY != 156");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_ROOT_REF_KEY 156
#endif
-#if !(defined(BTRFS_EXTENT_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_ITEM_KEY) && HAVE_DECL_BTRFS_EXTENT_ITEM_KEY))
+#if defined(BTRFS_EXTENT_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_ITEM_KEY) && HAVE_DECL_BTRFS_EXTENT_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_EXTENT_ITEM_KEY) == (168), "BTRFS_EXTENT_ITEM_KEY != 168");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_EXTENT_ITEM_KEY 168
#endif
-#if !(defined(BTRFS_METADATA_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_METADATA_ITEM_KEY) && HAVE_DECL_BTRFS_METADATA_ITEM_KEY))
+#if defined(BTRFS_METADATA_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_METADATA_ITEM_KEY) && HAVE_DECL_BTRFS_METADATA_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_METADATA_ITEM_KEY) == (169), "BTRFS_METADATA_ITEM_KEY != 169");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_METADATA_ITEM_KEY 169
#endif
-#if !(defined(BTRFS_TREE_BLOCK_REF_KEY) || (defined(HAVE_DECL_BTRFS_TREE_BLOCK_REF_KEY) && HAVE_DECL_BTRFS_TREE_BLOCK_REF_KEY))
+#if defined(BTRFS_TREE_BLOCK_REF_KEY) || (defined(HAVE_DECL_BTRFS_TREE_BLOCK_REF_KEY) && HAVE_DECL_BTRFS_TREE_BLOCK_REF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_TREE_BLOCK_REF_KEY) == (176), "BTRFS_TREE_BLOCK_REF_KEY != 176");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_TREE_BLOCK_REF_KEY 176
#endif
-#if !(defined(BTRFS_EXTENT_DATA_REF_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_DATA_REF_KEY) && HAVE_DECL_BTRFS_EXTENT_DATA_REF_KEY))
+#if defined(BTRFS_EXTENT_DATA_REF_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_DATA_REF_KEY) && HAVE_DECL_BTRFS_EXTENT_DATA_REF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_EXTENT_DATA_REF_KEY) == (178), "BTRFS_EXTENT_DATA_REF_KEY != 178");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_EXTENT_DATA_REF_KEY 178
#endif
-#if !(defined(BTRFS_EXTENT_REF_V0_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_REF_V0_KEY) && HAVE_DECL_BTRFS_EXTENT_REF_V0_KEY))
+#if defined(BTRFS_EXTENT_REF_V0_KEY) || (defined(HAVE_DECL_BTRFS_EXTENT_REF_V0_KEY) && HAVE_DECL_BTRFS_EXTENT_REF_V0_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_EXTENT_REF_V0_KEY) == (180), "BTRFS_EXTENT_REF_V0_KEY != 180");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_EXTENT_REF_V0_KEY 180
#endif
-#if !(defined(BTRFS_SHARED_BLOCK_REF_KEY) || (defined(HAVE_DECL_BTRFS_SHARED_BLOCK_REF_KEY) && HAVE_DECL_BTRFS_SHARED_BLOCK_REF_KEY))
+#if defined(BTRFS_SHARED_BLOCK_REF_KEY) || (defined(HAVE_DECL_BTRFS_SHARED_BLOCK_REF_KEY) && HAVE_DECL_BTRFS_SHARED_BLOCK_REF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_SHARED_BLOCK_REF_KEY) == (182), "BTRFS_SHARED_BLOCK_REF_KEY != 182");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_SHARED_BLOCK_REF_KEY 182
#endif
-#if !(defined(BTRFS_SHARED_DATA_REF_KEY) || (defined(HAVE_DECL_BTRFS_SHARED_DATA_REF_KEY) && HAVE_DECL_BTRFS_SHARED_DATA_REF_KEY))
+#if defined(BTRFS_SHARED_DATA_REF_KEY) || (defined(HAVE_DECL_BTRFS_SHARED_DATA_REF_KEY) && HAVE_DECL_BTRFS_SHARED_DATA_REF_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_SHARED_DATA_REF_KEY) == (184), "BTRFS_SHARED_DATA_REF_KEY != 184");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_SHARED_DATA_REF_KEY 184
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_ITEM_KEY) && HAVE_DECL_BTRFS_BLOCK_GROUP_ITEM_KEY))
+#if defined(BTRFS_BLOCK_GROUP_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_ITEM_KEY) && HAVE_DECL_BTRFS_BLOCK_GROUP_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_ITEM_KEY) == (192), "BTRFS_BLOCK_GROUP_ITEM_KEY != 192");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_ITEM_KEY 192
#endif
-#if !(defined(BTRFS_FREE_SPACE_INFO_KEY) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_INFO_KEY) && HAVE_DECL_BTRFS_FREE_SPACE_INFO_KEY))
+#if defined(BTRFS_FREE_SPACE_INFO_KEY) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_INFO_KEY) && HAVE_DECL_BTRFS_FREE_SPACE_INFO_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FREE_SPACE_INFO_KEY) == (198), "BTRFS_FREE_SPACE_INFO_KEY != 198");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FREE_SPACE_INFO_KEY 198
#endif
-#if !(defined(BTRFS_FREE_SPACE_EXTENT_KEY) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_EXTENT_KEY) && HAVE_DECL_BTRFS_FREE_SPACE_EXTENT_KEY))
+#if defined(BTRFS_FREE_SPACE_EXTENT_KEY) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_EXTENT_KEY) && HAVE_DECL_BTRFS_FREE_SPACE_EXTENT_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FREE_SPACE_EXTENT_KEY) == (199), "BTRFS_FREE_SPACE_EXTENT_KEY != 199");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FREE_SPACE_EXTENT_KEY 199
#endif
-#if !(defined(BTRFS_FREE_SPACE_BITMAP_KEY) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_BITMAP_KEY) && HAVE_DECL_BTRFS_FREE_SPACE_BITMAP_KEY))
+#if defined(BTRFS_FREE_SPACE_BITMAP_KEY) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_BITMAP_KEY) && HAVE_DECL_BTRFS_FREE_SPACE_BITMAP_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FREE_SPACE_BITMAP_KEY) == (200), "BTRFS_FREE_SPACE_BITMAP_KEY != 200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FREE_SPACE_BITMAP_KEY 200
#endif
-#if !(defined(BTRFS_DEV_EXTENT_KEY) || (defined(HAVE_DECL_BTRFS_DEV_EXTENT_KEY) && HAVE_DECL_BTRFS_DEV_EXTENT_KEY))
+#if defined(BTRFS_DEV_EXTENT_KEY) || (defined(HAVE_DECL_BTRFS_DEV_EXTENT_KEY) && HAVE_DECL_BTRFS_DEV_EXTENT_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DEV_EXTENT_KEY) == (204), "BTRFS_DEV_EXTENT_KEY != 204");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DEV_EXTENT_KEY 204
#endif
-#if !(defined(BTRFS_DEV_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_DEV_ITEM_KEY) && HAVE_DECL_BTRFS_DEV_ITEM_KEY))
+#if defined(BTRFS_DEV_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_DEV_ITEM_KEY) && HAVE_DECL_BTRFS_DEV_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DEV_ITEM_KEY) == (216), "BTRFS_DEV_ITEM_KEY != 216");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DEV_ITEM_KEY 216
#endif
-#if !(defined(BTRFS_CHUNK_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_CHUNK_ITEM_KEY) && HAVE_DECL_BTRFS_CHUNK_ITEM_KEY))
+#if defined(BTRFS_CHUNK_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_CHUNK_ITEM_KEY) && HAVE_DECL_BTRFS_CHUNK_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_CHUNK_ITEM_KEY) == (228), "BTRFS_CHUNK_ITEM_KEY != 228");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_CHUNK_ITEM_KEY 228
#endif
-#if !(defined(BTRFS_QGROUP_STATUS_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_STATUS_KEY) && HAVE_DECL_BTRFS_QGROUP_STATUS_KEY))
+#if defined(BTRFS_QGROUP_STATUS_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_STATUS_KEY) && HAVE_DECL_BTRFS_QGROUP_STATUS_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_STATUS_KEY) == (240), "BTRFS_QGROUP_STATUS_KEY != 240");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_STATUS_KEY 240
#endif
-#if !(defined(BTRFS_QGROUP_INFO_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_INFO_KEY) && HAVE_DECL_BTRFS_QGROUP_INFO_KEY))
+#if defined(BTRFS_QGROUP_INFO_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_INFO_KEY) && HAVE_DECL_BTRFS_QGROUP_INFO_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_INFO_KEY) == (242), "BTRFS_QGROUP_INFO_KEY != 242");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_INFO_KEY 242
#endif
-#if !(defined(BTRFS_QGROUP_LIMIT_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_KEY) && HAVE_DECL_BTRFS_QGROUP_LIMIT_KEY))
+#if defined(BTRFS_QGROUP_LIMIT_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_KEY) && HAVE_DECL_BTRFS_QGROUP_LIMIT_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_LIMIT_KEY) == (244), "BTRFS_QGROUP_LIMIT_KEY != 244");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_LIMIT_KEY 244
#endif
-#if !(defined(BTRFS_QGROUP_RELATION_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_RELATION_KEY) && HAVE_DECL_BTRFS_QGROUP_RELATION_KEY))
+#if defined(BTRFS_QGROUP_RELATION_KEY) || (defined(HAVE_DECL_BTRFS_QGROUP_RELATION_KEY) && HAVE_DECL_BTRFS_QGROUP_RELATION_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_RELATION_KEY) == (246), "BTRFS_QGROUP_RELATION_KEY != 246");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_RELATION_KEY 246
#endif
-#if !(defined(BTRFS_BALANCE_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_BALANCE_ITEM_KEY) && HAVE_DECL_BTRFS_BALANCE_ITEM_KEY))
+#if defined(BTRFS_BALANCE_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_BALANCE_ITEM_KEY) && HAVE_DECL_BTRFS_BALANCE_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BALANCE_ITEM_KEY) == (248), "BTRFS_BALANCE_ITEM_KEY != 248");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BALANCE_ITEM_KEY 248
#endif
-#if !(defined(BTRFS_TEMPORARY_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_TEMPORARY_ITEM_KEY) && HAVE_DECL_BTRFS_TEMPORARY_ITEM_KEY))
+#if defined(BTRFS_TEMPORARY_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_TEMPORARY_ITEM_KEY) && HAVE_DECL_BTRFS_TEMPORARY_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_TEMPORARY_ITEM_KEY) == (248), "BTRFS_TEMPORARY_ITEM_KEY != 248");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_TEMPORARY_ITEM_KEY 248
#endif
-#if !(defined(BTRFS_DEV_STATS_KEY) || (defined(HAVE_DECL_BTRFS_DEV_STATS_KEY) && HAVE_DECL_BTRFS_DEV_STATS_KEY))
+#if defined(BTRFS_DEV_STATS_KEY) || (defined(HAVE_DECL_BTRFS_DEV_STATS_KEY) && HAVE_DECL_BTRFS_DEV_STATS_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DEV_STATS_KEY) == (249), "BTRFS_DEV_STATS_KEY != 249");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DEV_STATS_KEY 249
#endif
-#if !(defined(BTRFS_PERSISTENT_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_PERSISTENT_ITEM_KEY) && HAVE_DECL_BTRFS_PERSISTENT_ITEM_KEY))
+#if defined(BTRFS_PERSISTENT_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_PERSISTENT_ITEM_KEY) && HAVE_DECL_BTRFS_PERSISTENT_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_PERSISTENT_ITEM_KEY) == (249), "BTRFS_PERSISTENT_ITEM_KEY != 249");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_PERSISTENT_ITEM_KEY 249
#endif
-#if !(defined(BTRFS_DEV_REPLACE_KEY) || (defined(HAVE_DECL_BTRFS_DEV_REPLACE_KEY) && HAVE_DECL_BTRFS_DEV_REPLACE_KEY))
+#if defined(BTRFS_DEV_REPLACE_KEY) || (defined(HAVE_DECL_BTRFS_DEV_REPLACE_KEY) && HAVE_DECL_BTRFS_DEV_REPLACE_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DEV_REPLACE_KEY) == (250), "BTRFS_DEV_REPLACE_KEY != 250");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DEV_REPLACE_KEY 250
#endif
-#if !(defined(BTRFS_UUID_KEY_SUBVOL) || (defined(HAVE_DECL_BTRFS_UUID_KEY_SUBVOL) && HAVE_DECL_BTRFS_UUID_KEY_SUBVOL))
+#if defined(BTRFS_UUID_KEY_SUBVOL) || (defined(HAVE_DECL_BTRFS_UUID_KEY_SUBVOL) && HAVE_DECL_BTRFS_UUID_KEY_SUBVOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_UUID_KEY_SUBVOL) == (251), "BTRFS_UUID_KEY_SUBVOL != 251");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_UUID_KEY_SUBVOL 251
#endif
-#if !(defined(BTRFS_UUID_KEY_RECEIVED_SUBVOL) || (defined(HAVE_DECL_BTRFS_UUID_KEY_RECEIVED_SUBVOL) && HAVE_DECL_BTRFS_UUID_KEY_RECEIVED_SUBVOL))
+#if defined(BTRFS_UUID_KEY_RECEIVED_SUBVOL) || (defined(HAVE_DECL_BTRFS_UUID_KEY_RECEIVED_SUBVOL) && HAVE_DECL_BTRFS_UUID_KEY_RECEIVED_SUBVOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_UUID_KEY_RECEIVED_SUBVOL) == (252), "BTRFS_UUID_KEY_RECEIVED_SUBVOL != 252");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_UUID_KEY_RECEIVED_SUBVOL 252
#endif
-#if !(defined(BTRFS_STRING_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_STRING_ITEM_KEY) && HAVE_DECL_BTRFS_STRING_ITEM_KEY))
+#if defined(BTRFS_STRING_ITEM_KEY) || (defined(HAVE_DECL_BTRFS_STRING_ITEM_KEY) && HAVE_DECL_BTRFS_STRING_ITEM_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_STRING_ITEM_KEY) == (253), "BTRFS_STRING_ITEM_KEY != 253");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_STRING_ITEM_KEY 253
#endif
-#if !(defined(UINT32_MAX) || (defined(HAVE_DECL_UINT32_MAX) && HAVE_DECL_UINT32_MAX))
+#if defined(UINT32_MAX) || (defined(HAVE_DECL_UINT32_MAX) && HAVE_DECL_UINT32_MAX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UINT32_MAX) == (-1U), "UINT32_MAX != -1U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define UINT32_MAX -1U
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_key_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_key_types[] = {
XLAT_TYPE(uint64_t, BTRFS_INODE_ITEM_KEY),
XLAT_TYPE(uint64_t, BTRFS_INODE_REF_KEY),
@@ -177,4 +347,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# 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 440e45e..ca969b7 100644
--- a/xlat/btrfs_logical_ino_args_flags.h
+++ b/xlat/btrfs_logical_ino_args_flags.h
@@ -1,20 +1,32 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_logical_ino_args_flags.in; do not edit. */
-#if !(defined(BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET) || (defined(HAVE_DECL_BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET) && HAVE_DECL_BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET) || (defined(HAVE_DECL_BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET) && HAVE_DECL_BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET) == ((1ULL << 0)), "BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET (1ULL << 0)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_logical_ino_args_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_logical_ino_args_flags[] = {
XLAT(BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_qgroup_ctl_cmds.h b/xlat/btrfs_qgroup_ctl_cmds.h
index 25bdce2..932f727 100644
--- a/xlat/btrfs_qgroup_ctl_cmds.h
+++ b/xlat/btrfs_qgroup_ctl_cmds.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_qgroup_ctl_cmds.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_qgroup_ctl_cmds[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_qgroup_ctl_cmds[] = {
#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),
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_qgroup_inherit_flags.h b/xlat/btrfs_qgroup_inherit_flags.h
index ead56ea..5f8d2f2 100644
--- a/xlat/btrfs_qgroup_inherit_flags.h
+++ b/xlat/btrfs_qgroup_inherit_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_qgroup_inherit_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_qgroup_inherit_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_qgroup_inherit_flags[] = {
#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),
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_qgroup_limit_flags.h b/xlat/btrfs_qgroup_limit_flags.h
index 114c876..5932d12 100644
--- a/xlat/btrfs_qgroup_limit_flags.h
+++ b/xlat/btrfs_qgroup_limit_flags.h
@@ -1,32 +1,62 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_qgroup_limit_flags.in; do not edit. */
-#if !(defined(BTRFS_QGROUP_LIMIT_MAX_RFER) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_RFER) && HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_RFER))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_QGROUP_LIMIT_MAX_RFER) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_RFER) && HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_RFER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_LIMIT_MAX_RFER) == ((1ULL << 0)), "BTRFS_QGROUP_LIMIT_MAX_RFER != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_LIMIT_MAX_RFER (1ULL << 0)
#endif
-#if !(defined(BTRFS_QGROUP_LIMIT_MAX_EXCL) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_EXCL) && HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_EXCL))
+#if defined(BTRFS_QGROUP_LIMIT_MAX_EXCL) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_EXCL) && HAVE_DECL_BTRFS_QGROUP_LIMIT_MAX_EXCL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_LIMIT_MAX_EXCL) == ((1ULL << 1)), "BTRFS_QGROUP_LIMIT_MAX_EXCL != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_LIMIT_MAX_EXCL (1ULL << 1)
#endif
-#if !(defined(BTRFS_QGROUP_LIMIT_RSV_RFER) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_RFER) && HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_RFER))
+#if defined(BTRFS_QGROUP_LIMIT_RSV_RFER) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_RFER) && HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_RFER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_LIMIT_RSV_RFER) == ((1ULL << 2)), "BTRFS_QGROUP_LIMIT_RSV_RFER != (1ULL << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_LIMIT_RSV_RFER (1ULL << 2)
#endif
-#if !(defined(BTRFS_QGROUP_LIMIT_RSV_EXCL) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_EXCL) && HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_EXCL))
+#if defined(BTRFS_QGROUP_LIMIT_RSV_EXCL) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_EXCL) && HAVE_DECL_BTRFS_QGROUP_LIMIT_RSV_EXCL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_LIMIT_RSV_EXCL) == ((1ULL << 3)), "BTRFS_QGROUP_LIMIT_RSV_EXCL != (1ULL << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_LIMIT_RSV_EXCL (1ULL << 3)
#endif
-#if !(defined(BTRFS_QGROUP_LIMIT_RFER_CMPR) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_RFER_CMPR) && HAVE_DECL_BTRFS_QGROUP_LIMIT_RFER_CMPR))
+#if defined(BTRFS_QGROUP_LIMIT_RFER_CMPR) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_RFER_CMPR) && HAVE_DECL_BTRFS_QGROUP_LIMIT_RFER_CMPR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_LIMIT_RFER_CMPR) == ((1ULL << 4)), "BTRFS_QGROUP_LIMIT_RFER_CMPR != (1ULL << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_LIMIT_RFER_CMPR (1ULL << 4)
#endif
-#if !(defined(BTRFS_QGROUP_LIMIT_EXCL_CMPR) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_EXCL_CMPR) && HAVE_DECL_BTRFS_QGROUP_LIMIT_EXCL_CMPR))
+#if defined(BTRFS_QGROUP_LIMIT_EXCL_CMPR) || (defined(HAVE_DECL_BTRFS_QGROUP_LIMIT_EXCL_CMPR) && HAVE_DECL_BTRFS_QGROUP_LIMIT_EXCL_CMPR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_LIMIT_EXCL_CMPR) == ((1ULL << 5)), "BTRFS_QGROUP_LIMIT_EXCL_CMPR != (1ULL << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_LIMIT_EXCL_CMPR (1ULL << 5)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_qgroup_limit_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_qgroup_limit_flags[] = {
XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_MAX_RFER),
XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_MAX_EXCL),
@@ -37,4 +67,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_qgroup_status_flags.h b/xlat/btrfs_qgroup_status_flags.h
index d02a86b..252ef61 100644
--- a/xlat/btrfs_qgroup_status_flags.h
+++ b/xlat/btrfs_qgroup_status_flags.h
@@ -1,24 +1,40 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_qgroup_status_flags.in; do not edit. */
-#if !(defined(BTRFS_QGROUP_STATUS_FLAG_ON) || (defined(HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_ON) && HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_ON))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_QGROUP_STATUS_FLAG_ON) || (defined(HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_ON) && HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_ON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_STATUS_FLAG_ON) == ((1ULL << 0)), "BTRFS_QGROUP_STATUS_FLAG_ON != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_STATUS_FLAG_ON (1ULL << 0)
#endif
-#if !(defined(BTRFS_QGROUP_STATUS_FLAG_RESCAN) || (defined(HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_RESCAN) && HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_RESCAN))
+#if defined(BTRFS_QGROUP_STATUS_FLAG_RESCAN) || (defined(HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_RESCAN) && HAVE_DECL_BTRFS_QGROUP_STATUS_FLAG_RESCAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QGROUP_STATUS_FLAG_RESCAN) == ((1ULL << 1)), "BTRFS_QGROUP_STATUS_FLAG_RESCAN != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QGROUP_STATUS_FLAG_RESCAN (1ULL << 1)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_qgroup_status_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_qgroup_status_flags[] = {
XLAT_TYPE(uint64_t, BTRFS_QGROUP_STATUS_FLAG_ON),
XLAT_TYPE(uint64_t, BTRFS_QGROUP_STATUS_FLAG_RESCAN),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_scrub_flags.h b/xlat/btrfs_scrub_flags.h
index 5823e34..b596476 100644
--- a/xlat/btrfs_scrub_flags.h
+++ b/xlat/btrfs_scrub_flags.h
@@ -1,20 +1,32 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_scrub_flags.in; do not edit. */
-#if !(defined(BTRFS_SCRUB_READONLY) || (defined(HAVE_DECL_BTRFS_SCRUB_READONLY) && HAVE_DECL_BTRFS_SCRUB_READONLY))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_SCRUB_READONLY) || (defined(HAVE_DECL_BTRFS_SCRUB_READONLY) && HAVE_DECL_BTRFS_SCRUB_READONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_SCRUB_READONLY) == (1), "BTRFS_SCRUB_READONLY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_SCRUB_READONLY 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_scrub_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_scrub_flags[] = {
XLAT_TYPE(uint64_t, BTRFS_SCRUB_READONLY),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_send_flags.h b/xlat/btrfs_send_flags.h
index be2b02a..a357f71 100644
--- a/xlat/btrfs_send_flags.h
+++ b/xlat/btrfs_send_flags.h
@@ -1,23 +1,41 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_send_flags.in; do not edit. */
-#if !(defined(BTRFS_SEND_FLAG_NO_FILE_DATA) || (defined(HAVE_DECL_BTRFS_SEND_FLAG_NO_FILE_DATA) && HAVE_DECL_BTRFS_SEND_FLAG_NO_FILE_DATA))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_SEND_FLAG_NO_FILE_DATA) || (defined(HAVE_DECL_BTRFS_SEND_FLAG_NO_FILE_DATA) && HAVE_DECL_BTRFS_SEND_FLAG_NO_FILE_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_SEND_FLAG_NO_FILE_DATA) == (0x1), "BTRFS_SEND_FLAG_NO_FILE_DATA != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
#endif
-#if !(defined(BTRFS_SEND_FLAG_OMIT_STREAM_HEADER) || (defined(HAVE_DECL_BTRFS_SEND_FLAG_OMIT_STREAM_HEADER) && HAVE_DECL_BTRFS_SEND_FLAG_OMIT_STREAM_HEADER))
+#if defined(BTRFS_SEND_FLAG_OMIT_STREAM_HEADER) || (defined(HAVE_DECL_BTRFS_SEND_FLAG_OMIT_STREAM_HEADER) && HAVE_DECL_BTRFS_SEND_FLAG_OMIT_STREAM_HEADER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_SEND_FLAG_OMIT_STREAM_HEADER) == (0x2), "BTRFS_SEND_FLAG_OMIT_STREAM_HEADER != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2
#endif
-#if !(defined(BTRFS_SEND_FLAG_OMIT_END_CMD) || (defined(HAVE_DECL_BTRFS_SEND_FLAG_OMIT_END_CMD) && HAVE_DECL_BTRFS_SEND_FLAG_OMIT_END_CMD))
+#if defined(BTRFS_SEND_FLAG_OMIT_END_CMD) || (defined(HAVE_DECL_BTRFS_SEND_FLAG_OMIT_END_CMD) && HAVE_DECL_BTRFS_SEND_FLAG_OMIT_END_CMD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_SEND_FLAG_OMIT_END_CMD) == (0x4), "BTRFS_SEND_FLAG_OMIT_END_CMD != 0x4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_send_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_send_flags[] = {
XLAT(BTRFS_SEND_FLAG_NO_FILE_DATA),
XLAT(BTRFS_SEND_FLAG_OMIT_STREAM_HEADER),
@@ -25,4 +43,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_snap_flags_v2.h b/xlat/btrfs_snap_flags_v2.h
index 4208852..00fd680 100644
--- a/xlat/btrfs_snap_flags_v2.h
+++ b/xlat/btrfs_snap_flags_v2.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_snap_flags_v2.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_snap_flags_v2[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_snap_flags_v2[] = {
#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),
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_space_info_flags.h b/xlat/btrfs_space_info_flags.h
index 7dcf06c..665612d 100644
--- a/xlat/btrfs_space_info_flags.h
+++ b/xlat/btrfs_space_info_flags.h
@@ -1,47 +1,97 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_space_info_flags.in; do not edit. */
-#if !(defined(BTRFS_BLOCK_GROUP_DATA) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_DATA) && HAVE_DECL_BTRFS_BLOCK_GROUP_DATA))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_BLOCK_GROUP_DATA) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_DATA) && HAVE_DECL_BTRFS_BLOCK_GROUP_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_DATA) == ((1ULL << 0)), "BTRFS_BLOCK_GROUP_DATA != (1ULL << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_DATA (1ULL << 0)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_SYSTEM) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_SYSTEM) && HAVE_DECL_BTRFS_BLOCK_GROUP_SYSTEM))
+#if defined(BTRFS_BLOCK_GROUP_SYSTEM) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_SYSTEM) && HAVE_DECL_BTRFS_BLOCK_GROUP_SYSTEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_SYSTEM) == ((1ULL << 1)), "BTRFS_BLOCK_GROUP_SYSTEM != (1ULL << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_SYSTEM (1ULL << 1)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_METADATA) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_METADATA) && HAVE_DECL_BTRFS_BLOCK_GROUP_METADATA))
+#if defined(BTRFS_BLOCK_GROUP_METADATA) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_METADATA) && HAVE_DECL_BTRFS_BLOCK_GROUP_METADATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_METADATA) == ((1ULL << 2)), "BTRFS_BLOCK_GROUP_METADATA != (1ULL << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_METADATA (1ULL << 2)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_RAID0) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID0) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID0))
+#if defined(BTRFS_BLOCK_GROUP_RAID0) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID0) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_RAID0) == ((1ULL << 3)), "BTRFS_BLOCK_GROUP_RAID0 != (1ULL << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_RAID0 (1ULL << 3)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_RAID1) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID1) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID1))
+#if defined(BTRFS_BLOCK_GROUP_RAID1) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID1) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_RAID1) == ((1ULL << 4)), "BTRFS_BLOCK_GROUP_RAID1 != (1ULL << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_RAID1 (1ULL << 4)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_DUP) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_DUP) && HAVE_DECL_BTRFS_BLOCK_GROUP_DUP))
+#if defined(BTRFS_BLOCK_GROUP_DUP) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_DUP) && HAVE_DECL_BTRFS_BLOCK_GROUP_DUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_DUP) == ((1ULL << 5)), "BTRFS_BLOCK_GROUP_DUP != (1ULL << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_DUP (1ULL << 5)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_RAID10) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID10) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID10))
+#if defined(BTRFS_BLOCK_GROUP_RAID10) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID10) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_RAID10) == ((1ULL << 6)), "BTRFS_BLOCK_GROUP_RAID10 != (1ULL << 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_RAID5) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID5) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID5))
+#if defined(BTRFS_BLOCK_GROUP_RAID5) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID5) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_RAID5) == ((1ULL << 7)), "BTRFS_BLOCK_GROUP_RAID5 != (1ULL << 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7)
#endif
-#if !(defined(BTRFS_BLOCK_GROUP_RAID6) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID6) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID6))
+#if defined(BTRFS_BLOCK_GROUP_RAID6) || (defined(HAVE_DECL_BTRFS_BLOCK_GROUP_RAID6) && HAVE_DECL_BTRFS_BLOCK_GROUP_RAID6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_BLOCK_GROUP_RAID6) == ((1ULL << 8)), "BTRFS_BLOCK_GROUP_RAID6 != (1ULL << 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8)
#endif
-#if !(defined(BTRFS_AVAIL_ALLOC_BIT_SINGLE) || (defined(HAVE_DECL_BTRFS_AVAIL_ALLOC_BIT_SINGLE) && HAVE_DECL_BTRFS_AVAIL_ALLOC_BIT_SINGLE))
+#if defined(BTRFS_AVAIL_ALLOC_BIT_SINGLE) || (defined(HAVE_DECL_BTRFS_AVAIL_ALLOC_BIT_SINGLE) && HAVE_DECL_BTRFS_AVAIL_ALLOC_BIT_SINGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_AVAIL_ALLOC_BIT_SINGLE) == ((1ULL << 48)), "BTRFS_AVAIL_ALLOC_BIT_SINGLE != (1ULL << 48)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_AVAIL_ALLOC_BIT_SINGLE (1ULL << 48)
#endif
-#if !(defined(BTRFS_SPACE_INFO_GLOBAL_RSV) || (defined(HAVE_DECL_BTRFS_SPACE_INFO_GLOBAL_RSV) && HAVE_DECL_BTRFS_SPACE_INFO_GLOBAL_RSV))
+#if defined(BTRFS_SPACE_INFO_GLOBAL_RSV) || (defined(HAVE_DECL_BTRFS_SPACE_INFO_GLOBAL_RSV) && HAVE_DECL_BTRFS_SPACE_INFO_GLOBAL_RSV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_SPACE_INFO_GLOBAL_RSV) == ((1ULL << 49)), "BTRFS_SPACE_INFO_GLOBAL_RSV != (1ULL << 49)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_SPACE_INFO_GLOBAL_RSV (1ULL << 49)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_space_info_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_space_info_flags[] = {
XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_DATA),
XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_SYSTEM),
@@ -57,4 +107,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/btrfs_tree_objectids.h b/xlat/btrfs_tree_objectids.h
index f96ee7f..5acf109 100644
--- a/xlat/btrfs_tree_objectids.h
+++ b/xlat/btrfs_tree_objectids.h
@@ -1,53 +1,111 @@
/* Generated by ./xlat/gen.sh from ./xlat/btrfs_tree_objectids.in; do not edit. */
-#if !(defined(BTRFS_ROOT_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_ROOT_TREE_OBJECTID) && HAVE_DECL_BTRFS_ROOT_TREE_OBJECTID))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BTRFS_ROOT_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_ROOT_TREE_OBJECTID) && HAVE_DECL_BTRFS_ROOT_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_ROOT_TREE_OBJECTID) == (1ULL), "BTRFS_ROOT_TREE_OBJECTID != 1ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_ROOT_TREE_OBJECTID 1ULL
#endif
-#if !(defined(BTRFS_EXTENT_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_EXTENT_TREE_OBJECTID) && HAVE_DECL_BTRFS_EXTENT_TREE_OBJECTID))
+#if defined(BTRFS_EXTENT_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_EXTENT_TREE_OBJECTID) && HAVE_DECL_BTRFS_EXTENT_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_EXTENT_TREE_OBJECTID) == (2ULL), "BTRFS_EXTENT_TREE_OBJECTID != 2ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_EXTENT_TREE_OBJECTID 2ULL
#endif
-#if !(defined(BTRFS_CHUNK_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_CHUNK_TREE_OBJECTID) && HAVE_DECL_BTRFS_CHUNK_TREE_OBJECTID))
+#if defined(BTRFS_CHUNK_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_CHUNK_TREE_OBJECTID) && HAVE_DECL_BTRFS_CHUNK_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_CHUNK_TREE_OBJECTID) == (3ULL), "BTRFS_CHUNK_TREE_OBJECTID != 3ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_CHUNK_TREE_OBJECTID 3ULL
#endif
-#if !(defined(BTRFS_DEV_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_DEV_TREE_OBJECTID) && HAVE_DECL_BTRFS_DEV_TREE_OBJECTID))
+#if defined(BTRFS_DEV_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_DEV_TREE_OBJECTID) && HAVE_DECL_BTRFS_DEV_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_DEV_TREE_OBJECTID) == (4ULL), "BTRFS_DEV_TREE_OBJECTID != 4ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_DEV_TREE_OBJECTID 4ULL
#endif
-#if !(defined(BTRFS_FS_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FS_TREE_OBJECTID) && HAVE_DECL_BTRFS_FS_TREE_OBJECTID))
+#if defined(BTRFS_FS_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FS_TREE_OBJECTID) && HAVE_DECL_BTRFS_FS_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FS_TREE_OBJECTID) == (5ULL), "BTRFS_FS_TREE_OBJECTID != 5ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FS_TREE_OBJECTID 5ULL
#endif
-#if !(defined(BTRFS_ROOT_TREE_DIR_OBJECTID) || (defined(HAVE_DECL_BTRFS_ROOT_TREE_DIR_OBJECTID) && HAVE_DECL_BTRFS_ROOT_TREE_DIR_OBJECTID))
+#if defined(BTRFS_ROOT_TREE_DIR_OBJECTID) || (defined(HAVE_DECL_BTRFS_ROOT_TREE_DIR_OBJECTID) && HAVE_DECL_BTRFS_ROOT_TREE_DIR_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_ROOT_TREE_DIR_OBJECTID) == (6ULL), "BTRFS_ROOT_TREE_DIR_OBJECTID != 6ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL
#endif
-#if !(defined(BTRFS_CSUM_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_CSUM_TREE_OBJECTID) && HAVE_DECL_BTRFS_CSUM_TREE_OBJECTID))
+#if defined(BTRFS_CSUM_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_CSUM_TREE_OBJECTID) && HAVE_DECL_BTRFS_CSUM_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_CSUM_TREE_OBJECTID) == (7ULL), "BTRFS_CSUM_TREE_OBJECTID != 7ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_CSUM_TREE_OBJECTID 7ULL
#endif
-#if !(defined(BTRFS_QUOTA_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_QUOTA_TREE_OBJECTID) && HAVE_DECL_BTRFS_QUOTA_TREE_OBJECTID))
+#if defined(BTRFS_QUOTA_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_QUOTA_TREE_OBJECTID) && HAVE_DECL_BTRFS_QUOTA_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_QUOTA_TREE_OBJECTID) == (8ULL), "BTRFS_QUOTA_TREE_OBJECTID != 8ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_QUOTA_TREE_OBJECTID 8ULL
#endif
-#if !(defined(BTRFS_UUID_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_UUID_TREE_OBJECTID) && HAVE_DECL_BTRFS_UUID_TREE_OBJECTID))
+#if defined(BTRFS_UUID_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_UUID_TREE_OBJECTID) && HAVE_DECL_BTRFS_UUID_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_UUID_TREE_OBJECTID) == (9ULL), "BTRFS_UUID_TREE_OBJECTID != 9ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_UUID_TREE_OBJECTID 9ULL
#endif
-#if !(defined(BTRFS_FREE_SPACE_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_TREE_OBJECTID) && HAVE_DECL_BTRFS_FREE_SPACE_TREE_OBJECTID))
+#if defined(BTRFS_FREE_SPACE_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_TREE_OBJECTID) && HAVE_DECL_BTRFS_FREE_SPACE_TREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FREE_SPACE_TREE_OBJECTID) == (10ULL), "BTRFS_FREE_SPACE_TREE_OBJECTID != 10ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FREE_SPACE_TREE_OBJECTID 10ULL
#endif
-#if !(defined(BTRFS_FIRST_FREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FIRST_FREE_OBJECTID) && HAVE_DECL_BTRFS_FIRST_FREE_OBJECTID))
+#if defined(BTRFS_FIRST_FREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FIRST_FREE_OBJECTID) && HAVE_DECL_BTRFS_FIRST_FREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_FIRST_FREE_OBJECTID) == (256ULL), "BTRFS_FIRST_FREE_OBJECTID != 256ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_FIRST_FREE_OBJECTID 256ULL
#endif
-#if !(defined(BTRFS_LAST_FREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_LAST_FREE_OBJECTID) && HAVE_DECL_BTRFS_LAST_FREE_OBJECTID))
+#if defined(BTRFS_LAST_FREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_LAST_FREE_OBJECTID) && HAVE_DECL_BTRFS_LAST_FREE_OBJECTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTRFS_LAST_FREE_OBJECTID) == (-256ULL), "BTRFS_LAST_FREE_OBJECTID != -256ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTRFS_LAST_FREE_OBJECTID -256ULL
#endif
-#if !(defined(UINT64_MAX) || (defined(HAVE_DECL_UINT64_MAX) && HAVE_DECL_UINT64_MAX))
+#if defined(UINT64_MAX) || (defined(HAVE_DECL_UINT64_MAX) && HAVE_DECL_UINT64_MAX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UINT64_MAX) == (-1ULL), "UINT64_MAX != -1ULL");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define UINT64_MAX -1ULL
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat btrfs_tree_objectids[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat btrfs_tree_objectids[] = {
XLAT_TYPE(uint64_t, BTRFS_ROOT_TREE_OBJECTID),
XLAT_TYPE(uint64_t, BTRFS_EXTENT_TREE_OBJECTID),
@@ -65,4 +123,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/cacheflush_scope.h b/xlat/cacheflush_scope.h
index 4859774..eac973e 100644
--- a/xlat/cacheflush_scope.h
+++ b/xlat/cacheflush_scope.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/cacheflush_scope.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat cacheflush_scope in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat cacheflush_scope in mpers mode
+
+# else
static
const struct xlat cacheflush_scope[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/caif_protocols.h b/xlat/caif_protocols.h
new file mode 100644
index 0000000..5c193a1
--- /dev/null
+++ b/xlat/caif_protocols.h
@@ -0,0 +1,70 @@
+/* Generated by ./xlat/gen.sh from ./xlat/caif_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(CAIFPROTO_AT) || (defined(HAVE_DECL_CAIFPROTO_AT) && HAVE_DECL_CAIFPROTO_AT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFPROTO_AT) == (0), "CAIFPROTO_AT != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFPROTO_AT 0
+#endif
+#if defined(CAIFPROTO_DATAGRAM) || (defined(HAVE_DECL_CAIFPROTO_DATAGRAM) && HAVE_DECL_CAIFPROTO_DATAGRAM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFPROTO_DATAGRAM) == (1), "CAIFPROTO_DATAGRAM != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFPROTO_DATAGRAM 1
+#endif
+#if defined(CAIFPROTO_DATAGRAM_LOOP) || (defined(HAVE_DECL_CAIFPROTO_DATAGRAM_LOOP) && HAVE_DECL_CAIFPROTO_DATAGRAM_LOOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFPROTO_DATAGRAM_LOOP) == (2), "CAIFPROTO_DATAGRAM_LOOP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFPROTO_DATAGRAM_LOOP 2
+#endif
+#if defined(CAIFPROTO_UTIL) || (defined(HAVE_DECL_CAIFPROTO_UTIL) && HAVE_DECL_CAIFPROTO_UTIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFPROTO_UTIL) == (3), "CAIFPROTO_UTIL != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFPROTO_UTIL 3
+#endif
+#if defined(CAIFPROTO_RFM) || (defined(HAVE_DECL_CAIFPROTO_RFM) && HAVE_DECL_CAIFPROTO_RFM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFPROTO_RFM) == (4), "CAIFPROTO_RFM != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFPROTO_RFM 4
+#endif
+#if defined(CAIFPROTO_DEBUG) || (defined(HAVE_DECL_CAIFPROTO_DEBUG) && HAVE_DECL_CAIFPROTO_DEBUG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFPROTO_DEBUG) == (5), "CAIFPROTO_DEBUG != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFPROTO_DEBUG 5
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat caif_protocols in mpers mode
+
+# else
+
+static
+const struct xlat caif_protocols[] = {
+ [CAIFPROTO_AT] = XLAT(CAIFPROTO_AT),
+ [CAIFPROTO_DATAGRAM] = XLAT(CAIFPROTO_DATAGRAM),
+ [CAIFPROTO_DATAGRAM_LOOP] = XLAT(CAIFPROTO_DATAGRAM_LOOP),
+ [CAIFPROTO_UTIL] = XLAT(CAIFPROTO_UTIL),
+ [CAIFPROTO_RFM] = XLAT(CAIFPROTO_RFM),
+ [CAIFPROTO_DEBUG] = XLAT(CAIFPROTO_DEBUG),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/caif_protocols.in b/xlat/caif_protocols.in
new file mode 100644
index 0000000..76ba896
--- /dev/null
+++ b/xlat/caif_protocols.in
@@ -0,0 +1,7 @@
+#value_indexed
+CAIFPROTO_AT 0
+CAIFPROTO_DATAGRAM 1
+CAIFPROTO_DATAGRAM_LOOP 2
+CAIFPROTO_UTIL 3
+CAIFPROTO_RFM 4
+CAIFPROTO_DEBUG 5
diff --git a/xlat/can_protocols.h b/xlat/can_protocols.h
new file mode 100644
index 0000000..3e207f7
--- /dev/null
+++ b/xlat/can_protocols.h
@@ -0,0 +1,70 @@
+/* Generated by ./xlat/gen.sh from ./xlat/can_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(CAN_RAW) || (defined(HAVE_DECL_CAN_RAW) && HAVE_DECL_CAN_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAN_RAW) == (1), "CAN_RAW != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAN_RAW 1
+#endif
+#if defined(CAN_BCM) || (defined(HAVE_DECL_CAN_BCM) && HAVE_DECL_CAN_BCM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAN_BCM) == (2), "CAN_BCM != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAN_BCM 2
+#endif
+#if defined(CAN_TP16) || (defined(HAVE_DECL_CAN_TP16) && HAVE_DECL_CAN_TP16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAN_TP16) == (3), "CAN_TP16 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAN_TP16 3
+#endif
+#if defined(CAN_TP20) || (defined(HAVE_DECL_CAN_TP20) && HAVE_DECL_CAN_TP20)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAN_TP20) == (4), "CAN_TP20 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAN_TP20 4
+#endif
+#if defined(CAN_MCNET) || (defined(HAVE_DECL_CAN_MCNET) && HAVE_DECL_CAN_MCNET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAN_MCNET) == (5), "CAN_MCNET != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAN_MCNET 5
+#endif
+#if defined(CAN_ISOTP) || (defined(HAVE_DECL_CAN_ISOTP) && HAVE_DECL_CAN_ISOTP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAN_ISOTP) == (6), "CAN_ISOTP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAN_ISOTP 6
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat can_protocols in mpers mode
+
+# else
+
+static
+const struct xlat can_protocols[] = {
+ [CAN_RAW] = XLAT(CAN_RAW),
+ [CAN_BCM] = XLAT(CAN_BCM),
+ [CAN_TP16] = XLAT(CAN_TP16),
+ [CAN_TP20] = XLAT(CAN_TP20),
+ [CAN_MCNET] = XLAT(CAN_MCNET),
+ [CAN_ISOTP] = XLAT(CAN_ISOTP),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/can_protocols.in b/xlat/can_protocols.in
new file mode 100644
index 0000000..f74caa7
--- /dev/null
+++ b/xlat/can_protocols.in
@@ -0,0 +1,7 @@
+#value_indexed
+CAN_RAW 1
+CAN_BCM 2
+CAN_TP16 3
+CAN_TP20 4
+CAN_MCNET 5
+CAN_ISOTP 6
diff --git a/xlat/cap.h b/xlat/cap.h
index fb50990..c8205f7 100644
--- a/xlat/cap.h
+++ b/xlat/cap.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/cap.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat cap in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat cap in mpers mode
+
+# else
static
const struct xlat cap[] = {
@@ -49,4 +55,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/cap_mask0.h b/xlat/cap_mask0.h
index 4402dc2..84d529f 100644
--- a/xlat/cap_mask0.h
+++ b/xlat/cap_mask0.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/cap_mask0.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat cap_mask0 in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat cap_mask0 in mpers mode
+
+# else
static
const struct xlat cap_mask0[] = {
@@ -43,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/cap_mask1.h b/xlat/cap_mask1.h
index 074f5c6..c32c019 100644
--- a/xlat/cap_mask1.h
+++ b/xlat/cap_mask1.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/cap_mask1.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat cap_mask1 in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat cap_mask1 in mpers mode
+
+# else
static
const struct xlat cap_mask1[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/cap_version.h b/xlat/cap_version.h
index 35c9189..69ca874 100644
--- a/xlat/cap_version.h
+++ b/xlat/cap_version.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/cap_version.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat cap_version in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat cap_version in mpers mode
+
+# else
static
const struct xlat cap_version[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/clockflags.h b/xlat/clockflags.h
index d24419d..4f343a1 100644
--- a/xlat/clockflags.h
+++ b/xlat/clockflags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/clockflags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat clockflags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat clockflags in mpers mode
+
+# else
static
const struct xlat clockflags[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/clocknames.h b/xlat/clocknames.h
index da082e8..a2932f9 100644
--- a/xlat/clocknames.h
+++ b/xlat/clocknames.h
@@ -1,57 +1,113 @@
/* Generated by ./xlat/gen.sh from ./xlat/clocknames.in; do not edit. */
-#if !(defined(CLOCK_REALTIME) || (defined(HAVE_DECL_CLOCK_REALTIME) && HAVE_DECL_CLOCK_REALTIME))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(CLOCK_REALTIME) || (defined(HAVE_DECL_CLOCK_REALTIME) && HAVE_DECL_CLOCK_REALTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_REALTIME) == (0), "CLOCK_REALTIME != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_REALTIME 0
#endif
-#if !(defined(CLOCK_MONOTONIC) || (defined(HAVE_DECL_CLOCK_MONOTONIC) && HAVE_DECL_CLOCK_MONOTONIC))
+#if defined(CLOCK_MONOTONIC) || (defined(HAVE_DECL_CLOCK_MONOTONIC) && HAVE_DECL_CLOCK_MONOTONIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_MONOTONIC) == (1), "CLOCK_MONOTONIC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_MONOTONIC 1
#endif
-#if !(defined(CLOCK_PROCESS_CPUTIME_ID) || (defined(HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID) && HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID))
+#if defined(CLOCK_PROCESS_CPUTIME_ID) || (defined(HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID) && HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_PROCESS_CPUTIME_ID) == (2), "CLOCK_PROCESS_CPUTIME_ID != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_PROCESS_CPUTIME_ID 2
#endif
-#if !(defined(CLOCK_THREAD_CPUTIME_ID) || (defined(HAVE_DECL_CLOCK_THREAD_CPUTIME_ID) && HAVE_DECL_CLOCK_THREAD_CPUTIME_ID))
+#if defined(CLOCK_THREAD_CPUTIME_ID) || (defined(HAVE_DECL_CLOCK_THREAD_CPUTIME_ID) && HAVE_DECL_CLOCK_THREAD_CPUTIME_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_THREAD_CPUTIME_ID) == (3), "CLOCK_THREAD_CPUTIME_ID != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_THREAD_CPUTIME_ID 3
#endif
-#if !(defined(CLOCK_MONOTONIC_RAW) || (defined(HAVE_DECL_CLOCK_MONOTONIC_RAW) && HAVE_DECL_CLOCK_MONOTONIC_RAW))
+#if defined(CLOCK_MONOTONIC_RAW) || (defined(HAVE_DECL_CLOCK_MONOTONIC_RAW) && HAVE_DECL_CLOCK_MONOTONIC_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_MONOTONIC_RAW) == (4), "CLOCK_MONOTONIC_RAW != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_MONOTONIC_RAW 4
#endif
-#if !(defined(CLOCK_REALTIME_COARSE) || (defined(HAVE_DECL_CLOCK_REALTIME_COARSE) && HAVE_DECL_CLOCK_REALTIME_COARSE))
+#if defined(CLOCK_REALTIME_COARSE) || (defined(HAVE_DECL_CLOCK_REALTIME_COARSE) && HAVE_DECL_CLOCK_REALTIME_COARSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_REALTIME_COARSE) == (5), "CLOCK_REALTIME_COARSE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_REALTIME_COARSE 5
#endif
-#if !(defined(CLOCK_MONOTONIC_COARSE) || (defined(HAVE_DECL_CLOCK_MONOTONIC_COARSE) && HAVE_DECL_CLOCK_MONOTONIC_COARSE))
+#if defined(CLOCK_MONOTONIC_COARSE) || (defined(HAVE_DECL_CLOCK_MONOTONIC_COARSE) && HAVE_DECL_CLOCK_MONOTONIC_COARSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_MONOTONIC_COARSE) == (6), "CLOCK_MONOTONIC_COARSE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_MONOTONIC_COARSE 6
#endif
-#if !(defined(CLOCK_BOOTTIME) || (defined(HAVE_DECL_CLOCK_BOOTTIME) && HAVE_DECL_CLOCK_BOOTTIME))
+#if defined(CLOCK_BOOTTIME) || (defined(HAVE_DECL_CLOCK_BOOTTIME) && HAVE_DECL_CLOCK_BOOTTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_BOOTTIME) == (7), "CLOCK_BOOTTIME != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_BOOTTIME 7
#endif
-#if !(defined(CLOCK_REALTIME_ALARM) || (defined(HAVE_DECL_CLOCK_REALTIME_ALARM) && HAVE_DECL_CLOCK_REALTIME_ALARM))
+#if defined(CLOCK_REALTIME_ALARM) || (defined(HAVE_DECL_CLOCK_REALTIME_ALARM) && HAVE_DECL_CLOCK_REALTIME_ALARM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_REALTIME_ALARM) == (8), "CLOCK_REALTIME_ALARM != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_REALTIME_ALARM 8
#endif
-#if !(defined(CLOCK_BOOTTIME_ALARM) || (defined(HAVE_DECL_CLOCK_BOOTTIME_ALARM) && HAVE_DECL_CLOCK_BOOTTIME_ALARM))
+#if defined(CLOCK_BOOTTIME_ALARM) || (defined(HAVE_DECL_CLOCK_BOOTTIME_ALARM) && HAVE_DECL_CLOCK_BOOTTIME_ALARM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_BOOTTIME_ALARM) == (9), "CLOCK_BOOTTIME_ALARM != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_BOOTTIME_ALARM 9
#endif
-#if !(defined(CLOCK_SGI_CYCLE) || (defined(HAVE_DECL_CLOCK_SGI_CYCLE) && HAVE_DECL_CLOCK_SGI_CYCLE))
+#if defined(CLOCK_SGI_CYCLE) || (defined(HAVE_DECL_CLOCK_SGI_CYCLE) && HAVE_DECL_CLOCK_SGI_CYCLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_SGI_CYCLE) == (10), "CLOCK_SGI_CYCLE != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_SGI_CYCLE 10
#endif
-#if !(defined(CLOCK_TAI) || (defined(HAVE_DECL_CLOCK_TAI) && HAVE_DECL_CLOCK_TAI))
+#if defined(CLOCK_TAI) || (defined(HAVE_DECL_CLOCK_TAI) && HAVE_DECL_CLOCK_TAI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLOCK_TAI) == (11), "CLOCK_TAI != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLOCK_TAI 11
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat clocknames[] = {
- XLAT(CLOCK_REALTIME),
- XLAT(CLOCK_MONOTONIC),
- XLAT(CLOCK_PROCESS_CPUTIME_ID),
- XLAT(CLOCK_THREAD_CPUTIME_ID),
- XLAT(CLOCK_MONOTONIC_RAW),
- XLAT(CLOCK_REALTIME_COARSE),
- XLAT(CLOCK_MONOTONIC_COARSE),
- XLAT(CLOCK_BOOTTIME),
- XLAT(CLOCK_REALTIME_ALARM),
- XLAT(CLOCK_BOOTTIME_ALARM),
- XLAT(CLOCK_SGI_CYCLE),
- XLAT(CLOCK_TAI),
+ [CLOCK_REALTIME] = XLAT(CLOCK_REALTIME),
+ [CLOCK_MONOTONIC] = XLAT(CLOCK_MONOTONIC),
+ [CLOCK_PROCESS_CPUTIME_ID] = XLAT(CLOCK_PROCESS_CPUTIME_ID),
+ [CLOCK_THREAD_CPUTIME_ID] = XLAT(CLOCK_THREAD_CPUTIME_ID),
+ [CLOCK_MONOTONIC_RAW] = XLAT(CLOCK_MONOTONIC_RAW),
+ [CLOCK_REALTIME_COARSE] = XLAT(CLOCK_REALTIME_COARSE),
+ [CLOCK_MONOTONIC_COARSE] = XLAT(CLOCK_MONOTONIC_COARSE),
+ [CLOCK_BOOTTIME] = XLAT(CLOCK_BOOTTIME),
+ [CLOCK_REALTIME_ALARM] = XLAT(CLOCK_REALTIME_ALARM),
+ [CLOCK_BOOTTIME_ALARM] = XLAT(CLOCK_BOOTTIME_ALARM),
+ [CLOCK_SGI_CYCLE] = XLAT(CLOCK_SGI_CYCLE),
+ [CLOCK_TAI] = XLAT(CLOCK_TAI),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/clocknames.in b/xlat/clocknames.in
index 1d0d372..207ade8 100644
--- a/xlat/clocknames.in
+++ b/xlat/clocknames.in
@@ -1,3 +1,4 @@
+#value_indexed
CLOCK_REALTIME 0
CLOCK_MONOTONIC 1
CLOCK_PROCESS_CPUTIME_ID 2
diff --git a/xlat/clone_flags.h b/xlat/clone_flags.h
index a7e4c4b..d2d939f 100644
--- a/xlat/clone_flags.h
+++ b/xlat/clone_flags.h
@@ -1,79 +1,177 @@
/* Generated by ./xlat/gen.sh from ./xlat/clone_flags.in; do not edit. */
-#if !(defined(CLONE_VM) || (defined(HAVE_DECL_CLONE_VM) && HAVE_DECL_CLONE_VM))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(CLONE_VM) || (defined(HAVE_DECL_CLONE_VM) && HAVE_DECL_CLONE_VM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_VM) == (0x00000100), "CLONE_VM != 0x00000100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_VM 0x00000100
#endif
-#if !(defined(CLONE_FS) || (defined(HAVE_DECL_CLONE_FS) && HAVE_DECL_CLONE_FS))
+#if defined(CLONE_FS) || (defined(HAVE_DECL_CLONE_FS) && HAVE_DECL_CLONE_FS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_FS) == (0x00000200), "CLONE_FS != 0x00000200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_FS 0x00000200
#endif
-#if !(defined(CLONE_FILES) || (defined(HAVE_DECL_CLONE_FILES) && HAVE_DECL_CLONE_FILES))
+#if defined(CLONE_FILES) || (defined(HAVE_DECL_CLONE_FILES) && HAVE_DECL_CLONE_FILES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_FILES) == (0x00000400), "CLONE_FILES != 0x00000400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_FILES 0x00000400
#endif
-#if !(defined(CLONE_SIGHAND) || (defined(HAVE_DECL_CLONE_SIGHAND) && HAVE_DECL_CLONE_SIGHAND))
+#if defined(CLONE_SIGHAND) || (defined(HAVE_DECL_CLONE_SIGHAND) && HAVE_DECL_CLONE_SIGHAND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_SIGHAND) == (0x00000800), "CLONE_SIGHAND != 0x00000800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_SIGHAND 0x00000800
#endif
-#if !(defined(CLONE_IDLETASK) || (defined(HAVE_DECL_CLONE_IDLETASK) && HAVE_DECL_CLONE_IDLETASK))
+#if defined(CLONE_IDLETASK) || (defined(HAVE_DECL_CLONE_IDLETASK) && HAVE_DECL_CLONE_IDLETASK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_IDLETASK) == (0x00001000), "CLONE_IDLETASK != 0x00001000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_IDLETASK 0x00001000
#endif
-#if !(defined(CLONE_PTRACE) || (defined(HAVE_DECL_CLONE_PTRACE) && HAVE_DECL_CLONE_PTRACE))
+#if defined(CLONE_PTRACE) || (defined(HAVE_DECL_CLONE_PTRACE) && HAVE_DECL_CLONE_PTRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_PTRACE) == (0x00002000), "CLONE_PTRACE != 0x00002000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_PTRACE 0x00002000
#endif
-#if !(defined(CLONE_VFORK) || (defined(HAVE_DECL_CLONE_VFORK) && HAVE_DECL_CLONE_VFORK))
+#if defined(CLONE_VFORK) || (defined(HAVE_DECL_CLONE_VFORK) && HAVE_DECL_CLONE_VFORK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_VFORK) == (0x00004000), "CLONE_VFORK != 0x00004000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_VFORK 0x00004000
#endif
-#if !(defined(CLONE_PARENT) || (defined(HAVE_DECL_CLONE_PARENT) && HAVE_DECL_CLONE_PARENT))
+#if defined(CLONE_PARENT) || (defined(HAVE_DECL_CLONE_PARENT) && HAVE_DECL_CLONE_PARENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_PARENT) == (0x00008000), "CLONE_PARENT != 0x00008000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_PARENT 0x00008000
#endif
-#if !(defined(CLONE_THREAD) || (defined(HAVE_DECL_CLONE_THREAD) && HAVE_DECL_CLONE_THREAD))
+#if defined(CLONE_THREAD) || (defined(HAVE_DECL_CLONE_THREAD) && HAVE_DECL_CLONE_THREAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_THREAD) == (0x00010000), "CLONE_THREAD != 0x00010000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_THREAD 0x00010000
#endif
-#if !(defined(CLONE_NEWNS) || (defined(HAVE_DECL_CLONE_NEWNS) && HAVE_DECL_CLONE_NEWNS))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWNS 0x00020000
#endif
-#if !(defined(CLONE_SYSVSEM) || (defined(HAVE_DECL_CLONE_SYSVSEM) && HAVE_DECL_CLONE_SYSVSEM))
+#if defined(CLONE_SYSVSEM) || (defined(HAVE_DECL_CLONE_SYSVSEM) && HAVE_DECL_CLONE_SYSVSEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_SYSVSEM) == (0x00040000), "CLONE_SYSVSEM != 0x00040000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_SYSVSEM 0x00040000
#endif
-#if !(defined(CLONE_SETTLS) || (defined(HAVE_DECL_CLONE_SETTLS) && HAVE_DECL_CLONE_SETTLS))
+#if defined(CLONE_SETTLS) || (defined(HAVE_DECL_CLONE_SETTLS) && HAVE_DECL_CLONE_SETTLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_SETTLS) == (0x00080000), "CLONE_SETTLS != 0x00080000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_SETTLS 0x00080000
#endif
-#if !(defined(CLONE_PARENT_SETTID) || (defined(HAVE_DECL_CLONE_PARENT_SETTID) && HAVE_DECL_CLONE_PARENT_SETTID))
+#if defined(CLONE_PARENT_SETTID) || (defined(HAVE_DECL_CLONE_PARENT_SETTID) && HAVE_DECL_CLONE_PARENT_SETTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_PARENT_SETTID) == (0x00100000), "CLONE_PARENT_SETTID != 0x00100000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_PARENT_SETTID 0x00100000
#endif
-#if !(defined(CLONE_CHILD_CLEARTID) || (defined(HAVE_DECL_CLONE_CHILD_CLEARTID) && HAVE_DECL_CLONE_CHILD_CLEARTID))
+#if defined(CLONE_CHILD_CLEARTID) || (defined(HAVE_DECL_CLONE_CHILD_CLEARTID) && HAVE_DECL_CLONE_CHILD_CLEARTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_CHILD_CLEARTID) == (0x00200000), "CLONE_CHILD_CLEARTID != 0x00200000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_CHILD_CLEARTID 0x00200000
#endif
-#if !(defined(CLONE_UNTRACED) || (defined(HAVE_DECL_CLONE_UNTRACED) && HAVE_DECL_CLONE_UNTRACED))
+#if defined(CLONE_UNTRACED) || (defined(HAVE_DECL_CLONE_UNTRACED) && HAVE_DECL_CLONE_UNTRACED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_UNTRACED) == (0x00800000), "CLONE_UNTRACED != 0x00800000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_UNTRACED 0x00800000
#endif
-#if !(defined(CLONE_CHILD_SETTID) || (defined(HAVE_DECL_CLONE_CHILD_SETTID) && HAVE_DECL_CLONE_CHILD_SETTID))
+#if defined(CLONE_CHILD_SETTID) || (defined(HAVE_DECL_CLONE_CHILD_SETTID) && HAVE_DECL_CLONE_CHILD_SETTID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_CHILD_SETTID) == (0x01000000), "CLONE_CHILD_SETTID != 0x01000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_CHILD_SETTID 0x01000000
#endif
-#if !(defined(CLONE_NEWCGROUP) || (defined(HAVE_DECL_CLONE_NEWCGROUP) && HAVE_DECL_CLONE_NEWCGROUP))
+#if defined(CLONE_NEWCGROUP) || (defined(HAVE_DECL_CLONE_NEWCGROUP) && HAVE_DECL_CLONE_NEWCGROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWCGROUP) == (0x02000000), "CLONE_NEWCGROUP != 0x02000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWCGROUP 0x02000000
#endif
-#if !(defined(CLONE_NEWUTS) || (defined(HAVE_DECL_CLONE_NEWUTS) && HAVE_DECL_CLONE_NEWUTS))
+#if defined(CLONE_NEWUTS) || (defined(HAVE_DECL_CLONE_NEWUTS) && HAVE_DECL_CLONE_NEWUTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWUTS) == (0x04000000), "CLONE_NEWUTS != 0x04000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWUTS 0x04000000
#endif
-#if !(defined(CLONE_NEWIPC) || (defined(HAVE_DECL_CLONE_NEWIPC) && HAVE_DECL_CLONE_NEWIPC))
+#if defined(CLONE_NEWIPC) || (defined(HAVE_DECL_CLONE_NEWIPC) && HAVE_DECL_CLONE_NEWIPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWIPC) == (0x08000000), "CLONE_NEWIPC != 0x08000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWIPC 0x08000000
#endif
-#if !(defined(CLONE_NEWUSER) || (defined(HAVE_DECL_CLONE_NEWUSER) && HAVE_DECL_CLONE_NEWUSER))
+#if defined(CLONE_NEWUSER) || (defined(HAVE_DECL_CLONE_NEWUSER) && HAVE_DECL_CLONE_NEWUSER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWUSER) == (0x10000000), "CLONE_NEWUSER != 0x10000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWUSER 0x10000000
#endif
-#if !(defined(CLONE_NEWPID) || (defined(HAVE_DECL_CLONE_NEWPID) && HAVE_DECL_CLONE_NEWPID))
+#if defined(CLONE_NEWPID) || (defined(HAVE_DECL_CLONE_NEWPID) && HAVE_DECL_CLONE_NEWPID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWPID) == (0x20000000), "CLONE_NEWPID != 0x20000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWPID 0x20000000
#endif
-#if !(defined(CLONE_NEWNET) || (defined(HAVE_DECL_CLONE_NEWNET) && HAVE_DECL_CLONE_NEWNET))
+#if defined(CLONE_NEWNET) || (defined(HAVE_DECL_CLONE_NEWNET) && HAVE_DECL_CLONE_NEWNET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWNET) == (0x40000000), "CLONE_NEWNET != 0x40000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWNET 0x40000000
#endif
-#if !(defined(CLONE_IO) || (defined(HAVE_DECL_CLONE_IO) && HAVE_DECL_CLONE_IO))
+#if defined(CLONE_IO) || (defined(HAVE_DECL_CLONE_IO) && HAVE_DECL_CLONE_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_IO) == (0x80000000), "CLONE_IO != 0x80000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_IO 0x80000000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat clone_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat clone_flags in mpers mode
+
+# else
static
const struct xlat clone_flags[] = {
@@ -103,4 +201,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/cpuclocknames.h b/xlat/cpuclocknames.h
index 8975159..93331c9 100644
--- a/xlat/cpuclocknames.h
+++ b/xlat/cpuclocknames.h
@@ -1,23 +1,46 @@
/* Generated by ./xlat/gen.sh from ./xlat/cpuclocknames.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat cpuclocknames in mpers mode
-
+#if defined(CPUCLOCK_PROF) || (defined(HAVE_DECL_CPUCLOCK_PROF) && HAVE_DECL_CPUCLOCK_PROF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CPUCLOCK_PROF) == (0), "CPUCLOCK_PROF != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define CPUCLOCK_PROF 0
+#endif
+#if defined(CPUCLOCK_VIRT) || (defined(HAVE_DECL_CPUCLOCK_VIRT) && HAVE_DECL_CPUCLOCK_VIRT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CPUCLOCK_VIRT) == (1), "CPUCLOCK_VIRT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CPUCLOCK_VIRT 1
+#endif
+#if defined(CPUCLOCK_SCHED) || (defined(HAVE_DECL_CPUCLOCK_SCHED) && HAVE_DECL_CPUCLOCK_SCHED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CPUCLOCK_SCHED) == (2), "CPUCLOCK_SCHED != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CPUCLOCK_SCHED 2
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat cpuclocknames in mpers mode
+
+# else
static
const struct xlat cpuclocknames[] = {
-#if defined(CPUCLOCK_PROF) || (defined(HAVE_DECL_CPUCLOCK_PROF) && HAVE_DECL_CPUCLOCK_PROF)
- XLAT(CPUCLOCK_PROF),
-#endif
-#if defined(CPUCLOCK_VIRT) || (defined(HAVE_DECL_CPUCLOCK_VIRT) && HAVE_DECL_CPUCLOCK_VIRT)
- XLAT(CPUCLOCK_VIRT),
-#endif
-#if defined(CPUCLOCK_SCHED) || (defined(HAVE_DECL_CPUCLOCK_SCHED) && HAVE_DECL_CPUCLOCK_SCHED)
- XLAT(CPUCLOCK_SCHED),
-#endif
+ [CPUCLOCK_PROF] = XLAT(CPUCLOCK_PROF),
+ [CPUCLOCK_VIRT] = XLAT(CPUCLOCK_VIRT),
+ [CPUCLOCK_SCHED] = XLAT(CPUCLOCK_SCHED),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/cpuclocknames.in b/xlat/cpuclocknames.in
index e61fa8f..b7b9a82 100644
--- a/xlat/cpuclocknames.in
+++ b/xlat/cpuclocknames.in
@@ -1,3 +1,4 @@
-CPUCLOCK_PROF
-CPUCLOCK_VIRT
-CPUCLOCK_SCHED
+#value_indexed
+CPUCLOCK_PROF 0
+CPUCLOCK_VIRT 1
+CPUCLOCK_SCHED 2
diff --git a/xlat/crypto_nl_attrs.h b/xlat/crypto_nl_attrs.h
index aebd38a..46fbcb8 100644
--- a/xlat/crypto_nl_attrs.h
+++ b/xlat/crypto_nl_attrs.h
@@ -1,46 +1,100 @@
/* Generated by ./xlat/gen.sh from ./xlat/crypto_nl_attrs.in; do not edit. */
-#if !(defined(CRYPTOCFGA_UNSPEC) || (defined(HAVE_DECL_CRYPTOCFGA_UNSPEC) && HAVE_DECL_CRYPTOCFGA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(CRYPTOCFGA_UNSPEC) || (defined(HAVE_DECL_CRYPTOCFGA_UNSPEC) && HAVE_DECL_CRYPTOCFGA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_UNSPEC) == (0), "CRYPTOCFGA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_UNSPEC 0
#endif
-#if !(defined(CRYPTOCFGA_PRIORITY_VAL) || (defined(HAVE_DECL_CRYPTOCFGA_PRIORITY_VAL) && HAVE_DECL_CRYPTOCFGA_PRIORITY_VAL))
+#if defined(CRYPTOCFGA_PRIORITY_VAL) || (defined(HAVE_DECL_CRYPTOCFGA_PRIORITY_VAL) && HAVE_DECL_CRYPTOCFGA_PRIORITY_VAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_PRIORITY_VAL) == (1), "CRYPTOCFGA_PRIORITY_VAL != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_PRIORITY_VAL 1
#endif
-#if !(defined(CRYPTOCFGA_REPORT_LARVAL) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_LARVAL) && HAVE_DECL_CRYPTOCFGA_REPORT_LARVAL))
+#if defined(CRYPTOCFGA_REPORT_LARVAL) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_LARVAL) && HAVE_DECL_CRYPTOCFGA_REPORT_LARVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_LARVAL) == (2), "CRYPTOCFGA_REPORT_LARVAL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_LARVAL 2
#endif
-#if !(defined(CRYPTOCFGA_REPORT_HASH) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_HASH) && HAVE_DECL_CRYPTOCFGA_REPORT_HASH))
+#if defined(CRYPTOCFGA_REPORT_HASH) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_HASH) && HAVE_DECL_CRYPTOCFGA_REPORT_HASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_HASH) == (3), "CRYPTOCFGA_REPORT_HASH != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_HASH 3
#endif
-#if !(defined(CRYPTOCFGA_REPORT_BLKCIPHER) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_BLKCIPHER) && HAVE_DECL_CRYPTOCFGA_REPORT_BLKCIPHER))
+#if defined(CRYPTOCFGA_REPORT_BLKCIPHER) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_BLKCIPHER) && HAVE_DECL_CRYPTOCFGA_REPORT_BLKCIPHER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_BLKCIPHER) == (4), "CRYPTOCFGA_REPORT_BLKCIPHER != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_BLKCIPHER 4
#endif
-#if !(defined(CRYPTOCFGA_REPORT_AEAD) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_AEAD) && HAVE_DECL_CRYPTOCFGA_REPORT_AEAD))
+#if defined(CRYPTOCFGA_REPORT_AEAD) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_AEAD) && HAVE_DECL_CRYPTOCFGA_REPORT_AEAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_AEAD) == (5), "CRYPTOCFGA_REPORT_AEAD != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_AEAD 5
#endif
-#if !(defined(CRYPTOCFGA_REPORT_COMPRESS) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_COMPRESS) && HAVE_DECL_CRYPTOCFGA_REPORT_COMPRESS))
+#if defined(CRYPTOCFGA_REPORT_COMPRESS) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_COMPRESS) && HAVE_DECL_CRYPTOCFGA_REPORT_COMPRESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_COMPRESS) == (6), "CRYPTOCFGA_REPORT_COMPRESS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_COMPRESS 6
#endif
-#if !(defined(CRYPTOCFGA_REPORT_RNG) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_RNG) && HAVE_DECL_CRYPTOCFGA_REPORT_RNG))
+#if defined(CRYPTOCFGA_REPORT_RNG) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_RNG) && HAVE_DECL_CRYPTOCFGA_REPORT_RNG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_RNG) == (7), "CRYPTOCFGA_REPORT_RNG != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_RNG 7
#endif
-#if !(defined(CRYPTOCFGA_REPORT_CIPHER) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_CIPHER) && HAVE_DECL_CRYPTOCFGA_REPORT_CIPHER))
+#if defined(CRYPTOCFGA_REPORT_CIPHER) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_CIPHER) && HAVE_DECL_CRYPTOCFGA_REPORT_CIPHER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_CIPHER) == (8), "CRYPTOCFGA_REPORT_CIPHER != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_CIPHER 8
#endif
-#if !(defined(CRYPTOCFGA_REPORT_AKCIPHER) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_AKCIPHER) && HAVE_DECL_CRYPTOCFGA_REPORT_AKCIPHER))
+#if defined(CRYPTOCFGA_REPORT_AKCIPHER) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_AKCIPHER) && HAVE_DECL_CRYPTOCFGA_REPORT_AKCIPHER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_AKCIPHER) == (9), "CRYPTOCFGA_REPORT_AKCIPHER != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_AKCIPHER 9
#endif
-#if !(defined(CRYPTOCFGA_REPORT_KPP) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_KPP) && HAVE_DECL_CRYPTOCFGA_REPORT_KPP))
+#if defined(CRYPTOCFGA_REPORT_KPP) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_KPP) && HAVE_DECL_CRYPTOCFGA_REPORT_KPP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_KPP) == (10), "CRYPTOCFGA_REPORT_KPP != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_KPP 10
#endif
-#if !(defined(CRYPTOCFGA_REPORT_ACOMP) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_ACOMP) && HAVE_DECL_CRYPTOCFGA_REPORT_ACOMP))
+#if defined(CRYPTOCFGA_REPORT_ACOMP) || (defined(HAVE_DECL_CRYPTOCFGA_REPORT_ACOMP) && HAVE_DECL_CRYPTOCFGA_REPORT_ACOMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CRYPTOCFGA_REPORT_ACOMP) == (11), "CRYPTOCFGA_REPORT_ACOMP != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CRYPTOCFGA_REPORT_ACOMP 11
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat crypto_nl_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat crypto_nl_attrs in mpers mode
+
+# else
static
const struct xlat crypto_nl_attrs[] = {
@@ -59,4 +113,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/dcb_commands.h b/xlat/dcb_commands.h
index a6fe22c..768dbc1 100644
--- a/xlat/dcb_commands.h
+++ b/xlat/dcb_commands.h
@@ -1,94 +1,212 @@
/* Generated by ./xlat/gen.sh from ./xlat/dcb_commands.in; do not edit. */
-#if !(defined(DCB_CMD_UNDEFINED) || (defined(HAVE_DECL_DCB_CMD_UNDEFINED) && HAVE_DECL_DCB_CMD_UNDEFINED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(DCB_CMD_UNDEFINED) || (defined(HAVE_DECL_DCB_CMD_UNDEFINED) && HAVE_DECL_DCB_CMD_UNDEFINED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_UNDEFINED) == (0), "DCB_CMD_UNDEFINED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_UNDEFINED 0
#endif
-#if !(defined(DCB_CMD_GSTATE) || (defined(HAVE_DECL_DCB_CMD_GSTATE) && HAVE_DECL_DCB_CMD_GSTATE))
+#if defined(DCB_CMD_GSTATE) || (defined(HAVE_DECL_DCB_CMD_GSTATE) && HAVE_DECL_DCB_CMD_GSTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_GSTATE) == (1), "DCB_CMD_GSTATE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_GSTATE 1
#endif
-#if !(defined(DCB_CMD_SSTATE) || (defined(HAVE_DECL_DCB_CMD_SSTATE) && HAVE_DECL_DCB_CMD_SSTATE))
+#if defined(DCB_CMD_SSTATE) || (defined(HAVE_DECL_DCB_CMD_SSTATE) && HAVE_DECL_DCB_CMD_SSTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_SSTATE) == (2), "DCB_CMD_SSTATE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_SSTATE 2
#endif
-#if !(defined(DCB_CMD_PGTX_GCFG) || (defined(HAVE_DECL_DCB_CMD_PGTX_GCFG) && HAVE_DECL_DCB_CMD_PGTX_GCFG))
+#if defined(DCB_CMD_PGTX_GCFG) || (defined(HAVE_DECL_DCB_CMD_PGTX_GCFG) && HAVE_DECL_DCB_CMD_PGTX_GCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PGTX_GCFG) == (3), "DCB_CMD_PGTX_GCFG != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PGTX_GCFG 3
#endif
-#if !(defined(DCB_CMD_PGTX_SCFG) || (defined(HAVE_DECL_DCB_CMD_PGTX_SCFG) && HAVE_DECL_DCB_CMD_PGTX_SCFG))
+#if defined(DCB_CMD_PGTX_SCFG) || (defined(HAVE_DECL_DCB_CMD_PGTX_SCFG) && HAVE_DECL_DCB_CMD_PGTX_SCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PGTX_SCFG) == (4), "DCB_CMD_PGTX_SCFG != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PGTX_SCFG 4
#endif
-#if !(defined(DCB_CMD_PGRX_GCFG) || (defined(HAVE_DECL_DCB_CMD_PGRX_GCFG) && HAVE_DECL_DCB_CMD_PGRX_GCFG))
+#if defined(DCB_CMD_PGRX_GCFG) || (defined(HAVE_DECL_DCB_CMD_PGRX_GCFG) && HAVE_DECL_DCB_CMD_PGRX_GCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PGRX_GCFG) == (5), "DCB_CMD_PGRX_GCFG != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PGRX_GCFG 5
#endif
-#if !(defined(DCB_CMD_PGRX_SCFG) || (defined(HAVE_DECL_DCB_CMD_PGRX_SCFG) && HAVE_DECL_DCB_CMD_PGRX_SCFG))
+#if defined(DCB_CMD_PGRX_SCFG) || (defined(HAVE_DECL_DCB_CMD_PGRX_SCFG) && HAVE_DECL_DCB_CMD_PGRX_SCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PGRX_SCFG) == (6), "DCB_CMD_PGRX_SCFG != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PGRX_SCFG 6
#endif
-#if !(defined(DCB_CMD_PFC_GCFG) || (defined(HAVE_DECL_DCB_CMD_PFC_GCFG) && HAVE_DECL_DCB_CMD_PFC_GCFG))
+#if defined(DCB_CMD_PFC_GCFG) || (defined(HAVE_DECL_DCB_CMD_PFC_GCFG) && HAVE_DECL_DCB_CMD_PFC_GCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PFC_GCFG) == (7), "DCB_CMD_PFC_GCFG != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PFC_GCFG 7
#endif
-#if !(defined(DCB_CMD_PFC_SCFG) || (defined(HAVE_DECL_DCB_CMD_PFC_SCFG) && HAVE_DECL_DCB_CMD_PFC_SCFG))
+#if defined(DCB_CMD_PFC_SCFG) || (defined(HAVE_DECL_DCB_CMD_PFC_SCFG) && HAVE_DECL_DCB_CMD_PFC_SCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PFC_SCFG) == (8), "DCB_CMD_PFC_SCFG != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PFC_SCFG 8
#endif
-#if !(defined(DCB_CMD_SET_ALL) || (defined(HAVE_DECL_DCB_CMD_SET_ALL) && HAVE_DECL_DCB_CMD_SET_ALL))
+#if defined(DCB_CMD_SET_ALL) || (defined(HAVE_DECL_DCB_CMD_SET_ALL) && HAVE_DECL_DCB_CMD_SET_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_SET_ALL) == (9), "DCB_CMD_SET_ALL != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_SET_ALL 9
#endif
-#if !(defined(DCB_CMD_GPERM_HWADDR) || (defined(HAVE_DECL_DCB_CMD_GPERM_HWADDR) && HAVE_DECL_DCB_CMD_GPERM_HWADDR))
+#if defined(DCB_CMD_GPERM_HWADDR) || (defined(HAVE_DECL_DCB_CMD_GPERM_HWADDR) && HAVE_DECL_DCB_CMD_GPERM_HWADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_GPERM_HWADDR) == (10), "DCB_CMD_GPERM_HWADDR != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_GPERM_HWADDR 10
#endif
-#if !(defined(DCB_CMD_GCAP) || (defined(HAVE_DECL_DCB_CMD_GCAP) && HAVE_DECL_DCB_CMD_GCAP))
+#if defined(DCB_CMD_GCAP) || (defined(HAVE_DECL_DCB_CMD_GCAP) && HAVE_DECL_DCB_CMD_GCAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_GCAP) == (11), "DCB_CMD_GCAP != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_GCAP 11
#endif
-#if !(defined(DCB_CMD_GNUMTCS) || (defined(HAVE_DECL_DCB_CMD_GNUMTCS) && HAVE_DECL_DCB_CMD_GNUMTCS))
+#if defined(DCB_CMD_GNUMTCS) || (defined(HAVE_DECL_DCB_CMD_GNUMTCS) && HAVE_DECL_DCB_CMD_GNUMTCS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_GNUMTCS) == (12), "DCB_CMD_GNUMTCS != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_GNUMTCS 12
#endif
-#if !(defined(DCB_CMD_SNUMTCS) || (defined(HAVE_DECL_DCB_CMD_SNUMTCS) && HAVE_DECL_DCB_CMD_SNUMTCS))
+#if defined(DCB_CMD_SNUMTCS) || (defined(HAVE_DECL_DCB_CMD_SNUMTCS) && HAVE_DECL_DCB_CMD_SNUMTCS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_SNUMTCS) == (13), "DCB_CMD_SNUMTCS != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_SNUMTCS 13
#endif
-#if !(defined(DCB_CMD_PFC_GSTATE) || (defined(HAVE_DECL_DCB_CMD_PFC_GSTATE) && HAVE_DECL_DCB_CMD_PFC_GSTATE))
+#if defined(DCB_CMD_PFC_GSTATE) || (defined(HAVE_DECL_DCB_CMD_PFC_GSTATE) && HAVE_DECL_DCB_CMD_PFC_GSTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PFC_GSTATE) == (14), "DCB_CMD_PFC_GSTATE != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PFC_GSTATE 14
#endif
-#if !(defined(DCB_CMD_PFC_SSTATE) || (defined(HAVE_DECL_DCB_CMD_PFC_SSTATE) && HAVE_DECL_DCB_CMD_PFC_SSTATE))
+#if defined(DCB_CMD_PFC_SSTATE) || (defined(HAVE_DECL_DCB_CMD_PFC_SSTATE) && HAVE_DECL_DCB_CMD_PFC_SSTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_PFC_SSTATE) == (15), "DCB_CMD_PFC_SSTATE != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_PFC_SSTATE 15
#endif
-#if !(defined(DCB_CMD_BCN_GCFG) || (defined(HAVE_DECL_DCB_CMD_BCN_GCFG) && HAVE_DECL_DCB_CMD_BCN_GCFG))
+#if defined(DCB_CMD_BCN_GCFG) || (defined(HAVE_DECL_DCB_CMD_BCN_GCFG) && HAVE_DECL_DCB_CMD_BCN_GCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_BCN_GCFG) == (16), "DCB_CMD_BCN_GCFG != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_BCN_GCFG 16
#endif
-#if !(defined(DCB_CMD_BCN_SCFG) || (defined(HAVE_DECL_DCB_CMD_BCN_SCFG) && HAVE_DECL_DCB_CMD_BCN_SCFG))
+#if defined(DCB_CMD_BCN_SCFG) || (defined(HAVE_DECL_DCB_CMD_BCN_SCFG) && HAVE_DECL_DCB_CMD_BCN_SCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_BCN_SCFG) == (17), "DCB_CMD_BCN_SCFG != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_BCN_SCFG 17
#endif
-#if !(defined(DCB_CMD_GAPP) || (defined(HAVE_DECL_DCB_CMD_GAPP) && HAVE_DECL_DCB_CMD_GAPP))
+#if defined(DCB_CMD_GAPP) || (defined(HAVE_DECL_DCB_CMD_GAPP) && HAVE_DECL_DCB_CMD_GAPP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_GAPP) == (18), "DCB_CMD_GAPP != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_GAPP 18
#endif
-#if !(defined(DCB_CMD_SAPP) || (defined(HAVE_DECL_DCB_CMD_SAPP) && HAVE_DECL_DCB_CMD_SAPP))
+#if defined(DCB_CMD_SAPP) || (defined(HAVE_DECL_DCB_CMD_SAPP) && HAVE_DECL_DCB_CMD_SAPP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_SAPP) == (19), "DCB_CMD_SAPP != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_SAPP 19
#endif
-#if !(defined(DCB_CMD_IEEE_SET) || (defined(HAVE_DECL_DCB_CMD_IEEE_SET) && HAVE_DECL_DCB_CMD_IEEE_SET))
+#if defined(DCB_CMD_IEEE_SET) || (defined(HAVE_DECL_DCB_CMD_IEEE_SET) && HAVE_DECL_DCB_CMD_IEEE_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_IEEE_SET) == (20), "DCB_CMD_IEEE_SET != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_IEEE_SET 20
#endif
-#if !(defined(DCB_CMD_IEEE_GET) || (defined(HAVE_DECL_DCB_CMD_IEEE_GET) && HAVE_DECL_DCB_CMD_IEEE_GET))
+#if defined(DCB_CMD_IEEE_GET) || (defined(HAVE_DECL_DCB_CMD_IEEE_GET) && HAVE_DECL_DCB_CMD_IEEE_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_IEEE_GET) == (21), "DCB_CMD_IEEE_GET != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_IEEE_GET 21
#endif
-#if !(defined(DCB_CMD_GDCBX) || (defined(HAVE_DECL_DCB_CMD_GDCBX) && HAVE_DECL_DCB_CMD_GDCBX))
+#if defined(DCB_CMD_GDCBX) || (defined(HAVE_DECL_DCB_CMD_GDCBX) && HAVE_DECL_DCB_CMD_GDCBX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_GDCBX) == (22), "DCB_CMD_GDCBX != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_GDCBX 22
#endif
-#if !(defined(DCB_CMD_SDCBX) || (defined(HAVE_DECL_DCB_CMD_SDCBX) && HAVE_DECL_DCB_CMD_SDCBX))
+#if defined(DCB_CMD_SDCBX) || (defined(HAVE_DECL_DCB_CMD_SDCBX) && HAVE_DECL_DCB_CMD_SDCBX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_SDCBX) == (23), "DCB_CMD_SDCBX != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_SDCBX 23
#endif
-#if !(defined(DCB_CMD_GFEATCFG) || (defined(HAVE_DECL_DCB_CMD_GFEATCFG) && HAVE_DECL_DCB_CMD_GFEATCFG))
+#if defined(DCB_CMD_GFEATCFG) || (defined(HAVE_DECL_DCB_CMD_GFEATCFG) && HAVE_DECL_DCB_CMD_GFEATCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_GFEATCFG) == (24), "DCB_CMD_GFEATCFG != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_GFEATCFG 24
#endif
-#if !(defined(DCB_CMD_SFEATCFG) || (defined(HAVE_DECL_DCB_CMD_SFEATCFG) && HAVE_DECL_DCB_CMD_SFEATCFG))
+#if defined(DCB_CMD_SFEATCFG) || (defined(HAVE_DECL_DCB_CMD_SFEATCFG) && HAVE_DECL_DCB_CMD_SFEATCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_SFEATCFG) == (25), "DCB_CMD_SFEATCFG != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_SFEATCFG 25
#endif
-#if !(defined(DCB_CMD_CEE_GET) || (defined(HAVE_DECL_DCB_CMD_CEE_GET) && HAVE_DECL_DCB_CMD_CEE_GET))
+#if defined(DCB_CMD_CEE_GET) || (defined(HAVE_DECL_DCB_CMD_CEE_GET) && HAVE_DECL_DCB_CMD_CEE_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_CEE_GET) == (26), "DCB_CMD_CEE_GET != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_CEE_GET 26
#endif
-#if !(defined(DCB_CMD_IEEE_DEL) || (defined(HAVE_DECL_DCB_CMD_IEEE_DEL) && HAVE_DECL_DCB_CMD_IEEE_DEL))
+#if defined(DCB_CMD_IEEE_DEL) || (defined(HAVE_DECL_DCB_CMD_IEEE_DEL) && HAVE_DECL_DCB_CMD_IEEE_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_CMD_IEEE_DEL) == (27), "DCB_CMD_IEEE_DEL != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_CMD_IEEE_DEL 27
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat dcb_commands in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat dcb_commands in mpers mode
+
+# else
static
const struct xlat dcb_commands[] = {
@@ -123,4 +241,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/delete_module_flags.h b/xlat/delete_module_flags.h
index 279c45a..8c09810 100644
--- a/xlat/delete_module_flags.h
+++ b/xlat/delete_module_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/delete_module_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat delete_module_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat delete_module_flags in mpers mode
+
+# else
static
const struct xlat delete_module_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/dirent_types.h b/xlat/dirent_types.h
index 42df495..0d21f50 100644
--- a/xlat/dirent_types.h
+++ b/xlat/dirent_types.h
@@ -1,6 +1,12 @@
/* Generated by ./xlat/gen.sh from ./xlat/dirent_types.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat dirent_types[] = {
#if defined(DT_UNKNOWN) || (defined(HAVE_DECL_DT_UNKNOWN) && HAVE_DECL_DT_UNKNOWN)
@@ -33,4 +39,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/dm_flags.h b/xlat/dm_flags.h
index 5573856..88b508c 100644
--- a/xlat/dm_flags.h
+++ b/xlat/dm_flags.h
@@ -1,64 +1,142 @@
/* Generated by ./xlat/gen.sh from ./xlat/dm_flags.in; do not edit. */
-#if !(defined(DM_READONLY_FLAG) || (defined(HAVE_DECL_DM_READONLY_FLAG) && HAVE_DECL_DM_READONLY_FLAG))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(DM_READONLY_FLAG) || (defined(HAVE_DECL_DM_READONLY_FLAG) && HAVE_DECL_DM_READONLY_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_READONLY_FLAG) == ((1 << 0)), "DM_READONLY_FLAG != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_READONLY_FLAG (1 << 0)
#endif
-#if !(defined(DM_SUSPEND_FLAG) || (defined(HAVE_DECL_DM_SUSPEND_FLAG) && HAVE_DECL_DM_SUSPEND_FLAG))
+#if defined(DM_SUSPEND_FLAG) || (defined(HAVE_DECL_DM_SUSPEND_FLAG) && HAVE_DECL_DM_SUSPEND_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_SUSPEND_FLAG) == ((1 << 1)), "DM_SUSPEND_FLAG != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_SUSPEND_FLAG (1 << 1)
#endif
-#if !(defined(DM_EXISTS_FLAG) || (defined(HAVE_DECL_DM_EXISTS_FLAG) && HAVE_DECL_DM_EXISTS_FLAG))
+#if defined(DM_EXISTS_FLAG) || (defined(HAVE_DECL_DM_EXISTS_FLAG) && HAVE_DECL_DM_EXISTS_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_EXISTS_FLAG) == ((1 << 2)), "DM_EXISTS_FLAG != (1 << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_EXISTS_FLAG (1 << 2)
#endif
-#if !(defined(DM_PERSISTENT_DEV_FLAG) || (defined(HAVE_DECL_DM_PERSISTENT_DEV_FLAG) && HAVE_DECL_DM_PERSISTENT_DEV_FLAG))
+#if defined(DM_PERSISTENT_DEV_FLAG) || (defined(HAVE_DECL_DM_PERSISTENT_DEV_FLAG) && HAVE_DECL_DM_PERSISTENT_DEV_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_PERSISTENT_DEV_FLAG) == ((1 << 3)), "DM_PERSISTENT_DEV_FLAG != (1 << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_PERSISTENT_DEV_FLAG (1 << 3)
#endif
-#if !(defined(DM_STATUS_TABLE_FLAG) || (defined(HAVE_DECL_DM_STATUS_TABLE_FLAG) && HAVE_DECL_DM_STATUS_TABLE_FLAG))
+#if defined(DM_STATUS_TABLE_FLAG) || (defined(HAVE_DECL_DM_STATUS_TABLE_FLAG) && HAVE_DECL_DM_STATUS_TABLE_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_STATUS_TABLE_FLAG) == ((1 << 4)), "DM_STATUS_TABLE_FLAG != (1 << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_STATUS_TABLE_FLAG (1 << 4)
#endif
-#if !(defined(DM_ACTIVE_PRESENT_FLAG) || (defined(HAVE_DECL_DM_ACTIVE_PRESENT_FLAG) && HAVE_DECL_DM_ACTIVE_PRESENT_FLAG))
+#if defined(DM_ACTIVE_PRESENT_FLAG) || (defined(HAVE_DECL_DM_ACTIVE_PRESENT_FLAG) && HAVE_DECL_DM_ACTIVE_PRESENT_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_ACTIVE_PRESENT_FLAG) == ((1 << 5)), "DM_ACTIVE_PRESENT_FLAG != (1 << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_ACTIVE_PRESENT_FLAG (1 << 5)
#endif
-#if !(defined(DM_INACTIVE_PRESENT_FLAG) || (defined(HAVE_DECL_DM_INACTIVE_PRESENT_FLAG) && HAVE_DECL_DM_INACTIVE_PRESENT_FLAG))
+#if defined(DM_INACTIVE_PRESENT_FLAG) || (defined(HAVE_DECL_DM_INACTIVE_PRESENT_FLAG) && HAVE_DECL_DM_INACTIVE_PRESENT_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_INACTIVE_PRESENT_FLAG) == ((1 << 6)), "DM_INACTIVE_PRESENT_FLAG != (1 << 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_INACTIVE_PRESENT_FLAG (1 << 6)
#endif
-#if !(defined(DM_BUFFER_FULL_FLAG) || (defined(HAVE_DECL_DM_BUFFER_FULL_FLAG) && HAVE_DECL_DM_BUFFER_FULL_FLAG))
+#if defined(DM_BUFFER_FULL_FLAG) || (defined(HAVE_DECL_DM_BUFFER_FULL_FLAG) && HAVE_DECL_DM_BUFFER_FULL_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_BUFFER_FULL_FLAG) == ((1 << 8)), "DM_BUFFER_FULL_FLAG != (1 << 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_BUFFER_FULL_FLAG (1 << 8)
#endif
-#if !(defined(DM_SKIP_BDGET_FLAG) || (defined(HAVE_DECL_DM_SKIP_BDGET_FLAG) && HAVE_DECL_DM_SKIP_BDGET_FLAG))
+#if defined(DM_SKIP_BDGET_FLAG) || (defined(HAVE_DECL_DM_SKIP_BDGET_FLAG) && HAVE_DECL_DM_SKIP_BDGET_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_SKIP_BDGET_FLAG) == ((1 << 9)), "DM_SKIP_BDGET_FLAG != (1 << 9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_SKIP_BDGET_FLAG (1 << 9)
#endif
-#if !(defined(DM_SKIP_LOCKFS_FLAG) || (defined(HAVE_DECL_DM_SKIP_LOCKFS_FLAG) && HAVE_DECL_DM_SKIP_LOCKFS_FLAG))
+#if defined(DM_SKIP_LOCKFS_FLAG) || (defined(HAVE_DECL_DM_SKIP_LOCKFS_FLAG) && HAVE_DECL_DM_SKIP_LOCKFS_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_SKIP_LOCKFS_FLAG) == ((1 << 10)), "DM_SKIP_LOCKFS_FLAG != (1 << 10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_SKIP_LOCKFS_FLAG (1 << 10)
#endif
-#if !(defined(DM_NOFLUSH_FLAG) || (defined(HAVE_DECL_DM_NOFLUSH_FLAG) && HAVE_DECL_DM_NOFLUSH_FLAG))
+#if defined(DM_NOFLUSH_FLAG) || (defined(HAVE_DECL_DM_NOFLUSH_FLAG) && HAVE_DECL_DM_NOFLUSH_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_NOFLUSH_FLAG) == ((1 << 11)), "DM_NOFLUSH_FLAG != (1 << 11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_NOFLUSH_FLAG (1 << 11)
#endif
-#if !(defined(DM_QUERY_INACTIVE_TABLE_FLAG) || (defined(HAVE_DECL_DM_QUERY_INACTIVE_TABLE_FLAG) && HAVE_DECL_DM_QUERY_INACTIVE_TABLE_FLAG))
+#if defined(DM_QUERY_INACTIVE_TABLE_FLAG) || (defined(HAVE_DECL_DM_QUERY_INACTIVE_TABLE_FLAG) && HAVE_DECL_DM_QUERY_INACTIVE_TABLE_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_QUERY_INACTIVE_TABLE_FLAG) == ((1 << 12)), "DM_QUERY_INACTIVE_TABLE_FLAG != (1 << 12)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_QUERY_INACTIVE_TABLE_FLAG (1 << 12)
#endif
-#if !(defined(DM_UEVENT_GENERATED_FLAG) || (defined(HAVE_DECL_DM_UEVENT_GENERATED_FLAG) && HAVE_DECL_DM_UEVENT_GENERATED_FLAG))
+#if defined(DM_UEVENT_GENERATED_FLAG) || (defined(HAVE_DECL_DM_UEVENT_GENERATED_FLAG) && HAVE_DECL_DM_UEVENT_GENERATED_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_UEVENT_GENERATED_FLAG) == ((1 << 13)), "DM_UEVENT_GENERATED_FLAG != (1 << 13)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_UEVENT_GENERATED_FLAG (1 << 13)
#endif
-#if !(defined(DM_UUID_FLAG) || (defined(HAVE_DECL_DM_UUID_FLAG) && HAVE_DECL_DM_UUID_FLAG))
+#if defined(DM_UUID_FLAG) || (defined(HAVE_DECL_DM_UUID_FLAG) && HAVE_DECL_DM_UUID_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_UUID_FLAG) == ((1 << 14)), "DM_UUID_FLAG != (1 << 14)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_UUID_FLAG (1 << 14)
#endif
-#if !(defined(DM_SECURE_DATA_FLAG) || (defined(HAVE_DECL_DM_SECURE_DATA_FLAG) && HAVE_DECL_DM_SECURE_DATA_FLAG))
+#if defined(DM_SECURE_DATA_FLAG) || (defined(HAVE_DECL_DM_SECURE_DATA_FLAG) && HAVE_DECL_DM_SECURE_DATA_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_SECURE_DATA_FLAG) == ((1 << 15)), "DM_SECURE_DATA_FLAG != (1 << 15)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_SECURE_DATA_FLAG (1 << 15)
#endif
-#if !(defined(DM_DATA_OUT_FLAG) || (defined(HAVE_DECL_DM_DATA_OUT_FLAG) && HAVE_DECL_DM_DATA_OUT_FLAG))
+#if defined(DM_DATA_OUT_FLAG) || (defined(HAVE_DECL_DM_DATA_OUT_FLAG) && HAVE_DECL_DM_DATA_OUT_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_DATA_OUT_FLAG) == ((1 << 16)), "DM_DATA_OUT_FLAG != (1 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_DATA_OUT_FLAG (1 << 16)
#endif
-#if !(defined(DM_DEFERRED_REMOVE) || (defined(HAVE_DECL_DM_DEFERRED_REMOVE) && HAVE_DECL_DM_DEFERRED_REMOVE))
+#if defined(DM_DEFERRED_REMOVE) || (defined(HAVE_DECL_DM_DEFERRED_REMOVE) && HAVE_DECL_DM_DEFERRED_REMOVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_DEFERRED_REMOVE) == ((1 << 17)), "DM_DEFERRED_REMOVE != (1 << 17)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_DEFERRED_REMOVE (1 << 17)
#endif
-#if !(defined(DM_INTERNAL_SUSPEND_FLAG) || (defined(HAVE_DECL_DM_INTERNAL_SUSPEND_FLAG) && HAVE_DECL_DM_INTERNAL_SUSPEND_FLAG))
+#if defined(DM_INTERNAL_SUSPEND_FLAG) || (defined(HAVE_DECL_DM_INTERNAL_SUSPEND_FLAG) && HAVE_DECL_DM_INTERNAL_SUSPEND_FLAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DM_INTERNAL_SUSPEND_FLAG) == ((1 << 18)), "DM_INTERNAL_SUSPEND_FLAG != (1 << 18)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DM_INTERNAL_SUSPEND_FLAG (1 << 18)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat dm_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat dm_flags in mpers mode
+
+# else
static
const struct xlat dm_flags[] = {
@@ -84,4 +162,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ebpf_class.h b/xlat/ebpf_class.h
new file mode 100644
index 0000000..9dfcd84
--- /dev/null
+++ b/xlat/ebpf_class.h
@@ -0,0 +1,78 @@
+/* Generated by ./xlat/gen.sh from ./xlat/ebpf_class.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_LD) || (defined(HAVE_DECL_BPF_LD) && HAVE_DECL_BPF_LD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_LD) == (0x0), "BPF_LD != 0x0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_LD 0x0
+#endif
+#if defined(BPF_LDX) || (defined(HAVE_DECL_BPF_LDX) && HAVE_DECL_BPF_LDX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_LDX) == (0x1), "BPF_LDX != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_LDX 0x1
+#endif
+#if defined(BPF_ST) || (defined(HAVE_DECL_BPF_ST) && HAVE_DECL_BPF_ST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ST) == (0x2), "BPF_ST != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ST 0x2
+#endif
+#if defined(BPF_STX) || (defined(HAVE_DECL_BPF_STX) && HAVE_DECL_BPF_STX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_STX) == (0x3), "BPF_STX != 0x3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_STX 0x3
+#endif
+#if defined(BPF_ALU) || (defined(HAVE_DECL_BPF_ALU) && HAVE_DECL_BPF_ALU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ALU) == (0x4), "BPF_ALU != 0x4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ALU 0x4
+#endif
+#if defined(BPF_JMP) || (defined(HAVE_DECL_BPF_JMP) && HAVE_DECL_BPF_JMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JMP) == (0x5), "BPF_JMP != 0x5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JMP 0x5
+#endif
+#if defined(BPF_ALU64) || (defined(HAVE_DECL_BPF_ALU64) && HAVE_DECL_BPF_ALU64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ALU64) == (0x7), "BPF_ALU64 != 0x7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ALU64 0x7
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ebpf_class in mpers mode
+
+# else
+
+static
+const struct xlat ebpf_class[] = {
+ [BPF_LD] = XLAT(BPF_LD),
+ [BPF_LDX] = XLAT(BPF_LDX),
+ [BPF_ST] = XLAT(BPF_ST),
+ [BPF_STX] = XLAT(BPF_STX),
+ [BPF_ALU] = XLAT(BPF_ALU),
+ [BPF_JMP] = XLAT(BPF_JMP),
+ [BPF_ALU64] = XLAT(BPF_ALU64),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ebpf_class.in b/xlat/ebpf_class.in
new file mode 100644
index 0000000..c1a82fc
--- /dev/null
+++ b/xlat/ebpf_class.in
@@ -0,0 +1,8 @@
+#value_indexed
+BPF_LD 0x0
+BPF_LDX 0x1
+BPF_ST 0x2
+BPF_STX 0x3
+BPF_ALU 0x4
+BPF_JMP 0x5
+BPF_ALU64 0x7
diff --git a/xlat/ebpf_mode.h b/xlat/ebpf_mode.h
new file mode 100644
index 0000000..5fddcfb
--- /dev/null
+++ b/xlat/ebpf_mode.h
@@ -0,0 +1,62 @@
+/* Generated by ./xlat/gen.sh from ./xlat/ebpf_mode.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_IMM) || (defined(HAVE_DECL_BPF_IMM) && HAVE_DECL_BPF_IMM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_IMM) == (0x00), "BPF_IMM != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_IMM 0x00
+#endif
+#if defined(BPF_ABS) || (defined(HAVE_DECL_BPF_ABS) && HAVE_DECL_BPF_ABS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ABS) == (0x20), "BPF_ABS != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ABS 0x20
+#endif
+#if defined(BPF_IND) || (defined(HAVE_DECL_BPF_IND) && HAVE_DECL_BPF_IND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_IND) == (0x40), "BPF_IND != 0x40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_IND 0x40
+#endif
+#if defined(BPF_MEM) || (defined(HAVE_DECL_BPF_MEM) && HAVE_DECL_BPF_MEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MEM) == (0x60), "BPF_MEM != 0x60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MEM 0x60
+#endif
+#if defined(BPF_XADD) || (defined(HAVE_DECL_BPF_XADD) && HAVE_DECL_BPF_XADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_XADD) == (0xc0), "BPF_XADD != 0xc0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_XADD 0xc0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ebpf_mode in mpers mode
+
+# else
+
+static
+const struct xlat ebpf_mode[] = {
+ XLAT(BPF_IMM),
+ XLAT(BPF_ABS),
+ XLAT(BPF_IND),
+ XLAT(BPF_MEM),
+ XLAT(BPF_XADD),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ebpf_mode.in b/xlat/ebpf_mode.in
new file mode 100644
index 0000000..d8a65b6
--- /dev/null
+++ b/xlat/ebpf_mode.in
@@ -0,0 +1,5 @@
+BPF_IMM 0x00
+BPF_ABS 0x20
+BPF_IND 0x40
+BPF_MEM 0x60
+BPF_XADD 0xc0
diff --git a/xlat/ebpf_op_alu.h b/xlat/ebpf_op_alu.h
new file mode 100644
index 0000000..2a5151c
--- /dev/null
+++ b/xlat/ebpf_op_alu.h
@@ -0,0 +1,46 @@
+/* Generated by ./xlat/gen.sh from ./xlat/ebpf_op_alu.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_MOV) || (defined(HAVE_DECL_BPF_MOV) && HAVE_DECL_BPF_MOV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_MOV) == (0xb0), "BPF_MOV != 0xb0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_MOV 0xb0
+#endif
+#if defined(BPF_ARSH) || (defined(HAVE_DECL_BPF_ARSH) && HAVE_DECL_BPF_ARSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_ARSH) == (0xc0), "BPF_ARSH != 0xc0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_ARSH 0xc0
+#endif
+#if defined(BPF_END) || (defined(HAVE_DECL_BPF_END) && HAVE_DECL_BPF_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_END) == (0xd0), "BPF_END != 0xd0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_END 0xd0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ebpf_op_alu in mpers mode
+
+# else
+
+static
+const struct xlat ebpf_op_alu[] = {
+ XLAT(BPF_MOV),
+ XLAT(BPF_ARSH),
+ XLAT(BPF_END),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ebpf_op_alu.in b/xlat/ebpf_op_alu.in
new file mode 100644
index 0000000..2b46f20
--- /dev/null
+++ b/xlat/ebpf_op_alu.in
@@ -0,0 +1,3 @@
+BPF_MOV 0xb0
+BPF_ARSH 0xc0
+BPF_END 0xd0
diff --git a/xlat/ebpf_op_jmp.h b/xlat/ebpf_op_jmp.h
new file mode 100644
index 0000000..d1feb21
--- /dev/null
+++ b/xlat/ebpf_op_jmp.h
@@ -0,0 +1,94 @@
+/* Generated by ./xlat/gen.sh from ./xlat/ebpf_op_jmp.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_JNE) || (defined(HAVE_DECL_BPF_JNE) && HAVE_DECL_BPF_JNE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JNE) == (0x50), "BPF_JNE != 0x50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JNE 0x50
+#endif
+#if defined(BPF_JSGT) || (defined(HAVE_DECL_BPF_JSGT) && HAVE_DECL_BPF_JSGT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSGT) == (0x60), "BPF_JSGT != 0x60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSGT 0x60
+#endif
+#if defined(BPF_JSGE) || (defined(HAVE_DECL_BPF_JSGE) && HAVE_DECL_BPF_JSGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSGE) == (0x70), "BPF_JSGE != 0x70");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSGE 0x70
+#endif
+#if defined(BPF_CALL) || (defined(HAVE_DECL_BPF_CALL) && HAVE_DECL_BPF_CALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_CALL) == (0x80), "BPF_CALL != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_CALL 0x80
+#endif
+#if defined(BPF_EXIT) || (defined(HAVE_DECL_BPF_EXIT) && HAVE_DECL_BPF_EXIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_EXIT) == (0x90), "BPF_EXIT != 0x90");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_EXIT 0x90
+#endif
+#if defined(BPF_JLT) || (defined(HAVE_DECL_BPF_JLT) && HAVE_DECL_BPF_JLT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JLT) == (0xa0), "BPF_JLT != 0xa0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JLT 0xa0
+#endif
+#if defined(BPF_JLE) || (defined(HAVE_DECL_BPF_JLE) && HAVE_DECL_BPF_JLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JLE) == (0xb0), "BPF_JLE != 0xb0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JLE 0xb0
+#endif
+#if defined(BPF_JSLT) || (defined(HAVE_DECL_BPF_JSLT) && HAVE_DECL_BPF_JSLT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSLT) == (0xc0), "BPF_JSLT != 0xc0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSLT 0xc0
+#endif
+#if defined(BPF_JSLE) || (defined(HAVE_DECL_BPF_JSLE) && HAVE_DECL_BPF_JSLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_JSLE) == (0xd0), "BPF_JSLE != 0xd0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_JSLE 0xd0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ebpf_op_jmp in mpers mode
+
+# else
+
+static
+const struct xlat ebpf_op_jmp[] = {
+ XLAT(BPF_JNE),
+ XLAT(BPF_JSGT),
+ XLAT(BPF_JSGE),
+ XLAT(BPF_CALL),
+ XLAT(BPF_EXIT),
+ XLAT(BPF_JLT),
+ XLAT(BPF_JLE),
+ XLAT(BPF_JSLT),
+ XLAT(BPF_JSLE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ebpf_op_jmp.in b/xlat/ebpf_op_jmp.in
new file mode 100644
index 0000000..8d49cf6
--- /dev/null
+++ b/xlat/ebpf_op_jmp.in
@@ -0,0 +1,9 @@
+BPF_JNE 0x50
+BPF_JSGT 0x60
+BPF_JSGE 0x70
+BPF_CALL 0x80
+BPF_EXIT 0x90
+BPF_JLT 0xa0
+BPF_JLE 0xb0
+BPF_JSLT 0xc0
+BPF_JSLE 0xd0
diff --git a/xlat/ebpf_regs.h b/xlat/ebpf_regs.h
new file mode 100644
index 0000000..6798516
--- /dev/null
+++ b/xlat/ebpf_regs.h
@@ -0,0 +1,110 @@
+/* Generated by ./xlat/gen.sh from ./xlat/ebpf_regs.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_REG_0) || (defined(HAVE_DECL_BPF_REG_0) && HAVE_DECL_BPF_REG_0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_0) == (0), "BPF_REG_0 != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_0 0
+#endif
+#if defined(BPF_REG_1) || (defined(HAVE_DECL_BPF_REG_1) && HAVE_DECL_BPF_REG_1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_1) == (1), "BPF_REG_1 != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_1 1
+#endif
+#if defined(BPF_REG_2) || (defined(HAVE_DECL_BPF_REG_2) && HAVE_DECL_BPF_REG_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_2) == (2), "BPF_REG_2 != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_2 2
+#endif
+#if defined(BPF_REG_3) || (defined(HAVE_DECL_BPF_REG_3) && HAVE_DECL_BPF_REG_3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_3) == (3), "BPF_REG_3 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_3 3
+#endif
+#if defined(BPF_REG_4) || (defined(HAVE_DECL_BPF_REG_4) && HAVE_DECL_BPF_REG_4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_4) == (4), "BPF_REG_4 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_4 4
+#endif
+#if defined(BPF_REG_5) || (defined(HAVE_DECL_BPF_REG_5) && HAVE_DECL_BPF_REG_5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_5) == (5), "BPF_REG_5 != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_5 5
+#endif
+#if defined(BPF_REG_6) || (defined(HAVE_DECL_BPF_REG_6) && HAVE_DECL_BPF_REG_6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_6) == (6), "BPF_REG_6 != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_6 6
+#endif
+#if defined(BPF_REG_7) || (defined(HAVE_DECL_BPF_REG_7) && HAVE_DECL_BPF_REG_7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_7) == (7), "BPF_REG_7 != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_7 7
+#endif
+#if defined(BPF_REG_8) || (defined(HAVE_DECL_BPF_REG_8) && HAVE_DECL_BPF_REG_8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_8) == (8), "BPF_REG_8 != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_8 8
+#endif
+#if defined(BPF_REG_9) || (defined(HAVE_DECL_BPF_REG_9) && HAVE_DECL_BPF_REG_9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_9) == (9), "BPF_REG_9 != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_9 9
+#endif
+#if defined(BPF_REG_10) || (defined(HAVE_DECL_BPF_REG_10) && HAVE_DECL_BPF_REG_10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_REG_10) == (10), "BPF_REG_10 != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_REG_10 10
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ebpf_regs in mpers mode
+
+# else
+
+static
+const struct xlat ebpf_regs[] = {
+ [BPF_REG_0] = XLAT(BPF_REG_0),
+ [BPF_REG_1] = XLAT(BPF_REG_1),
+ [BPF_REG_2] = XLAT(BPF_REG_2),
+ [BPF_REG_3] = XLAT(BPF_REG_3),
+ [BPF_REG_4] = XLAT(BPF_REG_4),
+ [BPF_REG_5] = XLAT(BPF_REG_5),
+ [BPF_REG_6] = XLAT(BPF_REG_6),
+ [BPF_REG_7] = XLAT(BPF_REG_7),
+ [BPF_REG_8] = XLAT(BPF_REG_8),
+ [BPF_REG_9] = XLAT(BPF_REG_9),
+ [BPF_REG_10] = XLAT(BPF_REG_10),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ebpf_regs.in b/xlat/ebpf_regs.in
new file mode 100644
index 0000000..9db066e
--- /dev/null
+++ b/xlat/ebpf_regs.in
@@ -0,0 +1,12 @@
+#value_indexed
+BPF_REG_0 0
+BPF_REG_1 1
+BPF_REG_2 2
+BPF_REG_3 3
+BPF_REG_4 4
+BPF_REG_5 5
+BPF_REG_6 6
+BPF_REG_7 7
+BPF_REG_8 8
+BPF_REG_9 9
+BPF_REG_10 10
diff --git a/xlat/ebpf_size.h b/xlat/ebpf_size.h
new file mode 100644
index 0000000..b3d32d2
--- /dev/null
+++ b/xlat/ebpf_size.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/ebpf_size.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BPF_DW) || (defined(HAVE_DECL_BPF_DW) && HAVE_DECL_BPF_DW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BPF_DW) == (0x18), "BPF_DW != 0x18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BPF_DW 0x18
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ebpf_size in mpers mode
+
+# else
+
+static
+const struct xlat ebpf_size[] = {
+ XLAT(BPF_DW),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ebpf_size.in b/xlat/ebpf_size.in
new file mode 100644
index 0000000..5f9afa3
--- /dev/null
+++ b/xlat/ebpf_size.in
@@ -0,0 +1 @@
+BPF_DW 0x18
diff --git a/xlat/efd_flags.h b/xlat/efd_flags.h
index 641f116..e61316a 100644
--- a/xlat/efd_flags.h
+++ b/xlat/efd_flags.h
@@ -1,21 +1,39 @@
/* Generated by ./xlat/gen.sh from ./xlat/efd_flags.in; do not edit. */
-#if !(defined(EFD_SEMAPHORE) || (defined(HAVE_DECL_EFD_SEMAPHORE) && HAVE_DECL_EFD_SEMAPHORE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(EFD_SEMAPHORE) || (defined(HAVE_DECL_EFD_SEMAPHORE) && HAVE_DECL_EFD_SEMAPHORE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EFD_SEMAPHORE) == (1), "EFD_SEMAPHORE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EFD_SEMAPHORE 1
#endif
#if defined EFD_CLOEXEC || defined O_CLOEXEC
-#if !(defined(EFD_CLOEXEC) || (defined(HAVE_DECL_EFD_CLOEXEC) && HAVE_DECL_EFD_CLOEXEC))
+#if defined(EFD_CLOEXEC) || (defined(HAVE_DECL_EFD_CLOEXEC) && HAVE_DECL_EFD_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EFD_CLOEXEC) == (O_CLOEXEC), "EFD_CLOEXEC != O_CLOEXEC");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EFD_CLOEXEC O_CLOEXEC
#endif
#endif
-#if !(defined(EFD_NONBLOCK) || (defined(HAVE_DECL_EFD_NONBLOCK) && HAVE_DECL_EFD_NONBLOCK))
+#if defined(EFD_NONBLOCK) || (defined(HAVE_DECL_EFD_NONBLOCK) && HAVE_DECL_EFD_NONBLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EFD_NONBLOCK) == (O_NONBLOCK), "EFD_NONBLOCK != O_NONBLOCK");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EFD_NONBLOCK O_NONBLOCK
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat efd_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat efd_flags in mpers mode
+
+# else
static
const struct xlat efd_flags[] = {
@@ -27,4 +45,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/epollctls.h b/xlat/epollctls.h
index 6b06d8c..a3b7419 100644
--- a/xlat/epollctls.h
+++ b/xlat/epollctls.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/epollctls.in; do not edit. */
-#if !(defined(EPOLL_CTL_ADD) || (defined(HAVE_DECL_EPOLL_CTL_ADD) && HAVE_DECL_EPOLL_CTL_ADD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(EPOLL_CTL_ADD) || (defined(HAVE_DECL_EPOLL_CTL_ADD) && HAVE_DECL_EPOLL_CTL_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EPOLL_CTL_ADD) == (1), "EPOLL_CTL_ADD != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EPOLL_CTL_ADD 1
#endif
-#if !(defined(EPOLL_CTL_DEL) || (defined(HAVE_DECL_EPOLL_CTL_DEL) && HAVE_DECL_EPOLL_CTL_DEL))
+#if defined(EPOLL_CTL_DEL) || (defined(HAVE_DECL_EPOLL_CTL_DEL) && HAVE_DECL_EPOLL_CTL_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EPOLL_CTL_DEL) == (2), "EPOLL_CTL_DEL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EPOLL_CTL_DEL 2
#endif
-#if !(defined(EPOLL_CTL_MOD) || (defined(HAVE_DECL_EPOLL_CTL_MOD) && HAVE_DECL_EPOLL_CTL_MOD))
+#if defined(EPOLL_CTL_MOD) || (defined(HAVE_DECL_EPOLL_CTL_MOD) && HAVE_DECL_EPOLL_CTL_MOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EPOLL_CTL_MOD) == (3), "EPOLL_CTL_MOD != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EPOLL_CTL_MOD 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat epollctls in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat epollctls in mpers mode
+
+# else
static
const struct xlat epollctls[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/epollevents.h b/xlat/epollevents.h
index 3b98b6d..b82e173 100644
--- a/xlat/epollevents.h
+++ b/xlat/epollevents.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/epollevents.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat epollevents in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat epollevents in mpers mode
+
+# else
static
const struct xlat epollevents[] = {
@@ -56,4 +62,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/epollflags.h b/xlat/epollflags.h
index cae4fe9..faf4b0c 100644
--- a/xlat/epollflags.h
+++ b/xlat/epollflags.h
@@ -1,15 +1,25 @@
/* Generated by ./xlat/gen.sh from ./xlat/epollflags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
#if defined EPOLL_CLOEXEC || defined O_CLOEXEC
-#if !(defined(EPOLL_CLOEXEC) || (defined(HAVE_DECL_EPOLL_CLOEXEC) && HAVE_DECL_EPOLL_CLOEXEC))
+#if defined(EPOLL_CLOEXEC) || (defined(HAVE_DECL_EPOLL_CLOEXEC) && HAVE_DECL_EPOLL_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EPOLL_CLOEXEC) == (O_CLOEXEC), "EPOLL_CLOEXEC != O_CLOEXEC");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EPOLL_CLOEXEC O_CLOEXEC
#endif
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat epollflags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat epollflags in mpers mode
+
+# else
static
const struct xlat epollflags[] = {
@@ -19,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ethernet_protocols.h b/xlat/ethernet_protocols.h
index 3849e0e..67c64cb 100644
--- a/xlat/ethernet_protocols.h
+++ b/xlat/ethernet_protocols.h
@@ -1,276 +1,649 @@
/* Generated by ./xlat/gen.sh from ./xlat/ethernet_protocols.in; do not edit. */
-#if !(defined(ETH_P_802_3) || (defined(HAVE_DECL_ETH_P_802_3) && HAVE_DECL_ETH_P_802_3))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ETH_P_802_3) || (defined(HAVE_DECL_ETH_P_802_3) && HAVE_DECL_ETH_P_802_3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_802_3) == (0x0001), "ETH_P_802_3 != 0x0001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_802_3 0x0001
#endif
-#if !(defined(ETH_P_AX25) || (defined(HAVE_DECL_ETH_P_AX25) && HAVE_DECL_ETH_P_AX25))
+#if defined(ETH_P_AX25) || (defined(HAVE_DECL_ETH_P_AX25) && HAVE_DECL_ETH_P_AX25)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_AX25) == (0x0002), "ETH_P_AX25 != 0x0002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_AX25 0x0002
#endif
-#if !(defined(ETH_P_ALL) || (defined(HAVE_DECL_ETH_P_ALL) && HAVE_DECL_ETH_P_ALL))
+#if defined(ETH_P_ALL) || (defined(HAVE_DECL_ETH_P_ALL) && HAVE_DECL_ETH_P_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ALL) == (0x0003), "ETH_P_ALL != 0x0003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ALL 0x0003
#endif
-#if !(defined(ETH_P_802_2) || (defined(HAVE_DECL_ETH_P_802_2) && HAVE_DECL_ETH_P_802_2))
+#if defined(ETH_P_802_2) || (defined(HAVE_DECL_ETH_P_802_2) && HAVE_DECL_ETH_P_802_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_802_2) == (0x0004), "ETH_P_802_2 != 0x0004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_802_2 0x0004
#endif
-#if !(defined(ETH_P_SNAP) || (defined(HAVE_DECL_ETH_P_SNAP) && HAVE_DECL_ETH_P_SNAP))
+#if defined(ETH_P_SNAP) || (defined(HAVE_DECL_ETH_P_SNAP) && HAVE_DECL_ETH_P_SNAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_SNAP) == (0x0005), "ETH_P_SNAP != 0x0005");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_SNAP 0x0005
#endif
-#if !(defined(ETH_P_DDCMP) || (defined(HAVE_DECL_ETH_P_DDCMP) && HAVE_DECL_ETH_P_DDCMP))
+#if defined(ETH_P_DDCMP) || (defined(HAVE_DECL_ETH_P_DDCMP) && HAVE_DECL_ETH_P_DDCMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_DDCMP) == (0x0006), "ETH_P_DDCMP != 0x0006");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_DDCMP 0x0006
#endif
-#if !(defined(ETH_P_WAN_PPP) || (defined(HAVE_DECL_ETH_P_WAN_PPP) && HAVE_DECL_ETH_P_WAN_PPP))
+#if defined(ETH_P_WAN_PPP) || (defined(HAVE_DECL_ETH_P_WAN_PPP) && HAVE_DECL_ETH_P_WAN_PPP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_WAN_PPP) == (0x0007), "ETH_P_WAN_PPP != 0x0007");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_WAN_PPP 0x0007
#endif
-#if !(defined(ETH_P_PPP_MP) || (defined(HAVE_DECL_ETH_P_PPP_MP) && HAVE_DECL_ETH_P_PPP_MP))
+#if defined(ETH_P_PPP_MP) || (defined(HAVE_DECL_ETH_P_PPP_MP) && HAVE_DECL_ETH_P_PPP_MP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PPP_MP) == (0x0008), "ETH_P_PPP_MP != 0x0008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PPP_MP 0x0008
#endif
-#if !(defined(ETH_P_LOCALTALK) || (defined(HAVE_DECL_ETH_P_LOCALTALK) && HAVE_DECL_ETH_P_LOCALTALK))
+#if defined(ETH_P_LOCALTALK) || (defined(HAVE_DECL_ETH_P_LOCALTALK) && HAVE_DECL_ETH_P_LOCALTALK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_LOCALTALK) == (0x0009), "ETH_P_LOCALTALK != 0x0009");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_LOCALTALK 0x0009
#endif
-#if !(defined(ETH_P_CAN) || (defined(HAVE_DECL_ETH_P_CAN) && HAVE_DECL_ETH_P_CAN))
+#if defined(ETH_P_CAN) || (defined(HAVE_DECL_ETH_P_CAN) && HAVE_DECL_ETH_P_CAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_CAN) == (0x000C), "ETH_P_CAN != 0x000C");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_CAN 0x000C
#endif
-#if !(defined(ETH_P_CANFD) || (defined(HAVE_DECL_ETH_P_CANFD) && HAVE_DECL_ETH_P_CANFD))
+#if defined(ETH_P_CANFD) || (defined(HAVE_DECL_ETH_P_CANFD) && HAVE_DECL_ETH_P_CANFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_CANFD) == (0x000D), "ETH_P_CANFD != 0x000D");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_CANFD 0x000D
#endif
-#if !(defined(ETH_P_PPPTALK) || (defined(HAVE_DECL_ETH_P_PPPTALK) && HAVE_DECL_ETH_P_PPPTALK))
+#if defined(ETH_P_PPPTALK) || (defined(HAVE_DECL_ETH_P_PPPTALK) && HAVE_DECL_ETH_P_PPPTALK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PPPTALK) == (0x0010), "ETH_P_PPPTALK != 0x0010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PPPTALK 0x0010
#endif
-#if !(defined(ETH_P_TR_802_2) || (defined(HAVE_DECL_ETH_P_TR_802_2) && HAVE_DECL_ETH_P_TR_802_2))
+#if defined(ETH_P_TR_802_2) || (defined(HAVE_DECL_ETH_P_TR_802_2) && HAVE_DECL_ETH_P_TR_802_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_TR_802_2) == (0x0011), "ETH_P_TR_802_2 != 0x0011");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_TR_802_2 0x0011
#endif
-#if !(defined(ETH_P_MOBITEX) || (defined(HAVE_DECL_ETH_P_MOBITEX) && HAVE_DECL_ETH_P_MOBITEX))
+#if defined(ETH_P_MOBITEX) || (defined(HAVE_DECL_ETH_P_MOBITEX) && HAVE_DECL_ETH_P_MOBITEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_MOBITEX) == (0x0015), "ETH_P_MOBITEX != 0x0015");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_MOBITEX 0x0015
#endif
-#if !(defined(ETH_P_CONTROL) || (defined(HAVE_DECL_ETH_P_CONTROL) && HAVE_DECL_ETH_P_CONTROL))
+#if defined(ETH_P_CONTROL) || (defined(HAVE_DECL_ETH_P_CONTROL) && HAVE_DECL_ETH_P_CONTROL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_CONTROL) == (0x0016), "ETH_P_CONTROL != 0x0016");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_CONTROL 0x0016
#endif
-#if !(defined(ETH_P_IRDA) || (defined(HAVE_DECL_ETH_P_IRDA) && HAVE_DECL_ETH_P_IRDA))
+#if defined(ETH_P_IRDA) || (defined(HAVE_DECL_ETH_P_IRDA) && HAVE_DECL_ETH_P_IRDA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IRDA) == (0x0017), "ETH_P_IRDA != 0x0017");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IRDA 0x0017
#endif
-#if !(defined(ETH_P_ECONET) || (defined(HAVE_DECL_ETH_P_ECONET) && HAVE_DECL_ETH_P_ECONET))
+#if defined(ETH_P_ECONET) || (defined(HAVE_DECL_ETH_P_ECONET) && HAVE_DECL_ETH_P_ECONET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ECONET) == (0x0018), "ETH_P_ECONET != 0x0018");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ECONET 0x0018
#endif
-#if !(defined(ETH_P_HDLC) || (defined(HAVE_DECL_ETH_P_HDLC) && HAVE_DECL_ETH_P_HDLC))
+#if defined(ETH_P_HDLC) || (defined(HAVE_DECL_ETH_P_HDLC) && HAVE_DECL_ETH_P_HDLC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_HDLC) == (0x0019), "ETH_P_HDLC != 0x0019");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_HDLC 0x0019
#endif
-#if !(defined(ETH_P_ARCNET) || (defined(HAVE_DECL_ETH_P_ARCNET) && HAVE_DECL_ETH_P_ARCNET))
+#if defined(ETH_P_ARCNET) || (defined(HAVE_DECL_ETH_P_ARCNET) && HAVE_DECL_ETH_P_ARCNET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ARCNET) == (0x001A), "ETH_P_ARCNET != 0x001A");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ARCNET 0x001A
#endif
-#if !(defined(ETH_P_DSA) || (defined(HAVE_DECL_ETH_P_DSA) && HAVE_DECL_ETH_P_DSA))
+#if defined(ETH_P_DSA) || (defined(HAVE_DECL_ETH_P_DSA) && HAVE_DECL_ETH_P_DSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_DSA) == (0x001B), "ETH_P_DSA != 0x001B");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_DSA 0x001B
#endif
-#if !(defined(ETH_P_TRAILER) || (defined(HAVE_DECL_ETH_P_TRAILER) && HAVE_DECL_ETH_P_TRAILER))
+#if defined(ETH_P_TRAILER) || (defined(HAVE_DECL_ETH_P_TRAILER) && HAVE_DECL_ETH_P_TRAILER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_TRAILER) == (0x001C), "ETH_P_TRAILER != 0x001C");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_TRAILER 0x001C
#endif
-#if !(defined(ETH_P_LOOP) || (defined(HAVE_DECL_ETH_P_LOOP) && HAVE_DECL_ETH_P_LOOP))
+#if defined(ETH_P_LOOP) || (defined(HAVE_DECL_ETH_P_LOOP) && HAVE_DECL_ETH_P_LOOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_LOOP) == (0x0060), "ETH_P_LOOP != 0x0060");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_LOOP 0x0060
#endif
-#if !(defined(ETH_P_PHONET) || (defined(HAVE_DECL_ETH_P_PHONET) && HAVE_DECL_ETH_P_PHONET))
+#if defined(ETH_P_PHONET) || (defined(HAVE_DECL_ETH_P_PHONET) && HAVE_DECL_ETH_P_PHONET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PHONET) == (0x00F5), "ETH_P_PHONET != 0x00F5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PHONET 0x00F5
#endif
-#if !(defined(ETH_P_IEEE802154) || (defined(HAVE_DECL_ETH_P_IEEE802154) && HAVE_DECL_ETH_P_IEEE802154))
+#if defined(ETH_P_IEEE802154) || (defined(HAVE_DECL_ETH_P_IEEE802154) && HAVE_DECL_ETH_P_IEEE802154)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IEEE802154) == (0x00F6), "ETH_P_IEEE802154 != 0x00F6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IEEE802154 0x00F6
#endif
-#if !(defined(ETH_P_CAIF) || (defined(HAVE_DECL_ETH_P_CAIF) && HAVE_DECL_ETH_P_CAIF))
+#if defined(ETH_P_CAIF) || (defined(HAVE_DECL_ETH_P_CAIF) && HAVE_DECL_ETH_P_CAIF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_CAIF) == (0x00F7), "ETH_P_CAIF != 0x00F7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_CAIF 0x00F7
#endif
-#if !(defined(ETH_P_XDSA) || (defined(HAVE_DECL_ETH_P_XDSA) && HAVE_DECL_ETH_P_XDSA))
+#if defined(ETH_P_XDSA) || (defined(HAVE_DECL_ETH_P_XDSA) && HAVE_DECL_ETH_P_XDSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_XDSA) == (0x00F8), "ETH_P_XDSA != 0x00F8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_XDSA 0x00F8
#endif
-#if !(defined(ETH_P_MAP) || (defined(HAVE_DECL_ETH_P_MAP) && HAVE_DECL_ETH_P_MAP))
+#if defined(ETH_P_MAP) || (defined(HAVE_DECL_ETH_P_MAP) && HAVE_DECL_ETH_P_MAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_MAP) == (0x00F9), "ETH_P_MAP != 0x00F9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_MAP 0x00F9
#endif
-#if !(defined(ETH_P_PUP) || (defined(HAVE_DECL_ETH_P_PUP) && HAVE_DECL_ETH_P_PUP))
+#if defined(ETH_P_PUP) || (defined(HAVE_DECL_ETH_P_PUP) && HAVE_DECL_ETH_P_PUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PUP) == (0x0200), "ETH_P_PUP != 0x0200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PUP 0x0200
#endif
-#if !(defined(ETH_P_PUPAT) || (defined(HAVE_DECL_ETH_P_PUPAT) && HAVE_DECL_ETH_P_PUPAT))
+#if defined(ETH_P_PUPAT) || (defined(HAVE_DECL_ETH_P_PUPAT) && HAVE_DECL_ETH_P_PUPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PUPAT) == (0x0201), "ETH_P_PUPAT != 0x0201");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PUPAT 0x0201
#endif
-#if !(defined(ETH_P_802_3_MIN) || (defined(HAVE_DECL_ETH_P_802_3_MIN) && HAVE_DECL_ETH_P_802_3_MIN))
+#if defined(ETH_P_802_3_MIN) || (defined(HAVE_DECL_ETH_P_802_3_MIN) && HAVE_DECL_ETH_P_802_3_MIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_802_3_MIN) == (0x0600), "ETH_P_802_3_MIN != 0x0600");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_802_3_MIN 0x0600
#endif
-#if !(defined(ETH_P_IP) || (defined(HAVE_DECL_ETH_P_IP) && HAVE_DECL_ETH_P_IP))
+#if defined(ETH_P_IP) || (defined(HAVE_DECL_ETH_P_IP) && HAVE_DECL_ETH_P_IP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IP) == (0x0800), "ETH_P_IP != 0x0800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IP 0x0800
#endif
-#if !(defined(ETH_P_X25) || (defined(HAVE_DECL_ETH_P_X25) && HAVE_DECL_ETH_P_X25))
+#if defined(ETH_P_X25) || (defined(HAVE_DECL_ETH_P_X25) && HAVE_DECL_ETH_P_X25)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_X25) == (0x0805), "ETH_P_X25 != 0x0805");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_X25 0x0805
#endif
-#if !(defined(ETH_P_ARP) || (defined(HAVE_DECL_ETH_P_ARP) && HAVE_DECL_ETH_P_ARP))
+#if defined(ETH_P_ARP) || (defined(HAVE_DECL_ETH_P_ARP) && HAVE_DECL_ETH_P_ARP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ARP) == (0x0806), "ETH_P_ARP != 0x0806");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ARP 0x0806
#endif
-#if !(defined(ETH_P_BPQ) || (defined(HAVE_DECL_ETH_P_BPQ) && HAVE_DECL_ETH_P_BPQ))
+#if defined(ETH_P_BPQ) || (defined(HAVE_DECL_ETH_P_BPQ) && HAVE_DECL_ETH_P_BPQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_BPQ) == (0x08FF), "ETH_P_BPQ != 0x08FF");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_BPQ 0x08FF
#endif
-#if !(defined(ETH_P_IEEEPUP) || (defined(HAVE_DECL_ETH_P_IEEEPUP) && HAVE_DECL_ETH_P_IEEEPUP))
+#if defined(ETH_P_IEEEPUP) || (defined(HAVE_DECL_ETH_P_IEEEPUP) && HAVE_DECL_ETH_P_IEEEPUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IEEEPUP) == (0x0a00), "ETH_P_IEEEPUP != 0x0a00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IEEEPUP 0x0a00
#endif
-#if !(defined(ETH_P_IEEEPUPAT) || (defined(HAVE_DECL_ETH_P_IEEEPUPAT) && HAVE_DECL_ETH_P_IEEEPUPAT))
+#if defined(ETH_P_IEEEPUPAT) || (defined(HAVE_DECL_ETH_P_IEEEPUPAT) && HAVE_DECL_ETH_P_IEEEPUPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IEEEPUPAT) == (0x0a01), "ETH_P_IEEEPUPAT != 0x0a01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IEEEPUPAT 0x0a01
#endif
-#if !(defined(ETH_P_ERSPAN2) || (defined(HAVE_DECL_ETH_P_ERSPAN2) && HAVE_DECL_ETH_P_ERSPAN2))
+#if defined(ETH_P_ERSPAN2) || (defined(HAVE_DECL_ETH_P_ERSPAN2) && HAVE_DECL_ETH_P_ERSPAN2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ERSPAN2) == (0x22EB), "ETH_P_ERSPAN2 != 0x22EB");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ERSPAN2 0x22EB
#endif
-#if !(defined(ETH_P_TSN) || (defined(HAVE_DECL_ETH_P_TSN) && HAVE_DECL_ETH_P_TSN))
+#if defined(ETH_P_TSN) || (defined(HAVE_DECL_ETH_P_TSN) && HAVE_DECL_ETH_P_TSN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_TSN) == (0x22F0), "ETH_P_TSN != 0x22F0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_TSN 0x22F0
#endif
-#if !(defined(ETH_P_BATMAN) || (defined(HAVE_DECL_ETH_P_BATMAN) && HAVE_DECL_ETH_P_BATMAN))
+#if defined(ETH_P_BATMAN) || (defined(HAVE_DECL_ETH_P_BATMAN) && HAVE_DECL_ETH_P_BATMAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_BATMAN) == (0x4305), "ETH_P_BATMAN != 0x4305");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_BATMAN 0x4305
#endif
-#if !(defined(ETH_P_DEC) || (defined(HAVE_DECL_ETH_P_DEC) && HAVE_DECL_ETH_P_DEC))
+#if defined(ETH_P_DEC) || (defined(HAVE_DECL_ETH_P_DEC) && HAVE_DECL_ETH_P_DEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_DEC) == (0x6000), "ETH_P_DEC != 0x6000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_DEC 0x6000
#endif
-#if !(defined(ETH_P_DNA_DL) || (defined(HAVE_DECL_ETH_P_DNA_DL) && HAVE_DECL_ETH_P_DNA_DL))
+#if defined(ETH_P_DNA_DL) || (defined(HAVE_DECL_ETH_P_DNA_DL) && HAVE_DECL_ETH_P_DNA_DL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_DNA_DL) == (0x6001), "ETH_P_DNA_DL != 0x6001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_DNA_DL 0x6001
#endif
-#if !(defined(ETH_P_DNA_RC) || (defined(HAVE_DECL_ETH_P_DNA_RC) && HAVE_DECL_ETH_P_DNA_RC))
+#if defined(ETH_P_DNA_RC) || (defined(HAVE_DECL_ETH_P_DNA_RC) && HAVE_DECL_ETH_P_DNA_RC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_DNA_RC) == (0x6002), "ETH_P_DNA_RC != 0x6002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_DNA_RC 0x6002
#endif
-#if !(defined(ETH_P_DNA_RT) || (defined(HAVE_DECL_ETH_P_DNA_RT) && HAVE_DECL_ETH_P_DNA_RT))
+#if defined(ETH_P_DNA_RT) || (defined(HAVE_DECL_ETH_P_DNA_RT) && HAVE_DECL_ETH_P_DNA_RT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_DNA_RT) == (0x6003), "ETH_P_DNA_RT != 0x6003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_DNA_RT 0x6003
#endif
-#if !(defined(ETH_P_LAT) || (defined(HAVE_DECL_ETH_P_LAT) && HAVE_DECL_ETH_P_LAT))
+#if defined(ETH_P_LAT) || (defined(HAVE_DECL_ETH_P_LAT) && HAVE_DECL_ETH_P_LAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_LAT) == (0x6004), "ETH_P_LAT != 0x6004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_LAT 0x6004
#endif
-#if !(defined(ETH_P_DIAG) || (defined(HAVE_DECL_ETH_P_DIAG) && HAVE_DECL_ETH_P_DIAG))
+#if defined(ETH_P_DIAG) || (defined(HAVE_DECL_ETH_P_DIAG) && HAVE_DECL_ETH_P_DIAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_DIAG) == (0x6005), "ETH_P_DIAG != 0x6005");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_DIAG 0x6005
#endif
-#if !(defined(ETH_P_CUST) || (defined(HAVE_DECL_ETH_P_CUST) && HAVE_DECL_ETH_P_CUST))
+#if defined(ETH_P_CUST) || (defined(HAVE_DECL_ETH_P_CUST) && HAVE_DECL_ETH_P_CUST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_CUST) == (0x6006), "ETH_P_CUST != 0x6006");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_CUST 0x6006
#endif
-#if !(defined(ETH_P_SCA) || (defined(HAVE_DECL_ETH_P_SCA) && HAVE_DECL_ETH_P_SCA))
+#if defined(ETH_P_SCA) || (defined(HAVE_DECL_ETH_P_SCA) && HAVE_DECL_ETH_P_SCA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_SCA) == (0x6007), "ETH_P_SCA != 0x6007");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_SCA 0x6007
#endif
-#if !(defined(ETH_P_TEB) || (defined(HAVE_DECL_ETH_P_TEB) && HAVE_DECL_ETH_P_TEB))
+#if defined(ETH_P_TEB) || (defined(HAVE_DECL_ETH_P_TEB) && HAVE_DECL_ETH_P_TEB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_TEB) == (0x6558), "ETH_P_TEB != 0x6558");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_TEB 0x6558
#endif
-#if !(defined(ETH_P_RARP) || (defined(HAVE_DECL_ETH_P_RARP) && HAVE_DECL_ETH_P_RARP))
+#if defined(ETH_P_RARP) || (defined(HAVE_DECL_ETH_P_RARP) && HAVE_DECL_ETH_P_RARP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_RARP) == (0x8035), "ETH_P_RARP != 0x8035");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_RARP 0x8035
#endif
-#if !(defined(ETH_P_ATALK) || (defined(HAVE_DECL_ETH_P_ATALK) && HAVE_DECL_ETH_P_ATALK))
+#if defined(ETH_P_ATALK) || (defined(HAVE_DECL_ETH_P_ATALK) && HAVE_DECL_ETH_P_ATALK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ATALK) == (0x809B), "ETH_P_ATALK != 0x809B");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ATALK 0x809B
#endif
-#if !(defined(ETH_P_AARP) || (defined(HAVE_DECL_ETH_P_AARP) && HAVE_DECL_ETH_P_AARP))
+#if defined(ETH_P_AARP) || (defined(HAVE_DECL_ETH_P_AARP) && HAVE_DECL_ETH_P_AARP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_AARP) == (0x80F3), "ETH_P_AARP != 0x80F3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_AARP 0x80F3
#endif
-#if !(defined(ETH_P_8021Q) || (defined(HAVE_DECL_ETH_P_8021Q) && HAVE_DECL_ETH_P_8021Q))
+#if defined(ETH_P_8021Q) || (defined(HAVE_DECL_ETH_P_8021Q) && HAVE_DECL_ETH_P_8021Q)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_8021Q) == (0x8100), "ETH_P_8021Q != 0x8100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_8021Q 0x8100
#endif
-#if !(defined(ETH_P_IPX) || (defined(HAVE_DECL_ETH_P_IPX) && HAVE_DECL_ETH_P_IPX))
+#if defined(ETH_P_IPX) || (defined(HAVE_DECL_ETH_P_IPX) && HAVE_DECL_ETH_P_IPX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IPX) == (0x8137), "ETH_P_IPX != 0x8137");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IPX 0x8137
#endif
-#if !(defined(ETH_P_IPV6) || (defined(HAVE_DECL_ETH_P_IPV6) && HAVE_DECL_ETH_P_IPV6))
+#if defined(ETH_P_IPV6) || (defined(HAVE_DECL_ETH_P_IPV6) && HAVE_DECL_ETH_P_IPV6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IPV6) == (0x86DD), "ETH_P_IPV6 != 0x86DD");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IPV6 0x86DD
#endif
-#if !(defined(ETH_P_PAUSE) || (defined(HAVE_DECL_ETH_P_PAUSE) && HAVE_DECL_ETH_P_PAUSE))
+#if defined(ETH_P_PAUSE) || (defined(HAVE_DECL_ETH_P_PAUSE) && HAVE_DECL_ETH_P_PAUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PAUSE) == (0x8808), "ETH_P_PAUSE != 0x8808");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PAUSE 0x8808
#endif
-#if !(defined(ETH_P_SLOW) || (defined(HAVE_DECL_ETH_P_SLOW) && HAVE_DECL_ETH_P_SLOW))
+#if defined(ETH_P_SLOW) || (defined(HAVE_DECL_ETH_P_SLOW) && HAVE_DECL_ETH_P_SLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_SLOW) == (0x8809), "ETH_P_SLOW != 0x8809");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_SLOW 0x8809
#endif
-#if !(defined(ETH_P_WCCP) || (defined(HAVE_DECL_ETH_P_WCCP) && HAVE_DECL_ETH_P_WCCP))
+#if defined(ETH_P_WCCP) || (defined(HAVE_DECL_ETH_P_WCCP) && HAVE_DECL_ETH_P_WCCP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_WCCP) == (0x883E), "ETH_P_WCCP != 0x883E");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_WCCP 0x883E
#endif
-#if !(defined(ETH_P_MPLS_UC) || (defined(HAVE_DECL_ETH_P_MPLS_UC) && HAVE_DECL_ETH_P_MPLS_UC))
+#if defined(ETH_P_MPLS_UC) || (defined(HAVE_DECL_ETH_P_MPLS_UC) && HAVE_DECL_ETH_P_MPLS_UC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_MPLS_UC) == (0x8847), "ETH_P_MPLS_UC != 0x8847");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_MPLS_UC 0x8847
#endif
-#if !(defined(ETH_P_MPLS_MC) || (defined(HAVE_DECL_ETH_P_MPLS_MC) && HAVE_DECL_ETH_P_MPLS_MC))
+#if defined(ETH_P_MPLS_MC) || (defined(HAVE_DECL_ETH_P_MPLS_MC) && HAVE_DECL_ETH_P_MPLS_MC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_MPLS_MC) == (0x8848), "ETH_P_MPLS_MC != 0x8848");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_MPLS_MC 0x8848
#endif
-#if !(defined(ETH_P_ATMMPOA) || (defined(HAVE_DECL_ETH_P_ATMMPOA) && HAVE_DECL_ETH_P_ATMMPOA))
+#if defined(ETH_P_ATMMPOA) || (defined(HAVE_DECL_ETH_P_ATMMPOA) && HAVE_DECL_ETH_P_ATMMPOA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ATMMPOA) == (0x884c), "ETH_P_ATMMPOA != 0x884c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ATMMPOA 0x884c
#endif
-#if !(defined(ETH_P_PPP_DISC) || (defined(HAVE_DECL_ETH_P_PPP_DISC) && HAVE_DECL_ETH_P_PPP_DISC))
+#if defined(ETH_P_PPP_DISC) || (defined(HAVE_DECL_ETH_P_PPP_DISC) && HAVE_DECL_ETH_P_PPP_DISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PPP_DISC) == (0x8863), "ETH_P_PPP_DISC != 0x8863");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PPP_DISC 0x8863
#endif
-#if !(defined(ETH_P_PPP_SES) || (defined(HAVE_DECL_ETH_P_PPP_SES) && HAVE_DECL_ETH_P_PPP_SES))
+#if defined(ETH_P_PPP_SES) || (defined(HAVE_DECL_ETH_P_PPP_SES) && HAVE_DECL_ETH_P_PPP_SES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PPP_SES) == (0x8864), "ETH_P_PPP_SES != 0x8864");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PPP_SES 0x8864
#endif
-#if !(defined(ETH_P_LINK_CTL) || (defined(HAVE_DECL_ETH_P_LINK_CTL) && HAVE_DECL_ETH_P_LINK_CTL))
+#if defined(ETH_P_LINK_CTL) || (defined(HAVE_DECL_ETH_P_LINK_CTL) && HAVE_DECL_ETH_P_LINK_CTL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_LINK_CTL) == (0x886c), "ETH_P_LINK_CTL != 0x886c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_LINK_CTL 0x886c
#endif
-#if !(defined(ETH_P_ATMFATE) || (defined(HAVE_DECL_ETH_P_ATMFATE) && HAVE_DECL_ETH_P_ATMFATE))
+#if defined(ETH_P_ATMFATE) || (defined(HAVE_DECL_ETH_P_ATMFATE) && HAVE_DECL_ETH_P_ATMFATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ATMFATE) == (0x8884), "ETH_P_ATMFATE != 0x8884");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ATMFATE 0x8884
#endif
-#if !(defined(ETH_P_PAE) || (defined(HAVE_DECL_ETH_P_PAE) && HAVE_DECL_ETH_P_PAE))
+#if defined(ETH_P_PAE) || (defined(HAVE_DECL_ETH_P_PAE) && HAVE_DECL_ETH_P_PAE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PAE) == (0x888E), "ETH_P_PAE != 0x888E");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PAE 0x888E
#endif
-#if !(defined(ETH_P_AOE) || (defined(HAVE_DECL_ETH_P_AOE) && HAVE_DECL_ETH_P_AOE))
+#if defined(ETH_P_AOE) || (defined(HAVE_DECL_ETH_P_AOE) && HAVE_DECL_ETH_P_AOE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_AOE) == (0x88A2), "ETH_P_AOE != 0x88A2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_AOE 0x88A2
#endif
-#if !(defined(ETH_P_8021AD) || (defined(HAVE_DECL_ETH_P_8021AD) && HAVE_DECL_ETH_P_8021AD))
+#if defined(ETH_P_8021AD) || (defined(HAVE_DECL_ETH_P_8021AD) && HAVE_DECL_ETH_P_8021AD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_8021AD) == (0x88A8), "ETH_P_8021AD != 0x88A8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_8021AD 0x88A8
#endif
-#if !(defined(ETH_P_802_EX1) || (defined(HAVE_DECL_ETH_P_802_EX1) && HAVE_DECL_ETH_P_802_EX1))
+#if defined(ETH_P_802_EX1) || (defined(HAVE_DECL_ETH_P_802_EX1) && HAVE_DECL_ETH_P_802_EX1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_802_EX1) == (0x88B5), "ETH_P_802_EX1 != 0x88B5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_802_EX1 0x88B5
#endif
-#if !(defined(ETH_P_ERSPAN) || (defined(HAVE_DECL_ETH_P_ERSPAN) && HAVE_DECL_ETH_P_ERSPAN))
+#if defined(ETH_P_ERSPAN) || (defined(HAVE_DECL_ETH_P_ERSPAN) && HAVE_DECL_ETH_P_ERSPAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_ERSPAN) == (0x88BE), "ETH_P_ERSPAN != 0x88BE");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_ERSPAN 0x88BE
#endif
-#if !(defined(ETH_P_TIPC) || (defined(HAVE_DECL_ETH_P_TIPC) && HAVE_DECL_ETH_P_TIPC))
+#if defined(ETH_P_PREAUTH) || (defined(HAVE_DECL_ETH_P_PREAUTH) && HAVE_DECL_ETH_P_PREAUTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PREAUTH) == (0x88C7), "ETH_P_PREAUTH != 0x88C7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ETH_P_PREAUTH 0x88C7
+#endif
+#if defined(ETH_P_TIPC) || (defined(HAVE_DECL_ETH_P_TIPC) && HAVE_DECL_ETH_P_TIPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_TIPC) == (0x88CA), "ETH_P_TIPC != 0x88CA");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_TIPC 0x88CA
#endif
-#if !(defined(ETH_P_MACSEC) || (defined(HAVE_DECL_ETH_P_MACSEC) && HAVE_DECL_ETH_P_MACSEC))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_MACSEC 0x88E5
#endif
-#if !(defined(ETH_P_8021AH) || (defined(HAVE_DECL_ETH_P_8021AH) && HAVE_DECL_ETH_P_8021AH))
+#if defined(ETH_P_8021AH) || (defined(HAVE_DECL_ETH_P_8021AH) && HAVE_DECL_ETH_P_8021AH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_8021AH) == (0x88E7), "ETH_P_8021AH != 0x88E7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_8021AH 0x88E7
#endif
-#if !(defined(ETH_P_MVRP) || (defined(HAVE_DECL_ETH_P_MVRP) && HAVE_DECL_ETH_P_MVRP))
+#if defined(ETH_P_MVRP) || (defined(HAVE_DECL_ETH_P_MVRP) && HAVE_DECL_ETH_P_MVRP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_MVRP) == (0x88F5), "ETH_P_MVRP != 0x88F5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_MVRP 0x88F5
#endif
-#if !(defined(ETH_P_1588) || (defined(HAVE_DECL_ETH_P_1588) && HAVE_DECL_ETH_P_1588))
+#if defined(ETH_P_1588) || (defined(HAVE_DECL_ETH_P_1588) && HAVE_DECL_ETH_P_1588)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_1588) == (0x88F7), "ETH_P_1588 != 0x88F7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_1588 0x88F7
#endif
-#if !(defined(ETH_P_NCSI) || (defined(HAVE_DECL_ETH_P_NCSI) && HAVE_DECL_ETH_P_NCSI))
+#if defined(ETH_P_NCSI) || (defined(HAVE_DECL_ETH_P_NCSI) && HAVE_DECL_ETH_P_NCSI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_NCSI) == (0x88F8), "ETH_P_NCSI != 0x88F8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_NCSI 0x88F8
#endif
-#if !(defined(ETH_P_PRP) || (defined(HAVE_DECL_ETH_P_PRP) && HAVE_DECL_ETH_P_PRP))
+#if defined(ETH_P_PRP) || (defined(HAVE_DECL_ETH_P_PRP) && HAVE_DECL_ETH_P_PRP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_PRP) == (0x88FB), "ETH_P_PRP != 0x88FB");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_PRP 0x88FB
#endif
-#if !(defined(ETH_P_FCOE) || (defined(HAVE_DECL_ETH_P_FCOE) && HAVE_DECL_ETH_P_FCOE))
+#if defined(ETH_P_FCOE) || (defined(HAVE_DECL_ETH_P_FCOE) && HAVE_DECL_ETH_P_FCOE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_FCOE) == (0x8906), "ETH_P_FCOE != 0x8906");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_FCOE 0x8906
#endif
-#if !(defined(ETH_P_TDLS) || (defined(HAVE_DECL_ETH_P_TDLS) && HAVE_DECL_ETH_P_TDLS))
+#if defined(ETH_P_TDLS) || (defined(HAVE_DECL_ETH_P_TDLS) && HAVE_DECL_ETH_P_TDLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_TDLS) == (0x890D), "ETH_P_TDLS != 0x890D");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_TDLS 0x890D
#endif
-#if !(defined(ETH_P_FIP) || (defined(HAVE_DECL_ETH_P_FIP) && HAVE_DECL_ETH_P_FIP))
+#if defined(ETH_P_FIP) || (defined(HAVE_DECL_ETH_P_FIP) && HAVE_DECL_ETH_P_FIP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_FIP) == (0x8914), "ETH_P_FIP != 0x8914");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_FIP 0x8914
#endif
-#if !(defined(ETH_P_IBOE) || (defined(HAVE_DECL_ETH_P_IBOE) && HAVE_DECL_ETH_P_IBOE))
+#if defined(ETH_P_IBOE) || (defined(HAVE_DECL_ETH_P_IBOE) && HAVE_DECL_ETH_P_IBOE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_IBOE) == (0x8915), "ETH_P_IBOE != 0x8915");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IBOE 0x8915
#endif
-#if !(defined(ETH_P_80221) || (defined(HAVE_DECL_ETH_P_80221) && HAVE_DECL_ETH_P_80221))
+#if defined(ETH_P_80221) || (defined(HAVE_DECL_ETH_P_80221) && HAVE_DECL_ETH_P_80221)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_80221) == (0x8917), "ETH_P_80221 != 0x8917");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_80221 0x8917
#endif
-#if !(defined(ETH_P_HSR) || (defined(HAVE_DECL_ETH_P_HSR) && HAVE_DECL_ETH_P_HSR))
+#if defined(ETH_P_HSR) || (defined(HAVE_DECL_ETH_P_HSR) && HAVE_DECL_ETH_P_HSR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_HSR) == (0x892F), "ETH_P_HSR != 0x892F");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_HSR 0x892F
#endif
-#if !(defined(ETH_P_NSH) || (defined(HAVE_DECL_ETH_P_NSH) && HAVE_DECL_ETH_P_NSH))
+#if defined(ETH_P_NSH) || (defined(HAVE_DECL_ETH_P_NSH) && HAVE_DECL_ETH_P_NSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_NSH) == (0x894F), "ETH_P_NSH != 0x894F");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_NSH 0x894F
#endif
-#if !(defined(ETH_P_LOOPBACK) || (defined(HAVE_DECL_ETH_P_LOOPBACK) && HAVE_DECL_ETH_P_LOOPBACK))
+#if defined(ETH_P_LOOPBACK) || (defined(HAVE_DECL_ETH_P_LOOPBACK) && HAVE_DECL_ETH_P_LOOPBACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_LOOPBACK) == (0x9000), "ETH_P_LOOPBACK != 0x9000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_LOOPBACK 0x9000
#endif
-#if !(defined(ETH_P_QINQ1) || (defined(HAVE_DECL_ETH_P_QINQ1) && HAVE_DECL_ETH_P_QINQ1))
+#if defined(ETH_P_QINQ1) || (defined(HAVE_DECL_ETH_P_QINQ1) && HAVE_DECL_ETH_P_QINQ1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_QINQ1) == (0x9100), "ETH_P_QINQ1 != 0x9100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_QINQ1 0x9100
#endif
-#if !(defined(ETH_P_QINQ2) || (defined(HAVE_DECL_ETH_P_QINQ2) && HAVE_DECL_ETH_P_QINQ2))
+#if defined(ETH_P_QINQ2) || (defined(HAVE_DECL_ETH_P_QINQ2) && HAVE_DECL_ETH_P_QINQ2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_QINQ2) == (0x9200), "ETH_P_QINQ2 != 0x9200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_QINQ2 0x9200
#endif
-#if !(defined(ETH_P_QINQ3) || (defined(HAVE_DECL_ETH_P_QINQ3) && HAVE_DECL_ETH_P_QINQ3))
+#if defined(ETH_P_QINQ3) || (defined(HAVE_DECL_ETH_P_QINQ3) && HAVE_DECL_ETH_P_QINQ3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_QINQ3) == (0x9300), "ETH_P_QINQ3 != 0x9300");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_QINQ3 0x9300
#endif
-#if !(defined(ETH_P_EDSA) || (defined(HAVE_DECL_ETH_P_EDSA) && HAVE_DECL_ETH_P_EDSA))
+#if defined(ETH_P_EDSA) || (defined(HAVE_DECL_ETH_P_EDSA) && HAVE_DECL_ETH_P_EDSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_EDSA) == (0xDADA), "ETH_P_EDSA != 0xDADA");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_EDSA 0xDADA
#endif
-#if !(defined(ETH_P_IFE) || (defined(HAVE_DECL_ETH_P_IFE) && HAVE_DECL_ETH_P_IFE))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_IFE 0xED3E
#endif
-#if !(defined(ETH_P_AF_IUCV) || (defined(HAVE_DECL_ETH_P_AF_IUCV) && HAVE_DECL_ETH_P_AF_IUCV))
+#if defined(ETH_P_AF_IUCV) || (defined(HAVE_DECL_ETH_P_AF_IUCV) && HAVE_DECL_ETH_P_AF_IUCV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ETH_P_AF_IUCV) == (0xFBFB), "ETH_P_AF_IUCV != 0xFBFB");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ETH_P_AF_IUCV 0xFBFB
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat ethernet_protocols[] = {
@@ -343,6 +716,7 @@
XLAT(ETH_P_8021AD),
XLAT(ETH_P_802_EX1),
XLAT(ETH_P_ERSPAN),
+ XLAT(ETH_P_PREAUTH),
XLAT(ETH_P_TIPC),
XLAT(ETH_P_MACSEC),
XLAT(ETH_P_8021AH),
@@ -367,4 +741,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ethernet_protocols.in b/xlat/ethernet_protocols.in
index 1e30f77..80c52a9 100644
--- a/xlat/ethernet_protocols.in
+++ b/xlat/ethernet_protocols.in
@@ -68,6 +68,7 @@
ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */
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_MACSEC 0x88E5 /* 802.1ae MACsec */
ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
diff --git a/xlat/evdev_abs.h b/xlat/evdev_abs.h
index 3edd1f3..5aa92ef 100644
--- a/xlat/evdev_abs.h
+++ b/xlat/evdev_abs.h
@@ -1,132 +1,345 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_abs.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-const struct xlat evdev_abs[] = {
#if defined(ABS_X) || (defined(HAVE_DECL_ABS_X) && HAVE_DECL_ABS_X)
- XLAT(ABS_X),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_X) == (0x00), "ABS_X != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_X 0x00
#endif
#if defined(ABS_Y) || (defined(HAVE_DECL_ABS_Y) && HAVE_DECL_ABS_Y)
- XLAT(ABS_Y),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_Y) == (0x01), "ABS_Y != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_Y 0x01
#endif
#if defined(ABS_Z) || (defined(HAVE_DECL_ABS_Z) && HAVE_DECL_ABS_Z)
- XLAT(ABS_Z),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_Z) == (0x02), "ABS_Z != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_Z 0x02
#endif
#if defined(ABS_RX) || (defined(HAVE_DECL_ABS_RX) && HAVE_DECL_ABS_RX)
- XLAT(ABS_RX),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_RX) == (0x03), "ABS_RX != 0x03");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_RX 0x03
#endif
#if defined(ABS_RY) || (defined(HAVE_DECL_ABS_RY) && HAVE_DECL_ABS_RY)
- XLAT(ABS_RY),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_RY) == (0x04), "ABS_RY != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_RY 0x04
#endif
#if defined(ABS_RZ) || (defined(HAVE_DECL_ABS_RZ) && HAVE_DECL_ABS_RZ)
- XLAT(ABS_RZ),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_RZ) == (0x05), "ABS_RZ != 0x05");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_RZ 0x05
#endif
#if defined(ABS_THROTTLE) || (defined(HAVE_DECL_ABS_THROTTLE) && HAVE_DECL_ABS_THROTTLE)
- XLAT(ABS_THROTTLE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_THROTTLE) == (0x06), "ABS_THROTTLE != 0x06");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_THROTTLE 0x06
#endif
#if defined(ABS_RUDDER) || (defined(HAVE_DECL_ABS_RUDDER) && HAVE_DECL_ABS_RUDDER)
- XLAT(ABS_RUDDER),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_RUDDER) == (0x07), "ABS_RUDDER != 0x07");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_RUDDER 0x07
#endif
#if defined(ABS_WHEEL) || (defined(HAVE_DECL_ABS_WHEEL) && HAVE_DECL_ABS_WHEEL)
- XLAT(ABS_WHEEL),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_WHEEL) == (0x08), "ABS_WHEEL != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_WHEEL 0x08
#endif
#if defined(ABS_GAS) || (defined(HAVE_DECL_ABS_GAS) && HAVE_DECL_ABS_GAS)
- XLAT(ABS_GAS),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_GAS) == (0x09), "ABS_GAS != 0x09");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_GAS 0x09
#endif
#if defined(ABS_BRAKE) || (defined(HAVE_DECL_ABS_BRAKE) && HAVE_DECL_ABS_BRAKE)
- XLAT(ABS_BRAKE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_BRAKE) == (0x0a), "ABS_BRAKE != 0x0a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_BRAKE 0x0a
#endif
#if defined(ABS_HAT0X) || (defined(HAVE_DECL_ABS_HAT0X) && HAVE_DECL_ABS_HAT0X)
- XLAT(ABS_HAT0X),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT0X) == (0x10), "ABS_HAT0X != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT0X 0x10
#endif
#if defined(ABS_HAT0Y) || (defined(HAVE_DECL_ABS_HAT0Y) && HAVE_DECL_ABS_HAT0Y)
- XLAT(ABS_HAT0Y),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT0Y) == (0x11), "ABS_HAT0Y != 0x11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT0Y 0x11
#endif
#if defined(ABS_HAT1X) || (defined(HAVE_DECL_ABS_HAT1X) && HAVE_DECL_ABS_HAT1X)
- XLAT(ABS_HAT1X),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT1X) == (0x12), "ABS_HAT1X != 0x12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT1X 0x12
#endif
#if defined(ABS_HAT1Y) || (defined(HAVE_DECL_ABS_HAT1Y) && HAVE_DECL_ABS_HAT1Y)
- XLAT(ABS_HAT1Y),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT1Y) == (0x13), "ABS_HAT1Y != 0x13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT1Y 0x13
#endif
#if defined(ABS_HAT2X) || (defined(HAVE_DECL_ABS_HAT2X) && HAVE_DECL_ABS_HAT2X)
- XLAT(ABS_HAT2X),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT2X) == (0x14), "ABS_HAT2X != 0x14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT2X 0x14
#endif
#if defined(ABS_HAT2Y) || (defined(HAVE_DECL_ABS_HAT2Y) && HAVE_DECL_ABS_HAT2Y)
- XLAT(ABS_HAT2Y),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT2Y) == (0x15), "ABS_HAT2Y != 0x15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT2Y 0x15
#endif
#if defined(ABS_HAT3X) || (defined(HAVE_DECL_ABS_HAT3X) && HAVE_DECL_ABS_HAT3X)
- XLAT(ABS_HAT3X),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT3X) == (0x16), "ABS_HAT3X != 0x16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT3X 0x16
#endif
#if defined(ABS_HAT3Y) || (defined(HAVE_DECL_ABS_HAT3Y) && HAVE_DECL_ABS_HAT3Y)
- XLAT(ABS_HAT3Y),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_HAT3Y) == (0x17), "ABS_HAT3Y != 0x17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_HAT3Y 0x17
#endif
#if defined(ABS_PRESSURE) || (defined(HAVE_DECL_ABS_PRESSURE) && HAVE_DECL_ABS_PRESSURE)
- XLAT(ABS_PRESSURE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_PRESSURE) == (0x18), "ABS_PRESSURE != 0x18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_PRESSURE 0x18
#endif
#if defined(ABS_DISTANCE) || (defined(HAVE_DECL_ABS_DISTANCE) && HAVE_DECL_ABS_DISTANCE)
- XLAT(ABS_DISTANCE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_DISTANCE) == (0x19), "ABS_DISTANCE != 0x19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_DISTANCE 0x19
#endif
#if defined(ABS_TILT_X) || (defined(HAVE_DECL_ABS_TILT_X) && HAVE_DECL_ABS_TILT_X)
- XLAT(ABS_TILT_X),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_TILT_X) == (0x1a), "ABS_TILT_X != 0x1a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_TILT_X 0x1a
#endif
#if defined(ABS_TILT_Y) || (defined(HAVE_DECL_ABS_TILT_Y) && HAVE_DECL_ABS_TILT_Y)
- XLAT(ABS_TILT_Y),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_TILT_Y) == (0x1b), "ABS_TILT_Y != 0x1b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_TILT_Y 0x1b
#endif
#if defined(ABS_TOOL_WIDTH) || (defined(HAVE_DECL_ABS_TOOL_WIDTH) && HAVE_DECL_ABS_TOOL_WIDTH)
- XLAT(ABS_TOOL_WIDTH),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_TOOL_WIDTH) == (0x1c), "ABS_TOOL_WIDTH != 0x1c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_TOOL_WIDTH 0x1c
#endif
#if defined(ABS_VOLUME) || (defined(HAVE_DECL_ABS_VOLUME) && HAVE_DECL_ABS_VOLUME)
- XLAT(ABS_VOLUME),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_VOLUME) == (0x20), "ABS_VOLUME != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_VOLUME 0x20
#endif
#if defined(ABS_MISC) || (defined(HAVE_DECL_ABS_MISC) && HAVE_DECL_ABS_MISC)
- XLAT(ABS_MISC),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ABS_MISC) == (0x28), "ABS_MISC != 0x28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ABS_MISC 0x28
#endif
#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
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
+
+const struct xlat evdev_abs[] = {
+ [ABS_X] = XLAT(ABS_X),
+ [ABS_Y] = XLAT(ABS_Y),
+ [ABS_Z] = XLAT(ABS_Z),
+ [ABS_RX] = XLAT(ABS_RX),
+ [ABS_RY] = XLAT(ABS_RY),
+ [ABS_RZ] = XLAT(ABS_RZ),
+ [ABS_THROTTLE] = XLAT(ABS_THROTTLE),
+ [ABS_RUDDER] = XLAT(ABS_RUDDER),
+ [ABS_WHEEL] = XLAT(ABS_WHEEL),
+ [ABS_GAS] = XLAT(ABS_GAS),
+ [ABS_BRAKE] = XLAT(ABS_BRAKE),
+ [ABS_HAT0X] = XLAT(ABS_HAT0X),
+ [ABS_HAT0Y] = XLAT(ABS_HAT0Y),
+ [ABS_HAT1X] = XLAT(ABS_HAT1X),
+ [ABS_HAT1Y] = XLAT(ABS_HAT1Y),
+ [ABS_HAT2X] = XLAT(ABS_HAT2X),
+ [ABS_HAT2Y] = XLAT(ABS_HAT2Y),
+ [ABS_HAT3X] = XLAT(ABS_HAT3X),
+ [ABS_HAT3Y] = XLAT(ABS_HAT3Y),
+ [ABS_PRESSURE] = XLAT(ABS_PRESSURE),
+ [ABS_DISTANCE] = XLAT(ABS_DISTANCE),
+ [ABS_TILT_X] = XLAT(ABS_TILT_X),
+ [ABS_TILT_Y] = XLAT(ABS_TILT_Y),
+ [ABS_TOOL_WIDTH] = XLAT(ABS_TOOL_WIDTH),
+ [ABS_VOLUME] = XLAT(ABS_VOLUME),
+ [ABS_MISC] = XLAT(ABS_MISC),
+ [ABS_MT_SLOT] = XLAT(ABS_MT_SLOT),
+ [ABS_MT_TOUCH_MAJOR] = XLAT(ABS_MT_TOUCH_MAJOR),
+ [ABS_MT_TOUCH_MINOR] = XLAT(ABS_MT_TOUCH_MINOR),
+ [ABS_MT_WIDTH_MAJOR] = XLAT(ABS_MT_WIDTH_MAJOR),
+ [ABS_MT_WIDTH_MINOR] = XLAT(ABS_MT_WIDTH_MINOR),
+ [ABS_MT_ORIENTATION] = XLAT(ABS_MT_ORIENTATION),
+ [ABS_MT_POSITION_X] = XLAT(ABS_MT_POSITION_X),
+ [ABS_MT_POSITION_Y] = XLAT(ABS_MT_POSITION_Y),
+ [ABS_MT_TOOL_TYPE] = XLAT(ABS_MT_TOOL_TYPE),
+ [ABS_MT_BLOB_ID] = XLAT(ABS_MT_BLOB_ID),
+ [ABS_MT_TRACKING_ID] = XLAT(ABS_MT_TRACKING_ID),
+ [ABS_MT_PRESSURE] = XLAT(ABS_MT_PRESSURE),
+ [ABS_MT_DISTANCE] = XLAT(ABS_MT_DISTANCE),
+ [ABS_MT_TOOL_X] = XLAT(ABS_MT_TOOL_X),
+ [ABS_MT_TOOL_Y] = XLAT(ABS_MT_TOOL_Y),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_abs.in b/xlat/evdev_abs.in
index ec8c2f4..d65b846 100644
--- a/xlat/evdev_abs.in
+++ b/xlat/evdev_abs.in
@@ -1,41 +1,42 @@
-ABS_X
-ABS_Y
-ABS_Z
-ABS_RX
-ABS_RY
-ABS_RZ
-ABS_THROTTLE
-ABS_RUDDER
-ABS_WHEEL
-ABS_GAS
-ABS_BRAKE
-ABS_HAT0X
-ABS_HAT0Y
-ABS_HAT1X
-ABS_HAT1Y
-ABS_HAT2X
-ABS_HAT2Y
-ABS_HAT3X
-ABS_HAT3Y
-ABS_PRESSURE
-ABS_DISTANCE
-ABS_TILT_X
-ABS_TILT_Y
-ABS_TOOL_WIDTH
-ABS_VOLUME
-ABS_MISC
-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
+#value_indexed
+ABS_X 0x00
+ABS_Y 0x01
+ABS_Z 0x02
+ABS_RX 0x03
+ABS_RY 0x04
+ABS_RZ 0x05
+ABS_THROTTLE 0x06
+ABS_RUDDER 0x07
+ABS_WHEEL 0x08
+ABS_GAS 0x09
+ABS_BRAKE 0x0a
+ABS_HAT0X 0x10
+ABS_HAT0Y 0x11
+ABS_HAT1X 0x12
+ABS_HAT1Y 0x13
+ABS_HAT2X 0x14
+ABS_HAT2Y 0x15
+ABS_HAT3X 0x16
+ABS_HAT3Y 0x17
+ABS_PRESSURE 0x18
+ABS_DISTANCE 0x19
+ABS_TILT_X 0x1a
+ABS_TILT_Y 0x1b
+ABS_TOOL_WIDTH 0x1c
+ABS_VOLUME 0x20
+ABS_MISC 0x28
+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_autorepeat.h b/xlat/evdev_autorepeat.h
index d06a02b..c6edd50 100644
--- a/xlat/evdev_autorepeat.h
+++ b/xlat/evdev_autorepeat.h
@@ -1,20 +1,38 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_autorepeat.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_autorepeat in mpers mode
-
+#if defined(REP_DELAY) || (defined(HAVE_DECL_REP_DELAY) && HAVE_DECL_REP_DELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REP_DELAY) == (0x00), "REP_DELAY != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define REP_DELAY 0x00
+#endif
+#if defined(REP_PERIOD) || (defined(HAVE_DECL_REP_PERIOD) && HAVE_DECL_REP_PERIOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REP_PERIOD) == (0x01), "REP_PERIOD != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REP_PERIOD 0x01
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_autorepeat in mpers mode
+
+# else
static
const struct xlat evdev_autorepeat[] = {
-#if defined(REP_DELAY) || (defined(HAVE_DECL_REP_DELAY) && HAVE_DECL_REP_DELAY)
- XLAT(REP_DELAY),
-#endif
-#if defined(REP_PERIOD) || (defined(HAVE_DECL_REP_PERIOD) && HAVE_DECL_REP_PERIOD)
- XLAT(REP_PERIOD),
-#endif
+ [REP_DELAY] = XLAT(REP_DELAY),
+ [REP_PERIOD] = XLAT(REP_PERIOD),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_autorepeat.in b/xlat/evdev_autorepeat.in
index ac8b8fb..7ab7e2e 100644
--- a/xlat/evdev_autorepeat.in
+++ b/xlat/evdev_autorepeat.in
@@ -1,2 +1,3 @@
-REP_DELAY
-REP_PERIOD
+#value_indexed
+REP_DELAY 0x00
+REP_PERIOD 0x01
diff --git a/xlat/evdev_ev.h b/xlat/evdev_ev.h
index 1d49445..30adf93 100644
--- a/xlat/evdev_ev.h
+++ b/xlat/evdev_ev.h
@@ -1,50 +1,118 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_ev.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_ev in mpers mode
-
+#if defined(EV_SYN) || (defined(HAVE_DECL_EV_SYN) && HAVE_DECL_EV_SYN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_SYN) == (0x00), "EV_SYN != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define EV_SYN 0x00
+#endif
+#if defined(EV_KEY) || (defined(HAVE_DECL_EV_KEY) && HAVE_DECL_EV_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_KEY) == (0x01), "EV_KEY != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_KEY 0x01
+#endif
+#if defined(EV_REL) || (defined(HAVE_DECL_EV_REL) && HAVE_DECL_EV_REL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_REL) == (0x02), "EV_REL != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_REL 0x02
+#endif
+#if defined(EV_ABS) || (defined(HAVE_DECL_EV_ABS) && HAVE_DECL_EV_ABS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_ABS) == (0x03), "EV_ABS != 0x03");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_ABS 0x03
+#endif
+#if defined(EV_MSC) || (defined(HAVE_DECL_EV_MSC) && HAVE_DECL_EV_MSC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_MSC) == (0x04), "EV_MSC != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_MSC 0x04
+#endif
+#if defined(EV_SW) || (defined(HAVE_DECL_EV_SW) && HAVE_DECL_EV_SW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_SW) == (0x05), "EV_SW != 0x05");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_SW 0x05
+#endif
+#if defined(EV_LED) || (defined(HAVE_DECL_EV_LED) && HAVE_DECL_EV_LED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_LED) == (0x11), "EV_LED != 0x11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_LED 0x11
+#endif
+#if defined(EV_SND) || (defined(HAVE_DECL_EV_SND) && HAVE_DECL_EV_SND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_SND) == (0x12), "EV_SND != 0x12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_SND 0x12
+#endif
+#if defined(EV_REP) || (defined(HAVE_DECL_EV_REP) && HAVE_DECL_EV_REP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_REP) == (0x14), "EV_REP != 0x14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_REP 0x14
+#endif
+#if defined(EV_FF) || (defined(HAVE_DECL_EV_FF) && HAVE_DECL_EV_FF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_FF) == (0x15), "EV_FF != 0x15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_FF 0x15
+#endif
+#if defined(EV_PWR) || (defined(HAVE_DECL_EV_PWR) && HAVE_DECL_EV_PWR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_PWR) == (0x16), "EV_PWR != 0x16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_PWR 0x16
+#endif
+#if defined(EV_FF_STATUS) || (defined(HAVE_DECL_EV_FF_STATUS) && HAVE_DECL_EV_FF_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EV_FF_STATUS) == (0x17), "EV_FF_STATUS != 0x17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define EV_FF_STATUS 0x17
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_ev in mpers mode
+
+# else
static
const struct xlat evdev_ev[] = {
-#if defined(EV_SYN) || (defined(HAVE_DECL_EV_SYN) && HAVE_DECL_EV_SYN)
- XLAT(EV_SYN),
-#endif
-#if defined(EV_KEY) || (defined(HAVE_DECL_EV_KEY) && HAVE_DECL_EV_KEY)
- XLAT(EV_KEY),
-#endif
-#if defined(EV_REL) || (defined(HAVE_DECL_EV_REL) && HAVE_DECL_EV_REL)
- XLAT(EV_REL),
-#endif
-#if defined(EV_ABS) || (defined(HAVE_DECL_EV_ABS) && HAVE_DECL_EV_ABS)
- XLAT(EV_ABS),
-#endif
-#if defined(EV_MSC) || (defined(HAVE_DECL_EV_MSC) && HAVE_DECL_EV_MSC)
- XLAT(EV_MSC),
-#endif
-#if defined(EV_SW) || (defined(HAVE_DECL_EV_SW) && HAVE_DECL_EV_SW)
- XLAT(EV_SW),
-#endif
-#if defined(EV_LED) || (defined(HAVE_DECL_EV_LED) && HAVE_DECL_EV_LED)
- XLAT(EV_LED),
-#endif
-#if defined(EV_SND) || (defined(HAVE_DECL_EV_SND) && HAVE_DECL_EV_SND)
- XLAT(EV_SND),
-#endif
-#if defined(EV_REP) || (defined(HAVE_DECL_EV_REP) && HAVE_DECL_EV_REP)
- XLAT(EV_REP),
-#endif
-#if defined(EV_FF) || (defined(HAVE_DECL_EV_FF) && HAVE_DECL_EV_FF)
- XLAT(EV_FF),
-#endif
-#if defined(EV_PWR) || (defined(HAVE_DECL_EV_PWR) && HAVE_DECL_EV_PWR)
- XLAT(EV_PWR),
-#endif
-#if defined(EV_FF_STATUS) || (defined(HAVE_DECL_EV_FF_STATUS) && HAVE_DECL_EV_FF_STATUS)
- XLAT(EV_FF_STATUS),
-#endif
+ XLAT(EV_SYN),
+ XLAT(EV_KEY),
+ XLAT(EV_REL),
+ XLAT(EV_ABS),
+ XLAT(EV_MSC),
+ XLAT(EV_SW),
+ XLAT(EV_LED),
+ XLAT(EV_SND),
+ XLAT(EV_REP),
+ XLAT(EV_FF),
+ XLAT(EV_PWR),
+ XLAT(EV_FF_STATUS),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_ev.in b/xlat/evdev_ev.in
index 0974b59..4d81952 100644
--- a/xlat/evdev_ev.in
+++ b/xlat/evdev_ev.in
@@ -1,12 +1,12 @@
-EV_SYN
-EV_KEY
-EV_REL
-EV_ABS
-EV_MSC
-EV_SW
-EV_LED
-EV_SND
-EV_REP
-EV_FF
-EV_PWR
-EV_FF_STATUS
+EV_SYN 0x00
+EV_KEY 0x01
+EV_REL 0x02
+EV_ABS 0x03
+EV_MSC 0x04
+EV_SW 0x05
+EV_LED 0x11
+EV_SND 0x12
+EV_REP 0x14
+EV_FF 0x15
+EV_PWR 0x16
+EV_FF_STATUS 0x17
diff --git a/xlat/evdev_ff_status.h b/xlat/evdev_ff_status.h
index 107bb1a..947d545 100644
--- a/xlat/evdev_ff_status.h
+++ b/xlat/evdev_ff_status.h
@@ -1,20 +1,38 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_ff_status.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_ff_status in mpers mode
-
+#if defined(FF_STATUS_STOPPED) || (defined(HAVE_DECL_FF_STATUS_STOPPED) && HAVE_DECL_FF_STATUS_STOPPED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_STATUS_STOPPED) == (0x00), "FF_STATUS_STOPPED != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define FF_STATUS_STOPPED 0x00
+#endif
+#if defined(FF_STATUS_PLAYING) || (defined(HAVE_DECL_FF_STATUS_PLAYING) && HAVE_DECL_FF_STATUS_PLAYING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_STATUS_PLAYING) == (0x01), "FF_STATUS_PLAYING != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_STATUS_PLAYING 0x01
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_ff_status in mpers mode
+
+# else
static
const struct xlat evdev_ff_status[] = {
-#if defined(FF_STATUS_STOPPED) || (defined(HAVE_DECL_FF_STATUS_STOPPED) && HAVE_DECL_FF_STATUS_STOPPED)
- XLAT(FF_STATUS_STOPPED),
-#endif
-#if defined(FF_STATUS_PLAYING) || (defined(HAVE_DECL_FF_STATUS_PLAYING) && HAVE_DECL_FF_STATUS_PLAYING)
- XLAT(FF_STATUS_PLAYING),
-#endif
+ [FF_STATUS_STOPPED] = XLAT(FF_STATUS_STOPPED),
+ [FF_STATUS_PLAYING] = XLAT(FF_STATUS_PLAYING),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_ff_status.in b/xlat/evdev_ff_status.in
index 3f88710..1f2815f 100644
--- a/xlat/evdev_ff_status.in
+++ b/xlat/evdev_ff_status.in
@@ -1,2 +1,3 @@
-FF_STATUS_STOPPED
-FF_STATUS_PLAYING
+#value_indexed
+FF_STATUS_STOPPED 0x00
+FF_STATUS_PLAYING 0x01
diff --git a/xlat/evdev_ff_types.h b/xlat/evdev_ff_types.h
index 35dddc9..3bc6b04 100644
--- a/xlat/evdev_ff_types.h
+++ b/xlat/evdev_ff_types.h
@@ -1,62 +1,151 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_ff_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_ff_types in mpers mode
-
+#if defined(FF_RUMBLE) || (defined(HAVE_DECL_FF_RUMBLE) && HAVE_DECL_FF_RUMBLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_RUMBLE) == (0x50), "FF_RUMBLE != 0x50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define FF_RUMBLE 0x50
+#endif
+#if defined(FF_PERIODIC) || (defined(HAVE_DECL_FF_PERIODIC) && HAVE_DECL_FF_PERIODIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_PERIODIC) == (0x51), "FF_PERIODIC != 0x51");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_PERIODIC 0x51
+#endif
+#if defined(FF_CONSTANT) || (defined(HAVE_DECL_FF_CONSTANT) && HAVE_DECL_FF_CONSTANT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_CONSTANT) == (0x52), "FF_CONSTANT != 0x52");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_CONSTANT 0x52
+#endif
+#if defined(FF_SPRING) || (defined(HAVE_DECL_FF_SPRING) && HAVE_DECL_FF_SPRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_SPRING) == (0x53), "FF_SPRING != 0x53");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_SPRING 0x53
+#endif
+#if defined(FF_FRICTION) || (defined(HAVE_DECL_FF_FRICTION) && HAVE_DECL_FF_FRICTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_FRICTION) == (0x54), "FF_FRICTION != 0x54");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_FRICTION 0x54
+#endif
+#if defined(FF_DAMPER) || (defined(HAVE_DECL_FF_DAMPER) && HAVE_DECL_FF_DAMPER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_DAMPER) == (0x55), "FF_DAMPER != 0x55");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_DAMPER 0x55
+#endif
+#if defined(FF_INERTIA) || (defined(HAVE_DECL_FF_INERTIA) && HAVE_DECL_FF_INERTIA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_INERTIA) == (0x56), "FF_INERTIA != 0x56");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_INERTIA 0x56
+#endif
+#if defined(FF_RAMP) || (defined(HAVE_DECL_FF_RAMP) && HAVE_DECL_FF_RAMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_RAMP) == (0x57), "FF_RAMP != 0x57");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_RAMP 0x57
+#endif
+#if defined(FF_SQUARE) || (defined(HAVE_DECL_FF_SQUARE) && HAVE_DECL_FF_SQUARE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_SQUARE) == (0x58), "FF_SQUARE != 0x58");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_SQUARE 0x58
+#endif
+#if defined(FF_TRIANGLE) || (defined(HAVE_DECL_FF_TRIANGLE) && HAVE_DECL_FF_TRIANGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_TRIANGLE) == (0x59), "FF_TRIANGLE != 0x59");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_TRIANGLE 0x59
+#endif
+#if defined(FF_SINE) || (defined(HAVE_DECL_FF_SINE) && HAVE_DECL_FF_SINE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_SINE) == (0x5a), "FF_SINE != 0x5a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_SINE 0x5a
+#endif
+#if defined(FF_SAW_UP) || (defined(HAVE_DECL_FF_SAW_UP) && HAVE_DECL_FF_SAW_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_SAW_UP) == (0x5b), "FF_SAW_UP != 0x5b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_SAW_UP 0x5b
+#endif
+#if defined(FF_SAW_DOWN) || (defined(HAVE_DECL_FF_SAW_DOWN) && HAVE_DECL_FF_SAW_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_SAW_DOWN) == (0x5c), "FF_SAW_DOWN != 0x5c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_SAW_DOWN 0x5c
+#endif
+#if defined(FF_CUSTOM) || (defined(HAVE_DECL_FF_CUSTOM) && HAVE_DECL_FF_CUSTOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_CUSTOM) == (0x5d), "FF_CUSTOM != 0x5d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_CUSTOM 0x5d
+#endif
+#if defined(FF_GAIN) || (defined(HAVE_DECL_FF_GAIN) && HAVE_DECL_FF_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_GAIN) == (0x60), "FF_GAIN != 0x60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_GAIN 0x60
+#endif
+#if defined(FF_AUTOCENTER) || (defined(HAVE_DECL_FF_AUTOCENTER) && HAVE_DECL_FF_AUTOCENTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FF_AUTOCENTER) == (0x61), "FF_AUTOCENTER != 0x61");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FF_AUTOCENTER 0x61
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_ff_types in mpers mode
+
+# else
static
const struct xlat evdev_ff_types[] = {
-#if defined(FF_RUMBLE) || (defined(HAVE_DECL_FF_RUMBLE) && HAVE_DECL_FF_RUMBLE)
- XLAT(FF_RUMBLE),
-#endif
-#if defined(FF_PERIODIC) || (defined(HAVE_DECL_FF_PERIODIC) && HAVE_DECL_FF_PERIODIC)
- XLAT(FF_PERIODIC),
-#endif
-#if defined(FF_CONSTANT) || (defined(HAVE_DECL_FF_CONSTANT) && HAVE_DECL_FF_CONSTANT)
- XLAT(FF_CONSTANT),
-#endif
-#if defined(FF_SPRING) || (defined(HAVE_DECL_FF_SPRING) && HAVE_DECL_FF_SPRING)
- XLAT(FF_SPRING),
-#endif
-#if defined(FF_FRICTION) || (defined(HAVE_DECL_FF_FRICTION) && HAVE_DECL_FF_FRICTION)
- XLAT(FF_FRICTION),
-#endif
-#if defined(FF_DAMPER) || (defined(HAVE_DECL_FF_DAMPER) && HAVE_DECL_FF_DAMPER)
- XLAT(FF_DAMPER),
-#endif
-#if defined(FF_INERTIA) || (defined(HAVE_DECL_FF_INERTIA) && HAVE_DECL_FF_INERTIA)
- XLAT(FF_INERTIA),
-#endif
-#if defined(FF_RAMP) || (defined(HAVE_DECL_FF_RAMP) && HAVE_DECL_FF_RAMP)
- XLAT(FF_RAMP),
-#endif
-#if defined(FF_SQUARE) || (defined(HAVE_DECL_FF_SQUARE) && HAVE_DECL_FF_SQUARE)
- XLAT(FF_SQUARE),
-#endif
-#if defined(FF_TRIANGLE) || (defined(HAVE_DECL_FF_TRIANGLE) && HAVE_DECL_FF_TRIANGLE)
- XLAT(FF_TRIANGLE),
-#endif
-#if defined(FF_SINE) || (defined(HAVE_DECL_FF_SINE) && HAVE_DECL_FF_SINE)
- XLAT(FF_SINE),
-#endif
-#if defined(FF_SAW_UP) || (defined(HAVE_DECL_FF_SAW_UP) && HAVE_DECL_FF_SAW_UP)
- XLAT(FF_SAW_UP),
-#endif
-#if defined(FF_SAW_DOWN) || (defined(HAVE_DECL_FF_SAW_DOWN) && HAVE_DECL_FF_SAW_DOWN)
- XLAT(FF_SAW_DOWN),
-#endif
-#if defined(FF_CUSTOM) || (defined(HAVE_DECL_FF_CUSTOM) && HAVE_DECL_FF_CUSTOM)
- XLAT(FF_CUSTOM),
-#endif
-#if defined(FF_GAIN) || (defined(HAVE_DECL_FF_GAIN) && HAVE_DECL_FF_GAIN)
- XLAT(FF_GAIN),
-#endif
-#if defined(FF_AUTOCENTER) || (defined(HAVE_DECL_FF_AUTOCENTER) && HAVE_DECL_FF_AUTOCENTER)
- XLAT(FF_AUTOCENTER),
-#endif
+
+ XLAT(FF_RUMBLE),
+ XLAT(FF_PERIODIC),
+ XLAT(FF_CONSTANT),
+ XLAT(FF_SPRING),
+ XLAT(FF_FRICTION),
+ XLAT(FF_DAMPER),
+ XLAT(FF_INERTIA),
+ XLAT(FF_RAMP),
+ XLAT(FF_SQUARE),
+ XLAT(FF_TRIANGLE),
+ XLAT(FF_SINE),
+ XLAT(FF_SAW_UP),
+ XLAT(FF_SAW_DOWN),
+ XLAT(FF_CUSTOM),
+ XLAT(FF_GAIN),
+ XLAT(FF_AUTOCENTER),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_ff_types.in b/xlat/evdev_ff_types.in
index c6714f8..72b87c5 100644
--- a/xlat/evdev_ff_types.in
+++ b/xlat/evdev_ff_types.in
@@ -1,16 +1,17 @@
-FF_RUMBLE
-FF_PERIODIC
-FF_CONSTANT
-FF_SPRING
-FF_FRICTION
-FF_DAMPER
-FF_INERTIA
-FF_RAMP
-FF_SQUARE
-FF_TRIANGLE
-FF_SINE
-FF_SAW_UP
-FF_SAW_DOWN
-FF_CUSTOM
-FF_GAIN
-FF_AUTOCENTER
+/* sort -k2,2 */
+FF_RUMBLE 0x50
+FF_PERIODIC 0x51
+FF_CONSTANT 0x52
+FF_SPRING 0x53
+FF_FRICTION 0x54
+FF_DAMPER 0x55
+FF_INERTIA 0x56
+FF_RAMP 0x57
+FF_SQUARE 0x58
+FF_TRIANGLE 0x59
+FF_SINE 0x5a
+FF_SAW_UP 0x5b
+FF_SAW_DOWN 0x5c
+FF_CUSTOM 0x5d
+FF_GAIN 0x60
+FF_AUTOCENTER 0x61
diff --git a/xlat/evdev_keycode.h b/xlat/evdev_keycode.h
index 44f28ef..9fedfb9 100644
--- a/xlat/evdev_keycode.h
+++ b/xlat/evdev_keycode.h
@@ -1,2259 +1,4474 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_keycode.in; do not edit. */
-#if !(defined(KEY_RESERVED) || (defined(HAVE_DECL_KEY_RESERVED) && HAVE_DECL_KEY_RESERVED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEY_RESERVED) || (defined(HAVE_DECL_KEY_RESERVED) && HAVE_DECL_KEY_RESERVED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RESERVED) == (0), "KEY_RESERVED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RESERVED 0
#endif
-#if !(defined(KEY_ESC) || (defined(HAVE_DECL_KEY_ESC) && HAVE_DECL_KEY_ESC))
+#if defined(KEY_ESC) || (defined(HAVE_DECL_KEY_ESC) && HAVE_DECL_KEY_ESC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ESC) == (1), "KEY_ESC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ESC 1
#endif
-#if !(defined(KEY_1) || (defined(HAVE_DECL_KEY_1) && HAVE_DECL_KEY_1))
+#if defined(KEY_1) || (defined(HAVE_DECL_KEY_1) && HAVE_DECL_KEY_1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_1) == (2), "KEY_1 != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_1 2
#endif
-#if !(defined(KEY_2) || (defined(HAVE_DECL_KEY_2) && HAVE_DECL_KEY_2))
+#if defined(KEY_2) || (defined(HAVE_DECL_KEY_2) && HAVE_DECL_KEY_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_2) == (3), "KEY_2 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_2 3
#endif
-#if !(defined(KEY_3) || (defined(HAVE_DECL_KEY_3) && HAVE_DECL_KEY_3))
+#if defined(KEY_3) || (defined(HAVE_DECL_KEY_3) && HAVE_DECL_KEY_3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_3) == (4), "KEY_3 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_3 4
#endif
-#if !(defined(KEY_4) || (defined(HAVE_DECL_KEY_4) && HAVE_DECL_KEY_4))
+#if defined(KEY_4) || (defined(HAVE_DECL_KEY_4) && HAVE_DECL_KEY_4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_4) == (5), "KEY_4 != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_4 5
#endif
-#if !(defined(KEY_5) || (defined(HAVE_DECL_KEY_5) && HAVE_DECL_KEY_5))
+#if defined(KEY_5) || (defined(HAVE_DECL_KEY_5) && HAVE_DECL_KEY_5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_5) == (6), "KEY_5 != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_5 6
#endif
-#if !(defined(KEY_6) || (defined(HAVE_DECL_KEY_6) && HAVE_DECL_KEY_6))
+#if defined(KEY_6) || (defined(HAVE_DECL_KEY_6) && HAVE_DECL_KEY_6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_6) == (7), "KEY_6 != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_6 7
#endif
-#if !(defined(KEY_7) || (defined(HAVE_DECL_KEY_7) && HAVE_DECL_KEY_7))
+#if defined(KEY_7) || (defined(HAVE_DECL_KEY_7) && HAVE_DECL_KEY_7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_7) == (8), "KEY_7 != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_7 8
#endif
-#if !(defined(KEY_8) || (defined(HAVE_DECL_KEY_8) && HAVE_DECL_KEY_8))
+#if defined(KEY_8) || (defined(HAVE_DECL_KEY_8) && HAVE_DECL_KEY_8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_8) == (9), "KEY_8 != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_8 9
#endif
-#if !(defined(KEY_9) || (defined(HAVE_DECL_KEY_9) && HAVE_DECL_KEY_9))
+#if defined(KEY_9) || (defined(HAVE_DECL_KEY_9) && HAVE_DECL_KEY_9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_9) == (10), "KEY_9 != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_9 10
#endif
-#if !(defined(KEY_0) || (defined(HAVE_DECL_KEY_0) && HAVE_DECL_KEY_0))
+#if defined(KEY_0) || (defined(HAVE_DECL_KEY_0) && HAVE_DECL_KEY_0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_0) == (11), "KEY_0 != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_0 11
#endif
-#if !(defined(KEY_MINUS) || (defined(HAVE_DECL_KEY_MINUS) && HAVE_DECL_KEY_MINUS))
+#if defined(KEY_MINUS) || (defined(HAVE_DECL_KEY_MINUS) && HAVE_DECL_KEY_MINUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MINUS) == (12), "KEY_MINUS != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MINUS 12
#endif
-#if !(defined(KEY_EQUAL) || (defined(HAVE_DECL_KEY_EQUAL) && HAVE_DECL_KEY_EQUAL))
+#if defined(KEY_EQUAL) || (defined(HAVE_DECL_KEY_EQUAL) && HAVE_DECL_KEY_EQUAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EQUAL) == (13), "KEY_EQUAL != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EQUAL 13
#endif
-#if !(defined(KEY_BACKSPACE) || (defined(HAVE_DECL_KEY_BACKSPACE) && HAVE_DECL_KEY_BACKSPACE))
+#if defined(KEY_BACKSPACE) || (defined(HAVE_DECL_KEY_BACKSPACE) && HAVE_DECL_KEY_BACKSPACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BACKSPACE) == (14), "KEY_BACKSPACE != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BACKSPACE 14
#endif
-#if !(defined(KEY_TAB) || (defined(HAVE_DECL_KEY_TAB) && HAVE_DECL_KEY_TAB))
+#if defined(KEY_TAB) || (defined(HAVE_DECL_KEY_TAB) && HAVE_DECL_KEY_TAB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TAB) == (15), "KEY_TAB != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TAB 15
#endif
-#if !(defined(KEY_Q) || (defined(HAVE_DECL_KEY_Q) && HAVE_DECL_KEY_Q))
+#if defined(KEY_Q) || (defined(HAVE_DECL_KEY_Q) && HAVE_DECL_KEY_Q)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_Q) == (16), "KEY_Q != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_Q 16
#endif
-#if !(defined(KEY_W) || (defined(HAVE_DECL_KEY_W) && HAVE_DECL_KEY_W))
+#if defined(KEY_W) || (defined(HAVE_DECL_KEY_W) && HAVE_DECL_KEY_W)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_W) == (17), "KEY_W != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_W 17
#endif
-#if !(defined(KEY_E) || (defined(HAVE_DECL_KEY_E) && HAVE_DECL_KEY_E))
+#if defined(KEY_E) || (defined(HAVE_DECL_KEY_E) && HAVE_DECL_KEY_E)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_E) == (18), "KEY_E != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_E 18
#endif
-#if !(defined(KEY_R) || (defined(HAVE_DECL_KEY_R) && HAVE_DECL_KEY_R))
+#if defined(KEY_R) || (defined(HAVE_DECL_KEY_R) && HAVE_DECL_KEY_R)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_R) == (19), "KEY_R != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_R 19
#endif
-#if !(defined(KEY_T) || (defined(HAVE_DECL_KEY_T) && HAVE_DECL_KEY_T))
+#if defined(KEY_T) || (defined(HAVE_DECL_KEY_T) && HAVE_DECL_KEY_T)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_T) == (20), "KEY_T != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_T 20
#endif
-#if !(defined(KEY_Y) || (defined(HAVE_DECL_KEY_Y) && HAVE_DECL_KEY_Y))
+#if defined(KEY_Y) || (defined(HAVE_DECL_KEY_Y) && HAVE_DECL_KEY_Y)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_Y) == (21), "KEY_Y != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_Y 21
#endif
-#if !(defined(KEY_U) || (defined(HAVE_DECL_KEY_U) && HAVE_DECL_KEY_U))
+#if defined(KEY_U) || (defined(HAVE_DECL_KEY_U) && HAVE_DECL_KEY_U)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_U) == (22), "KEY_U != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_U 22
#endif
-#if !(defined(KEY_I) || (defined(HAVE_DECL_KEY_I) && HAVE_DECL_KEY_I))
+#if defined(KEY_I) || (defined(HAVE_DECL_KEY_I) && HAVE_DECL_KEY_I)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_I) == (23), "KEY_I != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_I 23
#endif
-#if !(defined(KEY_O) || (defined(HAVE_DECL_KEY_O) && HAVE_DECL_KEY_O))
+#if defined(KEY_O) || (defined(HAVE_DECL_KEY_O) && HAVE_DECL_KEY_O)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_O) == (24), "KEY_O != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_O 24
#endif
-#if !(defined(KEY_P) || (defined(HAVE_DECL_KEY_P) && HAVE_DECL_KEY_P))
+#if defined(KEY_P) || (defined(HAVE_DECL_KEY_P) && HAVE_DECL_KEY_P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_P) == (25), "KEY_P != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_P 25
#endif
-#if !(defined(KEY_LEFTBRACE) || (defined(HAVE_DECL_KEY_LEFTBRACE) && HAVE_DECL_KEY_LEFTBRACE))
+#if defined(KEY_LEFTBRACE) || (defined(HAVE_DECL_KEY_LEFTBRACE) && HAVE_DECL_KEY_LEFTBRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFTBRACE) == (26), "KEY_LEFTBRACE != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFTBRACE 26
#endif
-#if !(defined(KEY_RIGHTBRACE) || (defined(HAVE_DECL_KEY_RIGHTBRACE) && HAVE_DECL_KEY_RIGHTBRACE))
+#if defined(KEY_RIGHTBRACE) || (defined(HAVE_DECL_KEY_RIGHTBRACE) && HAVE_DECL_KEY_RIGHTBRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHTBRACE) == (27), "KEY_RIGHTBRACE != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHTBRACE 27
#endif
-#if !(defined(KEY_ENTER) || (defined(HAVE_DECL_KEY_ENTER) && HAVE_DECL_KEY_ENTER))
+#if defined(KEY_ENTER) || (defined(HAVE_DECL_KEY_ENTER) && HAVE_DECL_KEY_ENTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ENTER) == (28), "KEY_ENTER != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ENTER 28
#endif
-#if !(defined(KEY_LEFTCTRL) || (defined(HAVE_DECL_KEY_LEFTCTRL) && HAVE_DECL_KEY_LEFTCTRL))
+#if defined(KEY_LEFTCTRL) || (defined(HAVE_DECL_KEY_LEFTCTRL) && HAVE_DECL_KEY_LEFTCTRL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFTCTRL) == (29), "KEY_LEFTCTRL != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFTCTRL 29
#endif
-#if !(defined(KEY_A) || (defined(HAVE_DECL_KEY_A) && HAVE_DECL_KEY_A))
+#if defined(KEY_A) || (defined(HAVE_DECL_KEY_A) && HAVE_DECL_KEY_A)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_A) == (30), "KEY_A != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_A 30
#endif
-#if !(defined(KEY_S) || (defined(HAVE_DECL_KEY_S) && HAVE_DECL_KEY_S))
+#if defined(KEY_S) || (defined(HAVE_DECL_KEY_S) && HAVE_DECL_KEY_S)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_S) == (31), "KEY_S != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_S 31
#endif
-#if !(defined(KEY_D) || (defined(HAVE_DECL_KEY_D) && HAVE_DECL_KEY_D))
+#if defined(KEY_D) || (defined(HAVE_DECL_KEY_D) && HAVE_DECL_KEY_D)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_D) == (32), "KEY_D != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_D 32
#endif
-#if !(defined(KEY_F) || (defined(HAVE_DECL_KEY_F) && HAVE_DECL_KEY_F))
+#if defined(KEY_F) || (defined(HAVE_DECL_KEY_F) && HAVE_DECL_KEY_F)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F) == (33), "KEY_F != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F 33
#endif
-#if !(defined(KEY_G) || (defined(HAVE_DECL_KEY_G) && HAVE_DECL_KEY_G))
+#if defined(KEY_G) || (defined(HAVE_DECL_KEY_G) && HAVE_DECL_KEY_G)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_G) == (34), "KEY_G != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_G 34
#endif
-#if !(defined(KEY_H) || (defined(HAVE_DECL_KEY_H) && HAVE_DECL_KEY_H))
+#if defined(KEY_H) || (defined(HAVE_DECL_KEY_H) && HAVE_DECL_KEY_H)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_H) == (35), "KEY_H != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_H 35
#endif
-#if !(defined(KEY_J) || (defined(HAVE_DECL_KEY_J) && HAVE_DECL_KEY_J))
+#if defined(KEY_J) || (defined(HAVE_DECL_KEY_J) && HAVE_DECL_KEY_J)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_J) == (36), "KEY_J != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_J 36
#endif
-#if !(defined(KEY_K) || (defined(HAVE_DECL_KEY_K) && HAVE_DECL_KEY_K))
+#if defined(KEY_K) || (defined(HAVE_DECL_KEY_K) && HAVE_DECL_KEY_K)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_K) == (37), "KEY_K != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_K 37
#endif
-#if !(defined(KEY_L) || (defined(HAVE_DECL_KEY_L) && HAVE_DECL_KEY_L))
+#if defined(KEY_L) || (defined(HAVE_DECL_KEY_L) && HAVE_DECL_KEY_L)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_L) == (38), "KEY_L != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_L 38
#endif
-#if !(defined(KEY_SEMICOLON) || (defined(HAVE_DECL_KEY_SEMICOLON) && HAVE_DECL_KEY_SEMICOLON))
+#if defined(KEY_SEMICOLON) || (defined(HAVE_DECL_KEY_SEMICOLON) && HAVE_DECL_KEY_SEMICOLON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SEMICOLON) == (39), "KEY_SEMICOLON != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SEMICOLON 39
#endif
-#if !(defined(KEY_APOSTROPHE) || (defined(HAVE_DECL_KEY_APOSTROPHE) && HAVE_DECL_KEY_APOSTROPHE))
+#if defined(KEY_APOSTROPHE) || (defined(HAVE_DECL_KEY_APOSTROPHE) && HAVE_DECL_KEY_APOSTROPHE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_APOSTROPHE) == (40), "KEY_APOSTROPHE != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_APOSTROPHE 40
#endif
-#if !(defined(KEY_GRAVE) || (defined(HAVE_DECL_KEY_GRAVE) && HAVE_DECL_KEY_GRAVE))
+#if defined(KEY_GRAVE) || (defined(HAVE_DECL_KEY_GRAVE) && HAVE_DECL_KEY_GRAVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRAVE) == (41), "KEY_GRAVE != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRAVE 41
#endif
-#if !(defined(KEY_LEFTSHIFT) || (defined(HAVE_DECL_KEY_LEFTSHIFT) && HAVE_DECL_KEY_LEFTSHIFT))
+#if defined(KEY_LEFTSHIFT) || (defined(HAVE_DECL_KEY_LEFTSHIFT) && HAVE_DECL_KEY_LEFTSHIFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFTSHIFT) == (42), "KEY_LEFTSHIFT != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFTSHIFT 42
#endif
-#if !(defined(KEY_BACKSLASH) || (defined(HAVE_DECL_KEY_BACKSLASH) && HAVE_DECL_KEY_BACKSLASH))
+#if defined(KEY_BACKSLASH) || (defined(HAVE_DECL_KEY_BACKSLASH) && HAVE_DECL_KEY_BACKSLASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BACKSLASH) == (43), "KEY_BACKSLASH != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BACKSLASH 43
#endif
-#if !(defined(KEY_Z) || (defined(HAVE_DECL_KEY_Z) && HAVE_DECL_KEY_Z))
+#if defined(KEY_Z) || (defined(HAVE_DECL_KEY_Z) && HAVE_DECL_KEY_Z)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_Z) == (44), "KEY_Z != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_Z 44
#endif
-#if !(defined(KEY_X) || (defined(HAVE_DECL_KEY_X) && HAVE_DECL_KEY_X))
+#if defined(KEY_X) || (defined(HAVE_DECL_KEY_X) && HAVE_DECL_KEY_X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_X) == (45), "KEY_X != 45");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_X 45
#endif
-#if !(defined(KEY_C) || (defined(HAVE_DECL_KEY_C) && HAVE_DECL_KEY_C))
+#if defined(KEY_C) || (defined(HAVE_DECL_KEY_C) && HAVE_DECL_KEY_C)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_C) == (46), "KEY_C != 46");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_C 46
#endif
-#if !(defined(KEY_V) || (defined(HAVE_DECL_KEY_V) && HAVE_DECL_KEY_V))
+#if defined(KEY_V) || (defined(HAVE_DECL_KEY_V) && HAVE_DECL_KEY_V)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_V) == (47), "KEY_V != 47");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_V 47
#endif
-#if !(defined(KEY_B) || (defined(HAVE_DECL_KEY_B) && HAVE_DECL_KEY_B))
+#if defined(KEY_B) || (defined(HAVE_DECL_KEY_B) && HAVE_DECL_KEY_B)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_B) == (48), "KEY_B != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_B 48
#endif
-#if !(defined(KEY_N) || (defined(HAVE_DECL_KEY_N) && HAVE_DECL_KEY_N))
+#if defined(KEY_N) || (defined(HAVE_DECL_KEY_N) && HAVE_DECL_KEY_N)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_N) == (49), "KEY_N != 49");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_N 49
#endif
-#if !(defined(KEY_M) || (defined(HAVE_DECL_KEY_M) && HAVE_DECL_KEY_M))
+#if defined(KEY_M) || (defined(HAVE_DECL_KEY_M) && HAVE_DECL_KEY_M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_M) == (50), "KEY_M != 50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_M 50
#endif
-#if !(defined(KEY_COMMA) || (defined(HAVE_DECL_KEY_COMMA) && HAVE_DECL_KEY_COMMA))
+#if defined(KEY_COMMA) || (defined(HAVE_DECL_KEY_COMMA) && HAVE_DECL_KEY_COMMA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_COMMA) == (51), "KEY_COMMA != 51");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_COMMA 51
#endif
-#if !(defined(KEY_DOT) || (defined(HAVE_DECL_KEY_DOT) && HAVE_DECL_KEY_DOT))
+#if defined(KEY_DOT) || (defined(HAVE_DECL_KEY_DOT) && HAVE_DECL_KEY_DOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DOT) == (52), "KEY_DOT != 52");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DOT 52
#endif
-#if !(defined(KEY_SLASH) || (defined(HAVE_DECL_KEY_SLASH) && HAVE_DECL_KEY_SLASH))
+#if defined(KEY_SLASH) || (defined(HAVE_DECL_KEY_SLASH) && HAVE_DECL_KEY_SLASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SLASH) == (53), "KEY_SLASH != 53");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SLASH 53
#endif
-#if !(defined(KEY_RIGHTSHIFT) || (defined(HAVE_DECL_KEY_RIGHTSHIFT) && HAVE_DECL_KEY_RIGHTSHIFT))
+#if defined(KEY_RIGHTSHIFT) || (defined(HAVE_DECL_KEY_RIGHTSHIFT) && HAVE_DECL_KEY_RIGHTSHIFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHTSHIFT) == (54), "KEY_RIGHTSHIFT != 54");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHTSHIFT 54
#endif
-#if !(defined(KEY_KPASTERISK) || (defined(HAVE_DECL_KEY_KPASTERISK) && HAVE_DECL_KEY_KPASTERISK))
+#if defined(KEY_KPASTERISK) || (defined(HAVE_DECL_KEY_KPASTERISK) && HAVE_DECL_KEY_KPASTERISK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPASTERISK) == (55), "KEY_KPASTERISK != 55");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPASTERISK 55
#endif
-#if !(defined(KEY_LEFTALT) || (defined(HAVE_DECL_KEY_LEFTALT) && HAVE_DECL_KEY_LEFTALT))
+#if defined(KEY_LEFTALT) || (defined(HAVE_DECL_KEY_LEFTALT) && HAVE_DECL_KEY_LEFTALT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFTALT) == (56), "KEY_LEFTALT != 56");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFTALT 56
#endif
-#if !(defined(KEY_SPACE) || (defined(HAVE_DECL_KEY_SPACE) && HAVE_DECL_KEY_SPACE))
+#if defined(KEY_SPACE) || (defined(HAVE_DECL_KEY_SPACE) && HAVE_DECL_KEY_SPACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPACE) == (57), "KEY_SPACE != 57");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPACE 57
#endif
-#if !(defined(KEY_CAPSLOCK) || (defined(HAVE_DECL_KEY_CAPSLOCK) && HAVE_DECL_KEY_CAPSLOCK))
+#if defined(KEY_CAPSLOCK) || (defined(HAVE_DECL_KEY_CAPSLOCK) && HAVE_DECL_KEY_CAPSLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAPSLOCK) == (58), "KEY_CAPSLOCK != 58");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAPSLOCK 58
#endif
-#if !(defined(KEY_F1) || (defined(HAVE_DECL_KEY_F1) && HAVE_DECL_KEY_F1))
+#if defined(KEY_F1) || (defined(HAVE_DECL_KEY_F1) && HAVE_DECL_KEY_F1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F1) == (59), "KEY_F1 != 59");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F1 59
#endif
-#if !(defined(KEY_F2) || (defined(HAVE_DECL_KEY_F2) && HAVE_DECL_KEY_F2))
+#if defined(KEY_F2) || (defined(HAVE_DECL_KEY_F2) && HAVE_DECL_KEY_F2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F2) == (60), "KEY_F2 != 60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F2 60
#endif
-#if !(defined(KEY_F3) || (defined(HAVE_DECL_KEY_F3) && HAVE_DECL_KEY_F3))
+#if defined(KEY_F3) || (defined(HAVE_DECL_KEY_F3) && HAVE_DECL_KEY_F3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F3) == (61), "KEY_F3 != 61");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F3 61
#endif
-#if !(defined(KEY_F4) || (defined(HAVE_DECL_KEY_F4) && HAVE_DECL_KEY_F4))
+#if defined(KEY_F4) || (defined(HAVE_DECL_KEY_F4) && HAVE_DECL_KEY_F4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F4) == (62), "KEY_F4 != 62");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F4 62
#endif
-#if !(defined(KEY_F5) || (defined(HAVE_DECL_KEY_F5) && HAVE_DECL_KEY_F5))
+#if defined(KEY_F5) || (defined(HAVE_DECL_KEY_F5) && HAVE_DECL_KEY_F5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F5) == (63), "KEY_F5 != 63");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F5 63
#endif
-#if !(defined(KEY_F6) || (defined(HAVE_DECL_KEY_F6) && HAVE_DECL_KEY_F6))
+#if defined(KEY_F6) || (defined(HAVE_DECL_KEY_F6) && HAVE_DECL_KEY_F6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F6) == (64), "KEY_F6 != 64");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F6 64
#endif
-#if !(defined(KEY_F7) || (defined(HAVE_DECL_KEY_F7) && HAVE_DECL_KEY_F7))
+#if defined(KEY_F7) || (defined(HAVE_DECL_KEY_F7) && HAVE_DECL_KEY_F7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F7) == (65), "KEY_F7 != 65");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F7 65
#endif
-#if !(defined(KEY_F8) || (defined(HAVE_DECL_KEY_F8) && HAVE_DECL_KEY_F8))
+#if defined(KEY_F8) || (defined(HAVE_DECL_KEY_F8) && HAVE_DECL_KEY_F8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F8) == (66), "KEY_F8 != 66");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F8 66
#endif
-#if !(defined(KEY_F9) || (defined(HAVE_DECL_KEY_F9) && HAVE_DECL_KEY_F9))
+#if defined(KEY_F9) || (defined(HAVE_DECL_KEY_F9) && HAVE_DECL_KEY_F9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F9) == (67), "KEY_F9 != 67");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F9 67
#endif
-#if !(defined(KEY_F10) || (defined(HAVE_DECL_KEY_F10) && HAVE_DECL_KEY_F10))
+#if defined(KEY_F10) || (defined(HAVE_DECL_KEY_F10) && HAVE_DECL_KEY_F10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F10) == (68), "KEY_F10 != 68");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F10 68
#endif
-#if !(defined(KEY_NUMLOCK) || (defined(HAVE_DECL_KEY_NUMLOCK) && HAVE_DECL_KEY_NUMLOCK))
+#if defined(KEY_NUMLOCK) || (defined(HAVE_DECL_KEY_NUMLOCK) && HAVE_DECL_KEY_NUMLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMLOCK) == (69), "KEY_NUMLOCK != 69");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMLOCK 69
#endif
-#if !(defined(KEY_SCROLLLOCK) || (defined(HAVE_DECL_KEY_SCROLLLOCK) && HAVE_DECL_KEY_SCROLLLOCK))
+#if defined(KEY_SCROLLLOCK) || (defined(HAVE_DECL_KEY_SCROLLLOCK) && HAVE_DECL_KEY_SCROLLLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SCROLLLOCK) == (70), "KEY_SCROLLLOCK != 70");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SCROLLLOCK 70
#endif
-#if !(defined(KEY_KP7) || (defined(HAVE_DECL_KEY_KP7) && HAVE_DECL_KEY_KP7))
+#if defined(KEY_KP7) || (defined(HAVE_DECL_KEY_KP7) && HAVE_DECL_KEY_KP7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP7) == (71), "KEY_KP7 != 71");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP7 71
#endif
-#if !(defined(KEY_KP8) || (defined(HAVE_DECL_KEY_KP8) && HAVE_DECL_KEY_KP8))
+#if defined(KEY_KP8) || (defined(HAVE_DECL_KEY_KP8) && HAVE_DECL_KEY_KP8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP8) == (72), "KEY_KP8 != 72");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP8 72
#endif
-#if !(defined(KEY_KP9) || (defined(HAVE_DECL_KEY_KP9) && HAVE_DECL_KEY_KP9))
+#if defined(KEY_KP9) || (defined(HAVE_DECL_KEY_KP9) && HAVE_DECL_KEY_KP9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP9) == (73), "KEY_KP9 != 73");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP9 73
#endif
-#if !(defined(KEY_KPMINUS) || (defined(HAVE_DECL_KEY_KPMINUS) && HAVE_DECL_KEY_KPMINUS))
+#if defined(KEY_KPMINUS) || (defined(HAVE_DECL_KEY_KPMINUS) && HAVE_DECL_KEY_KPMINUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPMINUS) == (74), "KEY_KPMINUS != 74");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPMINUS 74
#endif
-#if !(defined(KEY_KP4) || (defined(HAVE_DECL_KEY_KP4) && HAVE_DECL_KEY_KP4))
+#if defined(KEY_KP4) || (defined(HAVE_DECL_KEY_KP4) && HAVE_DECL_KEY_KP4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP4) == (75), "KEY_KP4 != 75");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP4 75
#endif
-#if !(defined(KEY_KP5) || (defined(HAVE_DECL_KEY_KP5) && HAVE_DECL_KEY_KP5))
+#if defined(KEY_KP5) || (defined(HAVE_DECL_KEY_KP5) && HAVE_DECL_KEY_KP5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP5) == (76), "KEY_KP5 != 76");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP5 76
#endif
-#if !(defined(KEY_KP6) || (defined(HAVE_DECL_KEY_KP6) && HAVE_DECL_KEY_KP6))
+#if defined(KEY_KP6) || (defined(HAVE_DECL_KEY_KP6) && HAVE_DECL_KEY_KP6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP6) == (77), "KEY_KP6 != 77");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP6 77
#endif
-#if !(defined(KEY_KPPLUS) || (defined(HAVE_DECL_KEY_KPPLUS) && HAVE_DECL_KEY_KPPLUS))
+#if defined(KEY_KPPLUS) || (defined(HAVE_DECL_KEY_KPPLUS) && HAVE_DECL_KEY_KPPLUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPPLUS) == (78), "KEY_KPPLUS != 78");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPPLUS 78
#endif
-#if !(defined(KEY_KP1) || (defined(HAVE_DECL_KEY_KP1) && HAVE_DECL_KEY_KP1))
+#if defined(KEY_KP1) || (defined(HAVE_DECL_KEY_KP1) && HAVE_DECL_KEY_KP1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP1) == (79), "KEY_KP1 != 79");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP1 79
#endif
-#if !(defined(KEY_KP2) || (defined(HAVE_DECL_KEY_KP2) && HAVE_DECL_KEY_KP2))
+#if defined(KEY_KP2) || (defined(HAVE_DECL_KEY_KP2) && HAVE_DECL_KEY_KP2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP2) == (80), "KEY_KP2 != 80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP2 80
#endif
-#if !(defined(KEY_KP3) || (defined(HAVE_DECL_KEY_KP3) && HAVE_DECL_KEY_KP3))
+#if defined(KEY_KP3) || (defined(HAVE_DECL_KEY_KP3) && HAVE_DECL_KEY_KP3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP3) == (81), "KEY_KP3 != 81");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP3 81
#endif
-#if !(defined(KEY_KP0) || (defined(HAVE_DECL_KEY_KP0) && HAVE_DECL_KEY_KP0))
+#if defined(KEY_KP0) || (defined(HAVE_DECL_KEY_KP0) && HAVE_DECL_KEY_KP0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KP0) == (82), "KEY_KP0 != 82");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KP0 82
#endif
-#if !(defined(KEY_KPDOT) || (defined(HAVE_DECL_KEY_KPDOT) && HAVE_DECL_KEY_KPDOT))
+#if defined(KEY_KPDOT) || (defined(HAVE_DECL_KEY_KPDOT) && HAVE_DECL_KEY_KPDOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPDOT) == (83), "KEY_KPDOT != 83");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPDOT 83
#endif
-#if !(defined(KEY_ZENKAKUHANKAKU) || (defined(HAVE_DECL_KEY_ZENKAKUHANKAKU) && HAVE_DECL_KEY_ZENKAKUHANKAKU))
+#if defined(KEY_ZENKAKUHANKAKU) || (defined(HAVE_DECL_KEY_ZENKAKUHANKAKU) && HAVE_DECL_KEY_ZENKAKUHANKAKU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ZENKAKUHANKAKU) == (85), "KEY_ZENKAKUHANKAKU != 85");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ZENKAKUHANKAKU 85
#endif
-#if !(defined(KEY_102ND) || (defined(HAVE_DECL_KEY_102ND) && HAVE_DECL_KEY_102ND))
+#if defined(KEY_102ND) || (defined(HAVE_DECL_KEY_102ND) && HAVE_DECL_KEY_102ND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_102ND) == (86), "KEY_102ND != 86");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_102ND 86
#endif
-#if !(defined(KEY_F11) || (defined(HAVE_DECL_KEY_F11) && HAVE_DECL_KEY_F11))
+#if defined(KEY_F11) || (defined(HAVE_DECL_KEY_F11) && HAVE_DECL_KEY_F11)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F11) == (87), "KEY_F11 != 87");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F11 87
#endif
-#if !(defined(KEY_F12) || (defined(HAVE_DECL_KEY_F12) && HAVE_DECL_KEY_F12))
+#if defined(KEY_F12) || (defined(HAVE_DECL_KEY_F12) && HAVE_DECL_KEY_F12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F12) == (88), "KEY_F12 != 88");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F12 88
#endif
-#if !(defined(KEY_RO) || (defined(HAVE_DECL_KEY_RO) && HAVE_DECL_KEY_RO))
+#if defined(KEY_RO) || (defined(HAVE_DECL_KEY_RO) && HAVE_DECL_KEY_RO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RO) == (89), "KEY_RO != 89");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RO 89
#endif
-#if !(defined(KEY_KATAKANA) || (defined(HAVE_DECL_KEY_KATAKANA) && HAVE_DECL_KEY_KATAKANA))
+#if defined(KEY_KATAKANA) || (defined(HAVE_DECL_KEY_KATAKANA) && HAVE_DECL_KEY_KATAKANA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KATAKANA) == (90), "KEY_KATAKANA != 90");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KATAKANA 90
#endif
-#if !(defined(KEY_HIRAGANA) || (defined(HAVE_DECL_KEY_HIRAGANA) && HAVE_DECL_KEY_HIRAGANA))
+#if defined(KEY_HIRAGANA) || (defined(HAVE_DECL_KEY_HIRAGANA) && HAVE_DECL_KEY_HIRAGANA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HIRAGANA) == (91), "KEY_HIRAGANA != 91");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HIRAGANA 91
#endif
-#if !(defined(KEY_HENKAN) || (defined(HAVE_DECL_KEY_HENKAN) && HAVE_DECL_KEY_HENKAN))
+#if defined(KEY_HENKAN) || (defined(HAVE_DECL_KEY_HENKAN) && HAVE_DECL_KEY_HENKAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HENKAN) == (92), "KEY_HENKAN != 92");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HENKAN 92
#endif
-#if !(defined(KEY_KATAKANAHIRAGANA) || (defined(HAVE_DECL_KEY_KATAKANAHIRAGANA) && HAVE_DECL_KEY_KATAKANAHIRAGANA))
+#if defined(KEY_KATAKANAHIRAGANA) || (defined(HAVE_DECL_KEY_KATAKANAHIRAGANA) && HAVE_DECL_KEY_KATAKANAHIRAGANA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KATAKANAHIRAGANA) == (93), "KEY_KATAKANAHIRAGANA != 93");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KATAKANAHIRAGANA 93
#endif
-#if !(defined(KEY_MUHENKAN) || (defined(HAVE_DECL_KEY_MUHENKAN) && HAVE_DECL_KEY_MUHENKAN))
+#if defined(KEY_MUHENKAN) || (defined(HAVE_DECL_KEY_MUHENKAN) && HAVE_DECL_KEY_MUHENKAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MUHENKAN) == (94), "KEY_MUHENKAN != 94");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MUHENKAN 94
#endif
-#if !(defined(KEY_KPJPCOMMA) || (defined(HAVE_DECL_KEY_KPJPCOMMA) && HAVE_DECL_KEY_KPJPCOMMA))
+#if defined(KEY_KPJPCOMMA) || (defined(HAVE_DECL_KEY_KPJPCOMMA) && HAVE_DECL_KEY_KPJPCOMMA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPJPCOMMA) == (95), "KEY_KPJPCOMMA != 95");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPJPCOMMA 95
#endif
-#if !(defined(KEY_KPENTER) || (defined(HAVE_DECL_KEY_KPENTER) && HAVE_DECL_KEY_KPENTER))
+#if defined(KEY_KPENTER) || (defined(HAVE_DECL_KEY_KPENTER) && HAVE_DECL_KEY_KPENTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPENTER) == (96), "KEY_KPENTER != 96");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPENTER 96
#endif
-#if !(defined(KEY_RIGHTCTRL) || (defined(HAVE_DECL_KEY_RIGHTCTRL) && HAVE_DECL_KEY_RIGHTCTRL))
+#if defined(KEY_RIGHTCTRL) || (defined(HAVE_DECL_KEY_RIGHTCTRL) && HAVE_DECL_KEY_RIGHTCTRL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHTCTRL) == (97), "KEY_RIGHTCTRL != 97");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHTCTRL 97
#endif
-#if !(defined(KEY_KPSLASH) || (defined(HAVE_DECL_KEY_KPSLASH) && HAVE_DECL_KEY_KPSLASH))
+#if defined(KEY_KPSLASH) || (defined(HAVE_DECL_KEY_KPSLASH) && HAVE_DECL_KEY_KPSLASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPSLASH) == (98), "KEY_KPSLASH != 98");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPSLASH 98
#endif
-#if !(defined(KEY_SYSRQ) || (defined(HAVE_DECL_KEY_SYSRQ) && HAVE_DECL_KEY_SYSRQ))
+#if defined(KEY_SYSRQ) || (defined(HAVE_DECL_KEY_SYSRQ) && HAVE_DECL_KEY_SYSRQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SYSRQ) == (99), "KEY_SYSRQ != 99");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SYSRQ 99
#endif
-#if !(defined(KEY_RIGHTALT) || (defined(HAVE_DECL_KEY_RIGHTALT) && HAVE_DECL_KEY_RIGHTALT))
+#if defined(KEY_RIGHTALT) || (defined(HAVE_DECL_KEY_RIGHTALT) && HAVE_DECL_KEY_RIGHTALT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHTALT) == (100), "KEY_RIGHTALT != 100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHTALT 100
#endif
-#if !(defined(KEY_LINEFEED) || (defined(HAVE_DECL_KEY_LINEFEED) && HAVE_DECL_KEY_LINEFEED))
+#if defined(KEY_LINEFEED) || (defined(HAVE_DECL_KEY_LINEFEED) && HAVE_DECL_KEY_LINEFEED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LINEFEED) == (101), "KEY_LINEFEED != 101");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LINEFEED 101
#endif
-#if !(defined(KEY_HOME) || (defined(HAVE_DECL_KEY_HOME) && HAVE_DECL_KEY_HOME))
+#if defined(KEY_HOME) || (defined(HAVE_DECL_KEY_HOME) && HAVE_DECL_KEY_HOME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HOME) == (102), "KEY_HOME != 102");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HOME 102
#endif
-#if !(defined(KEY_UP) || (defined(HAVE_DECL_KEY_UP) && HAVE_DECL_KEY_UP))
+#if defined(KEY_UP) || (defined(HAVE_DECL_KEY_UP) && HAVE_DECL_KEY_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_UP) == (103), "KEY_UP != 103");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_UP 103
#endif
-#if !(defined(KEY_PAGEUP) || (defined(HAVE_DECL_KEY_PAGEUP) && HAVE_DECL_KEY_PAGEUP))
+#if defined(KEY_PAGEUP) || (defined(HAVE_DECL_KEY_PAGEUP) && HAVE_DECL_KEY_PAGEUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PAGEUP) == (104), "KEY_PAGEUP != 104");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PAGEUP 104
#endif
-#if !(defined(KEY_LEFT) || (defined(HAVE_DECL_KEY_LEFT) && HAVE_DECL_KEY_LEFT))
+#if defined(KEY_LEFT) || (defined(HAVE_DECL_KEY_LEFT) && HAVE_DECL_KEY_LEFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFT) == (105), "KEY_LEFT != 105");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFT 105
#endif
-#if !(defined(KEY_RIGHT) || (defined(HAVE_DECL_KEY_RIGHT) && HAVE_DECL_KEY_RIGHT))
+#if defined(KEY_RIGHT) || (defined(HAVE_DECL_KEY_RIGHT) && HAVE_DECL_KEY_RIGHT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHT) == (106), "KEY_RIGHT != 106");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHT 106
#endif
-#if !(defined(KEY_END) || (defined(HAVE_DECL_KEY_END) && HAVE_DECL_KEY_END))
+#if defined(KEY_END) || (defined(HAVE_DECL_KEY_END) && HAVE_DECL_KEY_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_END) == (107), "KEY_END != 107");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_END 107
#endif
-#if !(defined(KEY_DOWN) || (defined(HAVE_DECL_KEY_DOWN) && HAVE_DECL_KEY_DOWN))
+#if defined(KEY_DOWN) || (defined(HAVE_DECL_KEY_DOWN) && HAVE_DECL_KEY_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DOWN) == (108), "KEY_DOWN != 108");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DOWN 108
#endif
-#if !(defined(KEY_PAGEDOWN) || (defined(HAVE_DECL_KEY_PAGEDOWN) && HAVE_DECL_KEY_PAGEDOWN))
+#if defined(KEY_PAGEDOWN) || (defined(HAVE_DECL_KEY_PAGEDOWN) && HAVE_DECL_KEY_PAGEDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PAGEDOWN) == (109), "KEY_PAGEDOWN != 109");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PAGEDOWN 109
#endif
-#if !(defined(KEY_INSERT) || (defined(HAVE_DECL_KEY_INSERT) && HAVE_DECL_KEY_INSERT))
+#if defined(KEY_INSERT) || (defined(HAVE_DECL_KEY_INSERT) && HAVE_DECL_KEY_INSERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_INSERT) == (110), "KEY_INSERT != 110");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_INSERT 110
#endif
-#if !(defined(KEY_DELETE) || (defined(HAVE_DECL_KEY_DELETE) && HAVE_DECL_KEY_DELETE))
+#if defined(KEY_DELETE) || (defined(HAVE_DECL_KEY_DELETE) && HAVE_DECL_KEY_DELETE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DELETE) == (111), "KEY_DELETE != 111");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DELETE 111
#endif
-#if !(defined(KEY_MACRO) || (defined(HAVE_DECL_KEY_MACRO) && HAVE_DECL_KEY_MACRO))
+#if defined(KEY_MACRO) || (defined(HAVE_DECL_KEY_MACRO) && HAVE_DECL_KEY_MACRO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MACRO) == (112), "KEY_MACRO != 112");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MACRO 112
#endif
-#if !(defined(KEY_MUTE) || (defined(HAVE_DECL_KEY_MUTE) && HAVE_DECL_KEY_MUTE))
+#if defined(KEY_MUTE) || (defined(HAVE_DECL_KEY_MUTE) && HAVE_DECL_KEY_MUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MUTE) == (113), "KEY_MUTE != 113");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MUTE 113
#endif
-#if !(defined(KEY_VOLUMEDOWN) || (defined(HAVE_DECL_KEY_VOLUMEDOWN) && HAVE_DECL_KEY_VOLUMEDOWN))
+#if defined(KEY_VOLUMEDOWN) || (defined(HAVE_DECL_KEY_VOLUMEDOWN) && HAVE_DECL_KEY_VOLUMEDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VOLUMEDOWN) == (114), "KEY_VOLUMEDOWN != 114");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VOLUMEDOWN 114
#endif
-#if !(defined(KEY_VOLUMEUP) || (defined(HAVE_DECL_KEY_VOLUMEUP) && HAVE_DECL_KEY_VOLUMEUP))
+#if defined(KEY_VOLUMEUP) || (defined(HAVE_DECL_KEY_VOLUMEUP) && HAVE_DECL_KEY_VOLUMEUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VOLUMEUP) == (115), "KEY_VOLUMEUP != 115");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VOLUMEUP 115
#endif
-#if !(defined(KEY_POWER) || (defined(HAVE_DECL_KEY_POWER) && HAVE_DECL_KEY_POWER))
+#if defined(KEY_POWER) || (defined(HAVE_DECL_KEY_POWER) && HAVE_DECL_KEY_POWER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POWER) == (116), "KEY_POWER != 116");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POWER 116
#endif
-#if !(defined(KEY_KPEQUAL) || (defined(HAVE_DECL_KEY_KPEQUAL) && HAVE_DECL_KEY_KPEQUAL))
+#if defined(KEY_KPEQUAL) || (defined(HAVE_DECL_KEY_KPEQUAL) && HAVE_DECL_KEY_KPEQUAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPEQUAL) == (117), "KEY_KPEQUAL != 117");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPEQUAL 117
#endif
-#if !(defined(KEY_KPPLUSMINUS) || (defined(HAVE_DECL_KEY_KPPLUSMINUS) && HAVE_DECL_KEY_KPPLUSMINUS))
+#if defined(KEY_KPPLUSMINUS) || (defined(HAVE_DECL_KEY_KPPLUSMINUS) && HAVE_DECL_KEY_KPPLUSMINUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPPLUSMINUS) == (118), "KEY_KPPLUSMINUS != 118");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPPLUSMINUS 118
#endif
-#if !(defined(KEY_PAUSE) || (defined(HAVE_DECL_KEY_PAUSE) && HAVE_DECL_KEY_PAUSE))
+#if defined(KEY_PAUSE) || (defined(HAVE_DECL_KEY_PAUSE) && HAVE_DECL_KEY_PAUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PAUSE) == (119), "KEY_PAUSE != 119");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PAUSE 119
#endif
-#if !(defined(KEY_SCALE) || (defined(HAVE_DECL_KEY_SCALE) && HAVE_DECL_KEY_SCALE))
+#if defined(KEY_SCALE) || (defined(HAVE_DECL_KEY_SCALE) && HAVE_DECL_KEY_SCALE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SCALE) == (120), "KEY_SCALE != 120");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SCALE 120
#endif
-#if !(defined(KEY_KPCOMMA) || (defined(HAVE_DECL_KEY_KPCOMMA) && HAVE_DECL_KEY_KPCOMMA))
+#if defined(KEY_KPCOMMA) || (defined(HAVE_DECL_KEY_KPCOMMA) && HAVE_DECL_KEY_KPCOMMA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPCOMMA) == (121), "KEY_KPCOMMA != 121");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPCOMMA 121
#endif
-#if !(defined(KEY_HANGEUL) || (defined(HAVE_DECL_KEY_HANGEUL) && HAVE_DECL_KEY_HANGEUL))
+#if defined(KEY_HANGEUL) || (defined(HAVE_DECL_KEY_HANGEUL) && HAVE_DECL_KEY_HANGEUL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HANGEUL) == (122), "KEY_HANGEUL != 122");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HANGEUL 122
#endif
-#if !(defined(KEY_HANJA) || (defined(HAVE_DECL_KEY_HANJA) && HAVE_DECL_KEY_HANJA))
+#if defined(KEY_HANJA) || (defined(HAVE_DECL_KEY_HANJA) && HAVE_DECL_KEY_HANJA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HANJA) == (123), "KEY_HANJA != 123");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HANJA 123
#endif
-#if !(defined(KEY_YEN) || (defined(HAVE_DECL_KEY_YEN) && HAVE_DECL_KEY_YEN))
+#if defined(KEY_YEN) || (defined(HAVE_DECL_KEY_YEN) && HAVE_DECL_KEY_YEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_YEN) == (124), "KEY_YEN != 124");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_YEN 124
#endif
-#if !(defined(KEY_LEFTMETA) || (defined(HAVE_DECL_KEY_LEFTMETA) && HAVE_DECL_KEY_LEFTMETA))
+#if defined(KEY_LEFTMETA) || (defined(HAVE_DECL_KEY_LEFTMETA) && HAVE_DECL_KEY_LEFTMETA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFTMETA) == (125), "KEY_LEFTMETA != 125");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFTMETA 125
#endif
-#if !(defined(KEY_RIGHTMETA) || (defined(HAVE_DECL_KEY_RIGHTMETA) && HAVE_DECL_KEY_RIGHTMETA))
+#if defined(KEY_RIGHTMETA) || (defined(HAVE_DECL_KEY_RIGHTMETA) && HAVE_DECL_KEY_RIGHTMETA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHTMETA) == (126), "KEY_RIGHTMETA != 126");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHTMETA 126
#endif
-#if !(defined(KEY_COMPOSE) || (defined(HAVE_DECL_KEY_COMPOSE) && HAVE_DECL_KEY_COMPOSE))
+#if defined(KEY_COMPOSE) || (defined(HAVE_DECL_KEY_COMPOSE) && HAVE_DECL_KEY_COMPOSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_COMPOSE) == (127), "KEY_COMPOSE != 127");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_COMPOSE 127
#endif
-#if !(defined(KEY_STOP) || (defined(HAVE_DECL_KEY_STOP) && HAVE_DECL_KEY_STOP))
+#if defined(KEY_STOP) || (defined(HAVE_DECL_KEY_STOP) && HAVE_DECL_KEY_STOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_STOP) == (128), "KEY_STOP != 128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_STOP 128
#endif
-#if !(defined(KEY_AGAIN) || (defined(HAVE_DECL_KEY_AGAIN) && HAVE_DECL_KEY_AGAIN))
+#if defined(KEY_AGAIN) || (defined(HAVE_DECL_KEY_AGAIN) && HAVE_DECL_KEY_AGAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_AGAIN) == (129), "KEY_AGAIN != 129");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_AGAIN 129
#endif
-#if !(defined(KEY_PROPS) || (defined(HAVE_DECL_KEY_PROPS) && HAVE_DECL_KEY_PROPS))
+#if defined(KEY_PROPS) || (defined(HAVE_DECL_KEY_PROPS) && HAVE_DECL_KEY_PROPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PROPS) == (130), "KEY_PROPS != 130");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PROPS 130
#endif
-#if !(defined(KEY_UNDO) || (defined(HAVE_DECL_KEY_UNDO) && HAVE_DECL_KEY_UNDO))
+#if defined(KEY_UNDO) || (defined(HAVE_DECL_KEY_UNDO) && HAVE_DECL_KEY_UNDO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_UNDO) == (131), "KEY_UNDO != 131");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_UNDO 131
#endif
-#if !(defined(KEY_FRONT) || (defined(HAVE_DECL_KEY_FRONT) && HAVE_DECL_KEY_FRONT))
+#if defined(KEY_FRONT) || (defined(HAVE_DECL_KEY_FRONT) && HAVE_DECL_KEY_FRONT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FRONT) == (132), "KEY_FRONT != 132");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FRONT 132
#endif
-#if !(defined(KEY_COPY) || (defined(HAVE_DECL_KEY_COPY) && HAVE_DECL_KEY_COPY))
+#if defined(KEY_COPY) || (defined(HAVE_DECL_KEY_COPY) && HAVE_DECL_KEY_COPY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_COPY) == (133), "KEY_COPY != 133");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_COPY 133
#endif
-#if !(defined(KEY_OPEN) || (defined(HAVE_DECL_KEY_OPEN) && HAVE_DECL_KEY_OPEN))
+#if defined(KEY_OPEN) || (defined(HAVE_DECL_KEY_OPEN) && HAVE_DECL_KEY_OPEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OPEN) == (134), "KEY_OPEN != 134");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OPEN 134
#endif
-#if !(defined(KEY_PASTE) || (defined(HAVE_DECL_KEY_PASTE) && HAVE_DECL_KEY_PASTE))
+#if defined(KEY_PASTE) || (defined(HAVE_DECL_KEY_PASTE) && HAVE_DECL_KEY_PASTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PASTE) == (135), "KEY_PASTE != 135");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PASTE 135
#endif
-#if !(defined(KEY_FIND) || (defined(HAVE_DECL_KEY_FIND) && HAVE_DECL_KEY_FIND))
+#if defined(KEY_FIND) || (defined(HAVE_DECL_KEY_FIND) && HAVE_DECL_KEY_FIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FIND) == (136), "KEY_FIND != 136");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FIND 136
#endif
-#if !(defined(KEY_CUT) || (defined(HAVE_DECL_KEY_CUT) && HAVE_DECL_KEY_CUT))
+#if defined(KEY_CUT) || (defined(HAVE_DECL_KEY_CUT) && HAVE_DECL_KEY_CUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CUT) == (137), "KEY_CUT != 137");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CUT 137
#endif
-#if !(defined(KEY_HELP) || (defined(HAVE_DECL_KEY_HELP) && HAVE_DECL_KEY_HELP))
+#if defined(KEY_HELP) || (defined(HAVE_DECL_KEY_HELP) && HAVE_DECL_KEY_HELP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HELP) == (138), "KEY_HELP != 138");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HELP 138
#endif
-#if !(defined(KEY_MENU) || (defined(HAVE_DECL_KEY_MENU) && HAVE_DECL_KEY_MENU))
+#if defined(KEY_MENU) || (defined(HAVE_DECL_KEY_MENU) && HAVE_DECL_KEY_MENU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MENU) == (139), "KEY_MENU != 139");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MENU 139
#endif
-#if !(defined(KEY_CALC) || (defined(HAVE_DECL_KEY_CALC) && HAVE_DECL_KEY_CALC))
+#if defined(KEY_CALC) || (defined(HAVE_DECL_KEY_CALC) && HAVE_DECL_KEY_CALC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CALC) == (140), "KEY_CALC != 140");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CALC 140
#endif
-#if !(defined(KEY_SETUP) || (defined(HAVE_DECL_KEY_SETUP) && HAVE_DECL_KEY_SETUP))
+#if defined(KEY_SETUP) || (defined(HAVE_DECL_KEY_SETUP) && HAVE_DECL_KEY_SETUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SETUP) == (141), "KEY_SETUP != 141");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SETUP 141
#endif
-#if !(defined(KEY_SLEEP) || (defined(HAVE_DECL_KEY_SLEEP) && HAVE_DECL_KEY_SLEEP))
+#if defined(KEY_SLEEP) || (defined(HAVE_DECL_KEY_SLEEP) && HAVE_DECL_KEY_SLEEP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SLEEP) == (142), "KEY_SLEEP != 142");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SLEEP 142
#endif
-#if !(defined(KEY_WAKEUP) || (defined(HAVE_DECL_KEY_WAKEUP) && HAVE_DECL_KEY_WAKEUP))
+#if defined(KEY_WAKEUP) || (defined(HAVE_DECL_KEY_WAKEUP) && HAVE_DECL_KEY_WAKEUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_WAKEUP) == (143), "KEY_WAKEUP != 143");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_WAKEUP 143
#endif
-#if !(defined(KEY_FILE) || (defined(HAVE_DECL_KEY_FILE) && HAVE_DECL_KEY_FILE))
+#if defined(KEY_FILE) || (defined(HAVE_DECL_KEY_FILE) && HAVE_DECL_KEY_FILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FILE) == (144), "KEY_FILE != 144");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FILE 144
#endif
-#if !(defined(KEY_SENDFILE) || (defined(HAVE_DECL_KEY_SENDFILE) && HAVE_DECL_KEY_SENDFILE))
+#if defined(KEY_SENDFILE) || (defined(HAVE_DECL_KEY_SENDFILE) && HAVE_DECL_KEY_SENDFILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SENDFILE) == (145), "KEY_SENDFILE != 145");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SENDFILE 145
#endif
-#if !(defined(KEY_DELETEFILE) || (defined(HAVE_DECL_KEY_DELETEFILE) && HAVE_DECL_KEY_DELETEFILE))
+#if defined(KEY_DELETEFILE) || (defined(HAVE_DECL_KEY_DELETEFILE) && HAVE_DECL_KEY_DELETEFILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DELETEFILE) == (146), "KEY_DELETEFILE != 146");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DELETEFILE 146
#endif
-#if !(defined(KEY_XFER) || (defined(HAVE_DECL_KEY_XFER) && HAVE_DECL_KEY_XFER))
+#if defined(KEY_XFER) || (defined(HAVE_DECL_KEY_XFER) && HAVE_DECL_KEY_XFER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_XFER) == (147), "KEY_XFER != 147");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_XFER 147
#endif
-#if !(defined(KEY_PROG1) || (defined(HAVE_DECL_KEY_PROG1) && HAVE_DECL_KEY_PROG1))
+#if defined(KEY_PROG1) || (defined(HAVE_DECL_KEY_PROG1) && HAVE_DECL_KEY_PROG1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PROG1) == (148), "KEY_PROG1 != 148");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PROG1 148
#endif
-#if !(defined(KEY_PROG2) || (defined(HAVE_DECL_KEY_PROG2) && HAVE_DECL_KEY_PROG2))
+#if defined(KEY_PROG2) || (defined(HAVE_DECL_KEY_PROG2) && HAVE_DECL_KEY_PROG2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PROG2) == (149), "KEY_PROG2 != 149");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PROG2 149
#endif
-#if !(defined(KEY_WWW) || (defined(HAVE_DECL_KEY_WWW) && HAVE_DECL_KEY_WWW))
+#if defined(KEY_WWW) || (defined(HAVE_DECL_KEY_WWW) && HAVE_DECL_KEY_WWW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_WWW) == (150), "KEY_WWW != 150");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_WWW 150
#endif
-#if !(defined(KEY_MSDOS) || (defined(HAVE_DECL_KEY_MSDOS) && HAVE_DECL_KEY_MSDOS))
+#if defined(KEY_MSDOS) || (defined(HAVE_DECL_KEY_MSDOS) && HAVE_DECL_KEY_MSDOS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MSDOS) == (151), "KEY_MSDOS != 151");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MSDOS 151
#endif
-#if !(defined(KEY_COFFEE) || (defined(HAVE_DECL_KEY_COFFEE) && HAVE_DECL_KEY_COFFEE))
+#if defined(KEY_COFFEE) || (defined(HAVE_DECL_KEY_COFFEE) && HAVE_DECL_KEY_COFFEE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_COFFEE) == (152), "KEY_COFFEE != 152");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_COFFEE 152
#endif
-#if !(defined(KEY_ROTATE_DISPLAY) || (defined(HAVE_DECL_KEY_ROTATE_DISPLAY) && HAVE_DECL_KEY_ROTATE_DISPLAY))
+#if defined(KEY_ROTATE_DISPLAY) || (defined(HAVE_DECL_KEY_ROTATE_DISPLAY) && HAVE_DECL_KEY_ROTATE_DISPLAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ROTATE_DISPLAY) == (153), "KEY_ROTATE_DISPLAY != 153");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ROTATE_DISPLAY 153
#endif
-#if !(defined(KEY_CYCLEWINDOWS) || (defined(HAVE_DECL_KEY_CYCLEWINDOWS) && HAVE_DECL_KEY_CYCLEWINDOWS))
+#if defined(KEY_CYCLEWINDOWS) || (defined(HAVE_DECL_KEY_CYCLEWINDOWS) && HAVE_DECL_KEY_CYCLEWINDOWS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CYCLEWINDOWS) == (154), "KEY_CYCLEWINDOWS != 154");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CYCLEWINDOWS 154
#endif
-#if !(defined(KEY_MAIL) || (defined(HAVE_DECL_KEY_MAIL) && HAVE_DECL_KEY_MAIL))
+#if defined(KEY_MAIL) || (defined(HAVE_DECL_KEY_MAIL) && HAVE_DECL_KEY_MAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MAIL) == (155), "KEY_MAIL != 155");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MAIL 155
#endif
-#if !(defined(KEY_BOOKMARKS) || (defined(HAVE_DECL_KEY_BOOKMARKS) && HAVE_DECL_KEY_BOOKMARKS))
+#if defined(KEY_BOOKMARKS) || (defined(HAVE_DECL_KEY_BOOKMARKS) && HAVE_DECL_KEY_BOOKMARKS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BOOKMARKS) == (156), "KEY_BOOKMARKS != 156");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BOOKMARKS 156
#endif
-#if !(defined(KEY_COMPUTER) || (defined(HAVE_DECL_KEY_COMPUTER) && HAVE_DECL_KEY_COMPUTER))
+#if defined(KEY_COMPUTER) || (defined(HAVE_DECL_KEY_COMPUTER) && HAVE_DECL_KEY_COMPUTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_COMPUTER) == (157), "KEY_COMPUTER != 157");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_COMPUTER 157
#endif
-#if !(defined(KEY_BACK) || (defined(HAVE_DECL_KEY_BACK) && HAVE_DECL_KEY_BACK))
+#if defined(KEY_BACK) || (defined(HAVE_DECL_KEY_BACK) && HAVE_DECL_KEY_BACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BACK) == (158), "KEY_BACK != 158");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BACK 158
#endif
-#if !(defined(KEY_FORWARD) || (defined(HAVE_DECL_KEY_FORWARD) && HAVE_DECL_KEY_FORWARD))
+#if defined(KEY_FORWARD) || (defined(HAVE_DECL_KEY_FORWARD) && HAVE_DECL_KEY_FORWARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FORWARD) == (159), "KEY_FORWARD != 159");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FORWARD 159
#endif
-#if !(defined(KEY_CLOSECD) || (defined(HAVE_DECL_KEY_CLOSECD) && HAVE_DECL_KEY_CLOSECD))
+#if defined(KEY_CLOSECD) || (defined(HAVE_DECL_KEY_CLOSECD) && HAVE_DECL_KEY_CLOSECD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CLOSECD) == (160), "KEY_CLOSECD != 160");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CLOSECD 160
#endif
-#if !(defined(KEY_EJECTCD) || (defined(HAVE_DECL_KEY_EJECTCD) && HAVE_DECL_KEY_EJECTCD))
+#if defined(KEY_EJECTCD) || (defined(HAVE_DECL_KEY_EJECTCD) && HAVE_DECL_KEY_EJECTCD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EJECTCD) == (161), "KEY_EJECTCD != 161");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EJECTCD 161
#endif
-#if !(defined(KEY_EJECTCLOSECD) || (defined(HAVE_DECL_KEY_EJECTCLOSECD) && HAVE_DECL_KEY_EJECTCLOSECD))
+#if defined(KEY_EJECTCLOSECD) || (defined(HAVE_DECL_KEY_EJECTCLOSECD) && HAVE_DECL_KEY_EJECTCLOSECD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EJECTCLOSECD) == (162), "KEY_EJECTCLOSECD != 162");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EJECTCLOSECD 162
#endif
-#if !(defined(KEY_NEXTSONG) || (defined(HAVE_DECL_KEY_NEXTSONG) && HAVE_DECL_KEY_NEXTSONG))
+#if defined(KEY_NEXTSONG) || (defined(HAVE_DECL_KEY_NEXTSONG) && HAVE_DECL_KEY_NEXTSONG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NEXTSONG) == (163), "KEY_NEXTSONG != 163");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NEXTSONG 163
#endif
-#if !(defined(KEY_PLAYPAUSE) || (defined(HAVE_DECL_KEY_PLAYPAUSE) && HAVE_DECL_KEY_PLAYPAUSE))
+#if defined(KEY_PLAYPAUSE) || (defined(HAVE_DECL_KEY_PLAYPAUSE) && HAVE_DECL_KEY_PLAYPAUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PLAYPAUSE) == (164), "KEY_PLAYPAUSE != 164");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PLAYPAUSE 164
#endif
-#if !(defined(KEY_PREVIOUSSONG) || (defined(HAVE_DECL_KEY_PREVIOUSSONG) && HAVE_DECL_KEY_PREVIOUSSONG))
+#if defined(KEY_PREVIOUSSONG) || (defined(HAVE_DECL_KEY_PREVIOUSSONG) && HAVE_DECL_KEY_PREVIOUSSONG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PREVIOUSSONG) == (165), "KEY_PREVIOUSSONG != 165");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PREVIOUSSONG 165
#endif
-#if !(defined(KEY_STOPCD) || (defined(HAVE_DECL_KEY_STOPCD) && HAVE_DECL_KEY_STOPCD))
+#if defined(KEY_STOPCD) || (defined(HAVE_DECL_KEY_STOPCD) && HAVE_DECL_KEY_STOPCD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_STOPCD) == (166), "KEY_STOPCD != 166");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_STOPCD 166
#endif
-#if !(defined(KEY_RECORD) || (defined(HAVE_DECL_KEY_RECORD) && HAVE_DECL_KEY_RECORD))
+#if defined(KEY_RECORD) || (defined(HAVE_DECL_KEY_RECORD) && HAVE_DECL_KEY_RECORD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RECORD) == (167), "KEY_RECORD != 167");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RECORD 167
#endif
-#if !(defined(KEY_REWIND) || (defined(HAVE_DECL_KEY_REWIND) && HAVE_DECL_KEY_REWIND))
+#if defined(KEY_REWIND) || (defined(HAVE_DECL_KEY_REWIND) && HAVE_DECL_KEY_REWIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REWIND) == (168), "KEY_REWIND != 168");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REWIND 168
#endif
-#if !(defined(KEY_PHONE) || (defined(HAVE_DECL_KEY_PHONE) && HAVE_DECL_KEY_PHONE))
+#if defined(KEY_PHONE) || (defined(HAVE_DECL_KEY_PHONE) && HAVE_DECL_KEY_PHONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PHONE) == (169), "KEY_PHONE != 169");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PHONE 169
#endif
-#if !(defined(KEY_ISO) || (defined(HAVE_DECL_KEY_ISO) && HAVE_DECL_KEY_ISO))
+#if defined(KEY_ISO) || (defined(HAVE_DECL_KEY_ISO) && HAVE_DECL_KEY_ISO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ISO) == (170), "KEY_ISO != 170");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ISO 170
#endif
-#if !(defined(KEY_CONFIG) || (defined(HAVE_DECL_KEY_CONFIG) && HAVE_DECL_KEY_CONFIG))
+#if defined(KEY_CONFIG) || (defined(HAVE_DECL_KEY_CONFIG) && HAVE_DECL_KEY_CONFIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CONFIG) == (171), "KEY_CONFIG != 171");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CONFIG 171
#endif
-#if !(defined(KEY_HOMEPAGE) || (defined(HAVE_DECL_KEY_HOMEPAGE) && HAVE_DECL_KEY_HOMEPAGE))
+#if defined(KEY_HOMEPAGE) || (defined(HAVE_DECL_KEY_HOMEPAGE) && HAVE_DECL_KEY_HOMEPAGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HOMEPAGE) == (172), "KEY_HOMEPAGE != 172");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HOMEPAGE 172
#endif
-#if !(defined(KEY_REFRESH) || (defined(HAVE_DECL_KEY_REFRESH) && HAVE_DECL_KEY_REFRESH))
+#if defined(KEY_REFRESH) || (defined(HAVE_DECL_KEY_REFRESH) && HAVE_DECL_KEY_REFRESH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REFRESH) == (173), "KEY_REFRESH != 173");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REFRESH 173
#endif
-#if !(defined(KEY_EXIT) || (defined(HAVE_DECL_KEY_EXIT) && HAVE_DECL_KEY_EXIT))
+#if defined(KEY_EXIT) || (defined(HAVE_DECL_KEY_EXIT) && HAVE_DECL_KEY_EXIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EXIT) == (174), "KEY_EXIT != 174");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EXIT 174
#endif
-#if !(defined(KEY_MOVE) || (defined(HAVE_DECL_KEY_MOVE) && HAVE_DECL_KEY_MOVE))
+#if defined(KEY_MOVE) || (defined(HAVE_DECL_KEY_MOVE) && HAVE_DECL_KEY_MOVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MOVE) == (175), "KEY_MOVE != 175");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MOVE 175
#endif
-#if !(defined(KEY_EDIT) || (defined(HAVE_DECL_KEY_EDIT) && HAVE_DECL_KEY_EDIT))
+#if defined(KEY_EDIT) || (defined(HAVE_DECL_KEY_EDIT) && HAVE_DECL_KEY_EDIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EDIT) == (176), "KEY_EDIT != 176");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EDIT 176
#endif
-#if !(defined(KEY_SCROLLUP) || (defined(HAVE_DECL_KEY_SCROLLUP) && HAVE_DECL_KEY_SCROLLUP))
+#if defined(KEY_SCROLLUP) || (defined(HAVE_DECL_KEY_SCROLLUP) && HAVE_DECL_KEY_SCROLLUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SCROLLUP) == (177), "KEY_SCROLLUP != 177");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SCROLLUP 177
#endif
-#if !(defined(KEY_SCROLLDOWN) || (defined(HAVE_DECL_KEY_SCROLLDOWN) && HAVE_DECL_KEY_SCROLLDOWN))
+#if defined(KEY_SCROLLDOWN) || (defined(HAVE_DECL_KEY_SCROLLDOWN) && HAVE_DECL_KEY_SCROLLDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SCROLLDOWN) == (178), "KEY_SCROLLDOWN != 178");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SCROLLDOWN 178
#endif
-#if !(defined(KEY_KPLEFTPAREN) || (defined(HAVE_DECL_KEY_KPLEFTPAREN) && HAVE_DECL_KEY_KPLEFTPAREN))
+#if defined(KEY_KPLEFTPAREN) || (defined(HAVE_DECL_KEY_KPLEFTPAREN) && HAVE_DECL_KEY_KPLEFTPAREN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPLEFTPAREN) == (179), "KEY_KPLEFTPAREN != 179");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPLEFTPAREN 179
#endif
-#if !(defined(KEY_KPRIGHTPAREN) || (defined(HAVE_DECL_KEY_KPRIGHTPAREN) && HAVE_DECL_KEY_KPRIGHTPAREN))
+#if defined(KEY_KPRIGHTPAREN) || (defined(HAVE_DECL_KEY_KPRIGHTPAREN) && HAVE_DECL_KEY_KPRIGHTPAREN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KPRIGHTPAREN) == (180), "KEY_KPRIGHTPAREN != 180");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KPRIGHTPAREN 180
#endif
-#if !(defined(KEY_NEW) || (defined(HAVE_DECL_KEY_NEW) && HAVE_DECL_KEY_NEW))
+#if defined(KEY_NEW) || (defined(HAVE_DECL_KEY_NEW) && HAVE_DECL_KEY_NEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NEW) == (181), "KEY_NEW != 181");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NEW 181
#endif
-#if !(defined(KEY_REDO) || (defined(HAVE_DECL_KEY_REDO) && HAVE_DECL_KEY_REDO))
+#if defined(KEY_REDO) || (defined(HAVE_DECL_KEY_REDO) && HAVE_DECL_KEY_REDO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REDO) == (182), "KEY_REDO != 182");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REDO 182
#endif
-#if !(defined(KEY_F13) || (defined(HAVE_DECL_KEY_F13) && HAVE_DECL_KEY_F13))
+#if defined(KEY_F13) || (defined(HAVE_DECL_KEY_F13) && HAVE_DECL_KEY_F13)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F13) == (183), "KEY_F13 != 183");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F13 183
#endif
-#if !(defined(KEY_F14) || (defined(HAVE_DECL_KEY_F14) && HAVE_DECL_KEY_F14))
+#if defined(KEY_F14) || (defined(HAVE_DECL_KEY_F14) && HAVE_DECL_KEY_F14)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F14) == (184), "KEY_F14 != 184");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F14 184
#endif
-#if !(defined(KEY_F15) || (defined(HAVE_DECL_KEY_F15) && HAVE_DECL_KEY_F15))
+#if defined(KEY_F15) || (defined(HAVE_DECL_KEY_F15) && HAVE_DECL_KEY_F15)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F15) == (185), "KEY_F15 != 185");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F15 185
#endif
-#if !(defined(KEY_F16) || (defined(HAVE_DECL_KEY_F16) && HAVE_DECL_KEY_F16))
+#if defined(KEY_F16) || (defined(HAVE_DECL_KEY_F16) && HAVE_DECL_KEY_F16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F16) == (186), "KEY_F16 != 186");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F16 186
#endif
-#if !(defined(KEY_F17) || (defined(HAVE_DECL_KEY_F17) && HAVE_DECL_KEY_F17))
+#if defined(KEY_F17) || (defined(HAVE_DECL_KEY_F17) && HAVE_DECL_KEY_F17)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F17) == (187), "KEY_F17 != 187");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F17 187
#endif
-#if !(defined(KEY_F18) || (defined(HAVE_DECL_KEY_F18) && HAVE_DECL_KEY_F18))
+#if defined(KEY_F18) || (defined(HAVE_DECL_KEY_F18) && HAVE_DECL_KEY_F18)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F18) == (188), "KEY_F18 != 188");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F18 188
#endif
-#if !(defined(KEY_F19) || (defined(HAVE_DECL_KEY_F19) && HAVE_DECL_KEY_F19))
+#if defined(KEY_F19) || (defined(HAVE_DECL_KEY_F19) && HAVE_DECL_KEY_F19)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F19) == (189), "KEY_F19 != 189");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F19 189
#endif
-#if !(defined(KEY_F20) || (defined(HAVE_DECL_KEY_F20) && HAVE_DECL_KEY_F20))
+#if defined(KEY_F20) || (defined(HAVE_DECL_KEY_F20) && HAVE_DECL_KEY_F20)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F20) == (190), "KEY_F20 != 190");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F20 190
#endif
-#if !(defined(KEY_F21) || (defined(HAVE_DECL_KEY_F21) && HAVE_DECL_KEY_F21))
+#if defined(KEY_F21) || (defined(HAVE_DECL_KEY_F21) && HAVE_DECL_KEY_F21)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F21) == (191), "KEY_F21 != 191");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F21 191
#endif
-#if !(defined(KEY_F22) || (defined(HAVE_DECL_KEY_F22) && HAVE_DECL_KEY_F22))
+#if defined(KEY_F22) || (defined(HAVE_DECL_KEY_F22) && HAVE_DECL_KEY_F22)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F22) == (192), "KEY_F22 != 192");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F22 192
#endif
-#if !(defined(KEY_F23) || (defined(HAVE_DECL_KEY_F23) && HAVE_DECL_KEY_F23))
+#if defined(KEY_F23) || (defined(HAVE_DECL_KEY_F23) && HAVE_DECL_KEY_F23)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F23) == (193), "KEY_F23 != 193");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F23 193
#endif
-#if !(defined(KEY_F24) || (defined(HAVE_DECL_KEY_F24) && HAVE_DECL_KEY_F24))
+#if defined(KEY_F24) || (defined(HAVE_DECL_KEY_F24) && HAVE_DECL_KEY_F24)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_F24) == (194), "KEY_F24 != 194");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_F24 194
#endif
-#if !(defined(KEY_PLAYCD) || (defined(HAVE_DECL_KEY_PLAYCD) && HAVE_DECL_KEY_PLAYCD))
+#if defined(KEY_PLAYCD) || (defined(HAVE_DECL_KEY_PLAYCD) && HAVE_DECL_KEY_PLAYCD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PLAYCD) == (200), "KEY_PLAYCD != 200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PLAYCD 200
#endif
-#if !(defined(KEY_PAUSECD) || (defined(HAVE_DECL_KEY_PAUSECD) && HAVE_DECL_KEY_PAUSECD))
+#if defined(KEY_PAUSECD) || (defined(HAVE_DECL_KEY_PAUSECD) && HAVE_DECL_KEY_PAUSECD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PAUSECD) == (201), "KEY_PAUSECD != 201");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PAUSECD 201
#endif
-#if !(defined(KEY_PROG3) || (defined(HAVE_DECL_KEY_PROG3) && HAVE_DECL_KEY_PROG3))
+#if defined(KEY_PROG3) || (defined(HAVE_DECL_KEY_PROG3) && HAVE_DECL_KEY_PROG3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PROG3) == (202), "KEY_PROG3 != 202");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PROG3 202
#endif
-#if !(defined(KEY_PROG4) || (defined(HAVE_DECL_KEY_PROG4) && HAVE_DECL_KEY_PROG4))
+#if defined(KEY_PROG4) || (defined(HAVE_DECL_KEY_PROG4) && HAVE_DECL_KEY_PROG4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PROG4) == (203), "KEY_PROG4 != 203");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PROG4 203
#endif
-#if !(defined(KEY_DASHBOARD) || (defined(HAVE_DECL_KEY_DASHBOARD) && HAVE_DECL_KEY_DASHBOARD))
+#if defined(KEY_DASHBOARD) || (defined(HAVE_DECL_KEY_DASHBOARD) && HAVE_DECL_KEY_DASHBOARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DASHBOARD) == (204), "KEY_DASHBOARD != 204");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DASHBOARD 204
#endif
-#if !(defined(KEY_SUSPEND) || (defined(HAVE_DECL_KEY_SUSPEND) && HAVE_DECL_KEY_SUSPEND))
+#if defined(KEY_SUSPEND) || (defined(HAVE_DECL_KEY_SUSPEND) && HAVE_DECL_KEY_SUSPEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SUSPEND) == (205), "KEY_SUSPEND != 205");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SUSPEND 205
#endif
-#if !(defined(KEY_CLOSE) || (defined(HAVE_DECL_KEY_CLOSE) && HAVE_DECL_KEY_CLOSE))
+#if defined(KEY_CLOSE) || (defined(HAVE_DECL_KEY_CLOSE) && HAVE_DECL_KEY_CLOSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CLOSE) == (206), "KEY_CLOSE != 206");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CLOSE 206
#endif
-#if !(defined(KEY_PLAY) || (defined(HAVE_DECL_KEY_PLAY) && HAVE_DECL_KEY_PLAY))
+#if defined(KEY_PLAY) || (defined(HAVE_DECL_KEY_PLAY) && HAVE_DECL_KEY_PLAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PLAY) == (207), "KEY_PLAY != 207");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PLAY 207
#endif
-#if !(defined(KEY_FASTFORWARD) || (defined(HAVE_DECL_KEY_FASTFORWARD) && HAVE_DECL_KEY_FASTFORWARD))
+#if defined(KEY_FASTFORWARD) || (defined(HAVE_DECL_KEY_FASTFORWARD) && HAVE_DECL_KEY_FASTFORWARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FASTFORWARD) == (208), "KEY_FASTFORWARD != 208");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FASTFORWARD 208
#endif
-#if !(defined(KEY_BASSBOOST) || (defined(HAVE_DECL_KEY_BASSBOOST) && HAVE_DECL_KEY_BASSBOOST))
+#if defined(KEY_BASSBOOST) || (defined(HAVE_DECL_KEY_BASSBOOST) && HAVE_DECL_KEY_BASSBOOST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BASSBOOST) == (209), "KEY_BASSBOOST != 209");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BASSBOOST 209
#endif
-#if !(defined(KEY_PRINT) || (defined(HAVE_DECL_KEY_PRINT) && HAVE_DECL_KEY_PRINT))
+#if defined(KEY_PRINT) || (defined(HAVE_DECL_KEY_PRINT) && HAVE_DECL_KEY_PRINT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PRINT) == (210), "KEY_PRINT != 210");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PRINT 210
#endif
-#if !(defined(KEY_HP) || (defined(HAVE_DECL_KEY_HP) && HAVE_DECL_KEY_HP))
+#if defined(KEY_HP) || (defined(HAVE_DECL_KEY_HP) && HAVE_DECL_KEY_HP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_HP) == (211), "KEY_HP != 211");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_HP 211
#endif
-#if !(defined(KEY_CAMERA) || (defined(HAVE_DECL_KEY_CAMERA) && HAVE_DECL_KEY_CAMERA))
+#if defined(KEY_CAMERA) || (defined(HAVE_DECL_KEY_CAMERA) && HAVE_DECL_KEY_CAMERA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA) == (212), "KEY_CAMERA != 212");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA 212
#endif
-#if !(defined(KEY_SOUND) || (defined(HAVE_DECL_KEY_SOUND) && HAVE_DECL_KEY_SOUND))
+#if defined(KEY_SOUND) || (defined(HAVE_DECL_KEY_SOUND) && HAVE_DECL_KEY_SOUND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SOUND) == (213), "KEY_SOUND != 213");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SOUND 213
#endif
-#if !(defined(KEY_QUESTION) || (defined(HAVE_DECL_KEY_QUESTION) && HAVE_DECL_KEY_QUESTION))
+#if defined(KEY_QUESTION) || (defined(HAVE_DECL_KEY_QUESTION) && HAVE_DECL_KEY_QUESTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_QUESTION) == (214), "KEY_QUESTION != 214");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_QUESTION 214
#endif
-#if !(defined(KEY_EMAIL) || (defined(HAVE_DECL_KEY_EMAIL) && HAVE_DECL_KEY_EMAIL))
+#if defined(KEY_EMAIL) || (defined(HAVE_DECL_KEY_EMAIL) && HAVE_DECL_KEY_EMAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EMAIL) == (215), "KEY_EMAIL != 215");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EMAIL 215
#endif
-#if !(defined(KEY_CHAT) || (defined(HAVE_DECL_KEY_CHAT) && HAVE_DECL_KEY_CHAT))
+#if defined(KEY_CHAT) || (defined(HAVE_DECL_KEY_CHAT) && HAVE_DECL_KEY_CHAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CHAT) == (216), "KEY_CHAT != 216");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CHAT 216
#endif
-#if !(defined(KEY_SEARCH) || (defined(HAVE_DECL_KEY_SEARCH) && HAVE_DECL_KEY_SEARCH))
+#if defined(KEY_SEARCH) || (defined(HAVE_DECL_KEY_SEARCH) && HAVE_DECL_KEY_SEARCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SEARCH) == (217), "KEY_SEARCH != 217");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SEARCH 217
#endif
-#if !(defined(KEY_CONNECT) || (defined(HAVE_DECL_KEY_CONNECT) && HAVE_DECL_KEY_CONNECT))
+#if defined(KEY_CONNECT) || (defined(HAVE_DECL_KEY_CONNECT) && HAVE_DECL_KEY_CONNECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CONNECT) == (218), "KEY_CONNECT != 218");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CONNECT 218
#endif
-#if !(defined(KEY_FINANCE) || (defined(HAVE_DECL_KEY_FINANCE) && HAVE_DECL_KEY_FINANCE))
+#if defined(KEY_FINANCE) || (defined(HAVE_DECL_KEY_FINANCE) && HAVE_DECL_KEY_FINANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FINANCE) == (219), "KEY_FINANCE != 219");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FINANCE 219
#endif
-#if !(defined(KEY_SPORT) || (defined(HAVE_DECL_KEY_SPORT) && HAVE_DECL_KEY_SPORT))
+#if defined(KEY_SPORT) || (defined(HAVE_DECL_KEY_SPORT) && HAVE_DECL_KEY_SPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPORT) == (220), "KEY_SPORT != 220");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPORT 220
#endif
-#if !(defined(KEY_SHOP) || (defined(HAVE_DECL_KEY_SHOP) && HAVE_DECL_KEY_SHOP))
+#if defined(KEY_SHOP) || (defined(HAVE_DECL_KEY_SHOP) && HAVE_DECL_KEY_SHOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SHOP) == (221), "KEY_SHOP != 221");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SHOP 221
#endif
-#if !(defined(KEY_ALTERASE) || (defined(HAVE_DECL_KEY_ALTERASE) && HAVE_DECL_KEY_ALTERASE))
+#if defined(KEY_ALTERASE) || (defined(HAVE_DECL_KEY_ALTERASE) && HAVE_DECL_KEY_ALTERASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ALTERASE) == (222), "KEY_ALTERASE != 222");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ALTERASE 222
#endif
-#if !(defined(KEY_CANCEL) || (defined(HAVE_DECL_KEY_CANCEL) && HAVE_DECL_KEY_CANCEL))
+#if defined(KEY_CANCEL) || (defined(HAVE_DECL_KEY_CANCEL) && HAVE_DECL_KEY_CANCEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CANCEL) == (223), "KEY_CANCEL != 223");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CANCEL 223
#endif
-#if !(defined(KEY_BRIGHTNESSDOWN) || (defined(HAVE_DECL_KEY_BRIGHTNESSDOWN) && HAVE_DECL_KEY_BRIGHTNESSDOWN))
+#if defined(KEY_BRIGHTNESSDOWN) || (defined(HAVE_DECL_KEY_BRIGHTNESSDOWN) && HAVE_DECL_KEY_BRIGHTNESSDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRIGHTNESSDOWN) == (224), "KEY_BRIGHTNESSDOWN != 224");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRIGHTNESSDOWN 224
#endif
-#if !(defined(KEY_BRIGHTNESSUP) || (defined(HAVE_DECL_KEY_BRIGHTNESSUP) && HAVE_DECL_KEY_BRIGHTNESSUP))
+#if defined(KEY_BRIGHTNESSUP) || (defined(HAVE_DECL_KEY_BRIGHTNESSUP) && HAVE_DECL_KEY_BRIGHTNESSUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRIGHTNESSUP) == (225), "KEY_BRIGHTNESSUP != 225");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRIGHTNESSUP 225
#endif
-#if !(defined(KEY_MEDIA) || (defined(HAVE_DECL_KEY_MEDIA) && HAVE_DECL_KEY_MEDIA))
+#if defined(KEY_MEDIA) || (defined(HAVE_DECL_KEY_MEDIA) && HAVE_DECL_KEY_MEDIA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MEDIA) == (226), "KEY_MEDIA != 226");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MEDIA 226
#endif
-#if !(defined(KEY_SWITCHVIDEOMODE) || (defined(HAVE_DECL_KEY_SWITCHVIDEOMODE) && HAVE_DECL_KEY_SWITCHVIDEOMODE))
+#if defined(KEY_SWITCHVIDEOMODE) || (defined(HAVE_DECL_KEY_SWITCHVIDEOMODE) && HAVE_DECL_KEY_SWITCHVIDEOMODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SWITCHVIDEOMODE) == (227), "KEY_SWITCHVIDEOMODE != 227");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SWITCHVIDEOMODE 227
#endif
-#if !(defined(KEY_KBDILLUMTOGGLE) || (defined(HAVE_DECL_KEY_KBDILLUMTOGGLE) && HAVE_DECL_KEY_KBDILLUMTOGGLE))
+#if defined(KEY_KBDILLUMTOGGLE) || (defined(HAVE_DECL_KEY_KBDILLUMTOGGLE) && HAVE_DECL_KEY_KBDILLUMTOGGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDILLUMTOGGLE) == (228), "KEY_KBDILLUMTOGGLE != 228");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDILLUMTOGGLE 228
#endif
-#if !(defined(KEY_KBDILLUMDOWN) || (defined(HAVE_DECL_KEY_KBDILLUMDOWN) && HAVE_DECL_KEY_KBDILLUMDOWN))
+#if defined(KEY_KBDILLUMDOWN) || (defined(HAVE_DECL_KEY_KBDILLUMDOWN) && HAVE_DECL_KEY_KBDILLUMDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDILLUMDOWN) == (229), "KEY_KBDILLUMDOWN != 229");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDILLUMDOWN 229
#endif
-#if !(defined(KEY_KBDILLUMUP) || (defined(HAVE_DECL_KEY_KBDILLUMUP) && HAVE_DECL_KEY_KBDILLUMUP))
+#if defined(KEY_KBDILLUMUP) || (defined(HAVE_DECL_KEY_KBDILLUMUP) && HAVE_DECL_KEY_KBDILLUMUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDILLUMUP) == (230), "KEY_KBDILLUMUP != 230");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDILLUMUP 230
#endif
-#if !(defined(KEY_SEND) || (defined(HAVE_DECL_KEY_SEND) && HAVE_DECL_KEY_SEND))
+#if defined(KEY_SEND) || (defined(HAVE_DECL_KEY_SEND) && HAVE_DECL_KEY_SEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SEND) == (231), "KEY_SEND != 231");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SEND 231
#endif
-#if !(defined(KEY_REPLY) || (defined(HAVE_DECL_KEY_REPLY) && HAVE_DECL_KEY_REPLY))
+#if defined(KEY_REPLY) || (defined(HAVE_DECL_KEY_REPLY) && HAVE_DECL_KEY_REPLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REPLY) == (232), "KEY_REPLY != 232");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REPLY 232
#endif
-#if !(defined(KEY_FORWARDMAIL) || (defined(HAVE_DECL_KEY_FORWARDMAIL) && HAVE_DECL_KEY_FORWARDMAIL))
+#if defined(KEY_FORWARDMAIL) || (defined(HAVE_DECL_KEY_FORWARDMAIL) && HAVE_DECL_KEY_FORWARDMAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FORWARDMAIL) == (233), "KEY_FORWARDMAIL != 233");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FORWARDMAIL 233
#endif
-#if !(defined(KEY_SAVE) || (defined(HAVE_DECL_KEY_SAVE) && HAVE_DECL_KEY_SAVE))
+#if defined(KEY_SAVE) || (defined(HAVE_DECL_KEY_SAVE) && HAVE_DECL_KEY_SAVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SAVE) == (234), "KEY_SAVE != 234");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SAVE 234
#endif
-#if !(defined(KEY_DOCUMENTS) || (defined(HAVE_DECL_KEY_DOCUMENTS) && HAVE_DECL_KEY_DOCUMENTS))
+#if defined(KEY_DOCUMENTS) || (defined(HAVE_DECL_KEY_DOCUMENTS) && HAVE_DECL_KEY_DOCUMENTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DOCUMENTS) == (235), "KEY_DOCUMENTS != 235");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DOCUMENTS 235
#endif
-#if !(defined(KEY_BATTERY) || (defined(HAVE_DECL_KEY_BATTERY) && HAVE_DECL_KEY_BATTERY))
+#if defined(KEY_BATTERY) || (defined(HAVE_DECL_KEY_BATTERY) && HAVE_DECL_KEY_BATTERY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BATTERY) == (236), "KEY_BATTERY != 236");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BATTERY 236
#endif
-#if !(defined(KEY_BLUETOOTH) || (defined(HAVE_DECL_KEY_BLUETOOTH) && HAVE_DECL_KEY_BLUETOOTH))
+#if defined(KEY_BLUETOOTH) || (defined(HAVE_DECL_KEY_BLUETOOTH) && HAVE_DECL_KEY_BLUETOOTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BLUETOOTH) == (237), "KEY_BLUETOOTH != 237");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BLUETOOTH 237
#endif
-#if !(defined(KEY_WLAN) || (defined(HAVE_DECL_KEY_WLAN) && HAVE_DECL_KEY_WLAN))
+#if defined(KEY_WLAN) || (defined(HAVE_DECL_KEY_WLAN) && HAVE_DECL_KEY_WLAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_WLAN) == (238), "KEY_WLAN != 238");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_WLAN 238
#endif
-#if !(defined(KEY_UWB) || (defined(HAVE_DECL_KEY_UWB) && HAVE_DECL_KEY_UWB))
+#if defined(KEY_UWB) || (defined(HAVE_DECL_KEY_UWB) && HAVE_DECL_KEY_UWB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_UWB) == (239), "KEY_UWB != 239");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_UWB 239
#endif
-#if !(defined(KEY_UNKNOWN) || (defined(HAVE_DECL_KEY_UNKNOWN) && HAVE_DECL_KEY_UNKNOWN))
+#if defined(KEY_UNKNOWN) || (defined(HAVE_DECL_KEY_UNKNOWN) && HAVE_DECL_KEY_UNKNOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_UNKNOWN) == (240), "KEY_UNKNOWN != 240");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_UNKNOWN 240
#endif
-#if !(defined(KEY_VIDEO_NEXT) || (defined(HAVE_DECL_KEY_VIDEO_NEXT) && HAVE_DECL_KEY_VIDEO_NEXT))
+#if defined(KEY_VIDEO_NEXT) || (defined(HAVE_DECL_KEY_VIDEO_NEXT) && HAVE_DECL_KEY_VIDEO_NEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VIDEO_NEXT) == (241), "KEY_VIDEO_NEXT != 241");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VIDEO_NEXT 241
#endif
-#if !(defined(KEY_VIDEO_PREV) || (defined(HAVE_DECL_KEY_VIDEO_PREV) && HAVE_DECL_KEY_VIDEO_PREV))
+#if defined(KEY_VIDEO_PREV) || (defined(HAVE_DECL_KEY_VIDEO_PREV) && HAVE_DECL_KEY_VIDEO_PREV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VIDEO_PREV) == (242), "KEY_VIDEO_PREV != 242");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VIDEO_PREV 242
#endif
-#if !(defined(KEY_BRIGHTNESS_CYCLE) || (defined(HAVE_DECL_KEY_BRIGHTNESS_CYCLE) && HAVE_DECL_KEY_BRIGHTNESS_CYCLE))
+#if defined(KEY_BRIGHTNESS_CYCLE) || (defined(HAVE_DECL_KEY_BRIGHTNESS_CYCLE) && HAVE_DECL_KEY_BRIGHTNESS_CYCLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRIGHTNESS_CYCLE) == (243), "KEY_BRIGHTNESS_CYCLE != 243");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRIGHTNESS_CYCLE 243
#endif
-#if !(defined(KEY_BRIGHTNESS_AUTO) || (defined(HAVE_DECL_KEY_BRIGHTNESS_AUTO) && HAVE_DECL_KEY_BRIGHTNESS_AUTO))
+#if defined(KEY_BRIGHTNESS_AUTO) || (defined(HAVE_DECL_KEY_BRIGHTNESS_AUTO) && HAVE_DECL_KEY_BRIGHTNESS_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRIGHTNESS_AUTO) == (244), "KEY_BRIGHTNESS_AUTO != 244");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRIGHTNESS_AUTO 244
#endif
-#if !(defined(KEY_DISPLAY_OFF) || (defined(HAVE_DECL_KEY_DISPLAY_OFF) && HAVE_DECL_KEY_DISPLAY_OFF))
+#if defined(KEY_DISPLAY_OFF) || (defined(HAVE_DECL_KEY_DISPLAY_OFF) && HAVE_DECL_KEY_DISPLAY_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DISPLAY_OFF) == (245), "KEY_DISPLAY_OFF != 245");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DISPLAY_OFF 245
#endif
-#if !(defined(KEY_WWAN) || (defined(HAVE_DECL_KEY_WWAN) && HAVE_DECL_KEY_WWAN))
+#if defined(KEY_WWAN) || (defined(HAVE_DECL_KEY_WWAN) && HAVE_DECL_KEY_WWAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_WWAN) == (246), "KEY_WWAN != 246");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_WWAN 246
#endif
-#if !(defined(KEY_RFKILL) || (defined(HAVE_DECL_KEY_RFKILL) && HAVE_DECL_KEY_RFKILL))
+#ifndef STRACE_WORKAROUND_FOR_KEY_RFKILL
+# define STRACE_WORKAROUND_FOR_KEY_RFKILL
+# undef KEY_RFKILL
+#endif
+#if defined(KEY_RFKILL) || (defined(HAVE_DECL_KEY_RFKILL) && HAVE_DECL_KEY_RFKILL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RFKILL) == (247), "KEY_RFKILL != 247");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RFKILL 247
#endif
-#if !(defined(KEY_MICMUTE) || (defined(HAVE_DECL_KEY_MICMUTE) && HAVE_DECL_KEY_MICMUTE))
+#if defined(KEY_MICMUTE) || (defined(HAVE_DECL_KEY_MICMUTE) && HAVE_DECL_KEY_MICMUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MICMUTE) == (248), "KEY_MICMUTE != 248");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MICMUTE 248
#endif
-#if !(defined(BTN_0) || (defined(HAVE_DECL_BTN_0) && HAVE_DECL_BTN_0))
+#if defined(BTN_0) || (defined(HAVE_DECL_BTN_0) && HAVE_DECL_BTN_0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_0) == (0x100), "BTN_0 != 0x100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_0 0x100
#endif
-#if !(defined(BTN_1) || (defined(HAVE_DECL_BTN_1) && HAVE_DECL_BTN_1))
+#if defined(BTN_1) || (defined(HAVE_DECL_BTN_1) && HAVE_DECL_BTN_1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_1) == (0x101), "BTN_1 != 0x101");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_1 0x101
#endif
-#if !(defined(BTN_2) || (defined(HAVE_DECL_BTN_2) && HAVE_DECL_BTN_2))
+#if defined(BTN_2) || (defined(HAVE_DECL_BTN_2) && HAVE_DECL_BTN_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_2) == (0x102), "BTN_2 != 0x102");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_2 0x102
#endif
-#if !(defined(BTN_3) || (defined(HAVE_DECL_BTN_3) && HAVE_DECL_BTN_3))
+#if defined(BTN_3) || (defined(HAVE_DECL_BTN_3) && HAVE_DECL_BTN_3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_3) == (0x103), "BTN_3 != 0x103");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_3 0x103
#endif
-#if !(defined(BTN_4) || (defined(HAVE_DECL_BTN_4) && HAVE_DECL_BTN_4))
+#if defined(BTN_4) || (defined(HAVE_DECL_BTN_4) && HAVE_DECL_BTN_4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_4) == (0x104), "BTN_4 != 0x104");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_4 0x104
#endif
-#if !(defined(BTN_5) || (defined(HAVE_DECL_BTN_5) && HAVE_DECL_BTN_5))
+#if defined(BTN_5) || (defined(HAVE_DECL_BTN_5) && HAVE_DECL_BTN_5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_5) == (0x105), "BTN_5 != 0x105");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_5 0x105
#endif
-#if !(defined(BTN_6) || (defined(HAVE_DECL_BTN_6) && HAVE_DECL_BTN_6))
+#if defined(BTN_6) || (defined(HAVE_DECL_BTN_6) && HAVE_DECL_BTN_6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_6) == (0x106), "BTN_6 != 0x106");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_6 0x106
#endif
-#if !(defined(BTN_7) || (defined(HAVE_DECL_BTN_7) && HAVE_DECL_BTN_7))
+#if defined(BTN_7) || (defined(HAVE_DECL_BTN_7) && HAVE_DECL_BTN_7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_7) == (0x107), "BTN_7 != 0x107");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_7 0x107
#endif
-#if !(defined(BTN_8) || (defined(HAVE_DECL_BTN_8) && HAVE_DECL_BTN_8))
+#if defined(BTN_8) || (defined(HAVE_DECL_BTN_8) && HAVE_DECL_BTN_8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_8) == (0x108), "BTN_8 != 0x108");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_8 0x108
#endif
-#if !(defined(BTN_9) || (defined(HAVE_DECL_BTN_9) && HAVE_DECL_BTN_9))
+#if defined(BTN_9) || (defined(HAVE_DECL_BTN_9) && HAVE_DECL_BTN_9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_9) == (0x109), "BTN_9 != 0x109");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_9 0x109
#endif
-#if !(defined(BTN_MOUSE) || (defined(HAVE_DECL_BTN_MOUSE) && HAVE_DECL_BTN_MOUSE))
-# define BTN_MOUSE 0x110
-#endif
-#if !(defined(BTN_LEFT) || (defined(HAVE_DECL_BTN_LEFT) && HAVE_DECL_BTN_LEFT))
+#if defined(BTN_LEFT) || (defined(HAVE_DECL_BTN_LEFT) && HAVE_DECL_BTN_LEFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_LEFT) == (0x110), "BTN_LEFT != 0x110");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_LEFT 0x110
#endif
-#if !(defined(BTN_RIGHT) || (defined(HAVE_DECL_BTN_RIGHT) && HAVE_DECL_BTN_RIGHT))
+#if defined(BTN_RIGHT) || (defined(HAVE_DECL_BTN_RIGHT) && HAVE_DECL_BTN_RIGHT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_RIGHT) == (0x111), "BTN_RIGHT != 0x111");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_RIGHT 0x111
#endif
-#if !(defined(BTN_MIDDLE) || (defined(HAVE_DECL_BTN_MIDDLE) && HAVE_DECL_BTN_MIDDLE))
+#if defined(BTN_MIDDLE) || (defined(HAVE_DECL_BTN_MIDDLE) && HAVE_DECL_BTN_MIDDLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_MIDDLE) == (0x112), "BTN_MIDDLE != 0x112");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_MIDDLE 0x112
#endif
-#if !(defined(BTN_SIDE) || (defined(HAVE_DECL_BTN_SIDE) && HAVE_DECL_BTN_SIDE))
+#if defined(BTN_SIDE) || (defined(HAVE_DECL_BTN_SIDE) && HAVE_DECL_BTN_SIDE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_SIDE) == (0x113), "BTN_SIDE != 0x113");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_SIDE 0x113
#endif
-#if !(defined(BTN_EXTRA) || (defined(HAVE_DECL_BTN_EXTRA) && HAVE_DECL_BTN_EXTRA))
+#if defined(BTN_EXTRA) || (defined(HAVE_DECL_BTN_EXTRA) && HAVE_DECL_BTN_EXTRA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_EXTRA) == (0x114), "BTN_EXTRA != 0x114");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_EXTRA 0x114
#endif
-#if !(defined(BTN_FORWARD) || (defined(HAVE_DECL_BTN_FORWARD) && HAVE_DECL_BTN_FORWARD))
+#if defined(BTN_FORWARD) || (defined(HAVE_DECL_BTN_FORWARD) && HAVE_DECL_BTN_FORWARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_FORWARD) == (0x115), "BTN_FORWARD != 0x115");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_FORWARD 0x115
#endif
-#if !(defined(BTN_BACK) || (defined(HAVE_DECL_BTN_BACK) && HAVE_DECL_BTN_BACK))
+#if defined(BTN_BACK) || (defined(HAVE_DECL_BTN_BACK) && HAVE_DECL_BTN_BACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_BACK) == (0x116), "BTN_BACK != 0x116");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_BACK 0x116
#endif
-#if !(defined(BTN_TASK) || (defined(HAVE_DECL_BTN_TASK) && HAVE_DECL_BTN_TASK))
+#if defined(BTN_TASK) || (defined(HAVE_DECL_BTN_TASK) && HAVE_DECL_BTN_TASK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TASK) == (0x117), "BTN_TASK != 0x117");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TASK 0x117
#endif
-#if !(defined(BTN_JOYSTICK) || (defined(HAVE_DECL_BTN_JOYSTICK) && HAVE_DECL_BTN_JOYSTICK))
-# define BTN_JOYSTICK 0x120
-#endif
-#if !(defined(BTN_TRIGGER) || (defined(HAVE_DECL_BTN_TRIGGER) && HAVE_DECL_BTN_TRIGGER))
+#if defined(BTN_TRIGGER) || (defined(HAVE_DECL_BTN_TRIGGER) && HAVE_DECL_BTN_TRIGGER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER) == (0x120), "BTN_TRIGGER != 0x120");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER 0x120
#endif
-#if !(defined(BTN_THUMB) || (defined(HAVE_DECL_BTN_THUMB) && HAVE_DECL_BTN_THUMB))
+#if defined(BTN_THUMB) || (defined(HAVE_DECL_BTN_THUMB) && HAVE_DECL_BTN_THUMB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_THUMB) == (0x121), "BTN_THUMB != 0x121");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_THUMB 0x121
#endif
-#if !(defined(BTN_THUMB2) || (defined(HAVE_DECL_BTN_THUMB2) && HAVE_DECL_BTN_THUMB2))
+#if defined(BTN_THUMB2) || (defined(HAVE_DECL_BTN_THUMB2) && HAVE_DECL_BTN_THUMB2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_THUMB2) == (0x122), "BTN_THUMB2 != 0x122");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_THUMB2 0x122
#endif
-#if !(defined(BTN_TOP) || (defined(HAVE_DECL_BTN_TOP) && HAVE_DECL_BTN_TOP))
+#if defined(BTN_TOP) || (defined(HAVE_DECL_BTN_TOP) && HAVE_DECL_BTN_TOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOP) == (0x123), "BTN_TOP != 0x123");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOP 0x123
#endif
-#if !(defined(BTN_TOP2) || (defined(HAVE_DECL_BTN_TOP2) && HAVE_DECL_BTN_TOP2))
+#if defined(BTN_TOP2) || (defined(HAVE_DECL_BTN_TOP2) && HAVE_DECL_BTN_TOP2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOP2) == (0x124), "BTN_TOP2 != 0x124");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOP2 0x124
#endif
-#if !(defined(BTN_PINKIE) || (defined(HAVE_DECL_BTN_PINKIE) && HAVE_DECL_BTN_PINKIE))
+#if defined(BTN_PINKIE) || (defined(HAVE_DECL_BTN_PINKIE) && HAVE_DECL_BTN_PINKIE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_PINKIE) == (0x125), "BTN_PINKIE != 0x125");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_PINKIE 0x125
#endif
-#if !(defined(BTN_BASE) || (defined(HAVE_DECL_BTN_BASE) && HAVE_DECL_BTN_BASE))
+#if defined(BTN_BASE) || (defined(HAVE_DECL_BTN_BASE) && HAVE_DECL_BTN_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_BASE) == (0x126), "BTN_BASE != 0x126");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_BASE 0x126
#endif
-#if !(defined(BTN_BASE2) || (defined(HAVE_DECL_BTN_BASE2) && HAVE_DECL_BTN_BASE2))
+#if defined(BTN_BASE2) || (defined(HAVE_DECL_BTN_BASE2) && HAVE_DECL_BTN_BASE2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_BASE2) == (0x127), "BTN_BASE2 != 0x127");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_BASE2 0x127
#endif
-#if !(defined(BTN_BASE3) || (defined(HAVE_DECL_BTN_BASE3) && HAVE_DECL_BTN_BASE3))
+#if defined(BTN_BASE3) || (defined(HAVE_DECL_BTN_BASE3) && HAVE_DECL_BTN_BASE3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_BASE3) == (0x128), "BTN_BASE3 != 0x128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_BASE3 0x128
#endif
-#if !(defined(BTN_BASE4) || (defined(HAVE_DECL_BTN_BASE4) && HAVE_DECL_BTN_BASE4))
+#if defined(BTN_BASE4) || (defined(HAVE_DECL_BTN_BASE4) && HAVE_DECL_BTN_BASE4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_BASE4) == (0x129), "BTN_BASE4 != 0x129");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_BASE4 0x129
#endif
-#if !(defined(BTN_BASE5) || (defined(HAVE_DECL_BTN_BASE5) && HAVE_DECL_BTN_BASE5))
+#if defined(BTN_BASE5) || (defined(HAVE_DECL_BTN_BASE5) && HAVE_DECL_BTN_BASE5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_BASE5) == (0x12a), "BTN_BASE5 != 0x12a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_BASE5 0x12a
#endif
-#if !(defined(BTN_BASE6) || (defined(HAVE_DECL_BTN_BASE6) && HAVE_DECL_BTN_BASE6))
+#if defined(BTN_BASE6) || (defined(HAVE_DECL_BTN_BASE6) && HAVE_DECL_BTN_BASE6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_BASE6) == (0x12b), "BTN_BASE6 != 0x12b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_BASE6 0x12b
#endif
-#if !(defined(BTN_DEAD) || (defined(HAVE_DECL_BTN_DEAD) && HAVE_DECL_BTN_DEAD))
+#if defined(BTN_DEAD) || (defined(HAVE_DECL_BTN_DEAD) && HAVE_DECL_BTN_DEAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_DEAD) == (0x12f), "BTN_DEAD != 0x12f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_DEAD 0x12f
#endif
-#if !(defined(BTN_GAMEPAD) || (defined(HAVE_DECL_BTN_GAMEPAD) && HAVE_DECL_BTN_GAMEPAD))
-# define BTN_GAMEPAD 0x130
-#endif
-#if !(defined(BTN_SOUTH) || (defined(HAVE_DECL_BTN_SOUTH) && HAVE_DECL_BTN_SOUTH))
+#if defined(BTN_SOUTH) || (defined(HAVE_DECL_BTN_SOUTH) && HAVE_DECL_BTN_SOUTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_SOUTH) == (0x130), "BTN_SOUTH != 0x130");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_SOUTH 0x130
#endif
-#if !(defined(BTN_EAST) || (defined(HAVE_DECL_BTN_EAST) && HAVE_DECL_BTN_EAST))
+#if defined(BTN_EAST) || (defined(HAVE_DECL_BTN_EAST) && HAVE_DECL_BTN_EAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_EAST) == (0x131), "BTN_EAST != 0x131");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_EAST 0x131
#endif
-#if !(defined(BTN_C) || (defined(HAVE_DECL_BTN_C) && HAVE_DECL_BTN_C))
+#if defined(BTN_C) || (defined(HAVE_DECL_BTN_C) && HAVE_DECL_BTN_C)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_C) == (0x132), "BTN_C != 0x132");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_C 0x132
#endif
-#if !(defined(BTN_NORTH) || (defined(HAVE_DECL_BTN_NORTH) && HAVE_DECL_BTN_NORTH))
+#if defined(BTN_NORTH) || (defined(HAVE_DECL_BTN_NORTH) && HAVE_DECL_BTN_NORTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_NORTH) == (0x133), "BTN_NORTH != 0x133");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_NORTH 0x133
#endif
-#if !(defined(BTN_WEST) || (defined(HAVE_DECL_BTN_WEST) && HAVE_DECL_BTN_WEST))
+#if defined(BTN_WEST) || (defined(HAVE_DECL_BTN_WEST) && HAVE_DECL_BTN_WEST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_WEST) == (0x134), "BTN_WEST != 0x134");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_WEST 0x134
#endif
-#if !(defined(BTN_Z) || (defined(HAVE_DECL_BTN_Z) && HAVE_DECL_BTN_Z))
+#if defined(BTN_Z) || (defined(HAVE_DECL_BTN_Z) && HAVE_DECL_BTN_Z)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_Z) == (0x135), "BTN_Z != 0x135");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_Z 0x135
#endif
-#if !(defined(BTN_TL) || (defined(HAVE_DECL_BTN_TL) && HAVE_DECL_BTN_TL))
+#if defined(BTN_TL) || (defined(HAVE_DECL_BTN_TL) && HAVE_DECL_BTN_TL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TL) == (0x136), "BTN_TL != 0x136");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TL 0x136
#endif
-#if !(defined(BTN_TR) || (defined(HAVE_DECL_BTN_TR) && HAVE_DECL_BTN_TR))
+#if defined(BTN_TR) || (defined(HAVE_DECL_BTN_TR) && HAVE_DECL_BTN_TR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TR) == (0x137), "BTN_TR != 0x137");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TR 0x137
#endif
-#if !(defined(BTN_TL2) || (defined(HAVE_DECL_BTN_TL2) && HAVE_DECL_BTN_TL2))
+#if defined(BTN_TL2) || (defined(HAVE_DECL_BTN_TL2) && HAVE_DECL_BTN_TL2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TL2) == (0x138), "BTN_TL2 != 0x138");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TL2 0x138
#endif
-#if !(defined(BTN_TR2) || (defined(HAVE_DECL_BTN_TR2) && HAVE_DECL_BTN_TR2))
+#if defined(BTN_TR2) || (defined(HAVE_DECL_BTN_TR2) && HAVE_DECL_BTN_TR2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TR2) == (0x139), "BTN_TR2 != 0x139");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TR2 0x139
#endif
-#if !(defined(BTN_SELECT) || (defined(HAVE_DECL_BTN_SELECT) && HAVE_DECL_BTN_SELECT))
+#if defined(BTN_SELECT) || (defined(HAVE_DECL_BTN_SELECT) && HAVE_DECL_BTN_SELECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_SELECT) == (0x13a), "BTN_SELECT != 0x13a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_SELECT 0x13a
#endif
-#if !(defined(BTN_START) || (defined(HAVE_DECL_BTN_START) && HAVE_DECL_BTN_START))
+#if defined(BTN_START) || (defined(HAVE_DECL_BTN_START) && HAVE_DECL_BTN_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_START) == (0x13b), "BTN_START != 0x13b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_START 0x13b
#endif
-#if !(defined(BTN_MODE) || (defined(HAVE_DECL_BTN_MODE) && HAVE_DECL_BTN_MODE))
+#if defined(BTN_MODE) || (defined(HAVE_DECL_BTN_MODE) && HAVE_DECL_BTN_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_MODE) == (0x13c), "BTN_MODE != 0x13c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_MODE 0x13c
#endif
-#if !(defined(BTN_THUMBL) || (defined(HAVE_DECL_BTN_THUMBL) && HAVE_DECL_BTN_THUMBL))
+#if defined(BTN_THUMBL) || (defined(HAVE_DECL_BTN_THUMBL) && HAVE_DECL_BTN_THUMBL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_THUMBL) == (0x13d), "BTN_THUMBL != 0x13d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_THUMBL 0x13d
#endif
-#if !(defined(BTN_THUMBR) || (defined(HAVE_DECL_BTN_THUMBR) && HAVE_DECL_BTN_THUMBR))
+#if defined(BTN_THUMBR) || (defined(HAVE_DECL_BTN_THUMBR) && HAVE_DECL_BTN_THUMBR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_THUMBR) == (0x13e), "BTN_THUMBR != 0x13e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_THUMBR 0x13e
#endif
-#if !(defined(BTN_DIGI) || (defined(HAVE_DECL_BTN_DIGI) && HAVE_DECL_BTN_DIGI))
-# define BTN_DIGI 0x140
-#endif
-#if !(defined(BTN_TOOL_PEN) || (defined(HAVE_DECL_BTN_TOOL_PEN) && HAVE_DECL_BTN_TOOL_PEN))
+#if defined(BTN_TOOL_PEN) || (defined(HAVE_DECL_BTN_TOOL_PEN) && HAVE_DECL_BTN_TOOL_PEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_PEN) == (0x140), "BTN_TOOL_PEN != 0x140");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_PEN 0x140
#endif
-#if !(defined(BTN_TOOL_RUBBER) || (defined(HAVE_DECL_BTN_TOOL_RUBBER) && HAVE_DECL_BTN_TOOL_RUBBER))
+#if defined(BTN_TOOL_RUBBER) || (defined(HAVE_DECL_BTN_TOOL_RUBBER) && HAVE_DECL_BTN_TOOL_RUBBER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_RUBBER) == (0x141), "BTN_TOOL_RUBBER != 0x141");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_RUBBER 0x141
#endif
-#if !(defined(BTN_TOOL_BRUSH) || (defined(HAVE_DECL_BTN_TOOL_BRUSH) && HAVE_DECL_BTN_TOOL_BRUSH))
+#if defined(BTN_TOOL_BRUSH) || (defined(HAVE_DECL_BTN_TOOL_BRUSH) && HAVE_DECL_BTN_TOOL_BRUSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_BRUSH) == (0x142), "BTN_TOOL_BRUSH != 0x142");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_BRUSH 0x142
#endif
-#if !(defined(BTN_TOOL_PENCIL) || (defined(HAVE_DECL_BTN_TOOL_PENCIL) && HAVE_DECL_BTN_TOOL_PENCIL))
+#if defined(BTN_TOOL_PENCIL) || (defined(HAVE_DECL_BTN_TOOL_PENCIL) && HAVE_DECL_BTN_TOOL_PENCIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_PENCIL) == (0x143), "BTN_TOOL_PENCIL != 0x143");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_PENCIL 0x143
#endif
-#if !(defined(BTN_TOOL_AIRBRUSH) || (defined(HAVE_DECL_BTN_TOOL_AIRBRUSH) && HAVE_DECL_BTN_TOOL_AIRBRUSH))
+#if defined(BTN_TOOL_AIRBRUSH) || (defined(HAVE_DECL_BTN_TOOL_AIRBRUSH) && HAVE_DECL_BTN_TOOL_AIRBRUSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_AIRBRUSH) == (0x144), "BTN_TOOL_AIRBRUSH != 0x144");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_AIRBRUSH 0x144
#endif
-#if !(defined(BTN_TOOL_FINGER) || (defined(HAVE_DECL_BTN_TOOL_FINGER) && HAVE_DECL_BTN_TOOL_FINGER))
+#if defined(BTN_TOOL_FINGER) || (defined(HAVE_DECL_BTN_TOOL_FINGER) && HAVE_DECL_BTN_TOOL_FINGER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_FINGER) == (0x145), "BTN_TOOL_FINGER != 0x145");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_FINGER 0x145
#endif
-#if !(defined(BTN_TOOL_MOUSE) || (defined(HAVE_DECL_BTN_TOOL_MOUSE) && HAVE_DECL_BTN_TOOL_MOUSE))
+#if defined(BTN_TOOL_MOUSE) || (defined(HAVE_DECL_BTN_TOOL_MOUSE) && HAVE_DECL_BTN_TOOL_MOUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_MOUSE) == (0x146), "BTN_TOOL_MOUSE != 0x146");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_MOUSE 0x146
#endif
-#if !(defined(BTN_TOOL_LENS) || (defined(HAVE_DECL_BTN_TOOL_LENS) && HAVE_DECL_BTN_TOOL_LENS))
+#if defined(BTN_TOOL_LENS) || (defined(HAVE_DECL_BTN_TOOL_LENS) && HAVE_DECL_BTN_TOOL_LENS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_LENS) == (0x147), "BTN_TOOL_LENS != 0x147");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_LENS 0x147
#endif
-#if !(defined(BTN_TOOL_QUINTTAP) || (defined(HAVE_DECL_BTN_TOOL_QUINTTAP) && HAVE_DECL_BTN_TOOL_QUINTTAP))
+#if defined(BTN_TOOL_QUINTTAP) || (defined(HAVE_DECL_BTN_TOOL_QUINTTAP) && HAVE_DECL_BTN_TOOL_QUINTTAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_QUINTTAP) == (0x148), "BTN_TOOL_QUINTTAP != 0x148");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_QUINTTAP 0x148
#endif
-#if !(defined(BTN_STYLUS3) || (defined(HAVE_DECL_BTN_STYLUS3) && HAVE_DECL_BTN_STYLUS3))
+#if defined(BTN_STYLUS3) || (defined(HAVE_DECL_BTN_STYLUS3) && HAVE_DECL_BTN_STYLUS3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_STYLUS3) == (0x149), "BTN_STYLUS3 != 0x149");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_STYLUS3 0x149
#endif
-#if !(defined(BTN_TOUCH) || (defined(HAVE_DECL_BTN_TOUCH) && HAVE_DECL_BTN_TOUCH))
+#if defined(BTN_TOUCH) || (defined(HAVE_DECL_BTN_TOUCH) && HAVE_DECL_BTN_TOUCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOUCH) == (0x14a), "BTN_TOUCH != 0x14a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOUCH 0x14a
#endif
-#if !(defined(BTN_STYLUS) || (defined(HAVE_DECL_BTN_STYLUS) && HAVE_DECL_BTN_STYLUS))
+#if defined(BTN_STYLUS) || (defined(HAVE_DECL_BTN_STYLUS) && HAVE_DECL_BTN_STYLUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_STYLUS) == (0x14b), "BTN_STYLUS != 0x14b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_STYLUS 0x14b
#endif
-#if !(defined(BTN_STYLUS2) || (defined(HAVE_DECL_BTN_STYLUS2) && HAVE_DECL_BTN_STYLUS2))
+#if defined(BTN_STYLUS2) || (defined(HAVE_DECL_BTN_STYLUS2) && HAVE_DECL_BTN_STYLUS2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_STYLUS2) == (0x14c), "BTN_STYLUS2 != 0x14c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_STYLUS2 0x14c
#endif
-#if !(defined(BTN_TOOL_DOUBLETAP) || (defined(HAVE_DECL_BTN_TOOL_DOUBLETAP) && HAVE_DECL_BTN_TOOL_DOUBLETAP))
+#if defined(BTN_TOOL_DOUBLETAP) || (defined(HAVE_DECL_BTN_TOOL_DOUBLETAP) && HAVE_DECL_BTN_TOOL_DOUBLETAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_DOUBLETAP) == (0x14d), "BTN_TOOL_DOUBLETAP != 0x14d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_DOUBLETAP 0x14d
#endif
-#if !(defined(BTN_TOOL_TRIPLETAP) || (defined(HAVE_DECL_BTN_TOOL_TRIPLETAP) && HAVE_DECL_BTN_TOOL_TRIPLETAP))
+#if defined(BTN_TOOL_TRIPLETAP) || (defined(HAVE_DECL_BTN_TOOL_TRIPLETAP) && HAVE_DECL_BTN_TOOL_TRIPLETAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_TRIPLETAP) == (0x14e), "BTN_TOOL_TRIPLETAP != 0x14e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_TRIPLETAP 0x14e
#endif
-#if !(defined(BTN_TOOL_QUADTAP) || (defined(HAVE_DECL_BTN_TOOL_QUADTAP) && HAVE_DECL_BTN_TOOL_QUADTAP))
+#if defined(BTN_TOOL_QUADTAP) || (defined(HAVE_DECL_BTN_TOOL_QUADTAP) && HAVE_DECL_BTN_TOOL_QUADTAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TOOL_QUADTAP) == (0x14f), "BTN_TOOL_QUADTAP != 0x14f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TOOL_QUADTAP 0x14f
#endif
-#if !(defined(BTN_WHEEL) || (defined(HAVE_DECL_BTN_WHEEL) && HAVE_DECL_BTN_WHEEL))
-# define BTN_WHEEL 0x150
-#endif
-#if !(defined(BTN_GEAR_DOWN) || (defined(HAVE_DECL_BTN_GEAR_DOWN) && HAVE_DECL_BTN_GEAR_DOWN))
+#if defined(BTN_GEAR_DOWN) || (defined(HAVE_DECL_BTN_GEAR_DOWN) && HAVE_DECL_BTN_GEAR_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_GEAR_DOWN) == (0x150), "BTN_GEAR_DOWN != 0x150");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_GEAR_DOWN 0x150
#endif
-#if !(defined(BTN_GEAR_UP) || (defined(HAVE_DECL_BTN_GEAR_UP) && HAVE_DECL_BTN_GEAR_UP))
+#if defined(BTN_GEAR_UP) || (defined(HAVE_DECL_BTN_GEAR_UP) && HAVE_DECL_BTN_GEAR_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_GEAR_UP) == (0x151), "BTN_GEAR_UP != 0x151");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_GEAR_UP 0x151
#endif
-#if !(defined(KEY_OK) || (defined(HAVE_DECL_KEY_OK) && HAVE_DECL_KEY_OK))
+#if defined(KEY_OK) || (defined(HAVE_DECL_KEY_OK) && HAVE_DECL_KEY_OK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OK) == (0x160), "KEY_OK != 0x160");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OK 0x160
#endif
-#if !(defined(KEY_SELECT) || (defined(HAVE_DECL_KEY_SELECT) && HAVE_DECL_KEY_SELECT))
+#if defined(KEY_SELECT) || (defined(HAVE_DECL_KEY_SELECT) && HAVE_DECL_KEY_SELECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SELECT) == (0x161), "KEY_SELECT != 0x161");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SELECT 0x161
#endif
-#if !(defined(KEY_GOTO) || (defined(HAVE_DECL_KEY_GOTO) && HAVE_DECL_KEY_GOTO))
+#if defined(KEY_GOTO) || (defined(HAVE_DECL_KEY_GOTO) && HAVE_DECL_KEY_GOTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GOTO) == (0x162), "KEY_GOTO != 0x162");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GOTO 0x162
#endif
-#if !(defined(KEY_CLEAR) || (defined(HAVE_DECL_KEY_CLEAR) && HAVE_DECL_KEY_CLEAR))
+#if defined(KEY_CLEAR) || (defined(HAVE_DECL_KEY_CLEAR) && HAVE_DECL_KEY_CLEAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CLEAR) == (0x163), "KEY_CLEAR != 0x163");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CLEAR 0x163
#endif
-#if !(defined(KEY_POWER2) || (defined(HAVE_DECL_KEY_POWER2) && HAVE_DECL_KEY_POWER2))
+#if defined(KEY_POWER2) || (defined(HAVE_DECL_KEY_POWER2) && HAVE_DECL_KEY_POWER2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POWER2) == (0x164), "KEY_POWER2 != 0x164");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POWER2 0x164
#endif
-#if !(defined(KEY_OPTION) || (defined(HAVE_DECL_KEY_OPTION) && HAVE_DECL_KEY_OPTION))
+#if defined(KEY_OPTION) || (defined(HAVE_DECL_KEY_OPTION) && HAVE_DECL_KEY_OPTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OPTION) == (0x165), "KEY_OPTION != 0x165");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OPTION 0x165
#endif
-#if !(defined(KEY_INFO) || (defined(HAVE_DECL_KEY_INFO) && HAVE_DECL_KEY_INFO))
+#if defined(KEY_INFO) || (defined(HAVE_DECL_KEY_INFO) && HAVE_DECL_KEY_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_INFO) == (0x166), "KEY_INFO != 0x166");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_INFO 0x166
#endif
-#if !(defined(KEY_TIME) || (defined(HAVE_DECL_KEY_TIME) && HAVE_DECL_KEY_TIME))
+#if defined(KEY_TIME) || (defined(HAVE_DECL_KEY_TIME) && HAVE_DECL_KEY_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TIME) == (0x167), "KEY_TIME != 0x167");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TIME 0x167
#endif
-#if !(defined(KEY_VENDOR) || (defined(HAVE_DECL_KEY_VENDOR) && HAVE_DECL_KEY_VENDOR))
+#if defined(KEY_VENDOR) || (defined(HAVE_DECL_KEY_VENDOR) && HAVE_DECL_KEY_VENDOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VENDOR) == (0x168), "KEY_VENDOR != 0x168");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VENDOR 0x168
#endif
-#if !(defined(KEY_ARCHIVE) || (defined(HAVE_DECL_KEY_ARCHIVE) && HAVE_DECL_KEY_ARCHIVE))
+#if defined(KEY_ARCHIVE) || (defined(HAVE_DECL_KEY_ARCHIVE) && HAVE_DECL_KEY_ARCHIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ARCHIVE) == (0x169), "KEY_ARCHIVE != 0x169");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ARCHIVE 0x169
#endif
-#if !(defined(KEY_PROGRAM) || (defined(HAVE_DECL_KEY_PROGRAM) && HAVE_DECL_KEY_PROGRAM))
+#if defined(KEY_PROGRAM) || (defined(HAVE_DECL_KEY_PROGRAM) && HAVE_DECL_KEY_PROGRAM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PROGRAM) == (0x16a), "KEY_PROGRAM != 0x16a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PROGRAM 0x16a
#endif
-#if !(defined(KEY_CHANNEL) || (defined(HAVE_DECL_KEY_CHANNEL) && HAVE_DECL_KEY_CHANNEL))
+#if defined(KEY_CHANNEL) || (defined(HAVE_DECL_KEY_CHANNEL) && HAVE_DECL_KEY_CHANNEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CHANNEL) == (0x16b), "KEY_CHANNEL != 0x16b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CHANNEL 0x16b
#endif
-#if !(defined(KEY_FAVORITES) || (defined(HAVE_DECL_KEY_FAVORITES) && HAVE_DECL_KEY_FAVORITES))
+#if defined(KEY_FAVORITES) || (defined(HAVE_DECL_KEY_FAVORITES) && HAVE_DECL_KEY_FAVORITES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FAVORITES) == (0x16c), "KEY_FAVORITES != 0x16c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FAVORITES 0x16c
#endif
-#if !(defined(KEY_EPG) || (defined(HAVE_DECL_KEY_EPG) && HAVE_DECL_KEY_EPG))
+#if defined(KEY_EPG) || (defined(HAVE_DECL_KEY_EPG) && HAVE_DECL_KEY_EPG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EPG) == (0x16d), "KEY_EPG != 0x16d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EPG 0x16d
#endif
-#if !(defined(KEY_PVR) || (defined(HAVE_DECL_KEY_PVR) && HAVE_DECL_KEY_PVR))
+#if defined(KEY_PVR) || (defined(HAVE_DECL_KEY_PVR) && HAVE_DECL_KEY_PVR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PVR) == (0x16e), "KEY_PVR != 0x16e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PVR 0x16e
#endif
-#if !(defined(KEY_MHP) || (defined(HAVE_DECL_KEY_MHP) && HAVE_DECL_KEY_MHP))
+#if defined(KEY_MHP) || (defined(HAVE_DECL_KEY_MHP) && HAVE_DECL_KEY_MHP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MHP) == (0x16f), "KEY_MHP != 0x16f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MHP 0x16f
#endif
-#if !(defined(KEY_LANGUAGE) || (defined(HAVE_DECL_KEY_LANGUAGE) && HAVE_DECL_KEY_LANGUAGE))
+#if defined(KEY_LANGUAGE) || (defined(HAVE_DECL_KEY_LANGUAGE) && HAVE_DECL_KEY_LANGUAGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LANGUAGE) == (0x170), "KEY_LANGUAGE != 0x170");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LANGUAGE 0x170
#endif
-#if !(defined(KEY_TITLE) || (defined(HAVE_DECL_KEY_TITLE) && HAVE_DECL_KEY_TITLE))
+#if defined(KEY_TITLE) || (defined(HAVE_DECL_KEY_TITLE) && HAVE_DECL_KEY_TITLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TITLE) == (0x171), "KEY_TITLE != 0x171");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TITLE 0x171
#endif
-#if !(defined(KEY_SUBTITLE) || (defined(HAVE_DECL_KEY_SUBTITLE) && HAVE_DECL_KEY_SUBTITLE))
+#if defined(KEY_SUBTITLE) || (defined(HAVE_DECL_KEY_SUBTITLE) && HAVE_DECL_KEY_SUBTITLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SUBTITLE) == (0x172), "KEY_SUBTITLE != 0x172");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SUBTITLE 0x172
#endif
-#if !(defined(KEY_ANGLE) || (defined(HAVE_DECL_KEY_ANGLE) && HAVE_DECL_KEY_ANGLE))
+#if defined(KEY_ANGLE) || (defined(HAVE_DECL_KEY_ANGLE) && HAVE_DECL_KEY_ANGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ANGLE) == (0x173), "KEY_ANGLE != 0x173");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ANGLE 0x173
#endif
-#if !(defined(KEY_ZOOM) || (defined(HAVE_DECL_KEY_ZOOM) && HAVE_DECL_KEY_ZOOM))
+#if defined(KEY_ZOOM) || (defined(HAVE_DECL_KEY_ZOOM) && HAVE_DECL_KEY_ZOOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ZOOM) == (0x174), "KEY_ZOOM != 0x174");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ZOOM 0x174
#endif
-#if !(defined(KEY_MODE) || (defined(HAVE_DECL_KEY_MODE) && HAVE_DECL_KEY_MODE))
+#if defined(KEY_MODE) || (defined(HAVE_DECL_KEY_MODE) && HAVE_DECL_KEY_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MODE) == (0x175), "KEY_MODE != 0x175");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MODE 0x175
#endif
-#if !(defined(KEY_KEYBOARD) || (defined(HAVE_DECL_KEY_KEYBOARD) && HAVE_DECL_KEY_KEYBOARD))
+#if defined(KEY_KEYBOARD) || (defined(HAVE_DECL_KEY_KEYBOARD) && HAVE_DECL_KEY_KEYBOARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KEYBOARD) == (0x176), "KEY_KEYBOARD != 0x176");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KEYBOARD 0x176
#endif
-#if !(defined(KEY_SCREEN) || (defined(HAVE_DECL_KEY_SCREEN) && HAVE_DECL_KEY_SCREEN))
+#if defined(KEY_SCREEN) || (defined(HAVE_DECL_KEY_SCREEN) && HAVE_DECL_KEY_SCREEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SCREEN) == (0x177), "KEY_SCREEN != 0x177");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SCREEN 0x177
#endif
-#if !(defined(KEY_PC) || (defined(HAVE_DECL_KEY_PC) && HAVE_DECL_KEY_PC))
+#if defined(KEY_PC) || (defined(HAVE_DECL_KEY_PC) && HAVE_DECL_KEY_PC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PC) == (0x178), "KEY_PC != 0x178");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PC 0x178
#endif
-#if !(defined(KEY_TV) || (defined(HAVE_DECL_KEY_TV) && HAVE_DECL_KEY_TV))
+#if defined(KEY_TV) || (defined(HAVE_DECL_KEY_TV) && HAVE_DECL_KEY_TV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TV) == (0x179), "KEY_TV != 0x179");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TV 0x179
#endif
-#if !(defined(KEY_TV2) || (defined(HAVE_DECL_KEY_TV2) && HAVE_DECL_KEY_TV2))
+#if defined(KEY_TV2) || (defined(HAVE_DECL_KEY_TV2) && HAVE_DECL_KEY_TV2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TV2) == (0x17a), "KEY_TV2 != 0x17a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TV2 0x17a
#endif
-#if !(defined(KEY_VCR) || (defined(HAVE_DECL_KEY_VCR) && HAVE_DECL_KEY_VCR))
+#if defined(KEY_VCR) || (defined(HAVE_DECL_KEY_VCR) && HAVE_DECL_KEY_VCR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VCR) == (0x17b), "KEY_VCR != 0x17b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VCR 0x17b
#endif
-#if !(defined(KEY_VCR2) || (defined(HAVE_DECL_KEY_VCR2) && HAVE_DECL_KEY_VCR2))
+#if defined(KEY_VCR2) || (defined(HAVE_DECL_KEY_VCR2) && HAVE_DECL_KEY_VCR2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VCR2) == (0x17c), "KEY_VCR2 != 0x17c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VCR2 0x17c
#endif
-#if !(defined(KEY_SAT) || (defined(HAVE_DECL_KEY_SAT) && HAVE_DECL_KEY_SAT))
+#if defined(KEY_SAT) || (defined(HAVE_DECL_KEY_SAT) && HAVE_DECL_KEY_SAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SAT) == (0x17d), "KEY_SAT != 0x17d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SAT 0x17d
#endif
-#if !(defined(KEY_SAT2) || (defined(HAVE_DECL_KEY_SAT2) && HAVE_DECL_KEY_SAT2))
+#if defined(KEY_SAT2) || (defined(HAVE_DECL_KEY_SAT2) && HAVE_DECL_KEY_SAT2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SAT2) == (0x17e), "KEY_SAT2 != 0x17e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SAT2 0x17e
#endif
-#if !(defined(KEY_CD) || (defined(HAVE_DECL_KEY_CD) && HAVE_DECL_KEY_CD))
+#if defined(KEY_CD) || (defined(HAVE_DECL_KEY_CD) && HAVE_DECL_KEY_CD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CD) == (0x17f), "KEY_CD != 0x17f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CD 0x17f
#endif
-#if !(defined(KEY_TAPE) || (defined(HAVE_DECL_KEY_TAPE) && HAVE_DECL_KEY_TAPE))
+#if defined(KEY_TAPE) || (defined(HAVE_DECL_KEY_TAPE) && HAVE_DECL_KEY_TAPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TAPE) == (0x180), "KEY_TAPE != 0x180");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TAPE 0x180
#endif
-#if !(defined(KEY_RADIO) || (defined(HAVE_DECL_KEY_RADIO) && HAVE_DECL_KEY_RADIO))
+#if defined(KEY_RADIO) || (defined(HAVE_DECL_KEY_RADIO) && HAVE_DECL_KEY_RADIO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RADIO) == (0x181), "KEY_RADIO != 0x181");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RADIO 0x181
#endif
-#if !(defined(KEY_TUNER) || (defined(HAVE_DECL_KEY_TUNER) && HAVE_DECL_KEY_TUNER))
+#if defined(KEY_TUNER) || (defined(HAVE_DECL_KEY_TUNER) && HAVE_DECL_KEY_TUNER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TUNER) == (0x182), "KEY_TUNER != 0x182");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TUNER 0x182
#endif
-#if !(defined(KEY_PLAYER) || (defined(HAVE_DECL_KEY_PLAYER) && HAVE_DECL_KEY_PLAYER))
+#if defined(KEY_PLAYER) || (defined(HAVE_DECL_KEY_PLAYER) && HAVE_DECL_KEY_PLAYER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PLAYER) == (0x183), "KEY_PLAYER != 0x183");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PLAYER 0x183
#endif
-#if !(defined(KEY_TEXT) || (defined(HAVE_DECL_KEY_TEXT) && HAVE_DECL_KEY_TEXT))
+#if defined(KEY_TEXT) || (defined(HAVE_DECL_KEY_TEXT) && HAVE_DECL_KEY_TEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TEXT) == (0x184), "KEY_TEXT != 0x184");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TEXT 0x184
#endif
-#if !(defined(KEY_DVD) || (defined(HAVE_DECL_KEY_DVD) && HAVE_DECL_KEY_DVD))
+#if defined(KEY_DVD) || (defined(HAVE_DECL_KEY_DVD) && HAVE_DECL_KEY_DVD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DVD) == (0x185), "KEY_DVD != 0x185");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DVD 0x185
#endif
-#if !(defined(KEY_AUX) || (defined(HAVE_DECL_KEY_AUX) && HAVE_DECL_KEY_AUX))
+#if defined(KEY_AUX) || (defined(HAVE_DECL_KEY_AUX) && HAVE_DECL_KEY_AUX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_AUX) == (0x186), "KEY_AUX != 0x186");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_AUX 0x186
#endif
-#if !(defined(KEY_MP3) || (defined(HAVE_DECL_KEY_MP3) && HAVE_DECL_KEY_MP3))
+#if defined(KEY_MP3) || (defined(HAVE_DECL_KEY_MP3) && HAVE_DECL_KEY_MP3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MP3) == (0x187), "KEY_MP3 != 0x187");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MP3 0x187
#endif
-#if !(defined(KEY_AUDIO) || (defined(HAVE_DECL_KEY_AUDIO) && HAVE_DECL_KEY_AUDIO))
+#if defined(KEY_AUDIO) || (defined(HAVE_DECL_KEY_AUDIO) && HAVE_DECL_KEY_AUDIO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_AUDIO) == (0x188), "KEY_AUDIO != 0x188");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_AUDIO 0x188
#endif
-#if !(defined(KEY_VIDEO) || (defined(HAVE_DECL_KEY_VIDEO) && HAVE_DECL_KEY_VIDEO))
+#if defined(KEY_VIDEO) || (defined(HAVE_DECL_KEY_VIDEO) && HAVE_DECL_KEY_VIDEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VIDEO) == (0x189), "KEY_VIDEO != 0x189");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VIDEO 0x189
#endif
-#if !(defined(KEY_DIRECTORY) || (defined(HAVE_DECL_KEY_DIRECTORY) && HAVE_DECL_KEY_DIRECTORY))
+#if defined(KEY_DIRECTORY) || (defined(HAVE_DECL_KEY_DIRECTORY) && HAVE_DECL_KEY_DIRECTORY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DIRECTORY) == (0x18a), "KEY_DIRECTORY != 0x18a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DIRECTORY 0x18a
#endif
-#if !(defined(KEY_LIST) || (defined(HAVE_DECL_KEY_LIST) && HAVE_DECL_KEY_LIST))
+#if defined(KEY_LIST) || (defined(HAVE_DECL_KEY_LIST) && HAVE_DECL_KEY_LIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LIST) == (0x18b), "KEY_LIST != 0x18b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LIST 0x18b
#endif
-#if !(defined(KEY_MEMO) || (defined(HAVE_DECL_KEY_MEMO) && HAVE_DECL_KEY_MEMO))
+#if defined(KEY_MEMO) || (defined(HAVE_DECL_KEY_MEMO) && HAVE_DECL_KEY_MEMO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MEMO) == (0x18c), "KEY_MEMO != 0x18c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MEMO 0x18c
#endif
-#if !(defined(KEY_CALENDAR) || (defined(HAVE_DECL_KEY_CALENDAR) && HAVE_DECL_KEY_CALENDAR))
+#if defined(KEY_CALENDAR) || (defined(HAVE_DECL_KEY_CALENDAR) && HAVE_DECL_KEY_CALENDAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CALENDAR) == (0x18d), "KEY_CALENDAR != 0x18d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CALENDAR 0x18d
#endif
-#if !(defined(KEY_RED) || (defined(HAVE_DECL_KEY_RED) && HAVE_DECL_KEY_RED))
+#if defined(KEY_RED) || (defined(HAVE_DECL_KEY_RED) && HAVE_DECL_KEY_RED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RED) == (0x18e), "KEY_RED != 0x18e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RED 0x18e
#endif
-#if !(defined(KEY_GREEN) || (defined(HAVE_DECL_KEY_GREEN) && HAVE_DECL_KEY_GREEN))
+#if defined(KEY_GREEN) || (defined(HAVE_DECL_KEY_GREEN) && HAVE_DECL_KEY_GREEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GREEN) == (0x18f), "KEY_GREEN != 0x18f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GREEN 0x18f
#endif
-#if !(defined(KEY_YELLOW) || (defined(HAVE_DECL_KEY_YELLOW) && HAVE_DECL_KEY_YELLOW))
+#if defined(KEY_YELLOW) || (defined(HAVE_DECL_KEY_YELLOW) && HAVE_DECL_KEY_YELLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_YELLOW) == (0x190), "KEY_YELLOW != 0x190");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_YELLOW 0x190
#endif
-#if !(defined(KEY_BLUE) || (defined(HAVE_DECL_KEY_BLUE) && HAVE_DECL_KEY_BLUE))
+#if defined(KEY_BLUE) || (defined(HAVE_DECL_KEY_BLUE) && HAVE_DECL_KEY_BLUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BLUE) == (0x191), "KEY_BLUE != 0x191");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BLUE 0x191
#endif
-#if !(defined(KEY_CHANNELUP) || (defined(HAVE_DECL_KEY_CHANNELUP) && HAVE_DECL_KEY_CHANNELUP))
+#if defined(KEY_CHANNELUP) || (defined(HAVE_DECL_KEY_CHANNELUP) && HAVE_DECL_KEY_CHANNELUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CHANNELUP) == (0x192), "KEY_CHANNELUP != 0x192");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CHANNELUP 0x192
#endif
-#if !(defined(KEY_CHANNELDOWN) || (defined(HAVE_DECL_KEY_CHANNELDOWN) && HAVE_DECL_KEY_CHANNELDOWN))
+#if defined(KEY_CHANNELDOWN) || (defined(HAVE_DECL_KEY_CHANNELDOWN) && HAVE_DECL_KEY_CHANNELDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CHANNELDOWN) == (0x193), "KEY_CHANNELDOWN != 0x193");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CHANNELDOWN 0x193
#endif
-#if !(defined(KEY_FIRST) || (defined(HAVE_DECL_KEY_FIRST) && HAVE_DECL_KEY_FIRST))
+#if defined(KEY_FIRST) || (defined(HAVE_DECL_KEY_FIRST) && HAVE_DECL_KEY_FIRST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FIRST) == (0x194), "KEY_FIRST != 0x194");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FIRST 0x194
#endif
-#if !(defined(KEY_LAST) || (defined(HAVE_DECL_KEY_LAST) && HAVE_DECL_KEY_LAST))
+#if defined(KEY_LAST) || (defined(HAVE_DECL_KEY_LAST) && HAVE_DECL_KEY_LAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LAST) == (0x195), "KEY_LAST != 0x195");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LAST 0x195
#endif
-#if !(defined(KEY_AB) || (defined(HAVE_DECL_KEY_AB) && HAVE_DECL_KEY_AB))
+#if defined(KEY_AB) || (defined(HAVE_DECL_KEY_AB) && HAVE_DECL_KEY_AB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_AB) == (0x196), "KEY_AB != 0x196");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_AB 0x196
#endif
-#if !(defined(KEY_NEXT) || (defined(HAVE_DECL_KEY_NEXT) && HAVE_DECL_KEY_NEXT))
+#if defined(KEY_NEXT) || (defined(HAVE_DECL_KEY_NEXT) && HAVE_DECL_KEY_NEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NEXT) == (0x197), "KEY_NEXT != 0x197");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NEXT 0x197
#endif
-#if !(defined(KEY_RESTART) || (defined(HAVE_DECL_KEY_RESTART) && HAVE_DECL_KEY_RESTART))
+#if defined(KEY_RESTART) || (defined(HAVE_DECL_KEY_RESTART) && HAVE_DECL_KEY_RESTART)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RESTART) == (0x198), "KEY_RESTART != 0x198");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RESTART 0x198
#endif
-#if !(defined(KEY_SLOW) || (defined(HAVE_DECL_KEY_SLOW) && HAVE_DECL_KEY_SLOW))
+#if defined(KEY_SLOW) || (defined(HAVE_DECL_KEY_SLOW) && HAVE_DECL_KEY_SLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SLOW) == (0x199), "KEY_SLOW != 0x199");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SLOW 0x199
#endif
-#if !(defined(KEY_SHUFFLE) || (defined(HAVE_DECL_KEY_SHUFFLE) && HAVE_DECL_KEY_SHUFFLE))
+#if defined(KEY_SHUFFLE) || (defined(HAVE_DECL_KEY_SHUFFLE) && HAVE_DECL_KEY_SHUFFLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SHUFFLE) == (0x19a), "KEY_SHUFFLE != 0x19a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SHUFFLE 0x19a
#endif
-#if !(defined(KEY_BREAK) || (defined(HAVE_DECL_KEY_BREAK) && HAVE_DECL_KEY_BREAK))
+#if defined(KEY_BREAK) || (defined(HAVE_DECL_KEY_BREAK) && HAVE_DECL_KEY_BREAK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BREAK) == (0x19b), "KEY_BREAK != 0x19b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BREAK 0x19b
#endif
-#if !(defined(KEY_PREVIOUS) || (defined(HAVE_DECL_KEY_PREVIOUS) && HAVE_DECL_KEY_PREVIOUS))
+#if defined(KEY_PREVIOUS) || (defined(HAVE_DECL_KEY_PREVIOUS) && HAVE_DECL_KEY_PREVIOUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PREVIOUS) == (0x19c), "KEY_PREVIOUS != 0x19c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PREVIOUS 0x19c
#endif
-#if !(defined(KEY_DIGITS) || (defined(HAVE_DECL_KEY_DIGITS) && HAVE_DECL_KEY_DIGITS))
+#if defined(KEY_DIGITS) || (defined(HAVE_DECL_KEY_DIGITS) && HAVE_DECL_KEY_DIGITS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DIGITS) == (0x19d), "KEY_DIGITS != 0x19d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DIGITS 0x19d
#endif
-#if !(defined(KEY_TEEN) || (defined(HAVE_DECL_KEY_TEEN) && HAVE_DECL_KEY_TEEN))
+#if defined(KEY_TEEN) || (defined(HAVE_DECL_KEY_TEEN) && HAVE_DECL_KEY_TEEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TEEN) == (0x19e), "KEY_TEEN != 0x19e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TEEN 0x19e
#endif
-#if !(defined(KEY_TWEN) || (defined(HAVE_DECL_KEY_TWEN) && HAVE_DECL_KEY_TWEN))
+#if defined(KEY_TWEN) || (defined(HAVE_DECL_KEY_TWEN) && HAVE_DECL_KEY_TWEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TWEN) == (0x19f), "KEY_TWEN != 0x19f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TWEN 0x19f
#endif
-#if !(defined(KEY_VIDEOPHONE) || (defined(HAVE_DECL_KEY_VIDEOPHONE) && HAVE_DECL_KEY_VIDEOPHONE))
+#if defined(KEY_VIDEOPHONE) || (defined(HAVE_DECL_KEY_VIDEOPHONE) && HAVE_DECL_KEY_VIDEOPHONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VIDEOPHONE) == (0x1a0), "KEY_VIDEOPHONE != 0x1a0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VIDEOPHONE 0x1a0
#endif
-#if !(defined(KEY_GAMES) || (defined(HAVE_DECL_KEY_GAMES) && HAVE_DECL_KEY_GAMES))
+#if defined(KEY_GAMES) || (defined(HAVE_DECL_KEY_GAMES) && HAVE_DECL_KEY_GAMES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GAMES) == (0x1a1), "KEY_GAMES != 0x1a1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GAMES 0x1a1
#endif
-#if !(defined(KEY_ZOOMIN) || (defined(HAVE_DECL_KEY_ZOOMIN) && HAVE_DECL_KEY_ZOOMIN))
+#if defined(KEY_ZOOMIN) || (defined(HAVE_DECL_KEY_ZOOMIN) && HAVE_DECL_KEY_ZOOMIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ZOOMIN) == (0x1a2), "KEY_ZOOMIN != 0x1a2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ZOOMIN 0x1a2
#endif
-#if !(defined(KEY_ZOOMOUT) || (defined(HAVE_DECL_KEY_ZOOMOUT) && HAVE_DECL_KEY_ZOOMOUT))
+#if defined(KEY_ZOOMOUT) || (defined(HAVE_DECL_KEY_ZOOMOUT) && HAVE_DECL_KEY_ZOOMOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ZOOMOUT) == (0x1a3), "KEY_ZOOMOUT != 0x1a3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ZOOMOUT 0x1a3
#endif
-#if !(defined(KEY_ZOOMRESET) || (defined(HAVE_DECL_KEY_ZOOMRESET) && HAVE_DECL_KEY_ZOOMRESET))
+#if defined(KEY_ZOOMRESET) || (defined(HAVE_DECL_KEY_ZOOMRESET) && HAVE_DECL_KEY_ZOOMRESET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ZOOMRESET) == (0x1a4), "KEY_ZOOMRESET != 0x1a4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ZOOMRESET 0x1a4
#endif
-#if !(defined(KEY_WORDPROCESSOR) || (defined(HAVE_DECL_KEY_WORDPROCESSOR) && HAVE_DECL_KEY_WORDPROCESSOR))
+#if defined(KEY_WORDPROCESSOR) || (defined(HAVE_DECL_KEY_WORDPROCESSOR) && HAVE_DECL_KEY_WORDPROCESSOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_WORDPROCESSOR) == (0x1a5), "KEY_WORDPROCESSOR != 0x1a5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_WORDPROCESSOR 0x1a5
#endif
-#if !(defined(KEY_EDITOR) || (defined(HAVE_DECL_KEY_EDITOR) && HAVE_DECL_KEY_EDITOR))
+#if defined(KEY_EDITOR) || (defined(HAVE_DECL_KEY_EDITOR) && HAVE_DECL_KEY_EDITOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EDITOR) == (0x1a6), "KEY_EDITOR != 0x1a6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EDITOR 0x1a6
#endif
-#if !(defined(KEY_SPREADSHEET) || (defined(HAVE_DECL_KEY_SPREADSHEET) && HAVE_DECL_KEY_SPREADSHEET))
+#if defined(KEY_SPREADSHEET) || (defined(HAVE_DECL_KEY_SPREADSHEET) && HAVE_DECL_KEY_SPREADSHEET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPREADSHEET) == (0x1a7), "KEY_SPREADSHEET != 0x1a7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPREADSHEET 0x1a7
#endif
-#if !(defined(KEY_GRAPHICSEDITOR) || (defined(HAVE_DECL_KEY_GRAPHICSEDITOR) && HAVE_DECL_KEY_GRAPHICSEDITOR))
+#if defined(KEY_GRAPHICSEDITOR) || (defined(HAVE_DECL_KEY_GRAPHICSEDITOR) && HAVE_DECL_KEY_GRAPHICSEDITOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRAPHICSEDITOR) == (0x1a8), "KEY_GRAPHICSEDITOR != 0x1a8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRAPHICSEDITOR 0x1a8
#endif
-#if !(defined(KEY_PRESENTATION) || (defined(HAVE_DECL_KEY_PRESENTATION) && HAVE_DECL_KEY_PRESENTATION))
+#if defined(KEY_PRESENTATION) || (defined(HAVE_DECL_KEY_PRESENTATION) && HAVE_DECL_KEY_PRESENTATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PRESENTATION) == (0x1a9), "KEY_PRESENTATION != 0x1a9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PRESENTATION 0x1a9
#endif
-#if !(defined(KEY_DATABASE) || (defined(HAVE_DECL_KEY_DATABASE) && HAVE_DECL_KEY_DATABASE))
+#if defined(KEY_DATABASE) || (defined(HAVE_DECL_KEY_DATABASE) && HAVE_DECL_KEY_DATABASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DATABASE) == (0x1aa), "KEY_DATABASE != 0x1aa");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DATABASE 0x1aa
#endif
-#if !(defined(KEY_NEWS) || (defined(HAVE_DECL_KEY_NEWS) && HAVE_DECL_KEY_NEWS))
+#if defined(KEY_NEWS) || (defined(HAVE_DECL_KEY_NEWS) && HAVE_DECL_KEY_NEWS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NEWS) == (0x1ab), "KEY_NEWS != 0x1ab");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NEWS 0x1ab
#endif
-#if !(defined(KEY_VOICEMAIL) || (defined(HAVE_DECL_KEY_VOICEMAIL) && HAVE_DECL_KEY_VOICEMAIL))
+#if defined(KEY_VOICEMAIL) || (defined(HAVE_DECL_KEY_VOICEMAIL) && HAVE_DECL_KEY_VOICEMAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VOICEMAIL) == (0x1ac), "KEY_VOICEMAIL != 0x1ac");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VOICEMAIL 0x1ac
#endif
-#if !(defined(KEY_ADDRESSBOOK) || (defined(HAVE_DECL_KEY_ADDRESSBOOK) && HAVE_DECL_KEY_ADDRESSBOOK))
+#if defined(KEY_ADDRESSBOOK) || (defined(HAVE_DECL_KEY_ADDRESSBOOK) && HAVE_DECL_KEY_ADDRESSBOOK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ADDRESSBOOK) == (0x1ad), "KEY_ADDRESSBOOK != 0x1ad");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ADDRESSBOOK 0x1ad
#endif
-#if !(defined(KEY_MESSENGER) || (defined(HAVE_DECL_KEY_MESSENGER) && HAVE_DECL_KEY_MESSENGER))
+#if defined(KEY_MESSENGER) || (defined(HAVE_DECL_KEY_MESSENGER) && HAVE_DECL_KEY_MESSENGER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MESSENGER) == (0x1ae), "KEY_MESSENGER != 0x1ae");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MESSENGER 0x1ae
#endif
-#if !(defined(KEY_DISPLAYTOGGLE) || (defined(HAVE_DECL_KEY_DISPLAYTOGGLE) && HAVE_DECL_KEY_DISPLAYTOGGLE))
+#if defined(KEY_DISPLAYTOGGLE) || (defined(HAVE_DECL_KEY_DISPLAYTOGGLE) && HAVE_DECL_KEY_DISPLAYTOGGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DISPLAYTOGGLE) == (0x1af), "KEY_DISPLAYTOGGLE != 0x1af");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DISPLAYTOGGLE 0x1af
#endif
-#if !(defined(KEY_SPELLCHECK) || (defined(HAVE_DECL_KEY_SPELLCHECK) && HAVE_DECL_KEY_SPELLCHECK))
+#if defined(KEY_SPELLCHECK) || (defined(HAVE_DECL_KEY_SPELLCHECK) && HAVE_DECL_KEY_SPELLCHECK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPELLCHECK) == (0x1b0), "KEY_SPELLCHECK != 0x1b0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPELLCHECK 0x1b0
#endif
-#if !(defined(KEY_LOGOFF) || (defined(HAVE_DECL_KEY_LOGOFF) && HAVE_DECL_KEY_LOGOFF))
+#if defined(KEY_LOGOFF) || (defined(HAVE_DECL_KEY_LOGOFF) && HAVE_DECL_KEY_LOGOFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LOGOFF) == (0x1b1), "KEY_LOGOFF != 0x1b1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LOGOFF 0x1b1
#endif
-#if !(defined(KEY_DOLLAR) || (defined(HAVE_DECL_KEY_DOLLAR) && HAVE_DECL_KEY_DOLLAR))
+#if defined(KEY_DOLLAR) || (defined(HAVE_DECL_KEY_DOLLAR) && HAVE_DECL_KEY_DOLLAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DOLLAR) == (0x1b2), "KEY_DOLLAR != 0x1b2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DOLLAR 0x1b2
#endif
-#if !(defined(KEY_EURO) || (defined(HAVE_DECL_KEY_EURO) && HAVE_DECL_KEY_EURO))
+#if defined(KEY_EURO) || (defined(HAVE_DECL_KEY_EURO) && HAVE_DECL_KEY_EURO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_EURO) == (0x1b3), "KEY_EURO != 0x1b3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_EURO 0x1b3
#endif
-#if !(defined(KEY_FRAMEBACK) || (defined(HAVE_DECL_KEY_FRAMEBACK) && HAVE_DECL_KEY_FRAMEBACK))
+#if defined(KEY_FRAMEBACK) || (defined(HAVE_DECL_KEY_FRAMEBACK) && HAVE_DECL_KEY_FRAMEBACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FRAMEBACK) == (0x1b4), "KEY_FRAMEBACK != 0x1b4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FRAMEBACK 0x1b4
#endif
-#if !(defined(KEY_FRAMEFORWARD) || (defined(HAVE_DECL_KEY_FRAMEFORWARD) && HAVE_DECL_KEY_FRAMEFORWARD))
+#if defined(KEY_FRAMEFORWARD) || (defined(HAVE_DECL_KEY_FRAMEFORWARD) && HAVE_DECL_KEY_FRAMEFORWARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FRAMEFORWARD) == (0x1b5), "KEY_FRAMEFORWARD != 0x1b5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FRAMEFORWARD 0x1b5
#endif
-#if !(defined(KEY_CONTEXT_MENU) || (defined(HAVE_DECL_KEY_CONTEXT_MENU) && HAVE_DECL_KEY_CONTEXT_MENU))
+#if defined(KEY_CONTEXT_MENU) || (defined(HAVE_DECL_KEY_CONTEXT_MENU) && HAVE_DECL_KEY_CONTEXT_MENU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CONTEXT_MENU) == (0x1b6), "KEY_CONTEXT_MENU != 0x1b6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CONTEXT_MENU 0x1b6
#endif
-#if !(defined(KEY_MEDIA_REPEAT) || (defined(HAVE_DECL_KEY_MEDIA_REPEAT) && HAVE_DECL_KEY_MEDIA_REPEAT))
+#if defined(KEY_MEDIA_REPEAT) || (defined(HAVE_DECL_KEY_MEDIA_REPEAT) && HAVE_DECL_KEY_MEDIA_REPEAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MEDIA_REPEAT) == (0x1b7), "KEY_MEDIA_REPEAT != 0x1b7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MEDIA_REPEAT 0x1b7
#endif
-#if !(defined(KEY_10CHANNELSUP) || (defined(HAVE_DECL_KEY_10CHANNELSUP) && HAVE_DECL_KEY_10CHANNELSUP))
+#if defined(KEY_10CHANNELSUP) || (defined(HAVE_DECL_KEY_10CHANNELSUP) && HAVE_DECL_KEY_10CHANNELSUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_10CHANNELSUP) == (0x1b8), "KEY_10CHANNELSUP != 0x1b8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_10CHANNELSUP 0x1b8
#endif
-#if !(defined(KEY_10CHANNELSDOWN) || (defined(HAVE_DECL_KEY_10CHANNELSDOWN) && HAVE_DECL_KEY_10CHANNELSDOWN))
+#if defined(KEY_10CHANNELSDOWN) || (defined(HAVE_DECL_KEY_10CHANNELSDOWN) && HAVE_DECL_KEY_10CHANNELSDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_10CHANNELSDOWN) == (0x1b9), "KEY_10CHANNELSDOWN != 0x1b9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_10CHANNELSDOWN 0x1b9
#endif
-#if !(defined(KEY_IMAGES) || (defined(HAVE_DECL_KEY_IMAGES) && HAVE_DECL_KEY_IMAGES))
+#if defined(KEY_IMAGES) || (defined(HAVE_DECL_KEY_IMAGES) && HAVE_DECL_KEY_IMAGES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_IMAGES) == (0x1ba), "KEY_IMAGES != 0x1ba");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_IMAGES 0x1ba
#endif
-#if !(defined(KEY_DEL_EOL) || (defined(HAVE_DECL_KEY_DEL_EOL) && HAVE_DECL_KEY_DEL_EOL))
+#if defined(KEY_DEL_EOL) || (defined(HAVE_DECL_KEY_DEL_EOL) && HAVE_DECL_KEY_DEL_EOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DEL_EOL) == (0x1c0), "KEY_DEL_EOL != 0x1c0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DEL_EOL 0x1c0
#endif
-#if !(defined(KEY_DEL_EOS) || (defined(HAVE_DECL_KEY_DEL_EOS) && HAVE_DECL_KEY_DEL_EOS))
+#if defined(KEY_DEL_EOS) || (defined(HAVE_DECL_KEY_DEL_EOS) && HAVE_DECL_KEY_DEL_EOS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DEL_EOS) == (0x1c1), "KEY_DEL_EOS != 0x1c1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DEL_EOS 0x1c1
#endif
-#if !(defined(KEY_INS_LINE) || (defined(HAVE_DECL_KEY_INS_LINE) && HAVE_DECL_KEY_INS_LINE))
+#if defined(KEY_INS_LINE) || (defined(HAVE_DECL_KEY_INS_LINE) && HAVE_DECL_KEY_INS_LINE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_INS_LINE) == (0x1c2), "KEY_INS_LINE != 0x1c2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_INS_LINE 0x1c2
#endif
-#if !(defined(KEY_DEL_LINE) || (defined(HAVE_DECL_KEY_DEL_LINE) && HAVE_DECL_KEY_DEL_LINE))
+#if defined(KEY_DEL_LINE) || (defined(HAVE_DECL_KEY_DEL_LINE) && HAVE_DECL_KEY_DEL_LINE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DEL_LINE) == (0x1c3), "KEY_DEL_LINE != 0x1c3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DEL_LINE 0x1c3
#endif
-#if !(defined(KEY_FN) || (defined(HAVE_DECL_KEY_FN) && HAVE_DECL_KEY_FN))
+#if defined(KEY_FN) || (defined(HAVE_DECL_KEY_FN) && HAVE_DECL_KEY_FN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN) == (0x1d0), "KEY_FN != 0x1d0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN 0x1d0
#endif
-#if !(defined(KEY_FN_ESC) || (defined(HAVE_DECL_KEY_FN_ESC) && HAVE_DECL_KEY_FN_ESC))
+#if defined(KEY_FN_ESC) || (defined(HAVE_DECL_KEY_FN_ESC) && HAVE_DECL_KEY_FN_ESC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_ESC) == (0x1d1), "KEY_FN_ESC != 0x1d1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_ESC 0x1d1
#endif
-#if !(defined(KEY_FN_F1) || (defined(HAVE_DECL_KEY_FN_F1) && HAVE_DECL_KEY_FN_F1))
+#if defined(KEY_FN_F1) || (defined(HAVE_DECL_KEY_FN_F1) && HAVE_DECL_KEY_FN_F1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F1) == (0x1d2), "KEY_FN_F1 != 0x1d2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F1 0x1d2
#endif
-#if !(defined(KEY_FN_F2) || (defined(HAVE_DECL_KEY_FN_F2) && HAVE_DECL_KEY_FN_F2))
+#if defined(KEY_FN_F2) || (defined(HAVE_DECL_KEY_FN_F2) && HAVE_DECL_KEY_FN_F2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F2) == (0x1d3), "KEY_FN_F2 != 0x1d3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F2 0x1d3
#endif
-#if !(defined(KEY_FN_F3) || (defined(HAVE_DECL_KEY_FN_F3) && HAVE_DECL_KEY_FN_F3))
+#if defined(KEY_FN_F3) || (defined(HAVE_DECL_KEY_FN_F3) && HAVE_DECL_KEY_FN_F3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F3) == (0x1d4), "KEY_FN_F3 != 0x1d4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F3 0x1d4
#endif
-#if !(defined(KEY_FN_F4) || (defined(HAVE_DECL_KEY_FN_F4) && HAVE_DECL_KEY_FN_F4))
+#if defined(KEY_FN_F4) || (defined(HAVE_DECL_KEY_FN_F4) && HAVE_DECL_KEY_FN_F4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F4) == (0x1d5), "KEY_FN_F4 != 0x1d5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F4 0x1d5
#endif
-#if !(defined(KEY_FN_F5) || (defined(HAVE_DECL_KEY_FN_F5) && HAVE_DECL_KEY_FN_F5))
+#if defined(KEY_FN_F5) || (defined(HAVE_DECL_KEY_FN_F5) && HAVE_DECL_KEY_FN_F5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F5) == (0x1d6), "KEY_FN_F5 != 0x1d6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F5 0x1d6
#endif
-#if !(defined(KEY_FN_F6) || (defined(HAVE_DECL_KEY_FN_F6) && HAVE_DECL_KEY_FN_F6))
+#if defined(KEY_FN_F6) || (defined(HAVE_DECL_KEY_FN_F6) && HAVE_DECL_KEY_FN_F6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F6) == (0x1d7), "KEY_FN_F6 != 0x1d7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F6 0x1d7
#endif
-#if !(defined(KEY_FN_F7) || (defined(HAVE_DECL_KEY_FN_F7) && HAVE_DECL_KEY_FN_F7))
+#if defined(KEY_FN_F7) || (defined(HAVE_DECL_KEY_FN_F7) && HAVE_DECL_KEY_FN_F7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F7) == (0x1d8), "KEY_FN_F7 != 0x1d8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F7 0x1d8
#endif
-#if !(defined(KEY_FN_F8) || (defined(HAVE_DECL_KEY_FN_F8) && HAVE_DECL_KEY_FN_F8))
+#if defined(KEY_FN_F8) || (defined(HAVE_DECL_KEY_FN_F8) && HAVE_DECL_KEY_FN_F8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F8) == (0x1d9), "KEY_FN_F8 != 0x1d9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F8 0x1d9
#endif
-#if !(defined(KEY_FN_F9) || (defined(HAVE_DECL_KEY_FN_F9) && HAVE_DECL_KEY_FN_F9))
+#if defined(KEY_FN_F9) || (defined(HAVE_DECL_KEY_FN_F9) && HAVE_DECL_KEY_FN_F9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F9) == (0x1da), "KEY_FN_F9 != 0x1da");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F9 0x1da
#endif
-#if !(defined(KEY_FN_F10) || (defined(HAVE_DECL_KEY_FN_F10) && HAVE_DECL_KEY_FN_F10))
+#if defined(KEY_FN_F10) || (defined(HAVE_DECL_KEY_FN_F10) && HAVE_DECL_KEY_FN_F10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F10) == (0x1db), "KEY_FN_F10 != 0x1db");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F10 0x1db
#endif
-#if !(defined(KEY_FN_F11) || (defined(HAVE_DECL_KEY_FN_F11) && HAVE_DECL_KEY_FN_F11))
+#if defined(KEY_FN_F11) || (defined(HAVE_DECL_KEY_FN_F11) && HAVE_DECL_KEY_FN_F11)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F11) == (0x1dc), "KEY_FN_F11 != 0x1dc");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F11 0x1dc
#endif
-#if !(defined(KEY_FN_F12) || (defined(HAVE_DECL_KEY_FN_F12) && HAVE_DECL_KEY_FN_F12))
+#if defined(KEY_FN_F12) || (defined(HAVE_DECL_KEY_FN_F12) && HAVE_DECL_KEY_FN_F12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F12) == (0x1dd), "KEY_FN_F12 != 0x1dd");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F12 0x1dd
#endif
-#if !(defined(KEY_FN_1) || (defined(HAVE_DECL_KEY_FN_1) && HAVE_DECL_KEY_FN_1))
+#if defined(KEY_FN_1) || (defined(HAVE_DECL_KEY_FN_1) && HAVE_DECL_KEY_FN_1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_1) == (0x1de), "KEY_FN_1 != 0x1de");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_1 0x1de
#endif
-#if !(defined(KEY_FN_2) || (defined(HAVE_DECL_KEY_FN_2) && HAVE_DECL_KEY_FN_2))
+#if defined(KEY_FN_2) || (defined(HAVE_DECL_KEY_FN_2) && HAVE_DECL_KEY_FN_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_2) == (0x1df), "KEY_FN_2 != 0x1df");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_2 0x1df
#endif
-#if !(defined(KEY_FN_D) || (defined(HAVE_DECL_KEY_FN_D) && HAVE_DECL_KEY_FN_D))
+#if defined(KEY_FN_D) || (defined(HAVE_DECL_KEY_FN_D) && HAVE_DECL_KEY_FN_D)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_D) == (0x1e0), "KEY_FN_D != 0x1e0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_D 0x1e0
#endif
-#if !(defined(KEY_FN_E) || (defined(HAVE_DECL_KEY_FN_E) && HAVE_DECL_KEY_FN_E))
+#if defined(KEY_FN_E) || (defined(HAVE_DECL_KEY_FN_E) && HAVE_DECL_KEY_FN_E)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_E) == (0x1e1), "KEY_FN_E != 0x1e1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_E 0x1e1
#endif
-#if !(defined(KEY_FN_F) || (defined(HAVE_DECL_KEY_FN_F) && HAVE_DECL_KEY_FN_F))
+#if defined(KEY_FN_F) || (defined(HAVE_DECL_KEY_FN_F) && HAVE_DECL_KEY_FN_F)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_F) == (0x1e2), "KEY_FN_F != 0x1e2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_F 0x1e2
#endif
-#if !(defined(KEY_FN_S) || (defined(HAVE_DECL_KEY_FN_S) && HAVE_DECL_KEY_FN_S))
+#if defined(KEY_FN_S) || (defined(HAVE_DECL_KEY_FN_S) && HAVE_DECL_KEY_FN_S)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_S) == (0x1e3), "KEY_FN_S != 0x1e3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_S 0x1e3
#endif
-#if !(defined(KEY_FN_B) || (defined(HAVE_DECL_KEY_FN_B) && HAVE_DECL_KEY_FN_B))
+#if defined(KEY_FN_B) || (defined(HAVE_DECL_KEY_FN_B) && HAVE_DECL_KEY_FN_B)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FN_B) == (0x1e4), "KEY_FN_B != 0x1e4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FN_B 0x1e4
#endif
-#if !(defined(KEY_BRL_DOT1) || (defined(HAVE_DECL_KEY_BRL_DOT1) && HAVE_DECL_KEY_BRL_DOT1))
+#if defined(KEY_BRL_DOT1) || (defined(HAVE_DECL_KEY_BRL_DOT1) && HAVE_DECL_KEY_BRL_DOT1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT1) == (0x1f1), "KEY_BRL_DOT1 != 0x1f1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT1 0x1f1
#endif
-#if !(defined(KEY_BRL_DOT2) || (defined(HAVE_DECL_KEY_BRL_DOT2) && HAVE_DECL_KEY_BRL_DOT2))
+#if defined(KEY_BRL_DOT2) || (defined(HAVE_DECL_KEY_BRL_DOT2) && HAVE_DECL_KEY_BRL_DOT2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT2) == (0x1f2), "KEY_BRL_DOT2 != 0x1f2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT2 0x1f2
#endif
-#if !(defined(KEY_BRL_DOT3) || (defined(HAVE_DECL_KEY_BRL_DOT3) && HAVE_DECL_KEY_BRL_DOT3))
+#if defined(KEY_BRL_DOT3) || (defined(HAVE_DECL_KEY_BRL_DOT3) && HAVE_DECL_KEY_BRL_DOT3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT3) == (0x1f3), "KEY_BRL_DOT3 != 0x1f3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT3 0x1f3
#endif
-#if !(defined(KEY_BRL_DOT4) || (defined(HAVE_DECL_KEY_BRL_DOT4) && HAVE_DECL_KEY_BRL_DOT4))
+#if defined(KEY_BRL_DOT4) || (defined(HAVE_DECL_KEY_BRL_DOT4) && HAVE_DECL_KEY_BRL_DOT4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT4) == (0x1f4), "KEY_BRL_DOT4 != 0x1f4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT4 0x1f4
#endif
-#if !(defined(KEY_BRL_DOT5) || (defined(HAVE_DECL_KEY_BRL_DOT5) && HAVE_DECL_KEY_BRL_DOT5))
+#if defined(KEY_BRL_DOT5) || (defined(HAVE_DECL_KEY_BRL_DOT5) && HAVE_DECL_KEY_BRL_DOT5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT5) == (0x1f5), "KEY_BRL_DOT5 != 0x1f5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT5 0x1f5
#endif
-#if !(defined(KEY_BRL_DOT6) || (defined(HAVE_DECL_KEY_BRL_DOT6) && HAVE_DECL_KEY_BRL_DOT6))
+#if defined(KEY_BRL_DOT6) || (defined(HAVE_DECL_KEY_BRL_DOT6) && HAVE_DECL_KEY_BRL_DOT6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT6) == (0x1f6), "KEY_BRL_DOT6 != 0x1f6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT6 0x1f6
#endif
-#if !(defined(KEY_BRL_DOT7) || (defined(HAVE_DECL_KEY_BRL_DOT7) && HAVE_DECL_KEY_BRL_DOT7))
+#if defined(KEY_BRL_DOT7) || (defined(HAVE_DECL_KEY_BRL_DOT7) && HAVE_DECL_KEY_BRL_DOT7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT7) == (0x1f7), "KEY_BRL_DOT7 != 0x1f7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT7 0x1f7
#endif
-#if !(defined(KEY_BRL_DOT8) || (defined(HAVE_DECL_KEY_BRL_DOT8) && HAVE_DECL_KEY_BRL_DOT8))
+#if defined(KEY_BRL_DOT8) || (defined(HAVE_DECL_KEY_BRL_DOT8) && HAVE_DECL_KEY_BRL_DOT8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT8) == (0x1f8), "KEY_BRL_DOT8 != 0x1f8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT8 0x1f8
#endif
-#if !(defined(KEY_BRL_DOT9) || (defined(HAVE_DECL_KEY_BRL_DOT9) && HAVE_DECL_KEY_BRL_DOT9))
+#if defined(KEY_BRL_DOT9) || (defined(HAVE_DECL_KEY_BRL_DOT9) && HAVE_DECL_KEY_BRL_DOT9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT9) == (0x1f9), "KEY_BRL_DOT9 != 0x1f9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT9 0x1f9
#endif
-#if !(defined(KEY_BRL_DOT10) || (defined(HAVE_DECL_KEY_BRL_DOT10) && HAVE_DECL_KEY_BRL_DOT10))
+#if defined(KEY_BRL_DOT10) || (defined(HAVE_DECL_KEY_BRL_DOT10) && HAVE_DECL_KEY_BRL_DOT10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRL_DOT10) == (0x1fa), "KEY_BRL_DOT10 != 0x1fa");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRL_DOT10 0x1fa
#endif
-#if !(defined(KEY_NUMERIC_0) || (defined(HAVE_DECL_KEY_NUMERIC_0) && HAVE_DECL_KEY_NUMERIC_0))
+#if defined(KEY_NUMERIC_0) || (defined(HAVE_DECL_KEY_NUMERIC_0) && HAVE_DECL_KEY_NUMERIC_0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_0) == (0x200), "KEY_NUMERIC_0 != 0x200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_0 0x200
#endif
-#if !(defined(KEY_NUMERIC_1) || (defined(HAVE_DECL_KEY_NUMERIC_1) && HAVE_DECL_KEY_NUMERIC_1))
+#if defined(KEY_NUMERIC_1) || (defined(HAVE_DECL_KEY_NUMERIC_1) && HAVE_DECL_KEY_NUMERIC_1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_1) == (0x201), "KEY_NUMERIC_1 != 0x201");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_1 0x201
#endif
-#if !(defined(KEY_NUMERIC_2) || (defined(HAVE_DECL_KEY_NUMERIC_2) && HAVE_DECL_KEY_NUMERIC_2))
+#if defined(KEY_NUMERIC_2) || (defined(HAVE_DECL_KEY_NUMERIC_2) && HAVE_DECL_KEY_NUMERIC_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_2) == (0x202), "KEY_NUMERIC_2 != 0x202");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_2 0x202
#endif
-#if !(defined(KEY_NUMERIC_3) || (defined(HAVE_DECL_KEY_NUMERIC_3) && HAVE_DECL_KEY_NUMERIC_3))
+#if defined(KEY_NUMERIC_3) || (defined(HAVE_DECL_KEY_NUMERIC_3) && HAVE_DECL_KEY_NUMERIC_3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_3) == (0x203), "KEY_NUMERIC_3 != 0x203");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_3 0x203
#endif
-#if !(defined(KEY_NUMERIC_4) || (defined(HAVE_DECL_KEY_NUMERIC_4) && HAVE_DECL_KEY_NUMERIC_4))
+#if defined(KEY_NUMERIC_4) || (defined(HAVE_DECL_KEY_NUMERIC_4) && HAVE_DECL_KEY_NUMERIC_4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_4) == (0x204), "KEY_NUMERIC_4 != 0x204");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_4 0x204
#endif
-#if !(defined(KEY_NUMERIC_5) || (defined(HAVE_DECL_KEY_NUMERIC_5) && HAVE_DECL_KEY_NUMERIC_5))
+#if defined(KEY_NUMERIC_5) || (defined(HAVE_DECL_KEY_NUMERIC_5) && HAVE_DECL_KEY_NUMERIC_5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_5) == (0x205), "KEY_NUMERIC_5 != 0x205");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_5 0x205
#endif
-#if !(defined(KEY_NUMERIC_6) || (defined(HAVE_DECL_KEY_NUMERIC_6) && HAVE_DECL_KEY_NUMERIC_6))
+#if defined(KEY_NUMERIC_6) || (defined(HAVE_DECL_KEY_NUMERIC_6) && HAVE_DECL_KEY_NUMERIC_6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_6) == (0x206), "KEY_NUMERIC_6 != 0x206");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_6 0x206
#endif
-#if !(defined(KEY_NUMERIC_7) || (defined(HAVE_DECL_KEY_NUMERIC_7) && HAVE_DECL_KEY_NUMERIC_7))
+#if defined(KEY_NUMERIC_7) || (defined(HAVE_DECL_KEY_NUMERIC_7) && HAVE_DECL_KEY_NUMERIC_7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_7) == (0x207), "KEY_NUMERIC_7 != 0x207");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_7 0x207
#endif
-#if !(defined(KEY_NUMERIC_8) || (defined(HAVE_DECL_KEY_NUMERIC_8) && HAVE_DECL_KEY_NUMERIC_8))
+#if defined(KEY_NUMERIC_8) || (defined(HAVE_DECL_KEY_NUMERIC_8) && HAVE_DECL_KEY_NUMERIC_8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_8) == (0x208), "KEY_NUMERIC_8 != 0x208");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_8 0x208
#endif
-#if !(defined(KEY_NUMERIC_9) || (defined(HAVE_DECL_KEY_NUMERIC_9) && HAVE_DECL_KEY_NUMERIC_9))
+#if defined(KEY_NUMERIC_9) || (defined(HAVE_DECL_KEY_NUMERIC_9) && HAVE_DECL_KEY_NUMERIC_9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_9) == (0x209), "KEY_NUMERIC_9 != 0x209");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_9 0x209
#endif
-#if !(defined(KEY_NUMERIC_STAR) || (defined(HAVE_DECL_KEY_NUMERIC_STAR) && HAVE_DECL_KEY_NUMERIC_STAR))
+#if defined(KEY_NUMERIC_STAR) || (defined(HAVE_DECL_KEY_NUMERIC_STAR) && HAVE_DECL_KEY_NUMERIC_STAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_STAR) == (0x20a), "KEY_NUMERIC_STAR != 0x20a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_STAR 0x20a
#endif
-#if !(defined(KEY_NUMERIC_POUND) || (defined(HAVE_DECL_KEY_NUMERIC_POUND) && HAVE_DECL_KEY_NUMERIC_POUND))
+#if defined(KEY_NUMERIC_POUND) || (defined(HAVE_DECL_KEY_NUMERIC_POUND) && HAVE_DECL_KEY_NUMERIC_POUND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_POUND) == (0x20b), "KEY_NUMERIC_POUND != 0x20b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_POUND 0x20b
#endif
-#if !(defined(KEY_NUMERIC_A) || (defined(HAVE_DECL_KEY_NUMERIC_A) && HAVE_DECL_KEY_NUMERIC_A))
+#if defined(KEY_NUMERIC_A) || (defined(HAVE_DECL_KEY_NUMERIC_A) && HAVE_DECL_KEY_NUMERIC_A)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_A) == (0x20c), "KEY_NUMERIC_A != 0x20c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_A 0x20c
#endif
-#if !(defined(KEY_NUMERIC_B) || (defined(HAVE_DECL_KEY_NUMERIC_B) && HAVE_DECL_KEY_NUMERIC_B))
+#if defined(KEY_NUMERIC_B) || (defined(HAVE_DECL_KEY_NUMERIC_B) && HAVE_DECL_KEY_NUMERIC_B)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_B) == (0x20d), "KEY_NUMERIC_B != 0x20d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_B 0x20d
#endif
-#if !(defined(KEY_NUMERIC_C) || (defined(HAVE_DECL_KEY_NUMERIC_C) && HAVE_DECL_KEY_NUMERIC_C))
+#if defined(KEY_NUMERIC_C) || (defined(HAVE_DECL_KEY_NUMERIC_C) && HAVE_DECL_KEY_NUMERIC_C)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_C) == (0x20e), "KEY_NUMERIC_C != 0x20e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_C 0x20e
#endif
-#if !(defined(KEY_NUMERIC_D) || (defined(HAVE_DECL_KEY_NUMERIC_D) && HAVE_DECL_KEY_NUMERIC_D))
+#if defined(KEY_NUMERIC_D) || (defined(HAVE_DECL_KEY_NUMERIC_D) && HAVE_DECL_KEY_NUMERIC_D)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_D) == (0x20f), "KEY_NUMERIC_D != 0x20f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_D 0x20f
#endif
-#if !(defined(KEY_CAMERA_FOCUS) || (defined(HAVE_DECL_KEY_CAMERA_FOCUS) && HAVE_DECL_KEY_CAMERA_FOCUS))
+#if defined(KEY_CAMERA_FOCUS) || (defined(HAVE_DECL_KEY_CAMERA_FOCUS) && HAVE_DECL_KEY_CAMERA_FOCUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA_FOCUS) == (0x210), "KEY_CAMERA_FOCUS != 0x210");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA_FOCUS 0x210
#endif
-#if !(defined(KEY_WPS_BUTTON) || (defined(HAVE_DECL_KEY_WPS_BUTTON) && HAVE_DECL_KEY_WPS_BUTTON))
+#if defined(KEY_WPS_BUTTON) || (defined(HAVE_DECL_KEY_WPS_BUTTON) && HAVE_DECL_KEY_WPS_BUTTON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_WPS_BUTTON) == (0x211), "KEY_WPS_BUTTON != 0x211");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_WPS_BUTTON 0x211
#endif
-#if !(defined(KEY_TOUCHPAD_TOGGLE) || (defined(HAVE_DECL_KEY_TOUCHPAD_TOGGLE) && HAVE_DECL_KEY_TOUCHPAD_TOGGLE))
+#if defined(KEY_TOUCHPAD_TOGGLE) || (defined(HAVE_DECL_KEY_TOUCHPAD_TOGGLE) && HAVE_DECL_KEY_TOUCHPAD_TOGGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TOUCHPAD_TOGGLE) == (0x212), "KEY_TOUCHPAD_TOGGLE != 0x212");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TOUCHPAD_TOGGLE 0x212
#endif
-#if !(defined(KEY_TOUCHPAD_ON) || (defined(HAVE_DECL_KEY_TOUCHPAD_ON) && HAVE_DECL_KEY_TOUCHPAD_ON))
+#if defined(KEY_TOUCHPAD_ON) || (defined(HAVE_DECL_KEY_TOUCHPAD_ON) && HAVE_DECL_KEY_TOUCHPAD_ON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TOUCHPAD_ON) == (0x213), "KEY_TOUCHPAD_ON != 0x213");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TOUCHPAD_ON 0x213
#endif
-#if !(defined(KEY_TOUCHPAD_OFF) || (defined(HAVE_DECL_KEY_TOUCHPAD_OFF) && HAVE_DECL_KEY_TOUCHPAD_OFF))
+#if defined(KEY_TOUCHPAD_OFF) || (defined(HAVE_DECL_KEY_TOUCHPAD_OFF) && HAVE_DECL_KEY_TOUCHPAD_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TOUCHPAD_OFF) == (0x214), "KEY_TOUCHPAD_OFF != 0x214");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TOUCHPAD_OFF 0x214
#endif
-#if !(defined(KEY_CAMERA_ZOOMIN) || (defined(HAVE_DECL_KEY_CAMERA_ZOOMIN) && HAVE_DECL_KEY_CAMERA_ZOOMIN))
+#if defined(KEY_CAMERA_ZOOMIN) || (defined(HAVE_DECL_KEY_CAMERA_ZOOMIN) && HAVE_DECL_KEY_CAMERA_ZOOMIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA_ZOOMIN) == (0x215), "KEY_CAMERA_ZOOMIN != 0x215");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA_ZOOMIN 0x215
#endif
-#if !(defined(KEY_CAMERA_ZOOMOUT) || (defined(HAVE_DECL_KEY_CAMERA_ZOOMOUT) && HAVE_DECL_KEY_CAMERA_ZOOMOUT))
+#if defined(KEY_CAMERA_ZOOMOUT) || (defined(HAVE_DECL_KEY_CAMERA_ZOOMOUT) && HAVE_DECL_KEY_CAMERA_ZOOMOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA_ZOOMOUT) == (0x216), "KEY_CAMERA_ZOOMOUT != 0x216");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA_ZOOMOUT 0x216
#endif
-#if !(defined(KEY_CAMERA_UP) || (defined(HAVE_DECL_KEY_CAMERA_UP) && HAVE_DECL_KEY_CAMERA_UP))
+#if defined(KEY_CAMERA_UP) || (defined(HAVE_DECL_KEY_CAMERA_UP) && HAVE_DECL_KEY_CAMERA_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA_UP) == (0x217), "KEY_CAMERA_UP != 0x217");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA_UP 0x217
#endif
-#if !(defined(KEY_CAMERA_DOWN) || (defined(HAVE_DECL_KEY_CAMERA_DOWN) && HAVE_DECL_KEY_CAMERA_DOWN))
+#if defined(KEY_CAMERA_DOWN) || (defined(HAVE_DECL_KEY_CAMERA_DOWN) && HAVE_DECL_KEY_CAMERA_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA_DOWN) == (0x218), "KEY_CAMERA_DOWN != 0x218");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA_DOWN 0x218
#endif
-#if !(defined(KEY_CAMERA_LEFT) || (defined(HAVE_DECL_KEY_CAMERA_LEFT) && HAVE_DECL_KEY_CAMERA_LEFT))
+#if defined(KEY_CAMERA_LEFT) || (defined(HAVE_DECL_KEY_CAMERA_LEFT) && HAVE_DECL_KEY_CAMERA_LEFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA_LEFT) == (0x219), "KEY_CAMERA_LEFT != 0x219");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA_LEFT 0x219
#endif
-#if !(defined(KEY_CAMERA_RIGHT) || (defined(HAVE_DECL_KEY_CAMERA_RIGHT) && HAVE_DECL_KEY_CAMERA_RIGHT))
+#if defined(KEY_CAMERA_RIGHT) || (defined(HAVE_DECL_KEY_CAMERA_RIGHT) && HAVE_DECL_KEY_CAMERA_RIGHT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CAMERA_RIGHT) == (0x21a), "KEY_CAMERA_RIGHT != 0x21a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CAMERA_RIGHT 0x21a
#endif
-#if !(defined(KEY_ATTENDANT_ON) || (defined(HAVE_DECL_KEY_ATTENDANT_ON) && HAVE_DECL_KEY_ATTENDANT_ON))
+#if defined(KEY_ATTENDANT_ON) || (defined(HAVE_DECL_KEY_ATTENDANT_ON) && HAVE_DECL_KEY_ATTENDANT_ON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ATTENDANT_ON) == (0x21b), "KEY_ATTENDANT_ON != 0x21b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ATTENDANT_ON 0x21b
#endif
-#if !(defined(KEY_ATTENDANT_OFF) || (defined(HAVE_DECL_KEY_ATTENDANT_OFF) && HAVE_DECL_KEY_ATTENDANT_OFF))
+#if defined(KEY_ATTENDANT_OFF) || (defined(HAVE_DECL_KEY_ATTENDANT_OFF) && HAVE_DECL_KEY_ATTENDANT_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ATTENDANT_OFF) == (0x21c), "KEY_ATTENDANT_OFF != 0x21c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ATTENDANT_OFF 0x21c
#endif
-#if !(defined(KEY_ATTENDANT_TOGGLE) || (defined(HAVE_DECL_KEY_ATTENDANT_TOGGLE) && HAVE_DECL_KEY_ATTENDANT_TOGGLE))
+#if defined(KEY_ATTENDANT_TOGGLE) || (defined(HAVE_DECL_KEY_ATTENDANT_TOGGLE) && HAVE_DECL_KEY_ATTENDANT_TOGGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ATTENDANT_TOGGLE) == (0x21d), "KEY_ATTENDANT_TOGGLE != 0x21d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ATTENDANT_TOGGLE 0x21d
#endif
-#if !(defined(KEY_LIGHTS_TOGGLE) || (defined(HAVE_DECL_KEY_LIGHTS_TOGGLE) && HAVE_DECL_KEY_LIGHTS_TOGGLE))
+#if defined(KEY_LIGHTS_TOGGLE) || (defined(HAVE_DECL_KEY_LIGHTS_TOGGLE) && HAVE_DECL_KEY_LIGHTS_TOGGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LIGHTS_TOGGLE) == (0x21e), "KEY_LIGHTS_TOGGLE != 0x21e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LIGHTS_TOGGLE 0x21e
#endif
-#if !(defined(BTN_DPAD_UP) || (defined(HAVE_DECL_BTN_DPAD_UP) && HAVE_DECL_BTN_DPAD_UP))
+#if defined(BTN_DPAD_UP) || (defined(HAVE_DECL_BTN_DPAD_UP) && HAVE_DECL_BTN_DPAD_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_DPAD_UP) == (0x220), "BTN_DPAD_UP != 0x220");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_DPAD_UP 0x220
#endif
-#if !(defined(BTN_DPAD_DOWN) || (defined(HAVE_DECL_BTN_DPAD_DOWN) && HAVE_DECL_BTN_DPAD_DOWN))
+#if defined(BTN_DPAD_DOWN) || (defined(HAVE_DECL_BTN_DPAD_DOWN) && HAVE_DECL_BTN_DPAD_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_DPAD_DOWN) == (0x221), "BTN_DPAD_DOWN != 0x221");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_DPAD_DOWN 0x221
#endif
-#if !(defined(BTN_DPAD_LEFT) || (defined(HAVE_DECL_BTN_DPAD_LEFT) && HAVE_DECL_BTN_DPAD_LEFT))
+#if defined(BTN_DPAD_LEFT) || (defined(HAVE_DECL_BTN_DPAD_LEFT) && HAVE_DECL_BTN_DPAD_LEFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_DPAD_LEFT) == (0x222), "BTN_DPAD_LEFT != 0x222");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_DPAD_LEFT 0x222
#endif
-#if !(defined(BTN_DPAD_RIGHT) || (defined(HAVE_DECL_BTN_DPAD_RIGHT) && HAVE_DECL_BTN_DPAD_RIGHT))
+#if defined(BTN_DPAD_RIGHT) || (defined(HAVE_DECL_BTN_DPAD_RIGHT) && HAVE_DECL_BTN_DPAD_RIGHT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_DPAD_RIGHT) == (0x223), "BTN_DPAD_RIGHT != 0x223");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_DPAD_RIGHT 0x223
#endif
-#if !(defined(KEY_ALS_TOGGLE) || (defined(HAVE_DECL_KEY_ALS_TOGGLE) && HAVE_DECL_KEY_ALS_TOGGLE))
+#if defined(KEY_ALS_TOGGLE) || (defined(HAVE_DECL_KEY_ALS_TOGGLE) && HAVE_DECL_KEY_ALS_TOGGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ALS_TOGGLE) == (0x230), "KEY_ALS_TOGGLE != 0x230");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ALS_TOGGLE 0x230
#endif
-#if !(defined(KEY_ROTATE_LOCK_TOGGLE) || (defined(HAVE_DECL_KEY_ROTATE_LOCK_TOGGLE) && HAVE_DECL_KEY_ROTATE_LOCK_TOGGLE))
+#if defined(KEY_ROTATE_LOCK_TOGGLE) || (defined(HAVE_DECL_KEY_ROTATE_LOCK_TOGGLE) && HAVE_DECL_KEY_ROTATE_LOCK_TOGGLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ROTATE_LOCK_TOGGLE) == (0x231), "KEY_ROTATE_LOCK_TOGGLE != 0x231");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ROTATE_LOCK_TOGGLE 0x231
#endif
-#if !(defined(KEY_BUTTONCONFIG) || (defined(HAVE_DECL_KEY_BUTTONCONFIG) && HAVE_DECL_KEY_BUTTONCONFIG))
+#if defined(KEY_BUTTONCONFIG) || (defined(HAVE_DECL_KEY_BUTTONCONFIG) && HAVE_DECL_KEY_BUTTONCONFIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BUTTONCONFIG) == (0x240), "KEY_BUTTONCONFIG != 0x240");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BUTTONCONFIG 0x240
#endif
-#if !(defined(KEY_TASKMANAGER) || (defined(HAVE_DECL_KEY_TASKMANAGER) && HAVE_DECL_KEY_TASKMANAGER))
+#if defined(KEY_TASKMANAGER) || (defined(HAVE_DECL_KEY_TASKMANAGER) && HAVE_DECL_KEY_TASKMANAGER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_TASKMANAGER) == (0x241), "KEY_TASKMANAGER != 0x241");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_TASKMANAGER 0x241
#endif
-#if !(defined(KEY_JOURNAL) || (defined(HAVE_DECL_KEY_JOURNAL) && HAVE_DECL_KEY_JOURNAL))
+#if defined(KEY_JOURNAL) || (defined(HAVE_DECL_KEY_JOURNAL) && HAVE_DECL_KEY_JOURNAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_JOURNAL) == (0x242), "KEY_JOURNAL != 0x242");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_JOURNAL 0x242
#endif
-#if !(defined(KEY_CONTROLPANEL) || (defined(HAVE_DECL_KEY_CONTROLPANEL) && HAVE_DECL_KEY_CONTROLPANEL))
+#if defined(KEY_CONTROLPANEL) || (defined(HAVE_DECL_KEY_CONTROLPANEL) && HAVE_DECL_KEY_CONTROLPANEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_CONTROLPANEL) == (0x243), "KEY_CONTROLPANEL != 0x243");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_CONTROLPANEL 0x243
#endif
-#if !(defined(KEY_APPSELECT) || (defined(HAVE_DECL_KEY_APPSELECT) && HAVE_DECL_KEY_APPSELECT))
+#if defined(KEY_APPSELECT) || (defined(HAVE_DECL_KEY_APPSELECT) && HAVE_DECL_KEY_APPSELECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_APPSELECT) == (0x244), "KEY_APPSELECT != 0x244");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_APPSELECT 0x244
#endif
-#if !(defined(KEY_SCREENSAVER) || (defined(HAVE_DECL_KEY_SCREENSAVER) && HAVE_DECL_KEY_SCREENSAVER))
+#if defined(KEY_SCREENSAVER) || (defined(HAVE_DECL_KEY_SCREENSAVER) && HAVE_DECL_KEY_SCREENSAVER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SCREENSAVER) == (0x245), "KEY_SCREENSAVER != 0x245");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SCREENSAVER 0x245
#endif
-#if !(defined(KEY_VOICECOMMAND) || (defined(HAVE_DECL_KEY_VOICECOMMAND) && HAVE_DECL_KEY_VOICECOMMAND))
+#if defined(KEY_VOICECOMMAND) || (defined(HAVE_DECL_KEY_VOICECOMMAND) && HAVE_DECL_KEY_VOICECOMMAND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VOICECOMMAND) == (0x246), "KEY_VOICECOMMAND != 0x246");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VOICECOMMAND 0x246
#endif
-#if !(defined(KEY_ASSISTANT) || (defined(HAVE_DECL_KEY_ASSISTANT) && HAVE_DECL_KEY_ASSISTANT))
+#if defined(KEY_ASSISTANT) || (defined(HAVE_DECL_KEY_ASSISTANT) && HAVE_DECL_KEY_ASSISTANT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ASSISTANT) == (0x247), "KEY_ASSISTANT != 0x247");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ASSISTANT 0x247
#endif
-#if !(defined(KEY_BRIGHTNESS_MIN) || (defined(HAVE_DECL_KEY_BRIGHTNESS_MIN) && HAVE_DECL_KEY_BRIGHTNESS_MIN))
+#ifndef STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN
+# define STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN
+# undef KEY_BRIGHTNESS_MIN
+#endif
+#if defined(KEY_BRIGHTNESS_MIN) || (defined(HAVE_DECL_KEY_BRIGHTNESS_MIN) && HAVE_DECL_KEY_BRIGHTNESS_MIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRIGHTNESS_MIN) == (0x250), "KEY_BRIGHTNESS_MIN != 0x250");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRIGHTNESS_MIN 0x250
#endif
-#if !(defined(KEY_BRIGHTNESS_MAX) || (defined(HAVE_DECL_KEY_BRIGHTNESS_MAX) && HAVE_DECL_KEY_BRIGHTNESS_MAX))
+#if defined(KEY_BRIGHTNESS_MAX) || (defined(HAVE_DECL_KEY_BRIGHTNESS_MAX) && HAVE_DECL_KEY_BRIGHTNESS_MAX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_BRIGHTNESS_MAX) == (0x251), "KEY_BRIGHTNESS_MAX != 0x251");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_BRIGHTNESS_MAX 0x251
#endif
-#if !(defined(KEY_KBDINPUTASSIST_PREV) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_PREV) && HAVE_DECL_KEY_KBDINPUTASSIST_PREV))
+#if defined(KEY_KBDINPUTASSIST_PREV) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_PREV) && HAVE_DECL_KEY_KBDINPUTASSIST_PREV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDINPUTASSIST_PREV) == (0x260), "KEY_KBDINPUTASSIST_PREV != 0x260");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDINPUTASSIST_PREV 0x260
#endif
-#if !(defined(KEY_KBDINPUTASSIST_NEXT) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_NEXT) && HAVE_DECL_KEY_KBDINPUTASSIST_NEXT))
+#if defined(KEY_KBDINPUTASSIST_NEXT) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_NEXT) && HAVE_DECL_KEY_KBDINPUTASSIST_NEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDINPUTASSIST_NEXT) == (0x261), "KEY_KBDINPUTASSIST_NEXT != 0x261");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDINPUTASSIST_NEXT 0x261
#endif
-#if !(defined(KEY_KBDINPUTASSIST_PREVGROUP) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_PREVGROUP) && HAVE_DECL_KEY_KBDINPUTASSIST_PREVGROUP))
+#if defined(KEY_KBDINPUTASSIST_PREVGROUP) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_PREVGROUP) && HAVE_DECL_KEY_KBDINPUTASSIST_PREVGROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDINPUTASSIST_PREVGROUP) == (0x262), "KEY_KBDINPUTASSIST_PREVGROUP != 0x262");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDINPUTASSIST_PREVGROUP 0x262
#endif
-#if !(defined(KEY_KBDINPUTASSIST_NEXTGROUP) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_NEXTGROUP) && HAVE_DECL_KEY_KBDINPUTASSIST_NEXTGROUP))
+#if defined(KEY_KBDINPUTASSIST_NEXTGROUP) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_NEXTGROUP) && HAVE_DECL_KEY_KBDINPUTASSIST_NEXTGROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDINPUTASSIST_NEXTGROUP) == (0x263), "KEY_KBDINPUTASSIST_NEXTGROUP != 0x263");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDINPUTASSIST_NEXTGROUP 0x263
#endif
-#if !(defined(KEY_KBDINPUTASSIST_ACCEPT) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_ACCEPT) && HAVE_DECL_KEY_KBDINPUTASSIST_ACCEPT))
+#if defined(KEY_KBDINPUTASSIST_ACCEPT) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_ACCEPT) && HAVE_DECL_KEY_KBDINPUTASSIST_ACCEPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDINPUTASSIST_ACCEPT) == (0x264), "KEY_KBDINPUTASSIST_ACCEPT != 0x264");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDINPUTASSIST_ACCEPT 0x264
#endif
-#if !(defined(KEY_KBDINPUTASSIST_CANCEL) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_CANCEL) && HAVE_DECL_KEY_KBDINPUTASSIST_CANCEL))
+#if defined(KEY_KBDINPUTASSIST_CANCEL) || (defined(HAVE_DECL_KEY_KBDINPUTASSIST_CANCEL) && HAVE_DECL_KEY_KBDINPUTASSIST_CANCEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_KBDINPUTASSIST_CANCEL) == (0x265), "KEY_KBDINPUTASSIST_CANCEL != 0x265");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_KBDINPUTASSIST_CANCEL 0x265
#endif
-#if !(defined(KEY_RIGHT_UP) || (defined(HAVE_DECL_KEY_RIGHT_UP) && HAVE_DECL_KEY_RIGHT_UP))
+#if defined(KEY_RIGHT_UP) || (defined(HAVE_DECL_KEY_RIGHT_UP) && HAVE_DECL_KEY_RIGHT_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHT_UP) == (0x266), "KEY_RIGHT_UP != 0x266");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHT_UP 0x266
#endif
-#if !(defined(KEY_RIGHT_DOWN) || (defined(HAVE_DECL_KEY_RIGHT_DOWN) && HAVE_DECL_KEY_RIGHT_DOWN))
+#if defined(KEY_RIGHT_DOWN) || (defined(HAVE_DECL_KEY_RIGHT_DOWN) && HAVE_DECL_KEY_RIGHT_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_RIGHT_DOWN) == (0x267), "KEY_RIGHT_DOWN != 0x267");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_RIGHT_DOWN 0x267
#endif
-#if !(defined(KEY_LEFT_UP) || (defined(HAVE_DECL_KEY_LEFT_UP) && HAVE_DECL_KEY_LEFT_UP))
+#if defined(KEY_LEFT_UP) || (defined(HAVE_DECL_KEY_LEFT_UP) && HAVE_DECL_KEY_LEFT_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFT_UP) == (0x268), "KEY_LEFT_UP != 0x268");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFT_UP 0x268
#endif
-#if !(defined(KEY_LEFT_DOWN) || (defined(HAVE_DECL_KEY_LEFT_DOWN) && HAVE_DECL_KEY_LEFT_DOWN))
+#if defined(KEY_LEFT_DOWN) || (defined(HAVE_DECL_KEY_LEFT_DOWN) && HAVE_DECL_KEY_LEFT_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_LEFT_DOWN) == (0x269), "KEY_LEFT_DOWN != 0x269");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_LEFT_DOWN 0x269
#endif
-#if !(defined(KEY_ROOT_MENU) || (defined(HAVE_DECL_KEY_ROOT_MENU) && HAVE_DECL_KEY_ROOT_MENU))
+#if defined(KEY_ROOT_MENU) || (defined(HAVE_DECL_KEY_ROOT_MENU) && HAVE_DECL_KEY_ROOT_MENU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ROOT_MENU) == (0x26a), "KEY_ROOT_MENU != 0x26a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ROOT_MENU 0x26a
#endif
-#if !(defined(KEY_MEDIA_TOP_MENU) || (defined(HAVE_DECL_KEY_MEDIA_TOP_MENU) && HAVE_DECL_KEY_MEDIA_TOP_MENU))
+#if defined(KEY_MEDIA_TOP_MENU) || (defined(HAVE_DECL_KEY_MEDIA_TOP_MENU) && HAVE_DECL_KEY_MEDIA_TOP_MENU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_MEDIA_TOP_MENU) == (0x26b), "KEY_MEDIA_TOP_MENU != 0x26b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_MEDIA_TOP_MENU 0x26b
#endif
-#if !(defined(KEY_NUMERIC_11) || (defined(HAVE_DECL_KEY_NUMERIC_11) && HAVE_DECL_KEY_NUMERIC_11))
+#if defined(KEY_NUMERIC_11) || (defined(HAVE_DECL_KEY_NUMERIC_11) && HAVE_DECL_KEY_NUMERIC_11)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_11) == (0x26c), "KEY_NUMERIC_11 != 0x26c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_11 0x26c
#endif
-#if !(defined(KEY_NUMERIC_12) || (defined(HAVE_DECL_KEY_NUMERIC_12) && HAVE_DECL_KEY_NUMERIC_12))
+#if defined(KEY_NUMERIC_12) || (defined(HAVE_DECL_KEY_NUMERIC_12) && HAVE_DECL_KEY_NUMERIC_12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NUMERIC_12) == (0x26d), "KEY_NUMERIC_12 != 0x26d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NUMERIC_12 0x26d
#endif
-#if !(defined(KEY_AUDIO_DESC) || (defined(HAVE_DECL_KEY_AUDIO_DESC) && HAVE_DECL_KEY_AUDIO_DESC))
+#if defined(KEY_AUDIO_DESC) || (defined(HAVE_DECL_KEY_AUDIO_DESC) && HAVE_DECL_KEY_AUDIO_DESC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_AUDIO_DESC) == (0x26e), "KEY_AUDIO_DESC != 0x26e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_AUDIO_DESC 0x26e
#endif
-#if !(defined(KEY_3D_MODE) || (defined(HAVE_DECL_KEY_3D_MODE) && HAVE_DECL_KEY_3D_MODE))
+#if defined(KEY_3D_MODE) || (defined(HAVE_DECL_KEY_3D_MODE) && HAVE_DECL_KEY_3D_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_3D_MODE) == (0x26f), "KEY_3D_MODE != 0x26f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_3D_MODE 0x26f
#endif
-#if !(defined(KEY_NEXT_FAVORITE) || (defined(HAVE_DECL_KEY_NEXT_FAVORITE) && HAVE_DECL_KEY_NEXT_FAVORITE))
+#if defined(KEY_NEXT_FAVORITE) || (defined(HAVE_DECL_KEY_NEXT_FAVORITE) && HAVE_DECL_KEY_NEXT_FAVORITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_NEXT_FAVORITE) == (0x270), "KEY_NEXT_FAVORITE != 0x270");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_NEXT_FAVORITE 0x270
#endif
-#if !(defined(KEY_STOP_RECORD) || (defined(HAVE_DECL_KEY_STOP_RECORD) && HAVE_DECL_KEY_STOP_RECORD))
+#if defined(KEY_STOP_RECORD) || (defined(HAVE_DECL_KEY_STOP_RECORD) && HAVE_DECL_KEY_STOP_RECORD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_STOP_RECORD) == (0x271), "KEY_STOP_RECORD != 0x271");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_STOP_RECORD 0x271
#endif
-#if !(defined(KEY_PAUSE_RECORD) || (defined(HAVE_DECL_KEY_PAUSE_RECORD) && HAVE_DECL_KEY_PAUSE_RECORD))
+#if defined(KEY_PAUSE_RECORD) || (defined(HAVE_DECL_KEY_PAUSE_RECORD) && HAVE_DECL_KEY_PAUSE_RECORD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_PAUSE_RECORD) == (0x272), "KEY_PAUSE_RECORD != 0x272");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_PAUSE_RECORD 0x272
#endif
-#if !(defined(KEY_VOD) || (defined(HAVE_DECL_KEY_VOD) && HAVE_DECL_KEY_VOD))
+#if defined(KEY_VOD) || (defined(HAVE_DECL_KEY_VOD) && HAVE_DECL_KEY_VOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_VOD) == (0x273), "KEY_VOD != 0x273");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_VOD 0x273
#endif
-#if !(defined(KEY_UNMUTE) || (defined(HAVE_DECL_KEY_UNMUTE) && HAVE_DECL_KEY_UNMUTE))
+#if defined(KEY_UNMUTE) || (defined(HAVE_DECL_KEY_UNMUTE) && HAVE_DECL_KEY_UNMUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_UNMUTE) == (0x274), "KEY_UNMUTE != 0x274");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_UNMUTE 0x274
#endif
-#if !(defined(KEY_FASTREVERSE) || (defined(HAVE_DECL_KEY_FASTREVERSE) && HAVE_DECL_KEY_FASTREVERSE))
+#if defined(KEY_FASTREVERSE) || (defined(HAVE_DECL_KEY_FASTREVERSE) && HAVE_DECL_KEY_FASTREVERSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_FASTREVERSE) == (0x275), "KEY_FASTREVERSE != 0x275");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_FASTREVERSE 0x275
#endif
-#if !(defined(KEY_SLOWREVERSE) || (defined(HAVE_DECL_KEY_SLOWREVERSE) && HAVE_DECL_KEY_SLOWREVERSE))
+#if defined(KEY_SLOWREVERSE) || (defined(HAVE_DECL_KEY_SLOWREVERSE) && HAVE_DECL_KEY_SLOWREVERSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SLOWREVERSE) == (0x276), "KEY_SLOWREVERSE != 0x276");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SLOWREVERSE 0x276
#endif
-#if !(defined(KEY_DATA) || (defined(HAVE_DECL_KEY_DATA) && HAVE_DECL_KEY_DATA))
+#ifndef STRACE_WORKAROUND_FOR_KEY_DATA
+# define STRACE_WORKAROUND_FOR_KEY_DATA
+# undef KEY_DATA
+#endif
+#if defined(KEY_DATA) || (defined(HAVE_DECL_KEY_DATA) && HAVE_DECL_KEY_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_DATA) == (0x277), "KEY_DATA != 0x277");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_DATA 0x277
#endif
-#if !(defined(KEY_ONSCREEN_KEYBOARD) || (defined(HAVE_DECL_KEY_ONSCREEN_KEYBOARD) && HAVE_DECL_KEY_ONSCREEN_KEYBOARD))
+#if defined(KEY_ONSCREEN_KEYBOARD) || (defined(HAVE_DECL_KEY_ONSCREEN_KEYBOARD) && HAVE_DECL_KEY_ONSCREEN_KEYBOARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_ONSCREEN_KEYBOARD) == (0x278), "KEY_ONSCREEN_KEYBOARD != 0x278");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_ONSCREEN_KEYBOARD 0x278
#endif
-#if !(defined(BTN_TRIGGER_HAPPY) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY) && HAVE_DECL_BTN_TRIGGER_HAPPY))
-# define BTN_TRIGGER_HAPPY 0x2c0
-#endif
-#if !(defined(BTN_TRIGGER_HAPPY1) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY1) && HAVE_DECL_BTN_TRIGGER_HAPPY1))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY1 0x2c0
#endif
-#if !(defined(BTN_TRIGGER_HAPPY2) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY2) && HAVE_DECL_BTN_TRIGGER_HAPPY2))
+#if defined(BTN_TRIGGER_HAPPY2) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY2) && HAVE_DECL_BTN_TRIGGER_HAPPY2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY2) == (0x2c1), "BTN_TRIGGER_HAPPY2 != 0x2c1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY2 0x2c1
#endif
-#if !(defined(BTN_TRIGGER_HAPPY3) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY3) && HAVE_DECL_BTN_TRIGGER_HAPPY3))
+#if defined(BTN_TRIGGER_HAPPY3) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY3) && HAVE_DECL_BTN_TRIGGER_HAPPY3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY3) == (0x2c2), "BTN_TRIGGER_HAPPY3 != 0x2c2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY3 0x2c2
#endif
-#if !(defined(BTN_TRIGGER_HAPPY4) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY4) && HAVE_DECL_BTN_TRIGGER_HAPPY4))
+#if defined(BTN_TRIGGER_HAPPY4) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY4) && HAVE_DECL_BTN_TRIGGER_HAPPY4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY4) == (0x2c3), "BTN_TRIGGER_HAPPY4 != 0x2c3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY4 0x2c3
#endif
-#if !(defined(BTN_TRIGGER_HAPPY5) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY5) && HAVE_DECL_BTN_TRIGGER_HAPPY5))
+#if defined(BTN_TRIGGER_HAPPY5) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY5) && HAVE_DECL_BTN_TRIGGER_HAPPY5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY5) == (0x2c4), "BTN_TRIGGER_HAPPY5 != 0x2c4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY5 0x2c4
#endif
-#if !(defined(BTN_TRIGGER_HAPPY6) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY6) && HAVE_DECL_BTN_TRIGGER_HAPPY6))
+#if defined(BTN_TRIGGER_HAPPY6) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY6) && HAVE_DECL_BTN_TRIGGER_HAPPY6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY6) == (0x2c5), "BTN_TRIGGER_HAPPY6 != 0x2c5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY6 0x2c5
#endif
-#if !(defined(BTN_TRIGGER_HAPPY7) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY7) && HAVE_DECL_BTN_TRIGGER_HAPPY7))
+#if defined(BTN_TRIGGER_HAPPY7) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY7) && HAVE_DECL_BTN_TRIGGER_HAPPY7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY7) == (0x2c6), "BTN_TRIGGER_HAPPY7 != 0x2c6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY7 0x2c6
#endif
-#if !(defined(BTN_TRIGGER_HAPPY8) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY8) && HAVE_DECL_BTN_TRIGGER_HAPPY8))
+#if defined(BTN_TRIGGER_HAPPY8) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY8) && HAVE_DECL_BTN_TRIGGER_HAPPY8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY8) == (0x2c7), "BTN_TRIGGER_HAPPY8 != 0x2c7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY8 0x2c7
#endif
-#if !(defined(BTN_TRIGGER_HAPPY9) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY9) && HAVE_DECL_BTN_TRIGGER_HAPPY9))
+#if defined(BTN_TRIGGER_HAPPY9) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY9) && HAVE_DECL_BTN_TRIGGER_HAPPY9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY9) == (0x2c8), "BTN_TRIGGER_HAPPY9 != 0x2c8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY9 0x2c8
#endif
-#if !(defined(BTN_TRIGGER_HAPPY10) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY10) && HAVE_DECL_BTN_TRIGGER_HAPPY10))
+#if defined(BTN_TRIGGER_HAPPY10) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY10) && HAVE_DECL_BTN_TRIGGER_HAPPY10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY10) == (0x2c9), "BTN_TRIGGER_HAPPY10 != 0x2c9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY10 0x2c9
#endif
-#if !(defined(BTN_TRIGGER_HAPPY11) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY11) && HAVE_DECL_BTN_TRIGGER_HAPPY11))
+#if defined(BTN_TRIGGER_HAPPY11) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY11) && HAVE_DECL_BTN_TRIGGER_HAPPY11)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY11) == (0x2ca), "BTN_TRIGGER_HAPPY11 != 0x2ca");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY11 0x2ca
#endif
-#if !(defined(BTN_TRIGGER_HAPPY12) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY12) && HAVE_DECL_BTN_TRIGGER_HAPPY12))
+#if defined(BTN_TRIGGER_HAPPY12) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY12) && HAVE_DECL_BTN_TRIGGER_HAPPY12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY12) == (0x2cb), "BTN_TRIGGER_HAPPY12 != 0x2cb");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY12 0x2cb
#endif
-#if !(defined(BTN_TRIGGER_HAPPY13) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY13) && HAVE_DECL_BTN_TRIGGER_HAPPY13))
+#if defined(BTN_TRIGGER_HAPPY13) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY13) && HAVE_DECL_BTN_TRIGGER_HAPPY13)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY13) == (0x2cc), "BTN_TRIGGER_HAPPY13 != 0x2cc");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY13 0x2cc
#endif
-#if !(defined(BTN_TRIGGER_HAPPY14) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY14) && HAVE_DECL_BTN_TRIGGER_HAPPY14))
+#if defined(BTN_TRIGGER_HAPPY14) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY14) && HAVE_DECL_BTN_TRIGGER_HAPPY14)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY14) == (0x2cd), "BTN_TRIGGER_HAPPY14 != 0x2cd");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY14 0x2cd
#endif
-#if !(defined(BTN_TRIGGER_HAPPY15) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY15) && HAVE_DECL_BTN_TRIGGER_HAPPY15))
+#if defined(BTN_TRIGGER_HAPPY15) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY15) && HAVE_DECL_BTN_TRIGGER_HAPPY15)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY15) == (0x2ce), "BTN_TRIGGER_HAPPY15 != 0x2ce");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY15 0x2ce
#endif
-#if !(defined(BTN_TRIGGER_HAPPY16) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY16) && HAVE_DECL_BTN_TRIGGER_HAPPY16))
+#if defined(BTN_TRIGGER_HAPPY16) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY16) && HAVE_DECL_BTN_TRIGGER_HAPPY16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY16) == (0x2cf), "BTN_TRIGGER_HAPPY16 != 0x2cf");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY16 0x2cf
#endif
-#if !(defined(BTN_TRIGGER_HAPPY17) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY17) && HAVE_DECL_BTN_TRIGGER_HAPPY17))
+#if defined(BTN_TRIGGER_HAPPY17) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY17) && HAVE_DECL_BTN_TRIGGER_HAPPY17)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY17) == (0x2d0), "BTN_TRIGGER_HAPPY17 != 0x2d0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY17 0x2d0
#endif
-#if !(defined(BTN_TRIGGER_HAPPY18) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY18) && HAVE_DECL_BTN_TRIGGER_HAPPY18))
+#if defined(BTN_TRIGGER_HAPPY18) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY18) && HAVE_DECL_BTN_TRIGGER_HAPPY18)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY18) == (0x2d1), "BTN_TRIGGER_HAPPY18 != 0x2d1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY18 0x2d1
#endif
-#if !(defined(BTN_TRIGGER_HAPPY19) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY19) && HAVE_DECL_BTN_TRIGGER_HAPPY19))
+#if defined(BTN_TRIGGER_HAPPY19) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY19) && HAVE_DECL_BTN_TRIGGER_HAPPY19)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY19) == (0x2d2), "BTN_TRIGGER_HAPPY19 != 0x2d2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY19 0x2d2
#endif
-#if !(defined(BTN_TRIGGER_HAPPY20) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY20) && HAVE_DECL_BTN_TRIGGER_HAPPY20))
+#if defined(BTN_TRIGGER_HAPPY20) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY20) && HAVE_DECL_BTN_TRIGGER_HAPPY20)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY20) == (0x2d3), "BTN_TRIGGER_HAPPY20 != 0x2d3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY20 0x2d3
#endif
-#if !(defined(BTN_TRIGGER_HAPPY21) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY21) && HAVE_DECL_BTN_TRIGGER_HAPPY21))
+#if defined(BTN_TRIGGER_HAPPY21) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY21) && HAVE_DECL_BTN_TRIGGER_HAPPY21)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY21) == (0x2d4), "BTN_TRIGGER_HAPPY21 != 0x2d4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY21 0x2d4
#endif
-#if !(defined(BTN_TRIGGER_HAPPY22) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY22) && HAVE_DECL_BTN_TRIGGER_HAPPY22))
+#if defined(BTN_TRIGGER_HAPPY22) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY22) && HAVE_DECL_BTN_TRIGGER_HAPPY22)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY22) == (0x2d5), "BTN_TRIGGER_HAPPY22 != 0x2d5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY22 0x2d5
#endif
-#if !(defined(BTN_TRIGGER_HAPPY23) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY23) && HAVE_DECL_BTN_TRIGGER_HAPPY23))
+#if defined(BTN_TRIGGER_HAPPY23) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY23) && HAVE_DECL_BTN_TRIGGER_HAPPY23)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY23) == (0x2d6), "BTN_TRIGGER_HAPPY23 != 0x2d6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY23 0x2d6
#endif
-#if !(defined(BTN_TRIGGER_HAPPY24) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY24) && HAVE_DECL_BTN_TRIGGER_HAPPY24))
+#if defined(BTN_TRIGGER_HAPPY24) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY24) && HAVE_DECL_BTN_TRIGGER_HAPPY24)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY24) == (0x2d7), "BTN_TRIGGER_HAPPY24 != 0x2d7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY24 0x2d7
#endif
-#if !(defined(BTN_TRIGGER_HAPPY25) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY25) && HAVE_DECL_BTN_TRIGGER_HAPPY25))
+#if defined(BTN_TRIGGER_HAPPY25) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY25) && HAVE_DECL_BTN_TRIGGER_HAPPY25)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY25) == (0x2d8), "BTN_TRIGGER_HAPPY25 != 0x2d8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY25 0x2d8
#endif
-#if !(defined(BTN_TRIGGER_HAPPY26) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY26) && HAVE_DECL_BTN_TRIGGER_HAPPY26))
+#if defined(BTN_TRIGGER_HAPPY26) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY26) && HAVE_DECL_BTN_TRIGGER_HAPPY26)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY26) == (0x2d9), "BTN_TRIGGER_HAPPY26 != 0x2d9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY26 0x2d9
#endif
-#if !(defined(BTN_TRIGGER_HAPPY27) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY27) && HAVE_DECL_BTN_TRIGGER_HAPPY27))
+#if defined(BTN_TRIGGER_HAPPY27) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY27) && HAVE_DECL_BTN_TRIGGER_HAPPY27)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY27) == (0x2da), "BTN_TRIGGER_HAPPY27 != 0x2da");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY27 0x2da
#endif
-#if !(defined(BTN_TRIGGER_HAPPY28) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY28) && HAVE_DECL_BTN_TRIGGER_HAPPY28))
+#if defined(BTN_TRIGGER_HAPPY28) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY28) && HAVE_DECL_BTN_TRIGGER_HAPPY28)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY28) == (0x2db), "BTN_TRIGGER_HAPPY28 != 0x2db");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY28 0x2db
#endif
-#if !(defined(BTN_TRIGGER_HAPPY29) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY29) && HAVE_DECL_BTN_TRIGGER_HAPPY29))
+#if defined(BTN_TRIGGER_HAPPY29) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY29) && HAVE_DECL_BTN_TRIGGER_HAPPY29)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY29) == (0x2dc), "BTN_TRIGGER_HAPPY29 != 0x2dc");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY29 0x2dc
#endif
-#if !(defined(BTN_TRIGGER_HAPPY30) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY30) && HAVE_DECL_BTN_TRIGGER_HAPPY30))
+#if defined(BTN_TRIGGER_HAPPY30) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY30) && HAVE_DECL_BTN_TRIGGER_HAPPY30)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY30) == (0x2dd), "BTN_TRIGGER_HAPPY30 != 0x2dd");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY30 0x2dd
#endif
-#if !(defined(BTN_TRIGGER_HAPPY31) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY31) && HAVE_DECL_BTN_TRIGGER_HAPPY31))
+#if defined(BTN_TRIGGER_HAPPY31) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY31) && HAVE_DECL_BTN_TRIGGER_HAPPY31)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY31) == (0x2de), "BTN_TRIGGER_HAPPY31 != 0x2de");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY31 0x2de
#endif
-#if !(defined(BTN_TRIGGER_HAPPY32) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY32) && HAVE_DECL_BTN_TRIGGER_HAPPY32))
+#if defined(BTN_TRIGGER_HAPPY32) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY32) && HAVE_DECL_BTN_TRIGGER_HAPPY32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY32) == (0x2df), "BTN_TRIGGER_HAPPY32 != 0x2df");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY32 0x2df
#endif
-#if !(defined(BTN_TRIGGER_HAPPY33) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY33) && HAVE_DECL_BTN_TRIGGER_HAPPY33))
+#if defined(BTN_TRIGGER_HAPPY33) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY33) && HAVE_DECL_BTN_TRIGGER_HAPPY33)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY33) == (0x2e0), "BTN_TRIGGER_HAPPY33 != 0x2e0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY33 0x2e0
#endif
-#if !(defined(BTN_TRIGGER_HAPPY34) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY34) && HAVE_DECL_BTN_TRIGGER_HAPPY34))
+#if defined(BTN_TRIGGER_HAPPY34) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY34) && HAVE_DECL_BTN_TRIGGER_HAPPY34)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY34) == (0x2e1), "BTN_TRIGGER_HAPPY34 != 0x2e1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY34 0x2e1
#endif
-#if !(defined(BTN_TRIGGER_HAPPY35) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY35) && HAVE_DECL_BTN_TRIGGER_HAPPY35))
+#if defined(BTN_TRIGGER_HAPPY35) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY35) && HAVE_DECL_BTN_TRIGGER_HAPPY35)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY35) == (0x2e2), "BTN_TRIGGER_HAPPY35 != 0x2e2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY35 0x2e2
#endif
-#if !(defined(BTN_TRIGGER_HAPPY36) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY36) && HAVE_DECL_BTN_TRIGGER_HAPPY36))
+#if defined(BTN_TRIGGER_HAPPY36) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY36) && HAVE_DECL_BTN_TRIGGER_HAPPY36)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY36) == (0x2e3), "BTN_TRIGGER_HAPPY36 != 0x2e3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY36 0x2e3
#endif
-#if !(defined(BTN_TRIGGER_HAPPY37) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY37) && HAVE_DECL_BTN_TRIGGER_HAPPY37))
+#if defined(BTN_TRIGGER_HAPPY37) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY37) && HAVE_DECL_BTN_TRIGGER_HAPPY37)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY37) == (0x2e4), "BTN_TRIGGER_HAPPY37 != 0x2e4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY37 0x2e4
#endif
-#if !(defined(BTN_TRIGGER_HAPPY38) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY38) && HAVE_DECL_BTN_TRIGGER_HAPPY38))
+#if defined(BTN_TRIGGER_HAPPY38) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY38) && HAVE_DECL_BTN_TRIGGER_HAPPY38)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY38) == (0x2e5), "BTN_TRIGGER_HAPPY38 != 0x2e5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY38 0x2e5
#endif
-#if !(defined(BTN_TRIGGER_HAPPY39) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY39) && HAVE_DECL_BTN_TRIGGER_HAPPY39))
+#if defined(BTN_TRIGGER_HAPPY39) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY39) && HAVE_DECL_BTN_TRIGGER_HAPPY39)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY39) == (0x2e6), "BTN_TRIGGER_HAPPY39 != 0x2e6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY39 0x2e6
#endif
-#if !(defined(BTN_TRIGGER_HAPPY40) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY40) && HAVE_DECL_BTN_TRIGGER_HAPPY40))
+#if defined(BTN_TRIGGER_HAPPY40) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY40) && HAVE_DECL_BTN_TRIGGER_HAPPY40)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BTN_TRIGGER_HAPPY40) == (0x2e7), "BTN_TRIGGER_HAPPY40 != 0x2e7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BTN_TRIGGER_HAPPY40 0x2e7
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat evdev_keycode in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat evdev_keycode in mpers mode
+
+# else
static
const struct xlat evdev_keycode[] = {
- XLAT(KEY_RESERVED),
- XLAT(KEY_ESC),
- XLAT(KEY_1),
- XLAT(KEY_2),
- XLAT(KEY_3),
- XLAT(KEY_4),
- XLAT(KEY_5),
- XLAT(KEY_6),
- XLAT(KEY_7),
- XLAT(KEY_8),
- XLAT(KEY_9),
- XLAT(KEY_0),
- XLAT(KEY_MINUS),
- XLAT(KEY_EQUAL),
- XLAT(KEY_BACKSPACE),
- XLAT(KEY_TAB),
- XLAT(KEY_Q),
- XLAT(KEY_W),
- XLAT(KEY_E),
- XLAT(KEY_R),
- XLAT(KEY_T),
- XLAT(KEY_Y),
- XLAT(KEY_U),
- XLAT(KEY_I),
- XLAT(KEY_O),
- XLAT(KEY_P),
- XLAT(KEY_LEFTBRACE),
- XLAT(KEY_RIGHTBRACE),
- XLAT(KEY_ENTER),
- XLAT(KEY_LEFTCTRL),
- XLAT(KEY_A),
- XLAT(KEY_S),
- XLAT(KEY_D),
- XLAT(KEY_F),
- XLAT(KEY_G),
- XLAT(KEY_H),
- XLAT(KEY_J),
- XLAT(KEY_K),
- XLAT(KEY_L),
- XLAT(KEY_SEMICOLON),
- XLAT(KEY_APOSTROPHE),
- XLAT(KEY_GRAVE),
- XLAT(KEY_LEFTSHIFT),
- XLAT(KEY_BACKSLASH),
- XLAT(KEY_Z),
- XLAT(KEY_X),
- XLAT(KEY_C),
- XLAT(KEY_V),
- XLAT(KEY_B),
- XLAT(KEY_N),
- XLAT(KEY_M),
- XLAT(KEY_COMMA),
- XLAT(KEY_DOT),
- XLAT(KEY_SLASH),
- XLAT(KEY_RIGHTSHIFT),
- XLAT(KEY_KPASTERISK),
- XLAT(KEY_LEFTALT),
- XLAT(KEY_SPACE),
- XLAT(KEY_CAPSLOCK),
- XLAT(KEY_F1),
- XLAT(KEY_F2),
- XLAT(KEY_F3),
- XLAT(KEY_F4),
- XLAT(KEY_F5),
- XLAT(KEY_F6),
- XLAT(KEY_F7),
- XLAT(KEY_F8),
- XLAT(KEY_F9),
- XLAT(KEY_F10),
- XLAT(KEY_NUMLOCK),
- XLAT(KEY_SCROLLLOCK),
- XLAT(KEY_KP7),
- XLAT(KEY_KP8),
- XLAT(KEY_KP9),
- XLAT(KEY_KPMINUS),
- XLAT(KEY_KP4),
- XLAT(KEY_KP5),
- XLAT(KEY_KP6),
- XLAT(KEY_KPPLUS),
- XLAT(KEY_KP1),
- XLAT(KEY_KP2),
- XLAT(KEY_KP3),
- XLAT(KEY_KP0),
- XLAT(KEY_KPDOT),
+ [KEY_RESERVED] = XLAT(KEY_RESERVED),
+ [KEY_ESC] = XLAT(KEY_ESC),
+ [KEY_1] = XLAT(KEY_1),
+ [KEY_2] = XLAT(KEY_2),
+ [KEY_3] = XLAT(KEY_3),
+ [KEY_4] = XLAT(KEY_4),
+ [KEY_5] = XLAT(KEY_5),
+ [KEY_6] = XLAT(KEY_6),
+ [KEY_7] = XLAT(KEY_7),
+ [KEY_8] = XLAT(KEY_8),
+ [KEY_9] = XLAT(KEY_9),
+ [KEY_0] = XLAT(KEY_0),
+ [KEY_MINUS] = XLAT(KEY_MINUS),
+ [KEY_EQUAL] = XLAT(KEY_EQUAL),
+ [KEY_BACKSPACE] = XLAT(KEY_BACKSPACE),
+ [KEY_TAB] = XLAT(KEY_TAB),
+ [KEY_Q] = XLAT(KEY_Q),
+ [KEY_W] = XLAT(KEY_W),
+ [KEY_E] = XLAT(KEY_E),
+ [KEY_R] = XLAT(KEY_R),
+ [KEY_T] = XLAT(KEY_T),
+ [KEY_Y] = XLAT(KEY_Y),
+ [KEY_U] = XLAT(KEY_U),
+ [KEY_I] = XLAT(KEY_I),
+ [KEY_O] = XLAT(KEY_O),
+ [KEY_P] = XLAT(KEY_P),
+ [KEY_LEFTBRACE] = XLAT(KEY_LEFTBRACE),
+ [KEY_RIGHTBRACE] = XLAT(KEY_RIGHTBRACE),
+ [KEY_ENTER] = XLAT(KEY_ENTER),
+ [KEY_LEFTCTRL] = XLAT(KEY_LEFTCTRL),
+ [KEY_A] = XLAT(KEY_A),
+ [KEY_S] = XLAT(KEY_S),
+ [KEY_D] = XLAT(KEY_D),
+ [KEY_F] = XLAT(KEY_F),
+ [KEY_G] = XLAT(KEY_G),
+ [KEY_H] = XLAT(KEY_H),
+ [KEY_J] = XLAT(KEY_J),
+ [KEY_K] = XLAT(KEY_K),
+ [KEY_L] = XLAT(KEY_L),
+ [KEY_SEMICOLON] = XLAT(KEY_SEMICOLON),
+ [KEY_APOSTROPHE] = XLAT(KEY_APOSTROPHE),
+ [KEY_GRAVE] = XLAT(KEY_GRAVE),
+ [KEY_LEFTSHIFT] = XLAT(KEY_LEFTSHIFT),
+ [KEY_BACKSLASH] = XLAT(KEY_BACKSLASH),
+ [KEY_Z] = XLAT(KEY_Z),
+ [KEY_X] = XLAT(KEY_X),
+ [KEY_C] = XLAT(KEY_C),
+ [KEY_V] = XLAT(KEY_V),
+ [KEY_B] = XLAT(KEY_B),
+ [KEY_N] = XLAT(KEY_N),
+ [KEY_M] = XLAT(KEY_M),
+ [KEY_COMMA] = XLAT(KEY_COMMA),
+ [KEY_DOT] = XLAT(KEY_DOT),
+ [KEY_SLASH] = XLAT(KEY_SLASH),
+ [KEY_RIGHTSHIFT] = XLAT(KEY_RIGHTSHIFT),
+ [KEY_KPASTERISK] = XLAT(KEY_KPASTERISK),
+ [KEY_LEFTALT] = XLAT(KEY_LEFTALT),
+ [KEY_SPACE] = XLAT(KEY_SPACE),
+ [KEY_CAPSLOCK] = XLAT(KEY_CAPSLOCK),
+ [KEY_F1] = XLAT(KEY_F1),
+ [KEY_F2] = XLAT(KEY_F2),
+ [KEY_F3] = XLAT(KEY_F3),
+ [KEY_F4] = XLAT(KEY_F4),
+ [KEY_F5] = XLAT(KEY_F5),
+ [KEY_F6] = XLAT(KEY_F6),
+ [KEY_F7] = XLAT(KEY_F7),
+ [KEY_F8] = XLAT(KEY_F8),
+ [KEY_F9] = XLAT(KEY_F9),
+ [KEY_F10] = XLAT(KEY_F10),
+ [KEY_NUMLOCK] = XLAT(KEY_NUMLOCK),
+ [KEY_SCROLLLOCK] = XLAT(KEY_SCROLLLOCK),
+ [KEY_KP7] = XLAT(KEY_KP7),
+ [KEY_KP8] = XLAT(KEY_KP8),
+ [KEY_KP9] = XLAT(KEY_KP9),
+ [KEY_KPMINUS] = XLAT(KEY_KPMINUS),
+ [KEY_KP4] = XLAT(KEY_KP4),
+ [KEY_KP5] = XLAT(KEY_KP5),
+ [KEY_KP6] = XLAT(KEY_KP6),
+ [KEY_KPPLUS] = XLAT(KEY_KPPLUS),
+ [KEY_KP1] = XLAT(KEY_KP1),
+ [KEY_KP2] = XLAT(KEY_KP2),
+ [KEY_KP3] = XLAT(KEY_KP3),
+ [KEY_KP0] = XLAT(KEY_KP0),
+ [KEY_KPDOT] = XLAT(KEY_KPDOT),
- XLAT(KEY_ZENKAKUHANKAKU),
- XLAT(KEY_102ND),
- XLAT(KEY_F11),
- XLAT(KEY_F12),
- XLAT(KEY_RO),
- XLAT(KEY_KATAKANA),
- XLAT(KEY_HIRAGANA),
- XLAT(KEY_HENKAN),
- XLAT(KEY_KATAKANAHIRAGANA),
- XLAT(KEY_MUHENKAN),
- XLAT(KEY_KPJPCOMMA),
- XLAT(KEY_KPENTER),
- XLAT(KEY_RIGHTCTRL),
- XLAT(KEY_KPSLASH),
- XLAT(KEY_SYSRQ),
- XLAT(KEY_RIGHTALT),
- XLAT(KEY_LINEFEED),
- XLAT(KEY_HOME),
- XLAT(KEY_UP),
- XLAT(KEY_PAGEUP),
- XLAT(KEY_LEFT),
- XLAT(KEY_RIGHT),
- XLAT(KEY_END),
- XLAT(KEY_DOWN),
- XLAT(KEY_PAGEDOWN),
- XLAT(KEY_INSERT),
- XLAT(KEY_DELETE),
- XLAT(KEY_MACRO),
- XLAT(KEY_MUTE),
- XLAT(KEY_VOLUMEDOWN),
- XLAT(KEY_VOLUMEUP),
- XLAT(KEY_POWER),
- XLAT(KEY_KPEQUAL),
- XLAT(KEY_KPPLUSMINUS),
- XLAT(KEY_PAUSE),
- XLAT(KEY_SCALE),
+ [KEY_ZENKAKUHANKAKU] = XLAT(KEY_ZENKAKUHANKAKU),
+ [KEY_102ND] = XLAT(KEY_102ND),
+ [KEY_F11] = XLAT(KEY_F11),
+ [KEY_F12] = XLAT(KEY_F12),
+ [KEY_RO] = XLAT(KEY_RO),
+ [KEY_KATAKANA] = XLAT(KEY_KATAKANA),
+ [KEY_HIRAGANA] = XLAT(KEY_HIRAGANA),
+ [KEY_HENKAN] = XLAT(KEY_HENKAN),
+ [KEY_KATAKANAHIRAGANA] = XLAT(KEY_KATAKANAHIRAGANA),
+ [KEY_MUHENKAN] = XLAT(KEY_MUHENKAN),
+ [KEY_KPJPCOMMA] = XLAT(KEY_KPJPCOMMA),
+ [KEY_KPENTER] = XLAT(KEY_KPENTER),
+ [KEY_RIGHTCTRL] = XLAT(KEY_RIGHTCTRL),
+ [KEY_KPSLASH] = XLAT(KEY_KPSLASH),
+ [KEY_SYSRQ] = XLAT(KEY_SYSRQ),
+ [KEY_RIGHTALT] = XLAT(KEY_RIGHTALT),
+ [KEY_LINEFEED] = XLAT(KEY_LINEFEED),
+ [KEY_HOME] = XLAT(KEY_HOME),
+ [KEY_UP] = XLAT(KEY_UP),
+ [KEY_PAGEUP] = XLAT(KEY_PAGEUP),
+ [KEY_LEFT] = XLAT(KEY_LEFT),
+ [KEY_RIGHT] = XLAT(KEY_RIGHT),
+ [KEY_END] = XLAT(KEY_END),
+ [KEY_DOWN] = XLAT(KEY_DOWN),
+ [KEY_PAGEDOWN] = XLAT(KEY_PAGEDOWN),
+ [KEY_INSERT] = XLAT(KEY_INSERT),
+ [KEY_DELETE] = XLAT(KEY_DELETE),
+ [KEY_MACRO] = XLAT(KEY_MACRO),
+ [KEY_MUTE] = XLAT(KEY_MUTE),
+ [KEY_VOLUMEDOWN] = XLAT(KEY_VOLUMEDOWN),
+ [KEY_VOLUMEUP] = XLAT(KEY_VOLUMEUP),
+ [KEY_POWER] = XLAT(KEY_POWER),
+ [KEY_KPEQUAL] = XLAT(KEY_KPEQUAL),
+ [KEY_KPPLUSMINUS] = XLAT(KEY_KPPLUSMINUS),
+ [KEY_PAUSE] = XLAT(KEY_PAUSE),
+ [KEY_SCALE] = XLAT(KEY_SCALE),
- XLAT(KEY_KPCOMMA),
- XLAT(KEY_HANGEUL),
- XLAT(KEY_HANJA),
- XLAT(KEY_YEN),
- XLAT(KEY_LEFTMETA),
- XLAT(KEY_RIGHTMETA),
- XLAT(KEY_COMPOSE),
+ [KEY_KPCOMMA] = XLAT(KEY_KPCOMMA),
+ [KEY_HANGEUL] = XLAT(KEY_HANGEUL),
+ [KEY_HANJA] = XLAT(KEY_HANJA),
+ [KEY_YEN] = XLAT(KEY_YEN),
+ [KEY_LEFTMETA] = XLAT(KEY_LEFTMETA),
+ [KEY_RIGHTMETA] = XLAT(KEY_RIGHTMETA),
+ [KEY_COMPOSE] = XLAT(KEY_COMPOSE),
- XLAT(KEY_STOP),
- XLAT(KEY_AGAIN),
- XLAT(KEY_PROPS),
- XLAT(KEY_UNDO),
- XLAT(KEY_FRONT),
- XLAT(KEY_COPY),
- XLAT(KEY_OPEN),
- XLAT(KEY_PASTE),
- XLAT(KEY_FIND),
- XLAT(KEY_CUT),
- XLAT(KEY_HELP),
- XLAT(KEY_MENU),
- XLAT(KEY_CALC),
- XLAT(KEY_SETUP),
- XLAT(KEY_SLEEP),
- XLAT(KEY_WAKEUP),
- XLAT(KEY_FILE),
- XLAT(KEY_SENDFILE),
- XLAT(KEY_DELETEFILE),
- XLAT(KEY_XFER),
- XLAT(KEY_PROG1),
- XLAT(KEY_PROG2),
- XLAT(KEY_WWW),
- XLAT(KEY_MSDOS),
- XLAT(KEY_COFFEE),
- XLAT(KEY_ROTATE_DISPLAY),
- XLAT(KEY_CYCLEWINDOWS),
- XLAT(KEY_MAIL),
- XLAT(KEY_BOOKMARKS),
- XLAT(KEY_COMPUTER),
- XLAT(KEY_BACK),
- XLAT(KEY_FORWARD),
- XLAT(KEY_CLOSECD),
- XLAT(KEY_EJECTCD),
- XLAT(KEY_EJECTCLOSECD),
- XLAT(KEY_NEXTSONG),
- XLAT(KEY_PLAYPAUSE),
- XLAT(KEY_PREVIOUSSONG),
- XLAT(KEY_STOPCD),
- XLAT(KEY_RECORD),
- XLAT(KEY_REWIND),
- XLAT(KEY_PHONE),
- XLAT(KEY_ISO),
- XLAT(KEY_CONFIG),
- XLAT(KEY_HOMEPAGE),
- XLAT(KEY_REFRESH),
- XLAT(KEY_EXIT),
- XLAT(KEY_MOVE),
- XLAT(KEY_EDIT),
- XLAT(KEY_SCROLLUP),
- XLAT(KEY_SCROLLDOWN),
- XLAT(KEY_KPLEFTPAREN),
- XLAT(KEY_KPRIGHTPAREN),
- XLAT(KEY_NEW),
- XLAT(KEY_REDO),
+ [KEY_STOP] = XLAT(KEY_STOP),
+ [KEY_AGAIN] = XLAT(KEY_AGAIN),
+ [KEY_PROPS] = XLAT(KEY_PROPS),
+ [KEY_UNDO] = XLAT(KEY_UNDO),
+ [KEY_FRONT] = XLAT(KEY_FRONT),
+ [KEY_COPY] = XLAT(KEY_COPY),
+ [KEY_OPEN] = XLAT(KEY_OPEN),
+ [KEY_PASTE] = XLAT(KEY_PASTE),
+ [KEY_FIND] = XLAT(KEY_FIND),
+ [KEY_CUT] = XLAT(KEY_CUT),
+ [KEY_HELP] = XLAT(KEY_HELP),
+ [KEY_MENU] = XLAT(KEY_MENU),
+ [KEY_CALC] = XLAT(KEY_CALC),
+ [KEY_SETUP] = XLAT(KEY_SETUP),
+ [KEY_SLEEP] = XLAT(KEY_SLEEP),
+ [KEY_WAKEUP] = XLAT(KEY_WAKEUP),
+ [KEY_FILE] = XLAT(KEY_FILE),
+ [KEY_SENDFILE] = XLAT(KEY_SENDFILE),
+ [KEY_DELETEFILE] = XLAT(KEY_DELETEFILE),
+ [KEY_XFER] = XLAT(KEY_XFER),
+ [KEY_PROG1] = XLAT(KEY_PROG1),
+ [KEY_PROG2] = XLAT(KEY_PROG2),
+ [KEY_WWW] = XLAT(KEY_WWW),
+ [KEY_MSDOS] = XLAT(KEY_MSDOS),
+ [KEY_COFFEE] = XLAT(KEY_COFFEE),
+ [KEY_ROTATE_DISPLAY] = XLAT(KEY_ROTATE_DISPLAY),
+ [KEY_CYCLEWINDOWS] = XLAT(KEY_CYCLEWINDOWS),
+ [KEY_MAIL] = XLAT(KEY_MAIL),
+ [KEY_BOOKMARKS] = XLAT(KEY_BOOKMARKS),
+ [KEY_COMPUTER] = XLAT(KEY_COMPUTER),
+ [KEY_BACK] = XLAT(KEY_BACK),
+ [KEY_FORWARD] = XLAT(KEY_FORWARD),
+ [KEY_CLOSECD] = XLAT(KEY_CLOSECD),
+ [KEY_EJECTCD] = XLAT(KEY_EJECTCD),
+ [KEY_EJECTCLOSECD] = XLAT(KEY_EJECTCLOSECD),
+ [KEY_NEXTSONG] = XLAT(KEY_NEXTSONG),
+ [KEY_PLAYPAUSE] = XLAT(KEY_PLAYPAUSE),
+ [KEY_PREVIOUSSONG] = XLAT(KEY_PREVIOUSSONG),
+ [KEY_STOPCD] = XLAT(KEY_STOPCD),
+ [KEY_RECORD] = XLAT(KEY_RECORD),
+ [KEY_REWIND] = XLAT(KEY_REWIND),
+ [KEY_PHONE] = XLAT(KEY_PHONE),
+ [KEY_ISO] = XLAT(KEY_ISO),
+ [KEY_CONFIG] = XLAT(KEY_CONFIG),
+ [KEY_HOMEPAGE] = XLAT(KEY_HOMEPAGE),
+ [KEY_REFRESH] = XLAT(KEY_REFRESH),
+ [KEY_EXIT] = XLAT(KEY_EXIT),
+ [KEY_MOVE] = XLAT(KEY_MOVE),
+ [KEY_EDIT] = XLAT(KEY_EDIT),
+ [KEY_SCROLLUP] = XLAT(KEY_SCROLLUP),
+ [KEY_SCROLLDOWN] = XLAT(KEY_SCROLLDOWN),
+ [KEY_KPLEFTPAREN] = XLAT(KEY_KPLEFTPAREN),
+ [KEY_KPRIGHTPAREN] = XLAT(KEY_KPRIGHTPAREN),
+ [KEY_NEW] = XLAT(KEY_NEW),
+ [KEY_REDO] = XLAT(KEY_REDO),
- XLAT(KEY_F13),
- XLAT(KEY_F14),
- XLAT(KEY_F15),
- XLAT(KEY_F16),
- XLAT(KEY_F17),
- XLAT(KEY_F18),
- XLAT(KEY_F19),
- XLAT(KEY_F20),
- XLAT(KEY_F21),
- XLAT(KEY_F22),
- XLAT(KEY_F23),
- XLAT(KEY_F24),
+ [KEY_F13] = XLAT(KEY_F13),
+ [KEY_F14] = XLAT(KEY_F14),
+ [KEY_F15] = XLAT(KEY_F15),
+ [KEY_F16] = XLAT(KEY_F16),
+ [KEY_F17] = XLAT(KEY_F17),
+ [KEY_F18] = XLAT(KEY_F18),
+ [KEY_F19] = XLAT(KEY_F19),
+ [KEY_F20] = XLAT(KEY_F20),
+ [KEY_F21] = XLAT(KEY_F21),
+ [KEY_F22] = XLAT(KEY_F22),
+ [KEY_F23] = XLAT(KEY_F23),
+ [KEY_F24] = XLAT(KEY_F24),
- XLAT(KEY_PLAYCD),
- XLAT(KEY_PAUSECD),
- XLAT(KEY_PROG3),
- XLAT(KEY_PROG4),
- XLAT(KEY_DASHBOARD),
- XLAT(KEY_SUSPEND),
- XLAT(KEY_CLOSE),
- XLAT(KEY_PLAY),
- XLAT(KEY_FASTFORWARD),
- XLAT(KEY_BASSBOOST),
- XLAT(KEY_PRINT),
- XLAT(KEY_HP),
- XLAT(KEY_CAMERA),
- XLAT(KEY_SOUND),
- XLAT(KEY_QUESTION),
- XLAT(KEY_EMAIL),
- XLAT(KEY_CHAT),
- XLAT(KEY_SEARCH),
- XLAT(KEY_CONNECT),
- XLAT(KEY_FINANCE),
- XLAT(KEY_SPORT),
- XLAT(KEY_SHOP),
- XLAT(KEY_ALTERASE),
- XLAT(KEY_CANCEL),
- XLAT(KEY_BRIGHTNESSDOWN),
- XLAT(KEY_BRIGHTNESSUP),
- XLAT(KEY_MEDIA),
+ [KEY_PLAYCD] = XLAT(KEY_PLAYCD),
+ [KEY_PAUSECD] = XLAT(KEY_PAUSECD),
+ [KEY_PROG3] = XLAT(KEY_PROG3),
+ [KEY_PROG4] = XLAT(KEY_PROG4),
+ [KEY_DASHBOARD] = XLAT(KEY_DASHBOARD),
+ [KEY_SUSPEND] = XLAT(KEY_SUSPEND),
+ [KEY_CLOSE] = XLAT(KEY_CLOSE),
+ [KEY_PLAY] = XLAT(KEY_PLAY),
+ [KEY_FASTFORWARD] = XLAT(KEY_FASTFORWARD),
+ [KEY_BASSBOOST] = XLAT(KEY_BASSBOOST),
+ [KEY_PRINT] = XLAT(KEY_PRINT),
+ [KEY_HP] = XLAT(KEY_HP),
+ [KEY_CAMERA] = XLAT(KEY_CAMERA),
+ [KEY_SOUND] = XLAT(KEY_SOUND),
+ [KEY_QUESTION] = XLAT(KEY_QUESTION),
+ [KEY_EMAIL] = XLAT(KEY_EMAIL),
+ [KEY_CHAT] = XLAT(KEY_CHAT),
+ [KEY_SEARCH] = XLAT(KEY_SEARCH),
+ [KEY_CONNECT] = XLAT(KEY_CONNECT),
+ [KEY_FINANCE] = XLAT(KEY_FINANCE),
+ [KEY_SPORT] = XLAT(KEY_SPORT),
+ [KEY_SHOP] = XLAT(KEY_SHOP),
+ [KEY_ALTERASE] = XLAT(KEY_ALTERASE),
+ [KEY_CANCEL] = XLAT(KEY_CANCEL),
+ [KEY_BRIGHTNESSDOWN] = XLAT(KEY_BRIGHTNESSDOWN),
+ [KEY_BRIGHTNESSUP] = XLAT(KEY_BRIGHTNESSUP),
+ [KEY_MEDIA] = XLAT(KEY_MEDIA),
- XLAT(KEY_SWITCHVIDEOMODE),
+ [KEY_SWITCHVIDEOMODE] = XLAT(KEY_SWITCHVIDEOMODE),
- XLAT(KEY_KBDILLUMTOGGLE),
- XLAT(KEY_KBDILLUMDOWN),
- XLAT(KEY_KBDILLUMUP),
+ [KEY_KBDILLUMTOGGLE] = XLAT(KEY_KBDILLUMTOGGLE),
+ [KEY_KBDILLUMDOWN] = XLAT(KEY_KBDILLUMDOWN),
+ [KEY_KBDILLUMUP] = XLAT(KEY_KBDILLUMUP),
- XLAT(KEY_SEND),
- XLAT(KEY_REPLY),
- XLAT(KEY_FORWARDMAIL),
- XLAT(KEY_SAVE),
- XLAT(KEY_DOCUMENTS),
+ [KEY_SEND] = XLAT(KEY_SEND),
+ [KEY_REPLY] = XLAT(KEY_REPLY),
+ [KEY_FORWARDMAIL] = XLAT(KEY_FORWARDMAIL),
+ [KEY_SAVE] = XLAT(KEY_SAVE),
+ [KEY_DOCUMENTS] = XLAT(KEY_DOCUMENTS),
- XLAT(KEY_BATTERY),
+ [KEY_BATTERY] = XLAT(KEY_BATTERY),
- XLAT(KEY_BLUETOOTH),
- XLAT(KEY_WLAN),
- XLAT(KEY_UWB),
+ [KEY_BLUETOOTH] = XLAT(KEY_BLUETOOTH),
+ [KEY_WLAN] = XLAT(KEY_WLAN),
+ [KEY_UWB] = XLAT(KEY_UWB),
- XLAT(KEY_UNKNOWN),
+ [KEY_UNKNOWN] = XLAT(KEY_UNKNOWN),
- XLAT(KEY_VIDEO_NEXT),
- XLAT(KEY_VIDEO_PREV),
- XLAT(KEY_BRIGHTNESS_CYCLE),
- XLAT(KEY_BRIGHTNESS_AUTO),
- XLAT(KEY_DISPLAY_OFF),
+ [KEY_VIDEO_NEXT] = XLAT(KEY_VIDEO_NEXT),
+ [KEY_VIDEO_PREV] = XLAT(KEY_VIDEO_PREV),
+ [KEY_BRIGHTNESS_CYCLE] = XLAT(KEY_BRIGHTNESS_CYCLE),
+ [KEY_BRIGHTNESS_AUTO] = XLAT(KEY_BRIGHTNESS_AUTO),
+ [KEY_DISPLAY_OFF] = XLAT(KEY_DISPLAY_OFF),
- XLAT(KEY_WWAN),
- XLAT(KEY_RFKILL),
+ [KEY_WWAN] = XLAT(KEY_WWAN),
- XLAT(KEY_MICMUTE),
+#ifndef STRACE_WORKAROUND_FOR_KEY_RFKILL
+# define STRACE_WORKAROUND_FOR_KEY_RFKILL
+/*
+* KEY_RFKILL and KEY_NUMERIC_A constants were introduced by Linux kernel
+* commits v2.6.33~17^2~2 and v4.1-rc1~150^2~1^10~6, respectively.
+* Apparently, RHEL6 introduced an alternative KEY_RFKILL constant
+* with the same value as upstream KEY_NUMERIC_A.
+* Downstream vendors are *not* allowed to do this.
+* Ignore the system value of KEY_RFKILL.
+*/
+# undef KEY_RFKILL
+#endif
+ [KEY_RFKILL] = XLAT(KEY_RFKILL),
- XLAT(BTN_0),
- XLAT(BTN_1),
- XLAT(BTN_2),
- XLAT(BTN_3),
- XLAT(BTN_4),
- XLAT(BTN_5),
- XLAT(BTN_6),
- XLAT(BTN_7),
- XLAT(BTN_8),
- XLAT(BTN_9),
+ [KEY_MICMUTE] = XLAT(KEY_MICMUTE),
- XLAT(BTN_MOUSE),
- XLAT(BTN_LEFT),
- XLAT(BTN_RIGHT),
- XLAT(BTN_MIDDLE),
- XLAT(BTN_SIDE),
- XLAT(BTN_EXTRA),
- XLAT(BTN_FORWARD),
- XLAT(BTN_BACK),
- XLAT(BTN_TASK),
+ [BTN_0] = XLAT(BTN_0),
+ [BTN_1] = XLAT(BTN_1),
+ [BTN_2] = XLAT(BTN_2),
+ [BTN_3] = XLAT(BTN_3),
+ [BTN_4] = XLAT(BTN_4),
+ [BTN_5] = XLAT(BTN_5),
+ [BTN_6] = XLAT(BTN_6),
+ [BTN_7] = XLAT(BTN_7),
+ [BTN_8] = XLAT(BTN_8),
+ [BTN_9] = XLAT(BTN_9),
- XLAT(BTN_JOYSTICK),
- XLAT(BTN_TRIGGER),
- XLAT(BTN_THUMB),
- XLAT(BTN_THUMB2),
- XLAT(BTN_TOP),
- XLAT(BTN_TOP2),
- XLAT(BTN_PINKIE),
- XLAT(BTN_BASE),
- XLAT(BTN_BASE2),
- XLAT(BTN_BASE3),
- XLAT(BTN_BASE4),
- XLAT(BTN_BASE5),
- XLAT(BTN_BASE6),
- XLAT(BTN_DEAD),
+ [BTN_LEFT] = XLAT(BTN_LEFT),
+ [BTN_RIGHT] = XLAT(BTN_RIGHT),
+ [BTN_MIDDLE] = XLAT(BTN_MIDDLE),
+ [BTN_SIDE] = XLAT(BTN_SIDE),
+ [BTN_EXTRA] = XLAT(BTN_EXTRA),
+ [BTN_FORWARD] = XLAT(BTN_FORWARD),
+ [BTN_BACK] = XLAT(BTN_BACK),
+ [BTN_TASK] = XLAT(BTN_TASK),
- XLAT(BTN_GAMEPAD),
- XLAT(BTN_SOUTH),
- XLAT(BTN_EAST),
- XLAT(BTN_C),
- XLAT(BTN_NORTH),
- XLAT(BTN_WEST),
- XLAT(BTN_Z),
- XLAT(BTN_TL),
- XLAT(BTN_TR),
- XLAT(BTN_TL2),
- XLAT(BTN_TR2),
- XLAT(BTN_SELECT),
- XLAT(BTN_START),
- XLAT(BTN_MODE),
- XLAT(BTN_THUMBL),
- XLAT(BTN_THUMBR),
+ [BTN_TRIGGER] = XLAT(BTN_TRIGGER),
+ [BTN_THUMB] = XLAT(BTN_THUMB),
+ [BTN_THUMB2] = XLAT(BTN_THUMB2),
+ [BTN_TOP] = XLAT(BTN_TOP),
+ [BTN_TOP2] = XLAT(BTN_TOP2),
+ [BTN_PINKIE] = XLAT(BTN_PINKIE),
+ [BTN_BASE] = XLAT(BTN_BASE),
+ [BTN_BASE2] = XLAT(BTN_BASE2),
+ [BTN_BASE3] = XLAT(BTN_BASE3),
+ [BTN_BASE4] = XLAT(BTN_BASE4),
+ [BTN_BASE5] = XLAT(BTN_BASE5),
+ [BTN_BASE6] = XLAT(BTN_BASE6),
+ [BTN_DEAD] = XLAT(BTN_DEAD),
- XLAT(BTN_DIGI),
- XLAT(BTN_TOOL_PEN),
- XLAT(BTN_TOOL_RUBBER),
- XLAT(BTN_TOOL_BRUSH),
- XLAT(BTN_TOOL_PENCIL),
- XLAT(BTN_TOOL_AIRBRUSH),
- XLAT(BTN_TOOL_FINGER),
- XLAT(BTN_TOOL_MOUSE),
- XLAT(BTN_TOOL_LENS),
- XLAT(BTN_TOOL_QUINTTAP),
- XLAT(BTN_STYLUS3),
- XLAT(BTN_TOUCH),
- XLAT(BTN_STYLUS),
- XLAT(BTN_STYLUS2),
- XLAT(BTN_TOOL_DOUBLETAP),
- XLAT(BTN_TOOL_TRIPLETAP),
- XLAT(BTN_TOOL_QUADTAP),
+ [BTN_SOUTH] = XLAT(BTN_SOUTH),
+ [BTN_EAST] = XLAT(BTN_EAST),
+ [BTN_C] = XLAT(BTN_C),
+ [BTN_NORTH] = XLAT(BTN_NORTH),
+ [BTN_WEST] = XLAT(BTN_WEST),
+ [BTN_Z] = XLAT(BTN_Z),
+ [BTN_TL] = XLAT(BTN_TL),
+ [BTN_TR] = XLAT(BTN_TR),
+ [BTN_TL2] = XLAT(BTN_TL2),
+ [BTN_TR2] = XLAT(BTN_TR2),
+ [BTN_SELECT] = XLAT(BTN_SELECT),
+ [BTN_START] = XLAT(BTN_START),
+ [BTN_MODE] = XLAT(BTN_MODE),
+ [BTN_THUMBL] = XLAT(BTN_THUMBL),
+ [BTN_THUMBR] = XLAT(BTN_THUMBR),
- XLAT(BTN_WHEEL),
- XLAT(BTN_GEAR_DOWN),
- XLAT(BTN_GEAR_UP),
+ [BTN_TOOL_PEN] = XLAT(BTN_TOOL_PEN),
+ [BTN_TOOL_RUBBER] = XLAT(BTN_TOOL_RUBBER),
+ [BTN_TOOL_BRUSH] = XLAT(BTN_TOOL_BRUSH),
+ [BTN_TOOL_PENCIL] = XLAT(BTN_TOOL_PENCIL),
+ [BTN_TOOL_AIRBRUSH] = XLAT(BTN_TOOL_AIRBRUSH),
+ [BTN_TOOL_FINGER] = XLAT(BTN_TOOL_FINGER),
+ [BTN_TOOL_MOUSE] = XLAT(BTN_TOOL_MOUSE),
+ [BTN_TOOL_LENS] = XLAT(BTN_TOOL_LENS),
+ [BTN_TOOL_QUINTTAP] = XLAT(BTN_TOOL_QUINTTAP),
+ [BTN_STYLUS3] = XLAT(BTN_STYLUS3),
+ [BTN_TOUCH] = XLAT(BTN_TOUCH),
+ [BTN_STYLUS] = XLAT(BTN_STYLUS),
+ [BTN_STYLUS2] = XLAT(BTN_STYLUS2),
+ [BTN_TOOL_DOUBLETAP] = XLAT(BTN_TOOL_DOUBLETAP),
+ [BTN_TOOL_TRIPLETAP] = XLAT(BTN_TOOL_TRIPLETAP),
+ [BTN_TOOL_QUADTAP] = XLAT(BTN_TOOL_QUADTAP),
- XLAT(KEY_OK),
- XLAT(KEY_SELECT),
- XLAT(KEY_GOTO),
- XLAT(KEY_CLEAR),
- XLAT(KEY_POWER2),
- XLAT(KEY_OPTION),
- XLAT(KEY_INFO),
- XLAT(KEY_TIME),
- XLAT(KEY_VENDOR),
- XLAT(KEY_ARCHIVE),
- XLAT(KEY_PROGRAM),
- XLAT(KEY_CHANNEL),
- XLAT(KEY_FAVORITES),
- XLAT(KEY_EPG),
- XLAT(KEY_PVR),
- XLAT(KEY_MHP),
- XLAT(KEY_LANGUAGE),
- XLAT(KEY_TITLE),
- XLAT(KEY_SUBTITLE),
- XLAT(KEY_ANGLE),
- XLAT(KEY_ZOOM),
- XLAT(KEY_MODE),
- XLAT(KEY_KEYBOARD),
- XLAT(KEY_SCREEN),
- XLAT(KEY_PC),
- XLAT(KEY_TV),
- XLAT(KEY_TV2),
- XLAT(KEY_VCR),
- XLAT(KEY_VCR2),
- XLAT(KEY_SAT),
- XLAT(KEY_SAT2),
- XLAT(KEY_CD),
- XLAT(KEY_TAPE),
- XLAT(KEY_RADIO),
- XLAT(KEY_TUNER),
- XLAT(KEY_PLAYER),
- XLAT(KEY_TEXT),
- XLAT(KEY_DVD),
- XLAT(KEY_AUX),
- XLAT(KEY_MP3),
- XLAT(KEY_AUDIO),
- XLAT(KEY_VIDEO),
- XLAT(KEY_DIRECTORY),
- XLAT(KEY_LIST),
- XLAT(KEY_MEMO),
- XLAT(KEY_CALENDAR),
- XLAT(KEY_RED),
- XLAT(KEY_GREEN),
- XLAT(KEY_YELLOW),
- XLAT(KEY_BLUE),
- XLAT(KEY_CHANNELUP),
- XLAT(KEY_CHANNELDOWN),
- XLAT(KEY_FIRST),
- XLAT(KEY_LAST),
- XLAT(KEY_AB),
- XLAT(KEY_NEXT),
- XLAT(KEY_RESTART),
- XLAT(KEY_SLOW),
- XLAT(KEY_SHUFFLE),
- XLAT(KEY_BREAK),
- XLAT(KEY_PREVIOUS),
- XLAT(KEY_DIGITS),
- XLAT(KEY_TEEN),
- XLAT(KEY_TWEN),
- XLAT(KEY_VIDEOPHONE),
- XLAT(KEY_GAMES),
- XLAT(KEY_ZOOMIN),
- XLAT(KEY_ZOOMOUT),
- XLAT(KEY_ZOOMRESET),
- XLAT(KEY_WORDPROCESSOR),
- XLAT(KEY_EDITOR),
- XLAT(KEY_SPREADSHEET),
- XLAT(KEY_GRAPHICSEDITOR),
- XLAT(KEY_PRESENTATION),
- XLAT(KEY_DATABASE),
- XLAT(KEY_NEWS),
- XLAT(KEY_VOICEMAIL),
- XLAT(KEY_ADDRESSBOOK),
- XLAT(KEY_MESSENGER),
- XLAT(KEY_DISPLAYTOGGLE),
- XLAT(KEY_SPELLCHECK),
- XLAT(KEY_LOGOFF),
+ [BTN_GEAR_DOWN] = XLAT(BTN_GEAR_DOWN),
+ [BTN_GEAR_UP] = XLAT(BTN_GEAR_UP),
- XLAT(KEY_DOLLAR),
- XLAT(KEY_EURO),
+ [KEY_OK] = XLAT(KEY_OK),
+ [KEY_SELECT] = XLAT(KEY_SELECT),
+ [KEY_GOTO] = XLAT(KEY_GOTO),
+ [KEY_CLEAR] = XLAT(KEY_CLEAR),
+ [KEY_POWER2] = XLAT(KEY_POWER2),
+ [KEY_OPTION] = XLAT(KEY_OPTION),
+ [KEY_INFO] = XLAT(KEY_INFO),
+ [KEY_TIME] = XLAT(KEY_TIME),
+ [KEY_VENDOR] = XLAT(KEY_VENDOR),
+ [KEY_ARCHIVE] = XLAT(KEY_ARCHIVE),
+ [KEY_PROGRAM] = XLAT(KEY_PROGRAM),
+ [KEY_CHANNEL] = XLAT(KEY_CHANNEL),
+ [KEY_FAVORITES] = XLAT(KEY_FAVORITES),
+ [KEY_EPG] = XLAT(KEY_EPG),
+ [KEY_PVR] = XLAT(KEY_PVR),
+ [KEY_MHP] = XLAT(KEY_MHP),
+ [KEY_LANGUAGE] = XLAT(KEY_LANGUAGE),
+ [KEY_TITLE] = XLAT(KEY_TITLE),
+ [KEY_SUBTITLE] = XLAT(KEY_SUBTITLE),
+ [KEY_ANGLE] = XLAT(KEY_ANGLE),
+ [KEY_ZOOM] = XLAT(KEY_ZOOM),
+ [KEY_MODE] = XLAT(KEY_MODE),
+ [KEY_KEYBOARD] = XLAT(KEY_KEYBOARD),
+ [KEY_SCREEN] = XLAT(KEY_SCREEN),
+ [KEY_PC] = XLAT(KEY_PC),
+ [KEY_TV] = XLAT(KEY_TV),
+ [KEY_TV2] = XLAT(KEY_TV2),
+ [KEY_VCR] = XLAT(KEY_VCR),
+ [KEY_VCR2] = XLAT(KEY_VCR2),
+ [KEY_SAT] = XLAT(KEY_SAT),
+ [KEY_SAT2] = XLAT(KEY_SAT2),
+ [KEY_CD] = XLAT(KEY_CD),
+ [KEY_TAPE] = XLAT(KEY_TAPE),
+ [KEY_RADIO] = XLAT(KEY_RADIO),
+ [KEY_TUNER] = XLAT(KEY_TUNER),
+ [KEY_PLAYER] = XLAT(KEY_PLAYER),
+ [KEY_TEXT] = XLAT(KEY_TEXT),
+ [KEY_DVD] = XLAT(KEY_DVD),
+ [KEY_AUX] = XLAT(KEY_AUX),
+ [KEY_MP3] = XLAT(KEY_MP3),
+ [KEY_AUDIO] = XLAT(KEY_AUDIO),
+ [KEY_VIDEO] = XLAT(KEY_VIDEO),
+ [KEY_DIRECTORY] = XLAT(KEY_DIRECTORY),
+ [KEY_LIST] = XLAT(KEY_LIST),
+ [KEY_MEMO] = XLAT(KEY_MEMO),
+ [KEY_CALENDAR] = XLAT(KEY_CALENDAR),
+ [KEY_RED] = XLAT(KEY_RED),
+ [KEY_GREEN] = XLAT(KEY_GREEN),
+ [KEY_YELLOW] = XLAT(KEY_YELLOW),
+ [KEY_BLUE] = XLAT(KEY_BLUE),
+ [KEY_CHANNELUP] = XLAT(KEY_CHANNELUP),
+ [KEY_CHANNELDOWN] = XLAT(KEY_CHANNELDOWN),
+ [KEY_FIRST] = XLAT(KEY_FIRST),
+ [KEY_LAST] = XLAT(KEY_LAST),
+ [KEY_AB] = XLAT(KEY_AB),
+ [KEY_NEXT] = XLAT(KEY_NEXT),
+ [KEY_RESTART] = XLAT(KEY_RESTART),
+ [KEY_SLOW] = XLAT(KEY_SLOW),
+ [KEY_SHUFFLE] = XLAT(KEY_SHUFFLE),
+ [KEY_BREAK] = XLAT(KEY_BREAK),
+ [KEY_PREVIOUS] = XLAT(KEY_PREVIOUS),
+ [KEY_DIGITS] = XLAT(KEY_DIGITS),
+ [KEY_TEEN] = XLAT(KEY_TEEN),
+ [KEY_TWEN] = XLAT(KEY_TWEN),
+ [KEY_VIDEOPHONE] = XLAT(KEY_VIDEOPHONE),
+ [KEY_GAMES] = XLAT(KEY_GAMES),
+ [KEY_ZOOMIN] = XLAT(KEY_ZOOMIN),
+ [KEY_ZOOMOUT] = XLAT(KEY_ZOOMOUT),
+ [KEY_ZOOMRESET] = XLAT(KEY_ZOOMRESET),
+ [KEY_WORDPROCESSOR] = XLAT(KEY_WORDPROCESSOR),
+ [KEY_EDITOR] = XLAT(KEY_EDITOR),
+ [KEY_SPREADSHEET] = XLAT(KEY_SPREADSHEET),
+ [KEY_GRAPHICSEDITOR] = XLAT(KEY_GRAPHICSEDITOR),
+ [KEY_PRESENTATION] = XLAT(KEY_PRESENTATION),
+ [KEY_DATABASE] = XLAT(KEY_DATABASE),
+ [KEY_NEWS] = XLAT(KEY_NEWS),
+ [KEY_VOICEMAIL] = XLAT(KEY_VOICEMAIL),
+ [KEY_ADDRESSBOOK] = XLAT(KEY_ADDRESSBOOK),
+ [KEY_MESSENGER] = XLAT(KEY_MESSENGER),
+ [KEY_DISPLAYTOGGLE] = XLAT(KEY_DISPLAYTOGGLE),
+ [KEY_SPELLCHECK] = XLAT(KEY_SPELLCHECK),
+ [KEY_LOGOFF] = XLAT(KEY_LOGOFF),
- XLAT(KEY_FRAMEBACK),
- XLAT(KEY_FRAMEFORWARD),
- XLAT(KEY_CONTEXT_MENU),
- XLAT(KEY_MEDIA_REPEAT),
- XLAT(KEY_10CHANNELSUP),
- XLAT(KEY_10CHANNELSDOWN),
- XLAT(KEY_IMAGES),
+ [KEY_DOLLAR] = XLAT(KEY_DOLLAR),
+ [KEY_EURO] = XLAT(KEY_EURO),
- XLAT(KEY_DEL_EOL),
- XLAT(KEY_DEL_EOS),
- XLAT(KEY_INS_LINE),
- XLAT(KEY_DEL_LINE),
+ [KEY_FRAMEBACK] = XLAT(KEY_FRAMEBACK),
+ [KEY_FRAMEFORWARD] = XLAT(KEY_FRAMEFORWARD),
+ [KEY_CONTEXT_MENU] = XLAT(KEY_CONTEXT_MENU),
+ [KEY_MEDIA_REPEAT] = XLAT(KEY_MEDIA_REPEAT),
+ [KEY_10CHANNELSUP] = XLAT(KEY_10CHANNELSUP),
+ [KEY_10CHANNELSDOWN] = XLAT(KEY_10CHANNELSDOWN),
+ [KEY_IMAGES] = XLAT(KEY_IMAGES),
- XLAT(KEY_FN),
- XLAT(KEY_FN_ESC),
- XLAT(KEY_FN_F1),
- XLAT(KEY_FN_F2),
- XLAT(KEY_FN_F3),
- XLAT(KEY_FN_F4),
- XLAT(KEY_FN_F5),
- XLAT(KEY_FN_F6),
- XLAT(KEY_FN_F7),
- XLAT(KEY_FN_F8),
- XLAT(KEY_FN_F9),
- XLAT(KEY_FN_F10),
- XLAT(KEY_FN_F11),
- XLAT(KEY_FN_F12),
- XLAT(KEY_FN_1),
- XLAT(KEY_FN_2),
- XLAT(KEY_FN_D),
- XLAT(KEY_FN_E),
- XLAT(KEY_FN_F),
- XLAT(KEY_FN_S),
- XLAT(KEY_FN_B),
+ [KEY_DEL_EOL] = XLAT(KEY_DEL_EOL),
+ [KEY_DEL_EOS] = XLAT(KEY_DEL_EOS),
+ [KEY_INS_LINE] = XLAT(KEY_INS_LINE),
+ [KEY_DEL_LINE] = XLAT(KEY_DEL_LINE),
- XLAT(KEY_BRL_DOT1),
- XLAT(KEY_BRL_DOT2),
- XLAT(KEY_BRL_DOT3),
- XLAT(KEY_BRL_DOT4),
- XLAT(KEY_BRL_DOT5),
- XLAT(KEY_BRL_DOT6),
- XLAT(KEY_BRL_DOT7),
- XLAT(KEY_BRL_DOT8),
- XLAT(KEY_BRL_DOT9),
- XLAT(KEY_BRL_DOT10),
+ [KEY_FN] = XLAT(KEY_FN),
+ [KEY_FN_ESC] = XLAT(KEY_FN_ESC),
+ [KEY_FN_F1] = XLAT(KEY_FN_F1),
+ [KEY_FN_F2] = XLAT(KEY_FN_F2),
+ [KEY_FN_F3] = XLAT(KEY_FN_F3),
+ [KEY_FN_F4] = XLAT(KEY_FN_F4),
+ [KEY_FN_F5] = XLAT(KEY_FN_F5),
+ [KEY_FN_F6] = XLAT(KEY_FN_F6),
+ [KEY_FN_F7] = XLAT(KEY_FN_F7),
+ [KEY_FN_F8] = XLAT(KEY_FN_F8),
+ [KEY_FN_F9] = XLAT(KEY_FN_F9),
+ [KEY_FN_F10] = XLAT(KEY_FN_F10),
+ [KEY_FN_F11] = XLAT(KEY_FN_F11),
+ [KEY_FN_F12] = XLAT(KEY_FN_F12),
+ [KEY_FN_1] = XLAT(KEY_FN_1),
+ [KEY_FN_2] = XLAT(KEY_FN_2),
+ [KEY_FN_D] = XLAT(KEY_FN_D),
+ [KEY_FN_E] = XLAT(KEY_FN_E),
+ [KEY_FN_F] = XLAT(KEY_FN_F),
+ [KEY_FN_S] = XLAT(KEY_FN_S),
+ [KEY_FN_B] = XLAT(KEY_FN_B),
- XLAT(KEY_NUMERIC_0),
- XLAT(KEY_NUMERIC_1),
- XLAT(KEY_NUMERIC_2),
- XLAT(KEY_NUMERIC_3),
- XLAT(KEY_NUMERIC_4),
- XLAT(KEY_NUMERIC_5),
- XLAT(KEY_NUMERIC_6),
- XLAT(KEY_NUMERIC_7),
- XLAT(KEY_NUMERIC_8),
- XLAT(KEY_NUMERIC_9),
- XLAT(KEY_NUMERIC_STAR),
- XLAT(KEY_NUMERIC_POUND),
- XLAT(KEY_NUMERIC_A),
- XLAT(KEY_NUMERIC_B),
- XLAT(KEY_NUMERIC_C),
- XLAT(KEY_NUMERIC_D),
+ [KEY_BRL_DOT1] = XLAT(KEY_BRL_DOT1),
+ [KEY_BRL_DOT2] = XLAT(KEY_BRL_DOT2),
+ [KEY_BRL_DOT3] = XLAT(KEY_BRL_DOT3),
+ [KEY_BRL_DOT4] = XLAT(KEY_BRL_DOT4),
+ [KEY_BRL_DOT5] = XLAT(KEY_BRL_DOT5),
+ [KEY_BRL_DOT6] = XLAT(KEY_BRL_DOT6),
+ [KEY_BRL_DOT7] = XLAT(KEY_BRL_DOT7),
+ [KEY_BRL_DOT8] = XLAT(KEY_BRL_DOT8),
+ [KEY_BRL_DOT9] = XLAT(KEY_BRL_DOT9),
+ [KEY_BRL_DOT10] = XLAT(KEY_BRL_DOT10),
- XLAT(KEY_CAMERA_FOCUS),
- XLAT(KEY_WPS_BUTTON),
+ [KEY_NUMERIC_0] = XLAT(KEY_NUMERIC_0),
+ [KEY_NUMERIC_1] = XLAT(KEY_NUMERIC_1),
+ [KEY_NUMERIC_2] = XLAT(KEY_NUMERIC_2),
+ [KEY_NUMERIC_3] = XLAT(KEY_NUMERIC_3),
+ [KEY_NUMERIC_4] = XLAT(KEY_NUMERIC_4),
+ [KEY_NUMERIC_5] = XLAT(KEY_NUMERIC_5),
+ [KEY_NUMERIC_6] = XLAT(KEY_NUMERIC_6),
+ [KEY_NUMERIC_7] = XLAT(KEY_NUMERIC_7),
+ [KEY_NUMERIC_8] = XLAT(KEY_NUMERIC_8),
+ [KEY_NUMERIC_9] = XLAT(KEY_NUMERIC_9),
+ [KEY_NUMERIC_STAR] = XLAT(KEY_NUMERIC_STAR),
+ [KEY_NUMERIC_POUND] = XLAT(KEY_NUMERIC_POUND),
+ [KEY_NUMERIC_A] = XLAT(KEY_NUMERIC_A),
+ [KEY_NUMERIC_B] = XLAT(KEY_NUMERIC_B),
+ [KEY_NUMERIC_C] = XLAT(KEY_NUMERIC_C),
+ [KEY_NUMERIC_D] = XLAT(KEY_NUMERIC_D),
- XLAT(KEY_TOUCHPAD_TOGGLE),
- XLAT(KEY_TOUCHPAD_ON),
- XLAT(KEY_TOUCHPAD_OFF),
+ [KEY_CAMERA_FOCUS] = XLAT(KEY_CAMERA_FOCUS),
+ [KEY_WPS_BUTTON] = XLAT(KEY_WPS_BUTTON),
- XLAT(KEY_CAMERA_ZOOMIN),
- XLAT(KEY_CAMERA_ZOOMOUT),
- XLAT(KEY_CAMERA_UP),
- XLAT(KEY_CAMERA_DOWN),
- XLAT(KEY_CAMERA_LEFT),
- XLAT(KEY_CAMERA_RIGHT),
+ [KEY_TOUCHPAD_TOGGLE] = XLAT(KEY_TOUCHPAD_TOGGLE),
+ [KEY_TOUCHPAD_ON] = XLAT(KEY_TOUCHPAD_ON),
+ [KEY_TOUCHPAD_OFF] = XLAT(KEY_TOUCHPAD_OFF),
- XLAT(KEY_ATTENDANT_ON),
- XLAT(KEY_ATTENDANT_OFF),
- XLAT(KEY_ATTENDANT_TOGGLE),
- XLAT(KEY_LIGHTS_TOGGLE),
+ [KEY_CAMERA_ZOOMIN] = XLAT(KEY_CAMERA_ZOOMIN),
+ [KEY_CAMERA_ZOOMOUT] = XLAT(KEY_CAMERA_ZOOMOUT),
+ [KEY_CAMERA_UP] = XLAT(KEY_CAMERA_UP),
+ [KEY_CAMERA_DOWN] = XLAT(KEY_CAMERA_DOWN),
+ [KEY_CAMERA_LEFT] = XLAT(KEY_CAMERA_LEFT),
+ [KEY_CAMERA_RIGHT] = XLAT(KEY_CAMERA_RIGHT),
- XLAT(BTN_DPAD_UP),
- XLAT(BTN_DPAD_DOWN),
- XLAT(BTN_DPAD_LEFT),
- XLAT(BTN_DPAD_RIGHT),
+ [KEY_ATTENDANT_ON] = XLAT(KEY_ATTENDANT_ON),
+ [KEY_ATTENDANT_OFF] = XLAT(KEY_ATTENDANT_OFF),
+ [KEY_ATTENDANT_TOGGLE] = XLAT(KEY_ATTENDANT_TOGGLE),
+ [KEY_LIGHTS_TOGGLE] = XLAT(KEY_LIGHTS_TOGGLE),
- XLAT(KEY_ALS_TOGGLE),
- XLAT(KEY_ROTATE_LOCK_TOGGLE),
+ [BTN_DPAD_UP] = XLAT(BTN_DPAD_UP),
+ [BTN_DPAD_DOWN] = XLAT(BTN_DPAD_DOWN),
+ [BTN_DPAD_LEFT] = XLAT(BTN_DPAD_LEFT),
+ [BTN_DPAD_RIGHT] = XLAT(BTN_DPAD_RIGHT),
- XLAT(KEY_BUTTONCONFIG),
- XLAT(KEY_TASKMANAGER),
- XLAT(KEY_JOURNAL),
- XLAT(KEY_CONTROLPANEL),
- XLAT(KEY_APPSELECT),
- XLAT(KEY_SCREENSAVER),
- XLAT(KEY_VOICECOMMAND),
- XLAT(KEY_ASSISTANT),
+ [KEY_ALS_TOGGLE] = XLAT(KEY_ALS_TOGGLE),
+ [KEY_ROTATE_LOCK_TOGGLE] = XLAT(KEY_ROTATE_LOCK_TOGGLE),
- XLAT(KEY_BRIGHTNESS_MIN),
- XLAT(KEY_BRIGHTNESS_MAX),
+ [KEY_BUTTONCONFIG] = XLAT(KEY_BUTTONCONFIG),
+ [KEY_TASKMANAGER] = XLAT(KEY_TASKMANAGER),
+ [KEY_JOURNAL] = XLAT(KEY_JOURNAL),
+ [KEY_CONTROLPANEL] = XLAT(KEY_CONTROLPANEL),
+ [KEY_APPSELECT] = XLAT(KEY_APPSELECT),
+ [KEY_SCREENSAVER] = XLAT(KEY_SCREENSAVER),
+ [KEY_VOICECOMMAND] = XLAT(KEY_VOICECOMMAND),
+ [KEY_ASSISTANT] = XLAT(KEY_ASSISTANT),
- XLAT(KEY_KBDINPUTASSIST_PREV),
- XLAT(KEY_KBDINPUTASSIST_NEXT),
- XLAT(KEY_KBDINPUTASSIST_PREVGROUP),
- XLAT(KEY_KBDINPUTASSIST_NEXTGROUP),
- XLAT(KEY_KBDINPUTASSIST_ACCEPT),
- XLAT(KEY_KBDINPUTASSIST_CANCEL),
+#ifndef STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN
+# define STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN
+/*
+* KEY_BRIGHTNESS_MIN and KEY_BRIGHTNESS_MAX constants were introduced
+* by Linux kernel commit v3.16-rc1~30^2~6^2~1^2~7.
+* Apparently, RHEL7 introduced an alternative KEY_BRIGHTNESS_MIN constant
+* with the same value as upstream KEY_BRIGHTNESS_MAX.
+* Downstream vendors are *not* allowed to do this.
+* Ignore the system value of KEY_BRIGHTNESS_MIN.
+*/
+# undef KEY_BRIGHTNESS_MIN
+#endif
+ [KEY_BRIGHTNESS_MIN] = XLAT(KEY_BRIGHTNESS_MIN),
- XLAT(KEY_RIGHT_UP),
- XLAT(KEY_RIGHT_DOWN),
- XLAT(KEY_LEFT_UP),
- XLAT(KEY_LEFT_DOWN),
+ [KEY_BRIGHTNESS_MAX] = XLAT(KEY_BRIGHTNESS_MAX),
- XLAT(KEY_ROOT_MENU),
- XLAT(KEY_MEDIA_TOP_MENU),
- XLAT(KEY_NUMERIC_11),
- XLAT(KEY_NUMERIC_12),
+ [KEY_KBDINPUTASSIST_PREV] = XLAT(KEY_KBDINPUTASSIST_PREV),
+ [KEY_KBDINPUTASSIST_NEXT] = XLAT(KEY_KBDINPUTASSIST_NEXT),
+ [KEY_KBDINPUTASSIST_PREVGROUP] = XLAT(KEY_KBDINPUTASSIST_PREVGROUP),
+ [KEY_KBDINPUTASSIST_NEXTGROUP] = XLAT(KEY_KBDINPUTASSIST_NEXTGROUP),
+ [KEY_KBDINPUTASSIST_ACCEPT] = XLAT(KEY_KBDINPUTASSIST_ACCEPT),
+ [KEY_KBDINPUTASSIST_CANCEL] = XLAT(KEY_KBDINPUTASSIST_CANCEL),
- XLAT(KEY_AUDIO_DESC),
- XLAT(KEY_3D_MODE),
- XLAT(KEY_NEXT_FAVORITE),
- XLAT(KEY_STOP_RECORD),
- XLAT(KEY_PAUSE_RECORD),
- XLAT(KEY_VOD),
- XLAT(KEY_UNMUTE),
- XLAT(KEY_FASTREVERSE),
- XLAT(KEY_SLOWREVERSE),
- XLAT(KEY_DATA),
- XLAT(KEY_ONSCREEN_KEYBOARD),
+ [KEY_RIGHT_UP] = XLAT(KEY_RIGHT_UP),
+ [KEY_RIGHT_DOWN] = XLAT(KEY_RIGHT_DOWN),
+ [KEY_LEFT_UP] = XLAT(KEY_LEFT_UP),
+ [KEY_LEFT_DOWN] = XLAT(KEY_LEFT_DOWN),
- XLAT(BTN_TRIGGER_HAPPY),
- XLAT(BTN_TRIGGER_HAPPY1),
- XLAT(BTN_TRIGGER_HAPPY2),
- XLAT(BTN_TRIGGER_HAPPY3),
- XLAT(BTN_TRIGGER_HAPPY4),
- XLAT(BTN_TRIGGER_HAPPY5),
- XLAT(BTN_TRIGGER_HAPPY6),
- XLAT(BTN_TRIGGER_HAPPY7),
- XLAT(BTN_TRIGGER_HAPPY8),
- XLAT(BTN_TRIGGER_HAPPY9),
- XLAT(BTN_TRIGGER_HAPPY10),
- XLAT(BTN_TRIGGER_HAPPY11),
- XLAT(BTN_TRIGGER_HAPPY12),
- XLAT(BTN_TRIGGER_HAPPY13),
- XLAT(BTN_TRIGGER_HAPPY14),
- XLAT(BTN_TRIGGER_HAPPY15),
- XLAT(BTN_TRIGGER_HAPPY16),
- XLAT(BTN_TRIGGER_HAPPY17),
- XLAT(BTN_TRIGGER_HAPPY18),
- XLAT(BTN_TRIGGER_HAPPY19),
- XLAT(BTN_TRIGGER_HAPPY20),
- XLAT(BTN_TRIGGER_HAPPY21),
- XLAT(BTN_TRIGGER_HAPPY22),
- XLAT(BTN_TRIGGER_HAPPY23),
- XLAT(BTN_TRIGGER_HAPPY24),
- XLAT(BTN_TRIGGER_HAPPY25),
- XLAT(BTN_TRIGGER_HAPPY26),
- XLAT(BTN_TRIGGER_HAPPY27),
- XLAT(BTN_TRIGGER_HAPPY28),
- XLAT(BTN_TRIGGER_HAPPY29),
- XLAT(BTN_TRIGGER_HAPPY30),
- XLAT(BTN_TRIGGER_HAPPY31),
- XLAT(BTN_TRIGGER_HAPPY32),
- XLAT(BTN_TRIGGER_HAPPY33),
- XLAT(BTN_TRIGGER_HAPPY34),
- XLAT(BTN_TRIGGER_HAPPY35),
- XLAT(BTN_TRIGGER_HAPPY36),
- XLAT(BTN_TRIGGER_HAPPY37),
- XLAT(BTN_TRIGGER_HAPPY38),
- XLAT(BTN_TRIGGER_HAPPY39),
- XLAT(BTN_TRIGGER_HAPPY40),
+ [KEY_ROOT_MENU] = XLAT(KEY_ROOT_MENU),
+ [KEY_MEDIA_TOP_MENU] = XLAT(KEY_MEDIA_TOP_MENU),
+ [KEY_NUMERIC_11] = XLAT(KEY_NUMERIC_11),
+ [KEY_NUMERIC_12] = XLAT(KEY_NUMERIC_12),
+
+ [KEY_AUDIO_DESC] = XLAT(KEY_AUDIO_DESC),
+ [KEY_3D_MODE] = XLAT(KEY_3D_MODE),
+ [KEY_NEXT_FAVORITE] = XLAT(KEY_NEXT_FAVORITE),
+ [KEY_STOP_RECORD] = XLAT(KEY_STOP_RECORD),
+ [KEY_PAUSE_RECORD] = XLAT(KEY_PAUSE_RECORD),
+ [KEY_VOD] = XLAT(KEY_VOD),
+ [KEY_UNMUTE] = XLAT(KEY_UNMUTE),
+ [KEY_FASTREVERSE] = XLAT(KEY_FASTREVERSE),
+ [KEY_SLOWREVERSE] = XLAT(KEY_SLOWREVERSE),
+
+#ifndef STRACE_WORKAROUND_FOR_KEY_DATA
+# define STRACE_WORKAROUND_FOR_KEY_DATA
+/*
+* Linux kernel commit v4.9-rc8~12^2 has changed the value of KEY_DATA
+* constant introduced by commit v4.7-rc6~32^2~6^2 because the old value
+* was already used by KEY_FASTREVERSE.
+* Looks like the best way to handle this situation is to pretend that
+* the old value of KEY_DATA didn't exist.
+*/
+# undef KEY_DATA
+#endif
+ [KEY_DATA] = XLAT(KEY_DATA),
+
+ [KEY_ONSCREEN_KEYBOARD] = XLAT(KEY_ONSCREEN_KEYBOARD),
+
+ [BTN_TRIGGER_HAPPY1] = XLAT(BTN_TRIGGER_HAPPY1),
+ [BTN_TRIGGER_HAPPY2] = XLAT(BTN_TRIGGER_HAPPY2),
+ [BTN_TRIGGER_HAPPY3] = XLAT(BTN_TRIGGER_HAPPY3),
+ [BTN_TRIGGER_HAPPY4] = XLAT(BTN_TRIGGER_HAPPY4),
+ [BTN_TRIGGER_HAPPY5] = XLAT(BTN_TRIGGER_HAPPY5),
+ [BTN_TRIGGER_HAPPY6] = XLAT(BTN_TRIGGER_HAPPY6),
+ [BTN_TRIGGER_HAPPY7] = XLAT(BTN_TRIGGER_HAPPY7),
+ [BTN_TRIGGER_HAPPY8] = XLAT(BTN_TRIGGER_HAPPY8),
+ [BTN_TRIGGER_HAPPY9] = XLAT(BTN_TRIGGER_HAPPY9),
+ [BTN_TRIGGER_HAPPY10] = XLAT(BTN_TRIGGER_HAPPY10),
+ [BTN_TRIGGER_HAPPY11] = XLAT(BTN_TRIGGER_HAPPY11),
+ [BTN_TRIGGER_HAPPY12] = XLAT(BTN_TRIGGER_HAPPY12),
+ [BTN_TRIGGER_HAPPY13] = XLAT(BTN_TRIGGER_HAPPY13),
+ [BTN_TRIGGER_HAPPY14] = XLAT(BTN_TRIGGER_HAPPY14),
+ [BTN_TRIGGER_HAPPY15] = XLAT(BTN_TRIGGER_HAPPY15),
+ [BTN_TRIGGER_HAPPY16] = XLAT(BTN_TRIGGER_HAPPY16),
+ [BTN_TRIGGER_HAPPY17] = XLAT(BTN_TRIGGER_HAPPY17),
+ [BTN_TRIGGER_HAPPY18] = XLAT(BTN_TRIGGER_HAPPY18),
+ [BTN_TRIGGER_HAPPY19] = XLAT(BTN_TRIGGER_HAPPY19),
+ [BTN_TRIGGER_HAPPY20] = XLAT(BTN_TRIGGER_HAPPY20),
+ [BTN_TRIGGER_HAPPY21] = XLAT(BTN_TRIGGER_HAPPY21),
+ [BTN_TRIGGER_HAPPY22] = XLAT(BTN_TRIGGER_HAPPY22),
+ [BTN_TRIGGER_HAPPY23] = XLAT(BTN_TRIGGER_HAPPY23),
+ [BTN_TRIGGER_HAPPY24] = XLAT(BTN_TRIGGER_HAPPY24),
+ [BTN_TRIGGER_HAPPY25] = XLAT(BTN_TRIGGER_HAPPY25),
+ [BTN_TRIGGER_HAPPY26] = XLAT(BTN_TRIGGER_HAPPY26),
+ [BTN_TRIGGER_HAPPY27] = XLAT(BTN_TRIGGER_HAPPY27),
+ [BTN_TRIGGER_HAPPY28] = XLAT(BTN_TRIGGER_HAPPY28),
+ [BTN_TRIGGER_HAPPY29] = XLAT(BTN_TRIGGER_HAPPY29),
+ [BTN_TRIGGER_HAPPY30] = XLAT(BTN_TRIGGER_HAPPY30),
+ [BTN_TRIGGER_HAPPY31] = XLAT(BTN_TRIGGER_HAPPY31),
+ [BTN_TRIGGER_HAPPY32] = XLAT(BTN_TRIGGER_HAPPY32),
+ [BTN_TRIGGER_HAPPY33] = XLAT(BTN_TRIGGER_HAPPY33),
+ [BTN_TRIGGER_HAPPY34] = XLAT(BTN_TRIGGER_HAPPY34),
+ [BTN_TRIGGER_HAPPY35] = XLAT(BTN_TRIGGER_HAPPY35),
+ [BTN_TRIGGER_HAPPY36] = XLAT(BTN_TRIGGER_HAPPY36),
+ [BTN_TRIGGER_HAPPY37] = XLAT(BTN_TRIGGER_HAPPY37),
+ [BTN_TRIGGER_HAPPY38] = XLAT(BTN_TRIGGER_HAPPY38),
+ [BTN_TRIGGER_HAPPY39] = XLAT(BTN_TRIGGER_HAPPY39),
+ [BTN_TRIGGER_HAPPY40] = XLAT(BTN_TRIGGER_HAPPY40),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_keycode.in b/xlat/evdev_keycode.in
index c0811ba..08fb5d1 100644
--- a/xlat/evdev_keycode.in
+++ b/xlat/evdev_keycode.in
@@ -1,3 +1,4 @@
+#value_indexed
/* awk '{if (NF>1) {n=strtonum($2)}; printf("%d %s\n", n, $0)}' |sort -s -k1,1n |sed 's/^[0-9]* //' */
KEY_RESERVED 0
KEY_ESC 1
@@ -253,6 +254,19 @@
KEY_DISPLAY_OFF 245
KEY_WWAN 246
+
+#ifndef STRACE_WORKAROUND_FOR_KEY_RFKILL
+# define STRACE_WORKAROUND_FOR_KEY_RFKILL
+/*
+ * KEY_RFKILL and KEY_NUMERIC_A constants were introduced by Linux kernel
+ * commits v2.6.33~17^2~2 and v4.1-rc1~150^2~1^10~6, respectively.
+ * Apparently, RHEL6 introduced an alternative KEY_RFKILL constant
+ * with the same value as upstream KEY_NUMERIC_A.
+ * Downstream vendors are *not* allowed to do this.
+ * Ignore the system value of KEY_RFKILL.
+ */
+# undef KEY_RFKILL
+#endif
KEY_RFKILL 247
KEY_MICMUTE 248
@@ -268,7 +282,6 @@
BTN_8 0x108
BTN_9 0x109
-BTN_MOUSE 0x110
BTN_LEFT 0x110
BTN_RIGHT 0x111
BTN_MIDDLE 0x112
@@ -278,7 +291,6 @@
BTN_BACK 0x116
BTN_TASK 0x117
-BTN_JOYSTICK 0x120
BTN_TRIGGER 0x120
BTN_THUMB 0x121
BTN_THUMB2 0x122
@@ -293,7 +305,6 @@
BTN_BASE6 0x12b
BTN_DEAD 0x12f
-BTN_GAMEPAD 0x130
BTN_SOUTH 0x130
BTN_EAST 0x131
BTN_C 0x132
@@ -310,7 +321,6 @@
BTN_THUMBL 0x13d
BTN_THUMBR 0x13e
-BTN_DIGI 0x140
BTN_TOOL_PEN 0x140
BTN_TOOL_RUBBER 0x141
BTN_TOOL_BRUSH 0x142
@@ -328,7 +338,6 @@
BTN_TOOL_TRIPLETAP 0x14e
BTN_TOOL_QUADTAP 0x14f
-BTN_WHEEL 0x150
BTN_GEAR_DOWN 0x150
BTN_GEAR_UP 0x151
@@ -517,7 +526,20 @@
KEY_VOICECOMMAND 0x246
KEY_ASSISTANT 0x247
+#ifndef STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN
+# define STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN
+/*
+ * KEY_BRIGHTNESS_MIN and KEY_BRIGHTNESS_MAX constants were introduced
+ * by Linux kernel commit v3.16-rc1~30^2~6^2~1^2~7.
+ * Apparently, RHEL7 introduced an alternative KEY_BRIGHTNESS_MIN constant
+ * with the same value as upstream KEY_BRIGHTNESS_MAX.
+ * Downstream vendors are *not* allowed to do this.
+ * Ignore the system value of KEY_BRIGHTNESS_MIN.
+ */
+# undef KEY_BRIGHTNESS_MIN
+#endif
KEY_BRIGHTNESS_MIN 0x250
+
KEY_BRIGHTNESS_MAX 0x251
KEY_KBDINPUTASSIST_PREV 0x260
@@ -546,10 +568,22 @@
KEY_UNMUTE 0x274
KEY_FASTREVERSE 0x275
KEY_SLOWREVERSE 0x276
+
+#ifndef STRACE_WORKAROUND_FOR_KEY_DATA
+# define STRACE_WORKAROUND_FOR_KEY_DATA
+/*
+ * Linux kernel commit v4.9-rc8~12^2 has changed the value of KEY_DATA
+ * constant introduced by commit v4.7-rc6~32^2~6^2 because the old value
+ * was already used by KEY_FASTREVERSE.
+ * Looks like the best way to handle this situation is to pretend that
+ * the old value of KEY_DATA didn't exist.
+ */
+# undef KEY_DATA
+#endif
KEY_DATA 0x277
+
KEY_ONSCREEN_KEYBOARD 0x278
-BTN_TRIGGER_HAPPY 0x2c0
BTN_TRIGGER_HAPPY1 0x2c0
BTN_TRIGGER_HAPPY2 0x2c1
BTN_TRIGGER_HAPPY3 0x2c2
diff --git a/xlat/evdev_leds.h b/xlat/evdev_leds.h
index ca0de38..09dc066 100644
--- a/xlat/evdev_leds.h
+++ b/xlat/evdev_leds.h
@@ -1,47 +1,110 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_leds.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_leds in mpers mode
-
+#if defined(LED_NUML) || (defined(HAVE_DECL_LED_NUML) && HAVE_DECL_LED_NUML)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_NUML) == (0x00), "LED_NUML != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define LED_NUML 0x00
+#endif
+#if defined(LED_CAPSL) || (defined(HAVE_DECL_LED_CAPSL) && HAVE_DECL_LED_CAPSL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_CAPSL) == (0x01), "LED_CAPSL != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_CAPSL 0x01
+#endif
+#if defined(LED_SCROLLL) || (defined(HAVE_DECL_LED_SCROLLL) && HAVE_DECL_LED_SCROLLL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_SCROLLL) == (0x02), "LED_SCROLLL != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_SCROLLL 0x02
+#endif
+#if defined(LED_COMPOSE) || (defined(HAVE_DECL_LED_COMPOSE) && HAVE_DECL_LED_COMPOSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_COMPOSE) == (0x03), "LED_COMPOSE != 0x03");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_COMPOSE 0x03
+#endif
+#if defined(LED_KANA) || (defined(HAVE_DECL_LED_KANA) && HAVE_DECL_LED_KANA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_KANA) == (0x04), "LED_KANA != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_KANA 0x04
+#endif
+#if defined(LED_SLEEP) || (defined(HAVE_DECL_LED_SLEEP) && HAVE_DECL_LED_SLEEP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_SLEEP) == (0x05), "LED_SLEEP != 0x05");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_SLEEP 0x05
+#endif
+#if defined(LED_SUSPEND) || (defined(HAVE_DECL_LED_SUSPEND) && HAVE_DECL_LED_SUSPEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_SUSPEND) == (0x06), "LED_SUSPEND != 0x06");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_SUSPEND 0x06
+#endif
+#if defined(LED_MUTE) || (defined(HAVE_DECL_LED_MUTE) && HAVE_DECL_LED_MUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_MUTE) == (0x07), "LED_MUTE != 0x07");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_MUTE 0x07
+#endif
+#if defined(LED_MISC) || (defined(HAVE_DECL_LED_MISC) && HAVE_DECL_LED_MISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_MISC) == (0x08), "LED_MISC != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_MISC 0x08
+#endif
+#if defined(LED_MAIL) || (defined(HAVE_DECL_LED_MAIL) && HAVE_DECL_LED_MAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_MAIL) == (0x09), "LED_MAIL != 0x09");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_MAIL 0x09
+#endif
+#if defined(LED_CHARGING) || (defined(HAVE_DECL_LED_CHARGING) && HAVE_DECL_LED_CHARGING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LED_CHARGING) == (0x0a), "LED_CHARGING != 0x0a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LED_CHARGING 0x0a
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_leds in mpers mode
+
+# else
static
const struct xlat evdev_leds[] = {
-#if defined(LED_NUML) || (defined(HAVE_DECL_LED_NUML) && HAVE_DECL_LED_NUML)
- XLAT(LED_NUML),
-#endif
-#if defined(LED_CAPSL) || (defined(HAVE_DECL_LED_CAPSL) && HAVE_DECL_LED_CAPSL)
- XLAT(LED_CAPSL),
-#endif
-#if defined(LED_SCROLLL) || (defined(HAVE_DECL_LED_SCROLLL) && HAVE_DECL_LED_SCROLLL)
- XLAT(LED_SCROLLL),
-#endif
-#if defined(LED_COMPOSE) || (defined(HAVE_DECL_LED_COMPOSE) && HAVE_DECL_LED_COMPOSE)
- XLAT(LED_COMPOSE),
-#endif
-#if defined(LED_KANA) || (defined(HAVE_DECL_LED_KANA) && HAVE_DECL_LED_KANA)
- XLAT(LED_KANA),
-#endif
-#if defined(LED_SLEEP) || (defined(HAVE_DECL_LED_SLEEP) && HAVE_DECL_LED_SLEEP)
- XLAT(LED_SLEEP),
-#endif
-#if defined(LED_SUSPEND) || (defined(HAVE_DECL_LED_SUSPEND) && HAVE_DECL_LED_SUSPEND)
- XLAT(LED_SUSPEND),
-#endif
-#if defined(LED_MUTE) || (defined(HAVE_DECL_LED_MUTE) && HAVE_DECL_LED_MUTE)
- XLAT(LED_MUTE),
-#endif
-#if defined(LED_MISC) || (defined(HAVE_DECL_LED_MISC) && HAVE_DECL_LED_MISC)
- XLAT(LED_MISC),
-#endif
-#if defined(LED_MAIL) || (defined(HAVE_DECL_LED_MAIL) && HAVE_DECL_LED_MAIL)
- XLAT(LED_MAIL),
-#endif
-#if defined(LED_CHARGING) || (defined(HAVE_DECL_LED_CHARGING) && HAVE_DECL_LED_CHARGING)
- XLAT(LED_CHARGING),
-#endif
+ [LED_NUML] = XLAT(LED_NUML),
+ [LED_CAPSL] = XLAT(LED_CAPSL),
+ [LED_SCROLLL] = XLAT(LED_SCROLLL),
+ [LED_COMPOSE] = XLAT(LED_COMPOSE),
+ [LED_KANA] = XLAT(LED_KANA),
+ [LED_SLEEP] = XLAT(LED_SLEEP),
+ [LED_SUSPEND] = XLAT(LED_SUSPEND),
+ [LED_MUTE] = XLAT(LED_MUTE),
+ [LED_MISC] = XLAT(LED_MISC),
+ [LED_MAIL] = XLAT(LED_MAIL),
+ [LED_CHARGING] = XLAT(LED_CHARGING),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_leds.in b/xlat/evdev_leds.in
index c085ed3..6178bbd 100644
--- a/xlat/evdev_leds.in
+++ b/xlat/evdev_leds.in
@@ -1,11 +1,12 @@
-LED_NUML
-LED_CAPSL
-LED_SCROLLL
-LED_COMPOSE
-LED_KANA
-LED_SLEEP
-LED_SUSPEND
-LED_MUTE
-LED_MISC
-LED_MAIL
-LED_CHARGING
+#value_indexed
+LED_NUML 0x00
+LED_CAPSL 0x01
+LED_SCROLLL 0x02
+LED_COMPOSE 0x03
+LED_KANA 0x04
+LED_SLEEP 0x05
+LED_SUSPEND 0x06
+LED_MUTE 0x07
+LED_MISC 0x08
+LED_MAIL 0x09
+LED_CHARGING 0x0a
diff --git a/xlat/evdev_misc.h b/xlat/evdev_misc.h
index 96f8afa..92c3879 100644
--- a/xlat/evdev_misc.h
+++ b/xlat/evdev_misc.h
@@ -1,32 +1,70 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_misc.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_misc in mpers mode
-
+#if defined(MSC_SERIAL) || (defined(HAVE_DECL_MSC_SERIAL) && HAVE_DECL_MSC_SERIAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSC_SERIAL) == (0x00), "MSC_SERIAL != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define MSC_SERIAL 0x00
+#endif
+#if defined(MSC_PULSELED) || (defined(HAVE_DECL_MSC_PULSELED) && HAVE_DECL_MSC_PULSELED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSC_PULSELED) == (0x01), "MSC_PULSELED != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSC_PULSELED 0x01
+#endif
+#if defined(MSC_GESTURE) || (defined(HAVE_DECL_MSC_GESTURE) && HAVE_DECL_MSC_GESTURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSC_GESTURE) == (0x02), "MSC_GESTURE != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSC_GESTURE 0x02
+#endif
+#if defined(MSC_RAW) || (defined(HAVE_DECL_MSC_RAW) && HAVE_DECL_MSC_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSC_RAW) == (0x03), "MSC_RAW != 0x03");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSC_RAW 0x03
+#endif
+#if defined(MSC_SCAN) || (defined(HAVE_DECL_MSC_SCAN) && HAVE_DECL_MSC_SCAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSC_SCAN) == (0x04), "MSC_SCAN != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSC_SCAN 0x04
+#endif
+#if defined(MSC_TIMESTAMP) || (defined(HAVE_DECL_MSC_TIMESTAMP) && HAVE_DECL_MSC_TIMESTAMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSC_TIMESTAMP) == (0x05), "MSC_TIMESTAMP != 0x05");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSC_TIMESTAMP 0x05
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_misc in mpers mode
+
+# else
static
const struct xlat evdev_misc[] = {
-#if defined(MSC_SERIAL) || (defined(HAVE_DECL_MSC_SERIAL) && HAVE_DECL_MSC_SERIAL)
- XLAT(MSC_SERIAL),
-#endif
-#if defined(MSC_PULSELED) || (defined(HAVE_DECL_MSC_PULSELED) && HAVE_DECL_MSC_PULSELED)
- XLAT(MSC_PULSELED),
-#endif
-#if defined(MSC_GESTURE) || (defined(HAVE_DECL_MSC_GESTURE) && HAVE_DECL_MSC_GESTURE)
- XLAT(MSC_GESTURE),
-#endif
-#if defined(MSC_RAW) || (defined(HAVE_DECL_MSC_RAW) && HAVE_DECL_MSC_RAW)
- XLAT(MSC_RAW),
-#endif
-#if defined(MSC_SCAN) || (defined(HAVE_DECL_MSC_SCAN) && HAVE_DECL_MSC_SCAN)
- XLAT(MSC_SCAN),
-#endif
-#if defined(MSC_TIMESTAMP) || (defined(HAVE_DECL_MSC_TIMESTAMP) && HAVE_DECL_MSC_TIMESTAMP)
- XLAT(MSC_TIMESTAMP),
-#endif
+ [MSC_SERIAL] = XLAT(MSC_SERIAL),
+ [MSC_PULSELED] = XLAT(MSC_PULSELED),
+ [MSC_GESTURE] = XLAT(MSC_GESTURE),
+ [MSC_RAW] = XLAT(MSC_RAW),
+ [MSC_SCAN] = XLAT(MSC_SCAN),
+ [MSC_TIMESTAMP] = XLAT(MSC_TIMESTAMP),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_misc.in b/xlat/evdev_misc.in
index 385ee4d..0528092 100644
--- a/xlat/evdev_misc.in
+++ b/xlat/evdev_misc.in
@@ -1,6 +1,7 @@
-MSC_SERIAL
-MSC_PULSELED
-MSC_GESTURE
-MSC_RAW
-MSC_SCAN
-MSC_TIMESTAMP
+#value_indexed
+MSC_SERIAL 0x00
+MSC_PULSELED 0x01
+MSC_GESTURE 0x02
+MSC_RAW 0x03
+MSC_SCAN 0x04
+MSC_TIMESTAMP 0x05
diff --git a/xlat/evdev_mtslots.h b/xlat/evdev_mtslots.h
index 3633514..ec6ee61 100644
--- a/xlat/evdev_mtslots.h
+++ b/xlat/evdev_mtslots.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_mtslots.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_mtslots in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_mtslots in mpers mode
+
+# else
static
const struct xlat evdev_mtslots[] = {
@@ -56,4 +62,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_prop.h b/xlat/evdev_prop.h
index c998c82..ea872fb 100644
--- a/xlat/evdev_prop.h
+++ b/xlat/evdev_prop.h
@@ -1,35 +1,78 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_prop.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_prop in mpers mode
-
+#if defined(INPUT_PROP_POINTER) || (defined(HAVE_DECL_INPUT_PROP_POINTER) && HAVE_DECL_INPUT_PROP_POINTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((INPUT_PROP_POINTER) == (0), "INPUT_PROP_POINTER != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define INPUT_PROP_POINTER 0
+#endif
+#if defined(INPUT_PROP_DIRECT) || (defined(HAVE_DECL_INPUT_PROP_DIRECT) && HAVE_DECL_INPUT_PROP_DIRECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((INPUT_PROP_DIRECT) == (1), "INPUT_PROP_DIRECT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define INPUT_PROP_DIRECT 1
+#endif
+#if defined(INPUT_PROP_BUTTONPAD) || (defined(HAVE_DECL_INPUT_PROP_BUTTONPAD) && HAVE_DECL_INPUT_PROP_BUTTONPAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((INPUT_PROP_BUTTONPAD) == (2), "INPUT_PROP_BUTTONPAD != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define INPUT_PROP_BUTTONPAD 2
+#endif
+#if defined(INPUT_PROP_SEMI_MT) || (defined(HAVE_DECL_INPUT_PROP_SEMI_MT) && HAVE_DECL_INPUT_PROP_SEMI_MT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((INPUT_PROP_SEMI_MT) == (3), "INPUT_PROP_SEMI_MT != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define INPUT_PROP_SEMI_MT 3
+#endif
+#if defined(INPUT_PROP_TOPBUTTONPAD) || (defined(HAVE_DECL_INPUT_PROP_TOPBUTTONPAD) && HAVE_DECL_INPUT_PROP_TOPBUTTONPAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((INPUT_PROP_TOPBUTTONPAD) == (4), "INPUT_PROP_TOPBUTTONPAD != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define INPUT_PROP_TOPBUTTONPAD 4
+#endif
+#if defined(INPUT_PROP_POINTING_STICK) || (defined(HAVE_DECL_INPUT_PROP_POINTING_STICK) && HAVE_DECL_INPUT_PROP_POINTING_STICK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((INPUT_PROP_POINTING_STICK) == (5), "INPUT_PROP_POINTING_STICK != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define INPUT_PROP_POINTING_STICK 5
+#endif
+#if defined(INPUT_PROP_ACCELEROMETER) || (defined(HAVE_DECL_INPUT_PROP_ACCELEROMETER) && HAVE_DECL_INPUT_PROP_ACCELEROMETER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((INPUT_PROP_ACCELEROMETER) == (6), "INPUT_PROP_ACCELEROMETER != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define INPUT_PROP_ACCELEROMETER 6
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_prop in mpers mode
+
+# else
static
const struct xlat evdev_prop[] = {
-#if defined(INPUT_PROP_POINTER) || (defined(HAVE_DECL_INPUT_PROP_POINTER) && HAVE_DECL_INPUT_PROP_POINTER)
- XLAT(INPUT_PROP_POINTER),
-#endif
-#if defined(INPUT_PROP_DIRECT) || (defined(HAVE_DECL_INPUT_PROP_DIRECT) && HAVE_DECL_INPUT_PROP_DIRECT)
- XLAT(INPUT_PROP_DIRECT),
-#endif
-#if defined(INPUT_PROP_BUTTONPAD) || (defined(HAVE_DECL_INPUT_PROP_BUTTONPAD) && HAVE_DECL_INPUT_PROP_BUTTONPAD)
- XLAT(INPUT_PROP_BUTTONPAD),
-#endif
-#if defined(INPUT_PROP_SEMI_MT) || (defined(HAVE_DECL_INPUT_PROP_SEMI_MT) && HAVE_DECL_INPUT_PROP_SEMI_MT)
- XLAT(INPUT_PROP_SEMI_MT),
-#endif
-#if defined(INPUT_PROP_TOPBUTTONPAD) || (defined(HAVE_DECL_INPUT_PROP_TOPBUTTONPAD) && HAVE_DECL_INPUT_PROP_TOPBUTTONPAD)
- XLAT(INPUT_PROP_TOPBUTTONPAD),
-#endif
-#if defined(INPUT_PROP_POINTING_STICK) || (defined(HAVE_DECL_INPUT_PROP_POINTING_STICK) && HAVE_DECL_INPUT_PROP_POINTING_STICK)
- XLAT(INPUT_PROP_POINTING_STICK),
-#endif
-#if defined(INPUT_PROP_ACCELEROMETER) || (defined(HAVE_DECL_INPUT_PROP_ACCELEROMETER) && HAVE_DECL_INPUT_PROP_ACCELEROMETER)
- XLAT(INPUT_PROP_ACCELEROMETER),
-#endif
+ [INPUT_PROP_POINTER] = XLAT(INPUT_PROP_POINTER),
+ [INPUT_PROP_DIRECT] = XLAT(INPUT_PROP_DIRECT),
+ [INPUT_PROP_BUTTONPAD] = XLAT(INPUT_PROP_BUTTONPAD),
+ [INPUT_PROP_SEMI_MT] = XLAT(INPUT_PROP_SEMI_MT),
+ [INPUT_PROP_TOPBUTTONPAD] = XLAT(INPUT_PROP_TOPBUTTONPAD),
+ [INPUT_PROP_POINTING_STICK] = XLAT(INPUT_PROP_POINTING_STICK),
+ [INPUT_PROP_ACCELEROMETER] = XLAT(INPUT_PROP_ACCELEROMETER),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_prop.in b/xlat/evdev_prop.in
index b659000..5e7d025 100644
--- a/xlat/evdev_prop.in
+++ b/xlat/evdev_prop.in
@@ -1,7 +1,8 @@
-INPUT_PROP_POINTER
-INPUT_PROP_DIRECT
-INPUT_PROP_BUTTONPAD
-INPUT_PROP_SEMI_MT
-INPUT_PROP_TOPBUTTONPAD
-INPUT_PROP_POINTING_STICK
-INPUT_PROP_ACCELEROMETER
+#value_indexed
+INPUT_PROP_POINTER 0
+INPUT_PROP_DIRECT 1
+INPUT_PROP_BUTTONPAD 2
+INPUT_PROP_SEMI_MT 3
+INPUT_PROP_TOPBUTTONPAD 4
+INPUT_PROP_POINTING_STICK 5
+INPUT_PROP_ACCELEROMETER 6
diff --git a/xlat/evdev_relative_axes.h b/xlat/evdev_relative_axes.h
index cf9efb4..60c8abf 100644
--- a/xlat/evdev_relative_axes.h
+++ b/xlat/evdev_relative_axes.h
@@ -1,44 +1,102 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_relative_axes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_relative_axes in mpers mode
-
+#if defined(REL_X) || (defined(HAVE_DECL_REL_X) && HAVE_DECL_REL_X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_X) == (0x00), "REL_X != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define REL_X 0x00
+#endif
+#if defined(REL_Y) || (defined(HAVE_DECL_REL_Y) && HAVE_DECL_REL_Y)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_Y) == (0x01), "REL_Y != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_Y 0x01
+#endif
+#if defined(REL_Z) || (defined(HAVE_DECL_REL_Z) && HAVE_DECL_REL_Z)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_Z) == (0x02), "REL_Z != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_Z 0x02
+#endif
+#if defined(REL_RX) || (defined(HAVE_DECL_REL_RX) && HAVE_DECL_REL_RX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_RX) == (0x03), "REL_RX != 0x03");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_RX 0x03
+#endif
+#if defined(REL_RY) || (defined(HAVE_DECL_REL_RY) && HAVE_DECL_REL_RY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_RY) == (0x04), "REL_RY != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_RY 0x04
+#endif
+#if defined(REL_RZ) || (defined(HAVE_DECL_REL_RZ) && HAVE_DECL_REL_RZ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_RZ) == (0x05), "REL_RZ != 0x05");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_RZ 0x05
+#endif
+#if defined(REL_HWHEEL) || (defined(HAVE_DECL_REL_HWHEEL) && HAVE_DECL_REL_HWHEEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_HWHEEL) == (0x06), "REL_HWHEEL != 0x06");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_HWHEEL 0x06
+#endif
+#if defined(REL_DIAL) || (defined(HAVE_DECL_REL_DIAL) && HAVE_DECL_REL_DIAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_DIAL) == (0x07), "REL_DIAL != 0x07");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_DIAL 0x07
+#endif
+#if defined(REL_WHEEL) || (defined(HAVE_DECL_REL_WHEEL) && HAVE_DECL_REL_WHEEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_WHEEL) == (0x08), "REL_WHEEL != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_WHEEL 0x08
+#endif
+#if defined(REL_MISC) || (defined(HAVE_DECL_REL_MISC) && HAVE_DECL_REL_MISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((REL_MISC) == (0x09), "REL_MISC != 0x09");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define REL_MISC 0x09
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_relative_axes in mpers mode
+
+# else
static
const struct xlat evdev_relative_axes[] = {
-#if defined(REL_X) || (defined(HAVE_DECL_REL_X) && HAVE_DECL_REL_X)
- XLAT(REL_X),
-#endif
-#if defined(REL_Y) || (defined(HAVE_DECL_REL_Y) && HAVE_DECL_REL_Y)
- XLAT(REL_Y),
-#endif
-#if defined(REL_Z) || (defined(HAVE_DECL_REL_Z) && HAVE_DECL_REL_Z)
- XLAT(REL_Z),
-#endif
-#if defined(REL_RX) || (defined(HAVE_DECL_REL_RX) && HAVE_DECL_REL_RX)
- XLAT(REL_RX),
-#endif
-#if defined(REL_RY) || (defined(HAVE_DECL_REL_RY) && HAVE_DECL_REL_RY)
- XLAT(REL_RY),
-#endif
-#if defined(REL_RZ) || (defined(HAVE_DECL_REL_RZ) && HAVE_DECL_REL_RZ)
- XLAT(REL_RZ),
-#endif
-#if defined(REL_HWHEEL) || (defined(HAVE_DECL_REL_HWHEEL) && HAVE_DECL_REL_HWHEEL)
- XLAT(REL_HWHEEL),
-#endif
-#if defined(REL_DIAL) || (defined(HAVE_DECL_REL_DIAL) && HAVE_DECL_REL_DIAL)
- XLAT(REL_DIAL),
-#endif
-#if defined(REL_WHEEL) || (defined(HAVE_DECL_REL_WHEEL) && HAVE_DECL_REL_WHEEL)
- XLAT(REL_WHEEL),
-#endif
-#if defined(REL_MISC) || (defined(HAVE_DECL_REL_MISC) && HAVE_DECL_REL_MISC)
- XLAT(REL_MISC),
-#endif
+ [REL_X] = XLAT(REL_X),
+ [REL_Y] = XLAT(REL_Y),
+ [REL_Z] = XLAT(REL_Z),
+ [REL_RX] = XLAT(REL_RX),
+ [REL_RY] = XLAT(REL_RY),
+ [REL_RZ] = XLAT(REL_RZ),
+ [REL_HWHEEL] = XLAT(REL_HWHEEL),
+ [REL_DIAL] = XLAT(REL_DIAL),
+ [REL_WHEEL] = XLAT(REL_WHEEL),
+ [REL_MISC] = XLAT(REL_MISC),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_relative_axes.in b/xlat/evdev_relative_axes.in
index 7158d47..4684a52 100644
--- a/xlat/evdev_relative_axes.in
+++ b/xlat/evdev_relative_axes.in
@@ -1,10 +1,11 @@
-REL_X
-REL_Y
-REL_Z
-REL_RX
-REL_RY
-REL_RZ
-REL_HWHEEL
-REL_DIAL
-REL_WHEEL
-REL_MISC
+#value_indexed
+REL_X 0x00
+REL_Y 0x01
+REL_Z 0x02
+REL_RX 0x03
+REL_RY 0x04
+REL_RZ 0x05
+REL_HWHEEL 0x06
+REL_DIAL 0x07
+REL_WHEEL 0x08
+REL_MISC 0x09
diff --git a/xlat/evdev_snd.h b/xlat/evdev_snd.h
index 95e4cd9..35d6c44 100644
--- a/xlat/evdev_snd.h
+++ b/xlat/evdev_snd.h
@@ -1,23 +1,46 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_snd.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_snd in mpers mode
-
+#if defined(SND_CLICK) || (defined(HAVE_DECL_SND_CLICK) && HAVE_DECL_SND_CLICK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SND_CLICK) == (0x00), "SND_CLICK != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define SND_CLICK 0x00
+#endif
+#if defined(SND_BELL) || (defined(HAVE_DECL_SND_BELL) && HAVE_DECL_SND_BELL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SND_BELL) == (0x01), "SND_BELL != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SND_BELL 0x01
+#endif
+#if defined(SND_TONE) || (defined(HAVE_DECL_SND_TONE) && HAVE_DECL_SND_TONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SND_TONE) == (0x02), "SND_TONE != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SND_TONE 0x02
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_snd in mpers mode
+
+# else
static
const struct xlat evdev_snd[] = {
-#if defined(SND_CLICK) || (defined(HAVE_DECL_SND_CLICK) && HAVE_DECL_SND_CLICK)
- XLAT(SND_CLICK),
-#endif
-#if defined(SND_BELL) || (defined(HAVE_DECL_SND_BELL) && HAVE_DECL_SND_BELL)
- XLAT(SND_BELL),
-#endif
-#if defined(SND_TONE) || (defined(HAVE_DECL_SND_TONE) && HAVE_DECL_SND_TONE)
- XLAT(SND_TONE),
-#endif
+ [SND_CLICK] = XLAT(SND_CLICK),
+ [SND_BELL] = XLAT(SND_BELL),
+ [SND_TONE] = XLAT(SND_TONE),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_snd.in b/xlat/evdev_snd.in
index eaebe3c..22e51cc 100644
--- a/xlat/evdev_snd.in
+++ b/xlat/evdev_snd.in
@@ -1,3 +1,4 @@
-SND_CLICK
-SND_BELL
-SND_TONE
+#value_indexed
+SND_CLICK 0x00
+SND_BELL 0x01
+SND_TONE 0x02
diff --git a/xlat/evdev_switch.h b/xlat/evdev_switch.h
index afa4b3b..d5aa9df 100644
--- a/xlat/evdev_switch.h
+++ b/xlat/evdev_switch.h
@@ -1,62 +1,150 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_switch.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_switch in mpers mode
-
+#if defined(SW_LID) || (defined(HAVE_DECL_SW_LID) && HAVE_DECL_SW_LID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_LID) == (0x00), "SW_LID != 0x00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define SW_LID 0x00
+#endif
+#if defined(SW_TABLET_MODE) || (defined(HAVE_DECL_SW_TABLET_MODE) && HAVE_DECL_SW_TABLET_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_TABLET_MODE) == (0x01), "SW_TABLET_MODE != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_TABLET_MODE 0x01
+#endif
+#if defined(SW_HEADPHONE_INSERT) || (defined(HAVE_DECL_SW_HEADPHONE_INSERT) && HAVE_DECL_SW_HEADPHONE_INSERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_HEADPHONE_INSERT) == (0x02), "SW_HEADPHONE_INSERT != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_HEADPHONE_INSERT 0x02
+#endif
+#if defined(SW_RFKILL_ALL) || (defined(HAVE_DECL_SW_RFKILL_ALL) && HAVE_DECL_SW_RFKILL_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_RFKILL_ALL) == (0x03), "SW_RFKILL_ALL != 0x03");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_RFKILL_ALL 0x03
+#endif
+#if defined(SW_MICROPHONE_INSERT) || (defined(HAVE_DECL_SW_MICROPHONE_INSERT) && HAVE_DECL_SW_MICROPHONE_INSERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_MICROPHONE_INSERT) == (0x04), "SW_MICROPHONE_INSERT != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_MICROPHONE_INSERT 0x04
+#endif
+#if defined(SW_DOCK) || (defined(HAVE_DECL_SW_DOCK) && HAVE_DECL_SW_DOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_DOCK) == (0x05), "SW_DOCK != 0x05");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_DOCK 0x05
+#endif
+#if defined(SW_LINEOUT_INSERT) || (defined(HAVE_DECL_SW_LINEOUT_INSERT) && HAVE_DECL_SW_LINEOUT_INSERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_LINEOUT_INSERT) == (0x06), "SW_LINEOUT_INSERT != 0x06");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_LINEOUT_INSERT 0x06
+#endif
+#if defined(SW_JACK_PHYSICAL_INSERT) || (defined(HAVE_DECL_SW_JACK_PHYSICAL_INSERT) && HAVE_DECL_SW_JACK_PHYSICAL_INSERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_JACK_PHYSICAL_INSERT) == (0x07), "SW_JACK_PHYSICAL_INSERT != 0x07");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_JACK_PHYSICAL_INSERT 0x07
+#endif
+#if defined(SW_VIDEOOUT_INSERT) || (defined(HAVE_DECL_SW_VIDEOOUT_INSERT) && HAVE_DECL_SW_VIDEOOUT_INSERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_VIDEOOUT_INSERT) == (0x08), "SW_VIDEOOUT_INSERT != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_VIDEOOUT_INSERT 0x08
+#endif
+#if defined(SW_CAMERA_LENS_COVER) || (defined(HAVE_DECL_SW_CAMERA_LENS_COVER) && HAVE_DECL_SW_CAMERA_LENS_COVER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_CAMERA_LENS_COVER) == (0x09), "SW_CAMERA_LENS_COVER != 0x09");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_CAMERA_LENS_COVER 0x09
+#endif
+#if defined(SW_KEYPAD_SLIDE) || (defined(HAVE_DECL_SW_KEYPAD_SLIDE) && HAVE_DECL_SW_KEYPAD_SLIDE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_KEYPAD_SLIDE) == (0x0a), "SW_KEYPAD_SLIDE != 0x0a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_KEYPAD_SLIDE 0x0a
+#endif
+#if defined(SW_FRONT_PROXIMITY) || (defined(HAVE_DECL_SW_FRONT_PROXIMITY) && HAVE_DECL_SW_FRONT_PROXIMITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_FRONT_PROXIMITY) == (0x0b), "SW_FRONT_PROXIMITY != 0x0b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_FRONT_PROXIMITY 0x0b
+#endif
+#if defined(SW_ROTATE_LOCK) || (defined(HAVE_DECL_SW_ROTATE_LOCK) && HAVE_DECL_SW_ROTATE_LOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_ROTATE_LOCK) == (0x0c), "SW_ROTATE_LOCK != 0x0c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_ROTATE_LOCK 0x0c
+#endif
+#if defined(SW_LINEIN_INSERT) || (defined(HAVE_DECL_SW_LINEIN_INSERT) && HAVE_DECL_SW_LINEIN_INSERT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_LINEIN_INSERT) == (0x0d), "SW_LINEIN_INSERT != 0x0d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_LINEIN_INSERT 0x0d
+#endif
+#if defined(SW_MUTE_DEVICE) || (defined(HAVE_DECL_SW_MUTE_DEVICE) && HAVE_DECL_SW_MUTE_DEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_MUTE_DEVICE) == (0x0e), "SW_MUTE_DEVICE != 0x0e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_MUTE_DEVICE 0x0e
+#endif
+#if defined(SW_PEN_INSERTED) || (defined(HAVE_DECL_SW_PEN_INSERTED) && HAVE_DECL_SW_PEN_INSERTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SW_PEN_INSERTED) == (0x0f), "SW_PEN_INSERTED != 0x0f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SW_PEN_INSERTED 0x0f
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_switch in mpers mode
+
+# else
static
const struct xlat evdev_switch[] = {
-#if defined(SW_LID) || (defined(HAVE_DECL_SW_LID) && HAVE_DECL_SW_LID)
- XLAT(SW_LID),
-#endif
-#if defined(SW_TABLET_MODE) || (defined(HAVE_DECL_SW_TABLET_MODE) && HAVE_DECL_SW_TABLET_MODE)
- XLAT(SW_TABLET_MODE),
-#endif
-#if defined(SW_HEADPHONE_INSERT) || (defined(HAVE_DECL_SW_HEADPHONE_INSERT) && HAVE_DECL_SW_HEADPHONE_INSERT)
- XLAT(SW_HEADPHONE_INSERT),
-#endif
-#if defined(SW_RFKILL_ALL) || (defined(HAVE_DECL_SW_RFKILL_ALL) && HAVE_DECL_SW_RFKILL_ALL)
- XLAT(SW_RFKILL_ALL),
-#endif
-#if defined(SW_RADIO) || (defined(HAVE_DECL_SW_RADIO) && HAVE_DECL_SW_RADIO)
- XLAT(SW_RADIO),
-#endif
-#if defined(SW_MICROPHONE_INSERT) || (defined(HAVE_DECL_SW_MICROPHONE_INSERT) && HAVE_DECL_SW_MICROPHONE_INSERT)
- XLAT(SW_MICROPHONE_INSERT),
-#endif
-#if defined(SW_DOCK) || (defined(HAVE_DECL_SW_DOCK) && HAVE_DECL_SW_DOCK)
- XLAT(SW_DOCK),
-#endif
-#if defined(SW_LINEOUT_INSERT) || (defined(HAVE_DECL_SW_LINEOUT_INSERT) && HAVE_DECL_SW_LINEOUT_INSERT)
- XLAT(SW_LINEOUT_INSERT),
-#endif
-#if defined(SW_JACK_PHYSICAL_INSERT) || (defined(HAVE_DECL_SW_JACK_PHYSICAL_INSERT) && HAVE_DECL_SW_JACK_PHYSICAL_INSERT)
- XLAT(SW_JACK_PHYSICAL_INSERT),
-#endif
-#if defined(SW_VIDEOOUT_INSERT) || (defined(HAVE_DECL_SW_VIDEOOUT_INSERT) && HAVE_DECL_SW_VIDEOOUT_INSERT)
- XLAT(SW_VIDEOOUT_INSERT),
-#endif
-#if defined(SW_CAMERA_LENS_COVER) || (defined(HAVE_DECL_SW_CAMERA_LENS_COVER) && HAVE_DECL_SW_CAMERA_LENS_COVER)
- XLAT(SW_CAMERA_LENS_COVER),
-#endif
-#if defined(SW_KEYPAD_SLIDE) || (defined(HAVE_DECL_SW_KEYPAD_SLIDE) && HAVE_DECL_SW_KEYPAD_SLIDE)
- XLAT(SW_KEYPAD_SLIDE),
-#endif
-#if defined(SW_FRONT_PROXIMITY) || (defined(HAVE_DECL_SW_FRONT_PROXIMITY) && HAVE_DECL_SW_FRONT_PROXIMITY)
- XLAT(SW_FRONT_PROXIMITY),
-#endif
-#if defined(SW_ROTATE_LOCK) || (defined(HAVE_DECL_SW_ROTATE_LOCK) && HAVE_DECL_SW_ROTATE_LOCK)
- XLAT(SW_ROTATE_LOCK),
-#endif
-#if defined(SW_LINEIN_INSERT) || (defined(HAVE_DECL_SW_LINEIN_INSERT) && HAVE_DECL_SW_LINEIN_INSERT)
- XLAT(SW_LINEIN_INSERT),
-#endif
-#if defined(SW_MUTE_DEVICE) || (defined(HAVE_DECL_SW_MUTE_DEVICE) && HAVE_DECL_SW_MUTE_DEVICE)
- XLAT(SW_MUTE_DEVICE),
-#endif
+ [SW_LID] = XLAT(SW_LID),
+ [SW_TABLET_MODE] = XLAT(SW_TABLET_MODE),
+ [SW_HEADPHONE_INSERT] = XLAT(SW_HEADPHONE_INSERT),
+ [SW_RFKILL_ALL] = XLAT(SW_RFKILL_ALL),
+ [SW_MICROPHONE_INSERT] = XLAT(SW_MICROPHONE_INSERT),
+ [SW_DOCK] = XLAT(SW_DOCK),
+ [SW_LINEOUT_INSERT] = XLAT(SW_LINEOUT_INSERT),
+ [SW_JACK_PHYSICAL_INSERT] = XLAT(SW_JACK_PHYSICAL_INSERT),
+ [SW_VIDEOOUT_INSERT] = XLAT(SW_VIDEOOUT_INSERT),
+ [SW_CAMERA_LENS_COVER] = XLAT(SW_CAMERA_LENS_COVER),
+ [SW_KEYPAD_SLIDE] = XLAT(SW_KEYPAD_SLIDE),
+ [SW_FRONT_PROXIMITY] = XLAT(SW_FRONT_PROXIMITY),
+ [SW_ROTATE_LOCK] = XLAT(SW_ROTATE_LOCK),
+ [SW_LINEIN_INSERT] = XLAT(SW_LINEIN_INSERT),
+ [SW_MUTE_DEVICE] = XLAT(SW_MUTE_DEVICE),
+ [SW_PEN_INSERTED] = XLAT(SW_PEN_INSERTED),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_switch.in b/xlat/evdev_switch.in
index 381d838..8f80872 100644
--- a/xlat/evdev_switch.in
+++ b/xlat/evdev_switch.in
@@ -1,16 +1,17 @@
-SW_LID
-SW_TABLET_MODE
-SW_HEADPHONE_INSERT
-SW_RFKILL_ALL
-SW_RADIO
-SW_MICROPHONE_INSERT
-SW_DOCK
-SW_LINEOUT_INSERT
-SW_JACK_PHYSICAL_INSERT
-SW_VIDEOOUT_INSERT
-SW_CAMERA_LENS_COVER
-SW_KEYPAD_SLIDE
-SW_FRONT_PROXIMITY
-SW_ROTATE_LOCK
-SW_LINEIN_INSERT
-SW_MUTE_DEVICE
+#value_indexed
+SW_LID 0x00
+SW_TABLET_MODE 0x01
+SW_HEADPHONE_INSERT 0x02
+SW_RFKILL_ALL 0x03
+SW_MICROPHONE_INSERT 0x04
+SW_DOCK 0x05
+SW_LINEOUT_INSERT 0x06
+SW_JACK_PHYSICAL_INSERT 0x07
+SW_VIDEOOUT_INSERT 0x08
+SW_CAMERA_LENS_COVER 0x09
+SW_KEYPAD_SLIDE 0x0a
+SW_FRONT_PROXIMITY 0x0b
+SW_ROTATE_LOCK 0x0c
+SW_LINEIN_INSERT 0x0d
+SW_MUTE_DEVICE 0x0e
+SW_PEN_INSERTED 0x0f
diff --git a/xlat/evdev_sync.h b/xlat/evdev_sync.h
index 85372a3..7a06e15 100644
--- a/xlat/evdev_sync.h
+++ b/xlat/evdev_sync.h
@@ -1,26 +1,54 @@
/* Generated by ./xlat/gen.sh from ./xlat/evdev_sync.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat evdev_sync in mpers mode
-
+#if defined(SYN_REPORT) || (defined(HAVE_DECL_SYN_REPORT) && HAVE_DECL_SYN_REPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYN_REPORT) == (0), "SYN_REPORT != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define SYN_REPORT 0
+#endif
+#if defined(SYN_CONFIG) || (defined(HAVE_DECL_SYN_CONFIG) && HAVE_DECL_SYN_CONFIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYN_CONFIG) == (1), "SYN_CONFIG != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SYN_CONFIG 1
+#endif
+#if defined(SYN_MT_REPORT) || (defined(HAVE_DECL_SYN_MT_REPORT) && HAVE_DECL_SYN_MT_REPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYN_MT_REPORT) == (2), "SYN_MT_REPORT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SYN_MT_REPORT 2
+#endif
+#if defined(SYN_DROPPED) || (defined(HAVE_DECL_SYN_DROPPED) && HAVE_DECL_SYN_DROPPED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYN_DROPPED) == (3), "SYN_DROPPED != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SYN_DROPPED 3
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat evdev_sync in mpers mode
+
+# else
static
const struct xlat evdev_sync[] = {
-#if defined(SYN_REPORT) || (defined(HAVE_DECL_SYN_REPORT) && HAVE_DECL_SYN_REPORT)
- XLAT(SYN_REPORT),
-#endif
-#if defined(SYN_CONFIG) || (defined(HAVE_DECL_SYN_CONFIG) && HAVE_DECL_SYN_CONFIG)
- XLAT(SYN_CONFIG),
-#endif
-#if defined(SYN_MT_REPORT) || (defined(HAVE_DECL_SYN_MT_REPORT) && HAVE_DECL_SYN_MT_REPORT)
- XLAT(SYN_MT_REPORT),
-#endif
-#if defined(SYN_DROPPED) || (defined(HAVE_DECL_SYN_DROPPED) && HAVE_DECL_SYN_DROPPED)
- XLAT(SYN_DROPPED),
-#endif
+ [SYN_REPORT] = XLAT(SYN_REPORT),
+ [SYN_CONFIG] = XLAT(SYN_CONFIG),
+ [SYN_MT_REPORT] = XLAT(SYN_MT_REPORT),
+ [SYN_DROPPED] = XLAT(SYN_DROPPED),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/evdev_sync.in b/xlat/evdev_sync.in
index 39c2e4a..ca9ea50 100644
--- a/xlat/evdev_sync.in
+++ b/xlat/evdev_sync.in
@@ -1,4 +1,5 @@
-SYN_REPORT
-SYN_CONFIG
-SYN_MT_REPORT
-SYN_DROPPED
+#value_indexed
+SYN_REPORT 0
+SYN_CONFIG 1
+SYN_MT_REPORT 2
+SYN_DROPPED 3
diff --git a/xlat/f_owner_types.h b/xlat/f_owner_types.h
index 611895a..7659871 100644
--- a/xlat/f_owner_types.h
+++ b/xlat/f_owner_types.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/f_owner_types.in; do not edit. */
-#if !(defined(F_OWNER_TID) || (defined(HAVE_DECL_F_OWNER_TID) && HAVE_DECL_F_OWNER_TID))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(F_OWNER_TID) || (defined(HAVE_DECL_F_OWNER_TID) && HAVE_DECL_F_OWNER_TID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_OWNER_TID) == (0), "F_OWNER_TID != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_OWNER_TID 0
#endif
-#if !(defined(F_OWNER_PID) || (defined(HAVE_DECL_F_OWNER_PID) && HAVE_DECL_F_OWNER_PID))
+#if defined(F_OWNER_PID) || (defined(HAVE_DECL_F_OWNER_PID) && HAVE_DECL_F_OWNER_PID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_OWNER_PID) == (1), "F_OWNER_PID != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_OWNER_PID 1
#endif
-#if !(defined(F_OWNER_PGRP) || (defined(HAVE_DECL_F_OWNER_PGRP) && HAVE_DECL_F_OWNER_PGRP))
+#if defined(F_OWNER_PGRP) || (defined(HAVE_DECL_F_OWNER_PGRP) && HAVE_DECL_F_OWNER_PGRP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_OWNER_PGRP) == (2), "F_OWNER_PGRP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_OWNER_PGRP 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat f_owner_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat f_owner_types in mpers mode
+
+# else
static
const struct xlat f_owner_types[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/f_seals.h b/xlat/f_seals.h
index 6efd079..1d6383a 100644
--- a/xlat/f_seals.h
+++ b/xlat/f_seals.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/f_seals.in; do not edit. */
-#if !(defined(F_SEAL_SEAL) || (defined(HAVE_DECL_F_SEAL_SEAL) && HAVE_DECL_F_SEAL_SEAL))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(F_SEAL_SEAL) || (defined(HAVE_DECL_F_SEAL_SEAL) && HAVE_DECL_F_SEAL_SEAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SEAL_SEAL) == (1), "F_SEAL_SEAL != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SEAL_SEAL 1
#endif
-#if !(defined(F_SEAL_SHRINK) || (defined(HAVE_DECL_F_SEAL_SHRINK) && HAVE_DECL_F_SEAL_SHRINK))
+#if defined(F_SEAL_SHRINK) || (defined(HAVE_DECL_F_SEAL_SHRINK) && HAVE_DECL_F_SEAL_SHRINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SEAL_SHRINK) == (2), "F_SEAL_SHRINK != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SEAL_SHRINK 2
#endif
-#if !(defined(F_SEAL_GROW) || (defined(HAVE_DECL_F_SEAL_GROW) && HAVE_DECL_F_SEAL_GROW))
+#if defined(F_SEAL_GROW) || (defined(HAVE_DECL_F_SEAL_GROW) && HAVE_DECL_F_SEAL_GROW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SEAL_GROW) == (4), "F_SEAL_GROW != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SEAL_GROW 4
#endif
-#if !(defined(F_SEAL_WRITE) || (defined(HAVE_DECL_F_SEAL_WRITE) && HAVE_DECL_F_SEAL_WRITE))
+#if defined(F_SEAL_WRITE) || (defined(HAVE_DECL_F_SEAL_WRITE) && HAVE_DECL_F_SEAL_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SEAL_WRITE) == (8), "F_SEAL_WRITE != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SEAL_WRITE 8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat f_seals in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat f_seals in mpers mode
+
+# else
static
const struct xlat f_seals[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/falloc_flags.h b/xlat/falloc_flags.h
index f75c9a8..aaa7468 100644
--- a/xlat/falloc_flags.h
+++ b/xlat/falloc_flags.h
@@ -1,31 +1,65 @@
/* Generated by ./xlat/gen.sh from ./xlat/falloc_flags.in; do not edit. */
-#if !(defined(FALLOC_FL_KEEP_SIZE) || (defined(HAVE_DECL_FALLOC_FL_KEEP_SIZE) && HAVE_DECL_FALLOC_FL_KEEP_SIZE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FALLOC_FL_KEEP_SIZE) || (defined(HAVE_DECL_FALLOC_FL_KEEP_SIZE) && HAVE_DECL_FALLOC_FL_KEEP_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FALLOC_FL_KEEP_SIZE) == (0x01), "FALLOC_FL_KEEP_SIZE != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FALLOC_FL_KEEP_SIZE 0x01
#endif
-#if !(defined(FALLOC_FL_PUNCH_HOLE) || (defined(HAVE_DECL_FALLOC_FL_PUNCH_HOLE) && HAVE_DECL_FALLOC_FL_PUNCH_HOLE))
+#if defined(FALLOC_FL_PUNCH_HOLE) || (defined(HAVE_DECL_FALLOC_FL_PUNCH_HOLE) && HAVE_DECL_FALLOC_FL_PUNCH_HOLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FALLOC_FL_PUNCH_HOLE) == (0x02), "FALLOC_FL_PUNCH_HOLE != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FALLOC_FL_PUNCH_HOLE 0x02
#endif
-#if !(defined(FALLOC_FL_NO_HIDE_STALE) || (defined(HAVE_DECL_FALLOC_FL_NO_HIDE_STALE) && HAVE_DECL_FALLOC_FL_NO_HIDE_STALE))
+#if defined(FALLOC_FL_NO_HIDE_STALE) || (defined(HAVE_DECL_FALLOC_FL_NO_HIDE_STALE) && HAVE_DECL_FALLOC_FL_NO_HIDE_STALE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FALLOC_FL_NO_HIDE_STALE) == (0x04), "FALLOC_FL_NO_HIDE_STALE != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FALLOC_FL_NO_HIDE_STALE 0x04
#endif
-#if !(defined(FALLOC_FL_COLLAPSE_RANGE) || (defined(HAVE_DECL_FALLOC_FL_COLLAPSE_RANGE) && HAVE_DECL_FALLOC_FL_COLLAPSE_RANGE))
+#if defined(FALLOC_FL_COLLAPSE_RANGE) || (defined(HAVE_DECL_FALLOC_FL_COLLAPSE_RANGE) && HAVE_DECL_FALLOC_FL_COLLAPSE_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FALLOC_FL_COLLAPSE_RANGE) == (0x08), "FALLOC_FL_COLLAPSE_RANGE != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FALLOC_FL_COLLAPSE_RANGE 0x08
#endif
-#if !(defined(FALLOC_FL_ZERO_RANGE) || (defined(HAVE_DECL_FALLOC_FL_ZERO_RANGE) && HAVE_DECL_FALLOC_FL_ZERO_RANGE))
+#if defined(FALLOC_FL_ZERO_RANGE) || (defined(HAVE_DECL_FALLOC_FL_ZERO_RANGE) && HAVE_DECL_FALLOC_FL_ZERO_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FALLOC_FL_ZERO_RANGE) == (0x10), "FALLOC_FL_ZERO_RANGE != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FALLOC_FL_ZERO_RANGE 0x10
#endif
-#if !(defined(FALLOC_FL_INSERT_RANGE) || (defined(HAVE_DECL_FALLOC_FL_INSERT_RANGE) && HAVE_DECL_FALLOC_FL_INSERT_RANGE))
+#if defined(FALLOC_FL_INSERT_RANGE) || (defined(HAVE_DECL_FALLOC_FL_INSERT_RANGE) && HAVE_DECL_FALLOC_FL_INSERT_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FALLOC_FL_INSERT_RANGE) == (0x20), "FALLOC_FL_INSERT_RANGE != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FALLOC_FL_INSERT_RANGE 0x20
#endif
-#if !(defined(FALLOC_FL_UNSHARE_RANGE) || (defined(HAVE_DECL_FALLOC_FL_UNSHARE_RANGE) && HAVE_DECL_FALLOC_FL_UNSHARE_RANGE))
+#if defined(FALLOC_FL_UNSHARE_RANGE) || (defined(HAVE_DECL_FALLOC_FL_UNSHARE_RANGE) && HAVE_DECL_FALLOC_FL_UNSHARE_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FALLOC_FL_UNSHARE_RANGE) == (0x40), "FALLOC_FL_UNSHARE_RANGE != 0x40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FALLOC_FL_UNSHARE_RANGE 0x40
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat falloc_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat falloc_flags in mpers mode
+
+# else
static
const struct xlat falloc_flags[] = {
@@ -39,4 +73,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fan_classes.h b/xlat/fan_classes.h
index cd26d75..ff4ff95 100644
--- a/xlat/fan_classes.h
+++ b/xlat/fan_classes.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/fan_classes.in; do not edit. */
-#if !(defined(FAN_CLASS_NOTIF) || (defined(HAVE_DECL_FAN_CLASS_NOTIF) && HAVE_DECL_FAN_CLASS_NOTIF))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FAN_CLASS_NOTIF) || (defined(HAVE_DECL_FAN_CLASS_NOTIF) && HAVE_DECL_FAN_CLASS_NOTIF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_CLASS_NOTIF) == (0x00000000), "FAN_CLASS_NOTIF != 0x00000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_CLASS_NOTIF 0x00000000
#endif
-#if !(defined(FAN_CLASS_CONTENT) || (defined(HAVE_DECL_FAN_CLASS_CONTENT) && HAVE_DECL_FAN_CLASS_CONTENT))
+#if defined(FAN_CLASS_CONTENT) || (defined(HAVE_DECL_FAN_CLASS_CONTENT) && HAVE_DECL_FAN_CLASS_CONTENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_CLASS_CONTENT) == (0x00000004), "FAN_CLASS_CONTENT != 0x00000004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_CLASS_CONTENT 0x00000004
#endif
-#if !(defined(FAN_CLASS_PRE_CONTENT) || (defined(HAVE_DECL_FAN_CLASS_PRE_CONTENT) && HAVE_DECL_FAN_CLASS_PRE_CONTENT))
+#if defined(FAN_CLASS_PRE_CONTENT) || (defined(HAVE_DECL_FAN_CLASS_PRE_CONTENT) && HAVE_DECL_FAN_CLASS_PRE_CONTENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_CLASS_PRE_CONTENT) == (0x00000008), "FAN_CLASS_PRE_CONTENT != 0x00000008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_CLASS_PRE_CONTENT 0x00000008
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fan_classes in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fan_classes in mpers mode
+
+# else
static
const struct xlat fan_classes[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fan_event_flags.h b/xlat/fan_event_flags.h
index 7c19d82..0ac9259 100644
--- a/xlat/fan_event_flags.h
+++ b/xlat/fan_event_flags.h
@@ -1,40 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/fan_event_flags.in; do not edit. */
-#if !(defined(FAN_ACCESS) || (defined(HAVE_DECL_FAN_ACCESS) && HAVE_DECL_FAN_ACCESS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FAN_ACCESS) || (defined(HAVE_DECL_FAN_ACCESS) && HAVE_DECL_FAN_ACCESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_ACCESS) == (0x00000001), "FAN_ACCESS != 0x00000001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_ACCESS 0x00000001
#endif
-#if !(defined(FAN_MODIFY) || (defined(HAVE_DECL_FAN_MODIFY) && HAVE_DECL_FAN_MODIFY))
+#if defined(FAN_MODIFY) || (defined(HAVE_DECL_FAN_MODIFY) && HAVE_DECL_FAN_MODIFY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MODIFY) == (0x00000002), "FAN_MODIFY != 0x00000002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MODIFY 0x00000002
#endif
-#if !(defined(FAN_CLOSE_WRITE) || (defined(HAVE_DECL_FAN_CLOSE_WRITE) && HAVE_DECL_FAN_CLOSE_WRITE))
+#if defined(FAN_CLOSE_WRITE) || (defined(HAVE_DECL_FAN_CLOSE_WRITE) && HAVE_DECL_FAN_CLOSE_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_CLOSE_WRITE) == (0x00000008), "FAN_CLOSE_WRITE != 0x00000008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_CLOSE_WRITE 0x00000008
#endif
-#if !(defined(FAN_CLOSE_NOWRITE) || (defined(HAVE_DECL_FAN_CLOSE_NOWRITE) && HAVE_DECL_FAN_CLOSE_NOWRITE))
+#if defined(FAN_CLOSE_NOWRITE) || (defined(HAVE_DECL_FAN_CLOSE_NOWRITE) && HAVE_DECL_FAN_CLOSE_NOWRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_CLOSE_NOWRITE) == (0x00000010), "FAN_CLOSE_NOWRITE != 0x00000010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_CLOSE_NOWRITE 0x00000010
#endif
-#if !(defined(FAN_OPEN) || (defined(HAVE_DECL_FAN_OPEN) && HAVE_DECL_FAN_OPEN))
+#if defined(FAN_OPEN) || (defined(HAVE_DECL_FAN_OPEN) && HAVE_DECL_FAN_OPEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_OPEN) == (0x00000020), "FAN_OPEN != 0x00000020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_OPEN 0x00000020
#endif
-#if !(defined(FAN_Q_OVERFLOW) || (defined(HAVE_DECL_FAN_Q_OVERFLOW) && HAVE_DECL_FAN_Q_OVERFLOW))
+#if defined(FAN_Q_OVERFLOW) || (defined(HAVE_DECL_FAN_Q_OVERFLOW) && HAVE_DECL_FAN_Q_OVERFLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_Q_OVERFLOW) == (0x00004000), "FAN_Q_OVERFLOW != 0x00004000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_Q_OVERFLOW 0x00004000
#endif
-#if !(defined(FAN_OPEN_PERM) || (defined(HAVE_DECL_FAN_OPEN_PERM) && HAVE_DECL_FAN_OPEN_PERM))
+#if defined(FAN_OPEN_PERM) || (defined(HAVE_DECL_FAN_OPEN_PERM) && HAVE_DECL_FAN_OPEN_PERM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_OPEN_PERM) == (0x00010000), "FAN_OPEN_PERM != 0x00010000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_OPEN_PERM 0x00010000
#endif
-#if !(defined(FAN_ACCESS_PERM) || (defined(HAVE_DECL_FAN_ACCESS_PERM) && HAVE_DECL_FAN_ACCESS_PERM))
+#if defined(FAN_ACCESS_PERM) || (defined(HAVE_DECL_FAN_ACCESS_PERM) && HAVE_DECL_FAN_ACCESS_PERM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_ACCESS_PERM) == (0x00020000), "FAN_ACCESS_PERM != 0x00020000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_ACCESS_PERM 0x00020000
#endif
-#if !(defined(FAN_ONDIR) || (defined(HAVE_DECL_FAN_ONDIR) && HAVE_DECL_FAN_ONDIR))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_ONDIR 0x40000000
#endif
-#if !(defined(FAN_EVENT_ON_CHILD) || (defined(HAVE_DECL_FAN_EVENT_ON_CHILD) && HAVE_DECL_FAN_EVENT_ON_CHILD))
+#if defined(FAN_EVENT_ON_CHILD) || (defined(HAVE_DECL_FAN_EVENT_ON_CHILD) && HAVE_DECL_FAN_EVENT_ON_CHILD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_EVENT_ON_CHILD) == (0x08000000), "FAN_EVENT_ON_CHILD != 0x08000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_EVENT_ON_CHILD 0x08000000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fan_event_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fan_event_flags in mpers mode
+
+# else
static
const struct xlat fan_event_flags[] = {
@@ -51,4 +97,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fan_init_flags.h b/xlat/fan_init_flags.h
index b11e47a..0b8ac66 100644
--- a/xlat/fan_init_flags.h
+++ b/xlat/fan_init_flags.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/fan_init_flags.in; do not edit. */
-#if !(defined(FAN_CLOEXEC) || (defined(HAVE_DECL_FAN_CLOEXEC) && HAVE_DECL_FAN_CLOEXEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FAN_CLOEXEC) || (defined(HAVE_DECL_FAN_CLOEXEC) && HAVE_DECL_FAN_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_CLOEXEC) == (0x00000001), "FAN_CLOEXEC != 0x00000001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_CLOEXEC 0x00000001
#endif
-#if !(defined(FAN_NONBLOCK) || (defined(HAVE_DECL_FAN_NONBLOCK) && HAVE_DECL_FAN_NONBLOCK))
+#if defined(FAN_NONBLOCK) || (defined(HAVE_DECL_FAN_NONBLOCK) && HAVE_DECL_FAN_NONBLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_NONBLOCK) == (0x00000002), "FAN_NONBLOCK != 0x00000002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_NONBLOCK 0x00000002
#endif
-#if !(defined(FAN_UNLIMITED_QUEUE) || (defined(HAVE_DECL_FAN_UNLIMITED_QUEUE) && HAVE_DECL_FAN_UNLIMITED_QUEUE))
+#if defined(FAN_UNLIMITED_QUEUE) || (defined(HAVE_DECL_FAN_UNLIMITED_QUEUE) && HAVE_DECL_FAN_UNLIMITED_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_UNLIMITED_QUEUE) == (0x00000010), "FAN_UNLIMITED_QUEUE != 0x00000010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_UNLIMITED_QUEUE 0x00000010
#endif
-#if !(defined(FAN_UNLIMITED_MARKS) || (defined(HAVE_DECL_FAN_UNLIMITED_MARKS) && HAVE_DECL_FAN_UNLIMITED_MARKS))
+#if defined(FAN_UNLIMITED_MARKS) || (defined(HAVE_DECL_FAN_UNLIMITED_MARKS) && HAVE_DECL_FAN_UNLIMITED_MARKS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_UNLIMITED_MARKS) == (0x00000020), "FAN_UNLIMITED_MARKS != 0x00000020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_UNLIMITED_MARKS 0x00000020
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fan_init_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fan_init_flags in mpers mode
+
+# else
static
const struct xlat fan_init_flags[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fan_mark_flags.h b/xlat/fan_mark_flags.h
index f2f9140..d1d1ec1 100644
--- a/xlat/fan_mark_flags.h
+++ b/xlat/fan_mark_flags.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/fan_mark_flags.in; do not edit. */
-#if !(defined(FAN_MARK_ADD) || (defined(HAVE_DECL_FAN_MARK_ADD) && HAVE_DECL_FAN_MARK_ADD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FAN_MARK_ADD) || (defined(HAVE_DECL_FAN_MARK_ADD) && HAVE_DECL_FAN_MARK_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_ADD) == (0x00000001), "FAN_MARK_ADD != 0x00000001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_ADD 0x00000001
#endif
-#if !(defined(FAN_MARK_REMOVE) || (defined(HAVE_DECL_FAN_MARK_REMOVE) && HAVE_DECL_FAN_MARK_REMOVE))
+#if defined(FAN_MARK_REMOVE) || (defined(HAVE_DECL_FAN_MARK_REMOVE) && HAVE_DECL_FAN_MARK_REMOVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_REMOVE) == (0x00000002), "FAN_MARK_REMOVE != 0x00000002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_REMOVE 0x00000002
#endif
-#if !(defined(FAN_MARK_DONT_FOLLOW) || (defined(HAVE_DECL_FAN_MARK_DONT_FOLLOW) && HAVE_DECL_FAN_MARK_DONT_FOLLOW))
+#if defined(FAN_MARK_DONT_FOLLOW) || (defined(HAVE_DECL_FAN_MARK_DONT_FOLLOW) && HAVE_DECL_FAN_MARK_DONT_FOLLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_DONT_FOLLOW) == (0x00000004), "FAN_MARK_DONT_FOLLOW != 0x00000004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_DONT_FOLLOW 0x00000004
#endif
-#if !(defined(FAN_MARK_ONLYDIR) || (defined(HAVE_DECL_FAN_MARK_ONLYDIR) && HAVE_DECL_FAN_MARK_ONLYDIR))
+#if defined(FAN_MARK_ONLYDIR) || (defined(HAVE_DECL_FAN_MARK_ONLYDIR) && HAVE_DECL_FAN_MARK_ONLYDIR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_ONLYDIR) == (0x00000008), "FAN_MARK_ONLYDIR != 0x00000008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_ONLYDIR 0x00000008
#endif
-#if !(defined(FAN_MARK_MOUNT) || (defined(HAVE_DECL_FAN_MARK_MOUNT) && HAVE_DECL_FAN_MARK_MOUNT))
+#if defined(FAN_MARK_MOUNT) || (defined(HAVE_DECL_FAN_MARK_MOUNT) && HAVE_DECL_FAN_MARK_MOUNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_MOUNT) == (0x00000010), "FAN_MARK_MOUNT != 0x00000010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_MOUNT 0x00000010
#endif
-#if !(defined(FAN_MARK_IGNORED_MASK) || (defined(HAVE_DECL_FAN_MARK_IGNORED_MASK) && HAVE_DECL_FAN_MARK_IGNORED_MASK))
+#if defined(FAN_MARK_IGNORED_MASK) || (defined(HAVE_DECL_FAN_MARK_IGNORED_MASK) && HAVE_DECL_FAN_MARK_IGNORED_MASK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_IGNORED_MASK) == (0x00000020), "FAN_MARK_IGNORED_MASK != 0x00000020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_IGNORED_MASK 0x00000020
#endif
-#if !(defined(FAN_MARK_IGNORED_SURV_MODIFY) || (defined(HAVE_DECL_FAN_MARK_IGNORED_SURV_MODIFY) && HAVE_DECL_FAN_MARK_IGNORED_SURV_MODIFY))
+#if defined(FAN_MARK_IGNORED_SURV_MODIFY) || (defined(HAVE_DECL_FAN_MARK_IGNORED_SURV_MODIFY) && HAVE_DECL_FAN_MARK_IGNORED_SURV_MODIFY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_IGNORED_SURV_MODIFY) == (0x00000040), "FAN_MARK_IGNORED_SURV_MODIFY != 0x00000040");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_IGNORED_SURV_MODIFY 0x00000040
#endif
-#if !(defined(FAN_MARK_FLUSH) || (defined(HAVE_DECL_FAN_MARK_FLUSH) && HAVE_DECL_FAN_MARK_FLUSH))
+#if defined(FAN_MARK_FLUSH) || (defined(HAVE_DECL_FAN_MARK_FLUSH) && HAVE_DECL_FAN_MARK_FLUSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FAN_MARK_FLUSH) == (0x00000080), "FAN_MARK_FLUSH != 0x00000080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FAN_MARK_FLUSH 0x00000080
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fan_mark_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fan_mark_flags in mpers mode
+
+# else
static
const struct xlat fan_mark_flags[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fcntl64cmds.h b/xlat/fcntl64cmds.h
deleted file mode 100644
index 5fef627..0000000
--- a/xlat/fcntl64cmds.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/fcntl64cmds.in; do not edit. */
-#if !(defined(F_GETLK64) || (defined(HAVE_DECL_F_GETLK64) && HAVE_DECL_F_GETLK64))
-# define F_GETLK64 12
-#endif
-#if !(defined(F_SETLK64) || (defined(HAVE_DECL_F_SETLK64) && HAVE_DECL_F_SETLK64))
-# define F_SETLK64 13
-#endif
-#if !(defined(F_SETLKW64) || (defined(HAVE_DECL_F_SETLKW64) && HAVE_DECL_F_SETLKW64))
-# define F_SETLKW64 14
-#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat fcntl64cmds in mpers mode
-
-#else
-
-static
-const struct xlat fcntl64cmds[] = {
-
- XLAT(F_GETLK64),
- XLAT(F_SETLK64),
- XLAT(F_SETLKW64),
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/fcntlcmds.h b/xlat/fcntlcmds.h
index 44434f3..ad354de 100644
--- a/xlat/fcntlcmds.h
+++ b/xlat/fcntlcmds.h
@@ -1,91 +1,397 @@
/* Generated by ./xlat/gen.sh from ./xlat/fcntlcmds.in; do not edit. */
-#if !(defined(F_DUPFD) || (defined(HAVE_DECL_F_DUPFD) && HAVE_DECL_F_DUPFD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(F_DUPFD) || (defined(HAVE_DECL_F_DUPFD) && HAVE_DECL_F_DUPFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_DUPFD) == (0), "F_DUPFD != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_DUPFD 0
#endif
-#if !(defined(F_GETFD) || (defined(HAVE_DECL_F_GETFD) && HAVE_DECL_F_GETFD))
+#if defined(F_GETFD) || (defined(HAVE_DECL_F_GETFD) && HAVE_DECL_F_GETFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETFD) == (1), "F_GETFD != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETFD 1
#endif
-#if !(defined(F_SETFD) || (defined(HAVE_DECL_F_SETFD) && HAVE_DECL_F_SETFD))
+#if defined(F_SETFD) || (defined(HAVE_DECL_F_SETFD) && HAVE_DECL_F_SETFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETFD) == (2), "F_SETFD != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETFD 2
#endif
-#if !(defined(F_GETFL) || (defined(HAVE_DECL_F_GETFL) && HAVE_DECL_F_GETFL))
+#if defined(F_GETFL) || (defined(HAVE_DECL_F_GETFL) && HAVE_DECL_F_GETFL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETFL) == (3), "F_GETFL != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETFL 3
#endif
-#if !(defined(F_SETFL) || (defined(HAVE_DECL_F_SETFL) && HAVE_DECL_F_SETFL))
+#if defined(F_SETFL) || (defined(HAVE_DECL_F_SETFL) && HAVE_DECL_F_SETFL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETFL) == (4), "F_SETFL != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETFL 4
#endif
-#if !(defined(F_GETLK) || (defined(HAVE_DECL_F_GETLK) && HAVE_DECL_F_GETLK))
+#if defined __alpha__ || defined __sparc__
+#if defined(F_GETLK) || (defined(HAVE_DECL_F_GETLK) && HAVE_DECL_F_GETLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETLK) == (7), "F_GETLK != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETLK 7
+#endif
+#elif defined __mips__
+#if defined(F_GETLK) || (defined(HAVE_DECL_F_GETLK) && HAVE_DECL_F_GETLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETLK) == (14), "F_GETLK != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETLK 14
+#endif
+#else
+#if defined(F_GETLK) || (defined(HAVE_DECL_F_GETLK) && HAVE_DECL_F_GETLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETLK) == (5), "F_GETLK != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETLK 5
#endif
-#if !(defined(F_SETLK) || (defined(HAVE_DECL_F_SETLK) && HAVE_DECL_F_SETLK))
+#endif
+#if defined __alpha__ || defined __sparc__
+#if defined(F_SETLK) || (defined(HAVE_DECL_F_SETLK) && HAVE_DECL_F_SETLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLK) == (8), "F_SETLK != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLK 8
+#endif
+#if defined(F_SETLKW) || (defined(HAVE_DECL_F_SETLKW) && HAVE_DECL_F_SETLKW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLKW) == (9), "F_SETLKW != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLKW 9
+#endif
+#else
+#if defined(F_SETLK) || (defined(HAVE_DECL_F_SETLK) && HAVE_DECL_F_SETLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLK) == (6), "F_SETLK != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETLK 6
#endif
-#if !(defined(F_SETLKW) || (defined(HAVE_DECL_F_SETLKW) && HAVE_DECL_F_SETLKW))
+#if defined(F_SETLKW) || (defined(HAVE_DECL_F_SETLKW) && HAVE_DECL_F_SETLKW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLKW) == (7), "F_SETLKW != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETLKW 7
#endif
-#if !(defined(F_SETOWN) || (defined(HAVE_DECL_F_SETOWN) && HAVE_DECL_F_SETOWN))
+#endif
+#if defined __alpha__
+#if defined(F_SETOWN) || (defined(HAVE_DECL_F_SETOWN) && HAVE_DECL_F_SETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETOWN) == (5), "F_SETOWN != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETOWN 5
+#endif
+#if defined(F_GETOWN) || (defined(HAVE_DECL_F_GETOWN) && HAVE_DECL_F_GETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETOWN) == (6), "F_GETOWN != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETOWN 6
+#endif
+#elif defined __hppa__
+#if defined(F_GETOWN) || (defined(HAVE_DECL_F_GETOWN) && HAVE_DECL_F_GETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETOWN) == (11), "F_GETOWN != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETOWN 11
+#endif
+#if defined(F_SETOWN) || (defined(HAVE_DECL_F_SETOWN) && HAVE_DECL_F_SETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETOWN) == (12), "F_SETOWN != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETOWN 12
+#endif
+#elif defined __mips__
+#if defined(F_GETOWN) || (defined(HAVE_DECL_F_GETOWN) && HAVE_DECL_F_GETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETOWN) == (23), "F_GETOWN != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETOWN 23
+#endif
+#if defined(F_SETOWN) || (defined(HAVE_DECL_F_SETOWN) && HAVE_DECL_F_SETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETOWN) == (24), "F_SETOWN != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETOWN 24
+#endif
+#elif defined __sparc__
+#if defined(F_GETOWN) || (defined(HAVE_DECL_F_GETOWN) && HAVE_DECL_F_GETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETOWN) == (5), "F_GETOWN != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETOWN 5
+#endif
+#if defined(F_SETOWN) || (defined(HAVE_DECL_F_SETOWN) && HAVE_DECL_F_SETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETOWN) == (6), "F_SETOWN != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETOWN 6
+#endif
+#else
+#if defined(F_SETOWN) || (defined(HAVE_DECL_F_SETOWN) && HAVE_DECL_F_SETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETOWN) == (8), "F_SETOWN != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETOWN 8
#endif
-#if !(defined(F_GETOWN) || (defined(HAVE_DECL_F_GETOWN) && HAVE_DECL_F_GETOWN))
+#if defined(F_GETOWN) || (defined(HAVE_DECL_F_GETOWN) && HAVE_DECL_F_GETOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETOWN) == (9), "F_GETOWN != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETOWN 9
#endif
-#if !(defined(F_SETSIG) || (defined(HAVE_DECL_F_SETSIG) && HAVE_DECL_F_SETSIG))
+#endif
+#ifdef __hppa__
+#if defined(F_SETSIG) || (defined(HAVE_DECL_F_SETSIG) && HAVE_DECL_F_SETSIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETSIG) == (13), "F_SETSIG != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETSIG 13
+#endif
+#if defined(F_GETSIG) || (defined(HAVE_DECL_F_GETSIG) && HAVE_DECL_F_GETSIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETSIG) == (14), "F_GETSIG != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETSIG 14
+#endif
+#else
+#if defined(F_SETSIG) || (defined(HAVE_DECL_F_SETSIG) && HAVE_DECL_F_SETSIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETSIG) == (10), "F_SETSIG != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETSIG 10
#endif
-#if !(defined(F_GETSIG) || (defined(HAVE_DECL_F_GETSIG) && HAVE_DECL_F_GETSIG))
+#if defined(F_GETSIG) || (defined(HAVE_DECL_F_GETSIG) && HAVE_DECL_F_GETSIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETSIG) == (11), "F_GETSIG != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETSIG 11
#endif
-#if !(defined(F_SETOWN_EX) || (defined(HAVE_DECL_F_SETOWN_EX) && HAVE_DECL_F_SETOWN_EX))
+#endif
+#if defined __hppa__
+#if defined(F_GETLK64) || (defined(HAVE_DECL_F_GETLK64) && HAVE_DECL_F_GETLK64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETLK64) == (8), "F_GETLK64 != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETLK64 8
+#endif
+#if defined(F_SETLK64) || (defined(HAVE_DECL_F_SETLK64) && HAVE_DECL_F_SETLK64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLK64) == (9), "F_SETLK64 != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLK64 9
+#endif
+#if defined(F_SETLKW64) || (defined(HAVE_DECL_F_SETLKW64) && HAVE_DECL_F_SETLKW64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLKW64) == (10), "F_SETLKW64 != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLKW64 10
+#endif
+#elif defined __mips__ && !defined __mips64
+#if defined(F_GETLK64) || (defined(HAVE_DECL_F_GETLK64) && HAVE_DECL_F_GETLK64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETLK64) == (33), "F_GETLK64 != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETLK64 33
+#endif
+#if defined(F_SETLK64) || (defined(HAVE_DECL_F_SETLK64) && HAVE_DECL_F_SETLK64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLK64) == (34), "F_SETLK64 != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLK64 34
+#endif
+#if defined(F_SETLKW64) || (defined(HAVE_DECL_F_SETLKW64) && HAVE_DECL_F_SETLKW64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLKW64) == (35), "F_SETLKW64 != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLKW64 35
+#endif
+#else
+#if defined(F_GETLK64) || (defined(HAVE_DECL_F_GETLK64) && HAVE_DECL_F_GETLK64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETLK64) == (12), "F_GETLK64 != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_GETLK64 12
+#endif
+#if defined(F_SETLK64) || (defined(HAVE_DECL_F_SETLK64) && HAVE_DECL_F_SETLK64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLK64) == (13), "F_SETLK64 != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLK64 13
+#endif
+#if defined(F_SETLKW64) || (defined(HAVE_DECL_F_SETLKW64) && HAVE_DECL_F_SETLKW64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLKW64) == (14), "F_SETLKW64 != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define F_SETLKW64 14
+#endif
+#endif
+#ifndef STRACE_WORKAROUND_FOR_F_OWNER_EX
+# define STRACE_WORKAROUND_FOR_F_OWNER_EX
+# if defined F_SETOWN_EX && F_SETOWN_EX != 15
+# warning invalid value of F_SETOWN_EX ignored
+# endif
+# undef F_SETOWN_EX
+# if defined F_GETOWN_EX && F_GETOWN_EX != 16
+# warning invalid value of F_GETOWN_EX ignored
+# endif
+# undef F_GETOWN_EX
+#endif
+#if defined(F_SETOWN_EX) || (defined(HAVE_DECL_F_SETOWN_EX) && HAVE_DECL_F_SETOWN_EX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETOWN_EX) == (15), "F_SETOWN_EX != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETOWN_EX 15
#endif
-#if !(defined(F_GETOWN_EX) || (defined(HAVE_DECL_F_GETOWN_EX) && HAVE_DECL_F_GETOWN_EX))
+#if defined(F_GETOWN_EX) || (defined(HAVE_DECL_F_GETOWN_EX) && HAVE_DECL_F_GETOWN_EX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETOWN_EX) == (16), "F_GETOWN_EX != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETOWN_EX 16
#endif
-#if !(defined(F_GETOWNER_UIDS) || (defined(HAVE_DECL_F_GETOWNER_UIDS) && HAVE_DECL_F_GETOWNER_UIDS))
+#if defined(F_GETOWNER_UIDS) || (defined(HAVE_DECL_F_GETOWNER_UIDS) && HAVE_DECL_F_GETOWNER_UIDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETOWNER_UIDS) == (17), "F_GETOWNER_UIDS != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETOWNER_UIDS 17
#endif
-#if !(defined(F_OFD_GETLK) || (defined(HAVE_DECL_F_OFD_GETLK) && HAVE_DECL_F_OFD_GETLK))
+#if defined(F_OFD_GETLK) || (defined(HAVE_DECL_F_OFD_GETLK) && HAVE_DECL_F_OFD_GETLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_OFD_GETLK) == (36), "F_OFD_GETLK != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_OFD_GETLK 36
#endif
-#if !(defined(F_OFD_SETLK) || (defined(HAVE_DECL_F_OFD_SETLK) && HAVE_DECL_F_OFD_SETLK))
+#if defined(F_OFD_SETLK) || (defined(HAVE_DECL_F_OFD_SETLK) && HAVE_DECL_F_OFD_SETLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_OFD_SETLK) == (37), "F_OFD_SETLK != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_OFD_SETLK 37
#endif
-#if !(defined(F_OFD_SETLKW) || (defined(HAVE_DECL_F_OFD_SETLKW) && HAVE_DECL_F_OFD_SETLKW))
+#if defined(F_OFD_SETLKW) || (defined(HAVE_DECL_F_OFD_SETLKW) && HAVE_DECL_F_OFD_SETLKW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_OFD_SETLKW) == (38), "F_OFD_SETLKW != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_OFD_SETLKW 38
#endif
-#if !(defined(F_SETLEASE) || (defined(HAVE_DECL_F_SETLEASE) && HAVE_DECL_F_SETLEASE))
+#if defined(F_SETLEASE) || (defined(HAVE_DECL_F_SETLEASE) && HAVE_DECL_F_SETLEASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETLEASE) == ((1024 + 0)), "F_SETLEASE != (1024 + 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETLEASE (1024 + 0)
#endif
-#if !(defined(F_GETLEASE) || (defined(HAVE_DECL_F_GETLEASE) && HAVE_DECL_F_GETLEASE))
+#if defined(F_GETLEASE) || (defined(HAVE_DECL_F_GETLEASE) && HAVE_DECL_F_GETLEASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETLEASE) == ((1024 + 1)), "F_GETLEASE != (1024 + 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETLEASE (1024 + 1)
#endif
-#if !(defined(F_NOTIFY) || (defined(HAVE_DECL_F_NOTIFY) && HAVE_DECL_F_NOTIFY))
+#if defined(F_NOTIFY) || (defined(HAVE_DECL_F_NOTIFY) && HAVE_DECL_F_NOTIFY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_NOTIFY) == ((1024 + 2)), "F_NOTIFY != (1024 + 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_NOTIFY (1024 + 2)
#endif
-#if !(defined(F_CANCELLK) || (defined(HAVE_DECL_F_CANCELLK) && HAVE_DECL_F_CANCELLK))
+#if defined(F_CANCELLK) || (defined(HAVE_DECL_F_CANCELLK) && HAVE_DECL_F_CANCELLK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_CANCELLK) == ((1024 + 5)), "F_CANCELLK != (1024 + 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_CANCELLK (1024 + 5)
#endif
-#if !(defined(F_DUPFD_CLOEXEC) || (defined(HAVE_DECL_F_DUPFD_CLOEXEC) && HAVE_DECL_F_DUPFD_CLOEXEC))
+#if defined(F_DUPFD_CLOEXEC) || (defined(HAVE_DECL_F_DUPFD_CLOEXEC) && HAVE_DECL_F_DUPFD_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_DUPFD_CLOEXEC) == ((1024 + 6)), "F_DUPFD_CLOEXEC != (1024 + 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_DUPFD_CLOEXEC (1024 + 6)
#endif
-#if !(defined(F_SETPIPE_SZ) || (defined(HAVE_DECL_F_SETPIPE_SZ) && HAVE_DECL_F_SETPIPE_SZ))
+#if defined(F_SETPIPE_SZ) || (defined(HAVE_DECL_F_SETPIPE_SZ) && HAVE_DECL_F_SETPIPE_SZ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_SETPIPE_SZ) == ((1024 + 7)), "F_SETPIPE_SZ != (1024 + 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_SETPIPE_SZ (1024 + 7)
#endif
-#if !(defined(F_GETPIPE_SZ) || (defined(HAVE_DECL_F_GETPIPE_SZ) && HAVE_DECL_F_GETPIPE_SZ))
+#if defined(F_GETPIPE_SZ) || (defined(HAVE_DECL_F_GETPIPE_SZ) && HAVE_DECL_F_GETPIPE_SZ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GETPIPE_SZ) == ((1024 + 8)), "F_GETPIPE_SZ != (1024 + 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GETPIPE_SZ (1024 + 8)
#endif
-#if !(defined(F_ADD_SEALS) || (defined(HAVE_DECL_F_ADD_SEALS) && HAVE_DECL_F_ADD_SEALS))
+#if defined(F_ADD_SEALS) || (defined(HAVE_DECL_F_ADD_SEALS) && HAVE_DECL_F_ADD_SEALS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_ADD_SEALS) == ((1024 + 9)), "F_ADD_SEALS != (1024 + 9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_ADD_SEALS (1024 + 9)
#endif
-#if !(defined(F_GET_SEALS) || (defined(HAVE_DECL_F_GET_SEALS) && HAVE_DECL_F_GET_SEALS))
+#if defined(F_GET_SEALS) || (defined(HAVE_DECL_F_GET_SEALS) && HAVE_DECL_F_GET_SEALS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((F_GET_SEALS) == ((1024 + 10)), "F_GET_SEALS != (1024 + 10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define F_GET_SEALS (1024 + 10)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fcntlcmds in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fcntlcmds in mpers mode
+
+# else
static
const struct xlat fcntlcmds[] = {
@@ -95,15 +401,83 @@
XLAT(F_SETFD),
XLAT(F_GETFL),
XLAT(F_SETFL),
+
+#if defined __alpha__ || defined __sparc__
XLAT(F_GETLK),
+#elif defined __mips__
+ XLAT(F_GETLK),
+#else
+ XLAT(F_GETLK),
+#endif
+
+#if defined __alpha__ || defined __sparc__
XLAT(F_SETLK),
XLAT(F_SETLKW),
+#else
+ XLAT(F_SETLK),
+ XLAT(F_SETLKW),
+#endif
+
+#if defined __alpha__
XLAT(F_SETOWN),
XLAT(F_GETOWN),
+#elif defined __hppa__
+ XLAT(F_GETOWN),
+ XLAT(F_SETOWN),
+#elif defined __mips__
+ XLAT(F_GETOWN),
+ XLAT(F_SETOWN),
+#elif defined __sparc__
+ XLAT(F_GETOWN),
+ XLAT(F_SETOWN),
+#else
+ XLAT(F_SETOWN),
+ XLAT(F_GETOWN),
+#endif
+
+#ifdef __hppa__
XLAT(F_SETSIG),
XLAT(F_GETSIG),
+#else
+ XLAT(F_SETSIG),
+ XLAT(F_GETSIG),
+#endif
+
+#if defined __hppa__
+ XLAT(F_GETLK64),
+ XLAT(F_SETLK64),
+ XLAT(F_SETLKW64),
+#elif defined __mips__ && !defined __mips64
+ XLAT(F_GETLK64),
+ XLAT(F_SETLK64),
+ XLAT(F_SETLKW64),
+#else
+ XLAT(F_GETLK64),
+ XLAT(F_SETLK64),
+ XLAT(F_SETLKW64),
+#endif
+
+#ifndef STRACE_WORKAROUND_FOR_F_OWNER_EX
+# define STRACE_WORKAROUND_FOR_F_OWNER_EX
+/*
+* Linux kernel commit v2.6.32-rc7~23 has changed values of F_SETOWN_EX
+* and F_GETOWN_EX constants introduced by commit v2.6.32-rc1~96 to fix
+* the conflict with F_GETLK64 and F_SETLK64 constants.
+* Looks like the best way to handle this situation is to pretend that
+* old values of F_SETOWN_EX and F_GETOWN_EX didn't exist.
+*/
+# if defined F_SETOWN_EX && F_SETOWN_EX != 15
+# warning invalid value of F_SETOWN_EX ignored
+# endif
+# undef F_SETOWN_EX
+# if defined F_GETOWN_EX && F_GETOWN_EX != 16
+# warning invalid value of F_GETOWN_EX ignored
+# endif
+# undef F_GETOWN_EX
+#endif
XLAT(F_SETOWN_EX),
XLAT(F_GETOWN_EX),
+
XLAT(F_GETOWNER_UIDS),
XLAT(F_OFD_GETLK),
XLAT(F_OFD_SETLK),
@@ -122,4 +496,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fcntlcmds.in b/xlat/fcntlcmds.in
index c050836..5602e6f 100644
--- a/xlat/fcntlcmds.in
+++ b/xlat/fcntlcmds.in
@@ -4,15 +4,83 @@
F_SETFD 2
F_GETFL 3
F_SETFL 4
+
+#if defined __alpha__ || defined __sparc__
+F_GETLK 7
+#elif defined __mips__
+F_GETLK 14
+#else
F_GETLK 5
+#endif
+
+#if defined __alpha__ || defined __sparc__
+F_SETLK 8
+F_SETLKW 9
+#else
F_SETLK 6
F_SETLKW 7
+#endif
+
+#if defined __alpha__
+F_SETOWN 5
+F_GETOWN 6
+#elif defined __hppa__
+F_GETOWN 11
+F_SETOWN 12
+#elif defined __mips__
+F_GETOWN 23
+F_SETOWN 24
+#elif defined __sparc__
+F_GETOWN 5
+F_SETOWN 6
+#else
F_SETOWN 8
F_GETOWN 9
+#endif
+
+#ifdef __hppa__
+F_SETSIG 13
+F_GETSIG 14
+#else
F_SETSIG 10
F_GETSIG 11
+#endif
+
+#if defined __hppa__
+F_GETLK64 8
+F_SETLK64 9
+F_SETLKW64 10
+#elif defined __mips__ && !defined __mips64
+F_GETLK64 33
+F_SETLK64 34
+F_SETLKW64 35
+#else
+F_GETLK64 12
+F_SETLK64 13
+F_SETLKW64 14
+#endif
+
+#ifndef STRACE_WORKAROUND_FOR_F_OWNER_EX
+# define STRACE_WORKAROUND_FOR_F_OWNER_EX
+/*
+ * Linux kernel commit v2.6.32-rc7~23 has changed values of F_SETOWN_EX
+ * and F_GETOWN_EX constants introduced by commit v2.6.32-rc1~96 to fix
+ * the conflict with F_GETLK64 and F_SETLK64 constants.
+ * Looks like the best way to handle this situation is to pretend that
+ * old values of F_SETOWN_EX and F_GETOWN_EX didn't exist.
+ */
+# if defined F_SETOWN_EX && F_SETOWN_EX != 15
+# warning invalid value of F_SETOWN_EX ignored
+# endif
+# undef F_SETOWN_EX
+# if defined F_GETOWN_EX && F_GETOWN_EX != 16
+# warning invalid value of F_GETOWN_EX ignored
+# endif
+# undef F_GETOWN_EX
+#endif
F_SETOWN_EX 15
F_GETOWN_EX 16
+
F_GETOWNER_UIDS 17
F_OFD_GETLK 36
F_OFD_SETLK 37
diff --git a/xlat/fdflags.h b/xlat/fdflags.h
index 8a5d03c..5d627e3 100644
--- a/xlat/fdflags.h
+++ b/xlat/fdflags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/fdflags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat fdflags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat fdflags in mpers mode
+
+# else
static
const struct xlat fdflags[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fib_rule_actions.h b/xlat/fib_rule_actions.h
index 741b36d..5681ddb 100644
--- a/xlat/fib_rule_actions.h
+++ b/xlat/fib_rule_actions.h
@@ -1,37 +1,79 @@
/* Generated by ./xlat/gen.sh from ./xlat/fib_rule_actions.in; do not edit. */
-#if !(defined(FR_ACT_UNSPEC) || (defined(HAVE_DECL_FR_ACT_UNSPEC) && HAVE_DECL_FR_ACT_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FR_ACT_UNSPEC) || (defined(HAVE_DECL_FR_ACT_UNSPEC) && HAVE_DECL_FR_ACT_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_UNSPEC) == (0), "FR_ACT_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_UNSPEC 0
#endif
-#if !(defined(FR_ACT_TO_TBL) || (defined(HAVE_DECL_FR_ACT_TO_TBL) && HAVE_DECL_FR_ACT_TO_TBL))
+#if defined(FR_ACT_TO_TBL) || (defined(HAVE_DECL_FR_ACT_TO_TBL) && HAVE_DECL_FR_ACT_TO_TBL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_TO_TBL) == (1), "FR_ACT_TO_TBL != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_TO_TBL 1
#endif
-#if !(defined(FR_ACT_GOTO) || (defined(HAVE_DECL_FR_ACT_GOTO) && HAVE_DECL_FR_ACT_GOTO))
+#if defined(FR_ACT_GOTO) || (defined(HAVE_DECL_FR_ACT_GOTO) && HAVE_DECL_FR_ACT_GOTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_GOTO) == (2), "FR_ACT_GOTO != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_GOTO 2
#endif
-#if !(defined(FR_ACT_NOP) || (defined(HAVE_DECL_FR_ACT_NOP) && HAVE_DECL_FR_ACT_NOP))
+#if defined(FR_ACT_NOP) || (defined(HAVE_DECL_FR_ACT_NOP) && HAVE_DECL_FR_ACT_NOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_NOP) == (3), "FR_ACT_NOP != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_NOP 3
#endif
-#if !(defined(FR_ACT_RES3) || (defined(HAVE_DECL_FR_ACT_RES3) && HAVE_DECL_FR_ACT_RES3))
+#if defined(FR_ACT_RES3) || (defined(HAVE_DECL_FR_ACT_RES3) && HAVE_DECL_FR_ACT_RES3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_RES3) == (4), "FR_ACT_RES3 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_RES3 4
#endif
-#if !(defined(FR_ACT_RES4) || (defined(HAVE_DECL_FR_ACT_RES4) && HAVE_DECL_FR_ACT_RES4))
+#if defined(FR_ACT_RES4) || (defined(HAVE_DECL_FR_ACT_RES4) && HAVE_DECL_FR_ACT_RES4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_RES4) == (5), "FR_ACT_RES4 != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_RES4 5
#endif
-#if !(defined(FR_ACT_BLACKHOLE) || (defined(HAVE_DECL_FR_ACT_BLACKHOLE) && HAVE_DECL_FR_ACT_BLACKHOLE))
+#if defined(FR_ACT_BLACKHOLE) || (defined(HAVE_DECL_FR_ACT_BLACKHOLE) && HAVE_DECL_FR_ACT_BLACKHOLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_BLACKHOLE) == (6), "FR_ACT_BLACKHOLE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_BLACKHOLE 6
#endif
-#if !(defined(FR_ACT_UNREACHABLE) || (defined(HAVE_DECL_FR_ACT_UNREACHABLE) && HAVE_DECL_FR_ACT_UNREACHABLE))
+#if defined(FR_ACT_UNREACHABLE) || (defined(HAVE_DECL_FR_ACT_UNREACHABLE) && HAVE_DECL_FR_ACT_UNREACHABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_UNREACHABLE) == (7), "FR_ACT_UNREACHABLE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_UNREACHABLE 7
#endif
-#if !(defined(FR_ACT_PROHIBIT) || (defined(HAVE_DECL_FR_ACT_PROHIBIT) && HAVE_DECL_FR_ACT_PROHIBIT))
+#if defined(FR_ACT_PROHIBIT) || (defined(HAVE_DECL_FR_ACT_PROHIBIT) && HAVE_DECL_FR_ACT_PROHIBIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FR_ACT_PROHIBIT) == (8), "FR_ACT_PROHIBIT != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FR_ACT_PROHIBIT 8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fib_rule_actions in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fib_rule_actions in mpers mode
+
+# else
static
const struct xlat fib_rule_actions[] = {
@@ -47,4 +89,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fib_rule_flags.h b/xlat/fib_rule_flags.h
index 4f40da1..b395b5a 100644
--- a/xlat/fib_rule_flags.h
+++ b/xlat/fib_rule_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/fib_rule_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat fib_rule_flags in mpers mode
-#else
+#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[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fiemap_extent_flags.h b/xlat/fiemap_extent_flags.h
index 629328c..41e85be 100644
--- a/xlat/fiemap_extent_flags.h
+++ b/xlat/fiemap_extent_flags.h
@@ -1,43 +1,93 @@
/* Generated by ./xlat/gen.sh from ./xlat/fiemap_extent_flags.in; do not edit. */
-#if !(defined(FIEMAP_EXTENT_LAST) || (defined(HAVE_DECL_FIEMAP_EXTENT_LAST) && HAVE_DECL_FIEMAP_EXTENT_LAST))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FIEMAP_EXTENT_LAST) || (defined(HAVE_DECL_FIEMAP_EXTENT_LAST) && HAVE_DECL_FIEMAP_EXTENT_LAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_LAST) == (0x00000001), "FIEMAP_EXTENT_LAST != 0x00000001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_LAST 0x00000001
#endif
-#if !(defined(FIEMAP_EXTENT_UNKNOWN) || (defined(HAVE_DECL_FIEMAP_EXTENT_UNKNOWN) && HAVE_DECL_FIEMAP_EXTENT_UNKNOWN))
+#if defined(FIEMAP_EXTENT_UNKNOWN) || (defined(HAVE_DECL_FIEMAP_EXTENT_UNKNOWN) && HAVE_DECL_FIEMAP_EXTENT_UNKNOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_UNKNOWN) == (0x00000002), "FIEMAP_EXTENT_UNKNOWN != 0x00000002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_UNKNOWN 0x00000002
#endif
-#if !(defined(FIEMAP_EXTENT_DELALLOC) || (defined(HAVE_DECL_FIEMAP_EXTENT_DELALLOC) && HAVE_DECL_FIEMAP_EXTENT_DELALLOC))
+#if defined(FIEMAP_EXTENT_DELALLOC) || (defined(HAVE_DECL_FIEMAP_EXTENT_DELALLOC) && HAVE_DECL_FIEMAP_EXTENT_DELALLOC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_DELALLOC) == (0x00000004), "FIEMAP_EXTENT_DELALLOC != 0x00000004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_DELALLOC 0x00000004
#endif
-#if !(defined(FIEMAP_EXTENT_ENCODED) || (defined(HAVE_DECL_FIEMAP_EXTENT_ENCODED) && HAVE_DECL_FIEMAP_EXTENT_ENCODED))
+#if defined(FIEMAP_EXTENT_ENCODED) || (defined(HAVE_DECL_FIEMAP_EXTENT_ENCODED) && HAVE_DECL_FIEMAP_EXTENT_ENCODED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_ENCODED) == (0x00000008), "FIEMAP_EXTENT_ENCODED != 0x00000008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_ENCODED 0x00000008
#endif
-#if !(defined(FIEMAP_EXTENT_DATA_ENCRYPTED) || (defined(HAVE_DECL_FIEMAP_EXTENT_DATA_ENCRYPTED) && HAVE_DECL_FIEMAP_EXTENT_DATA_ENCRYPTED))
+#if defined(FIEMAP_EXTENT_DATA_ENCRYPTED) || (defined(HAVE_DECL_FIEMAP_EXTENT_DATA_ENCRYPTED) && HAVE_DECL_FIEMAP_EXTENT_DATA_ENCRYPTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_DATA_ENCRYPTED) == (0x00000080), "FIEMAP_EXTENT_DATA_ENCRYPTED != 0x00000080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080
#endif
-#if !(defined(FIEMAP_EXTENT_NOT_ALIGNED) || (defined(HAVE_DECL_FIEMAP_EXTENT_NOT_ALIGNED) && HAVE_DECL_FIEMAP_EXTENT_NOT_ALIGNED))
+#if defined(FIEMAP_EXTENT_NOT_ALIGNED) || (defined(HAVE_DECL_FIEMAP_EXTENT_NOT_ALIGNED) && HAVE_DECL_FIEMAP_EXTENT_NOT_ALIGNED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_NOT_ALIGNED) == (0x00000100), "FIEMAP_EXTENT_NOT_ALIGNED != 0x00000100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100
#endif
-#if !(defined(FIEMAP_EXTENT_DATA_INLINE) || (defined(HAVE_DECL_FIEMAP_EXTENT_DATA_INLINE) && HAVE_DECL_FIEMAP_EXTENT_DATA_INLINE))
+#if defined(FIEMAP_EXTENT_DATA_INLINE) || (defined(HAVE_DECL_FIEMAP_EXTENT_DATA_INLINE) && HAVE_DECL_FIEMAP_EXTENT_DATA_INLINE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_DATA_INLINE) == (0x00000200), "FIEMAP_EXTENT_DATA_INLINE != 0x00000200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_DATA_INLINE 0x00000200
#endif
-#if !(defined(FIEMAP_EXTENT_DATA_TAIL) || (defined(HAVE_DECL_FIEMAP_EXTENT_DATA_TAIL) && HAVE_DECL_FIEMAP_EXTENT_DATA_TAIL))
+#if defined(FIEMAP_EXTENT_DATA_TAIL) || (defined(HAVE_DECL_FIEMAP_EXTENT_DATA_TAIL) && HAVE_DECL_FIEMAP_EXTENT_DATA_TAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_DATA_TAIL) == (0x00000400), "FIEMAP_EXTENT_DATA_TAIL != 0x00000400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_DATA_TAIL 0x00000400
#endif
-#if !(defined(FIEMAP_EXTENT_UNWRITTEN) || (defined(HAVE_DECL_FIEMAP_EXTENT_UNWRITTEN) && HAVE_DECL_FIEMAP_EXTENT_UNWRITTEN))
+#if defined(FIEMAP_EXTENT_UNWRITTEN) || (defined(HAVE_DECL_FIEMAP_EXTENT_UNWRITTEN) && HAVE_DECL_FIEMAP_EXTENT_UNWRITTEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_UNWRITTEN) == (0x00000800), "FIEMAP_EXTENT_UNWRITTEN != 0x00000800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_UNWRITTEN 0x00000800
#endif
-#if !(defined(FIEMAP_EXTENT_MERGED) || (defined(HAVE_DECL_FIEMAP_EXTENT_MERGED) && HAVE_DECL_FIEMAP_EXTENT_MERGED))
+#if defined(FIEMAP_EXTENT_MERGED) || (defined(HAVE_DECL_FIEMAP_EXTENT_MERGED) && HAVE_DECL_FIEMAP_EXTENT_MERGED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_MERGED) == (0x00001000), "FIEMAP_EXTENT_MERGED != 0x00001000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_MERGED 0x00001000
#endif
-#if !(defined(FIEMAP_EXTENT_SHARED) || (defined(HAVE_DECL_FIEMAP_EXTENT_SHARED) && HAVE_DECL_FIEMAP_EXTENT_SHARED))
+#if defined(FIEMAP_EXTENT_SHARED) || (defined(HAVE_DECL_FIEMAP_EXTENT_SHARED) && HAVE_DECL_FIEMAP_EXTENT_SHARED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_EXTENT_SHARED) == (0x00002000), "FIEMAP_EXTENT_SHARED != 0x00002000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_EXTENT_SHARED 0x00002000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fiemap_extent_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fiemap_extent_flags in mpers mode
+
+# else
static
const struct xlat fiemap_extent_flags[] = {
@@ -55,4 +105,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fiemap_flags.h b/xlat/fiemap_flags.h
index 4f463ef..73395e8 100644
--- a/xlat/fiemap_flags.h
+++ b/xlat/fiemap_flags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/fiemap_flags.in; do not edit. */
-#if !(defined(FIEMAP_FLAG_SYNC) || (defined(HAVE_DECL_FIEMAP_FLAG_SYNC) && HAVE_DECL_FIEMAP_FLAG_SYNC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FIEMAP_FLAG_SYNC) || (defined(HAVE_DECL_FIEMAP_FLAG_SYNC) && HAVE_DECL_FIEMAP_FLAG_SYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_FLAG_SYNC) == (1), "FIEMAP_FLAG_SYNC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_FLAG_SYNC 1
#endif
-#if !(defined(FIEMAP_FLAG_XATTR) || (defined(HAVE_DECL_FIEMAP_FLAG_XATTR) && HAVE_DECL_FIEMAP_FLAG_XATTR))
+#if defined(FIEMAP_FLAG_XATTR) || (defined(HAVE_DECL_FIEMAP_FLAG_XATTR) && HAVE_DECL_FIEMAP_FLAG_XATTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_FLAG_XATTR) == (2), "FIEMAP_FLAG_XATTR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_FLAG_XATTR 2
#endif
-#if !(defined(FIEMAP_FLAG_CACHE) || (defined(HAVE_DECL_FIEMAP_FLAG_CACHE) && HAVE_DECL_FIEMAP_FLAG_CACHE))
+#if defined(FIEMAP_FLAG_CACHE) || (defined(HAVE_DECL_FIEMAP_FLAG_CACHE) && HAVE_DECL_FIEMAP_FLAG_CACHE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FIEMAP_FLAG_CACHE) == (4), "FIEMAP_FLAG_CACHE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FIEMAP_FLAG_CACHE 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat fiemap_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat fiemap_flags in mpers mode
+
+# else
static
const struct xlat fiemap_flags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/flockcmds.h b/xlat/flockcmds.h
index 2ccd714..c7cf939 100644
--- a/xlat/flockcmds.h
+++ b/xlat/flockcmds.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/flockcmds.in; do not edit. */
-#if !(defined(LOCK_SH) || (defined(HAVE_DECL_LOCK_SH) && HAVE_DECL_LOCK_SH))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LOCK_SH) || (defined(HAVE_DECL_LOCK_SH) && HAVE_DECL_LOCK_SH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_SH) == (1), "LOCK_SH != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_SH 1
#endif
-#if !(defined(LOCK_EX) || (defined(HAVE_DECL_LOCK_EX) && HAVE_DECL_LOCK_EX))
+#if defined(LOCK_EX) || (defined(HAVE_DECL_LOCK_EX) && HAVE_DECL_LOCK_EX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_EX) == (2), "LOCK_EX != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_EX 2
#endif
-#if !(defined(LOCK_NB) || (defined(HAVE_DECL_LOCK_NB) && HAVE_DECL_LOCK_NB))
+#if defined(LOCK_NB) || (defined(HAVE_DECL_LOCK_NB) && HAVE_DECL_LOCK_NB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_NB) == (4), "LOCK_NB != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_NB 4
#endif
-#if !(defined(LOCK_UN) || (defined(HAVE_DECL_LOCK_UN) && HAVE_DECL_LOCK_UN))
+#if defined(LOCK_UN) || (defined(HAVE_DECL_LOCK_UN) && HAVE_DECL_LOCK_UN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_UN) == (8), "LOCK_UN != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_UN 8
#endif
-#if !(defined(LOCK_MAND) || (defined(HAVE_DECL_LOCK_MAND) && HAVE_DECL_LOCK_MAND))
+#if defined(LOCK_MAND) || (defined(HAVE_DECL_LOCK_MAND) && HAVE_DECL_LOCK_MAND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_MAND) == (32), "LOCK_MAND != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_MAND 32
#endif
-#if !(defined(LOCK_RW) || (defined(HAVE_DECL_LOCK_RW) && HAVE_DECL_LOCK_RW))
+#if defined(LOCK_RW) || (defined(HAVE_DECL_LOCK_RW) && HAVE_DECL_LOCK_RW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_RW) == (192), "LOCK_RW != 192");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_RW 192
#endif
-#if !(defined(LOCK_READ) || (defined(HAVE_DECL_LOCK_READ) && HAVE_DECL_LOCK_READ))
+#if defined(LOCK_READ) || (defined(HAVE_DECL_LOCK_READ) && HAVE_DECL_LOCK_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_READ) == (64), "LOCK_READ != 64");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_READ 64
#endif
-#if !(defined(LOCK_WRITE) || (defined(HAVE_DECL_LOCK_WRITE) && HAVE_DECL_LOCK_WRITE))
+#if defined(LOCK_WRITE) || (defined(HAVE_DECL_LOCK_WRITE) && HAVE_DECL_LOCK_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOCK_WRITE) == (128), "LOCK_WRITE != 128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOCK_WRITE 128
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat flockcmds in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat flockcmds in mpers mode
+
+# else
static
const struct xlat flockcmds[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/fsmagic.h b/xlat/fsmagic.h
index 8ca93da..16ad277 100644
--- a/xlat/fsmagic.h
+++ b/xlat/fsmagic.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/fsmagic.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat fsmagic in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat fsmagic in mpers mode
+
+# else
static
const struct xlat fsmagic[] = {
@@ -114,4 +120,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/futexops.h b/xlat/futexops.h
index 4efc761..562f6af 100644
--- a/xlat/futexops.h
+++ b/xlat/futexops.h
@@ -1,85 +1,191 @@
/* Generated by ./xlat/gen.sh from ./xlat/futexops.in; do not edit. */
-#if !(defined(FUTEX_WAIT) || (defined(HAVE_DECL_FUTEX_WAIT) && HAVE_DECL_FUTEX_WAIT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FUTEX_WAIT) || (defined(HAVE_DECL_FUTEX_WAIT) && HAVE_DECL_FUTEX_WAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAIT) == (0), "FUTEX_WAIT != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAIT 0
#endif
-#if !(defined(FUTEX_WAKE) || (defined(HAVE_DECL_FUTEX_WAKE) && HAVE_DECL_FUTEX_WAKE))
+#if defined(FUTEX_WAKE) || (defined(HAVE_DECL_FUTEX_WAKE) && HAVE_DECL_FUTEX_WAKE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAKE) == (1), "FUTEX_WAKE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAKE 1
#endif
-#if !(defined(FUTEX_FD) || (defined(HAVE_DECL_FUTEX_FD) && HAVE_DECL_FUTEX_FD))
+#if defined(FUTEX_FD) || (defined(HAVE_DECL_FUTEX_FD) && HAVE_DECL_FUTEX_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_FD) == (2), "FUTEX_FD != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_FD 2
#endif
-#if !(defined(FUTEX_REQUEUE) || (defined(HAVE_DECL_FUTEX_REQUEUE) && HAVE_DECL_FUTEX_REQUEUE))
+#if defined(FUTEX_REQUEUE) || (defined(HAVE_DECL_FUTEX_REQUEUE) && HAVE_DECL_FUTEX_REQUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_REQUEUE) == (3), "FUTEX_REQUEUE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_REQUEUE 3
#endif
-#if !(defined(FUTEX_CMP_REQUEUE) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE) && HAVE_DECL_FUTEX_CMP_REQUEUE))
+#if defined(FUTEX_CMP_REQUEUE) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE) && HAVE_DECL_FUTEX_CMP_REQUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_CMP_REQUEUE) == (4), "FUTEX_CMP_REQUEUE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_CMP_REQUEUE 4
#endif
-#if !(defined(FUTEX_WAKE_OP) || (defined(HAVE_DECL_FUTEX_WAKE_OP) && HAVE_DECL_FUTEX_WAKE_OP))
+#if defined(FUTEX_WAKE_OP) || (defined(HAVE_DECL_FUTEX_WAKE_OP) && HAVE_DECL_FUTEX_WAKE_OP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAKE_OP) == (5), "FUTEX_WAKE_OP != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAKE_OP 5
#endif
-#if !(defined(FUTEX_LOCK_PI) || (defined(HAVE_DECL_FUTEX_LOCK_PI) && HAVE_DECL_FUTEX_LOCK_PI))
+#if defined(FUTEX_LOCK_PI) || (defined(HAVE_DECL_FUTEX_LOCK_PI) && HAVE_DECL_FUTEX_LOCK_PI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_LOCK_PI) == (6), "FUTEX_LOCK_PI != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_LOCK_PI 6
#endif
-#if !(defined(FUTEX_UNLOCK_PI) || (defined(HAVE_DECL_FUTEX_UNLOCK_PI) && HAVE_DECL_FUTEX_UNLOCK_PI))
+#if defined(FUTEX_UNLOCK_PI) || (defined(HAVE_DECL_FUTEX_UNLOCK_PI) && HAVE_DECL_FUTEX_UNLOCK_PI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_UNLOCK_PI) == (7), "FUTEX_UNLOCK_PI != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_UNLOCK_PI 7
#endif
-#if !(defined(FUTEX_TRYLOCK_PI) || (defined(HAVE_DECL_FUTEX_TRYLOCK_PI) && HAVE_DECL_FUTEX_TRYLOCK_PI))
+#if defined(FUTEX_TRYLOCK_PI) || (defined(HAVE_DECL_FUTEX_TRYLOCK_PI) && HAVE_DECL_FUTEX_TRYLOCK_PI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_TRYLOCK_PI) == (8), "FUTEX_TRYLOCK_PI != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_TRYLOCK_PI 8
#endif
-#if !(defined(FUTEX_WAIT_BITSET) || (defined(HAVE_DECL_FUTEX_WAIT_BITSET) && HAVE_DECL_FUTEX_WAIT_BITSET))
+#if defined(FUTEX_WAIT_BITSET) || (defined(HAVE_DECL_FUTEX_WAIT_BITSET) && HAVE_DECL_FUTEX_WAIT_BITSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAIT_BITSET) == (9), "FUTEX_WAIT_BITSET != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAIT_BITSET 9
#endif
-#if !(defined(FUTEX_WAKE_BITSET) || (defined(HAVE_DECL_FUTEX_WAKE_BITSET) && HAVE_DECL_FUTEX_WAKE_BITSET))
+#if defined(FUTEX_WAKE_BITSET) || (defined(HAVE_DECL_FUTEX_WAKE_BITSET) && HAVE_DECL_FUTEX_WAKE_BITSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAKE_BITSET) == (10), "FUTEX_WAKE_BITSET != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAKE_BITSET 10
#endif
-#if !(defined(FUTEX_WAIT_REQUEUE_PI) || (defined(HAVE_DECL_FUTEX_WAIT_REQUEUE_PI) && HAVE_DECL_FUTEX_WAIT_REQUEUE_PI))
+#if defined(FUTEX_WAIT_REQUEUE_PI) || (defined(HAVE_DECL_FUTEX_WAIT_REQUEUE_PI) && HAVE_DECL_FUTEX_WAIT_REQUEUE_PI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAIT_REQUEUE_PI) == (11), "FUTEX_WAIT_REQUEUE_PI != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAIT_REQUEUE_PI 11
#endif
-#if !(defined(FUTEX_CMP_REQUEUE_PI) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE_PI) && HAVE_DECL_FUTEX_CMP_REQUEUE_PI))
+#if defined(FUTEX_CMP_REQUEUE_PI) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE_PI) && HAVE_DECL_FUTEX_CMP_REQUEUE_PI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_CMP_REQUEUE_PI) == (12), "FUTEX_CMP_REQUEUE_PI != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_CMP_REQUEUE_PI 12
#endif
-#if !(defined(FUTEX_WAIT_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_PRIVATE) && HAVE_DECL_FUTEX_WAIT_PRIVATE))
+#if defined(FUTEX_WAIT_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_PRIVATE) && HAVE_DECL_FUTEX_WAIT_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAIT_PRIVATE) == ((FUTEX_WAIT | FUTEX_PRIVATE_FLAG)), "FUTEX_WAIT_PRIVATE != (FUTEX_WAIT | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAIT_PRIVATE (FUTEX_WAIT | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_WAKE_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAKE_PRIVATE) && HAVE_DECL_FUTEX_WAKE_PRIVATE))
+#if defined(FUTEX_WAKE_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAKE_PRIVATE) && HAVE_DECL_FUTEX_WAKE_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAKE_PRIVATE) == ((FUTEX_WAKE | FUTEX_PRIVATE_FLAG)), "FUTEX_WAKE_PRIVATE != (FUTEX_WAKE | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAKE_PRIVATE (FUTEX_WAKE | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_REQUEUE_PRIVATE) || (defined(HAVE_DECL_FUTEX_REQUEUE_PRIVATE) && HAVE_DECL_FUTEX_REQUEUE_PRIVATE))
+#if defined(FUTEX_REQUEUE_PRIVATE) || (defined(HAVE_DECL_FUTEX_REQUEUE_PRIVATE) && HAVE_DECL_FUTEX_REQUEUE_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_REQUEUE_PRIVATE) == ((FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG)), "FUTEX_REQUEUE_PRIVATE != (FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_REQUEUE_PRIVATE (FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_CMP_REQUEUE_PRIVATE) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE_PRIVATE) && HAVE_DECL_FUTEX_CMP_REQUEUE_PRIVATE))
+#if defined(FUTEX_CMP_REQUEUE_PRIVATE) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE_PRIVATE) && HAVE_DECL_FUTEX_CMP_REQUEUE_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_CMP_REQUEUE_PRIVATE) == ((FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)), "FUTEX_CMP_REQUEUE_PRIVATE != (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_WAKE_OP_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAKE_OP_PRIVATE) && HAVE_DECL_FUTEX_WAKE_OP_PRIVATE))
+#if defined(FUTEX_WAKE_OP_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAKE_OP_PRIVATE) && HAVE_DECL_FUTEX_WAKE_OP_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAKE_OP_PRIVATE) == ((FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)), "FUTEX_WAKE_OP_PRIVATE != (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_LOCK_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_LOCK_PI_PRIVATE) && HAVE_DECL_FUTEX_LOCK_PI_PRIVATE))
+#if defined(FUTEX_LOCK_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_LOCK_PI_PRIVATE) && HAVE_DECL_FUTEX_LOCK_PI_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_LOCK_PI_PRIVATE) == ((FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)), "FUTEX_LOCK_PI_PRIVATE != (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_UNLOCK_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_UNLOCK_PI_PRIVATE) && HAVE_DECL_FUTEX_UNLOCK_PI_PRIVATE))
+#if defined(FUTEX_UNLOCK_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_UNLOCK_PI_PRIVATE) && HAVE_DECL_FUTEX_UNLOCK_PI_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_UNLOCK_PI_PRIVATE) == ((FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)), "FUTEX_UNLOCK_PI_PRIVATE != (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_TRYLOCK_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_TRYLOCK_PI_PRIVATE) && HAVE_DECL_FUTEX_TRYLOCK_PI_PRIVATE))
+#if defined(FUTEX_TRYLOCK_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_TRYLOCK_PI_PRIVATE) && HAVE_DECL_FUTEX_TRYLOCK_PI_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_TRYLOCK_PI_PRIVATE) == ((FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)), "FUTEX_TRYLOCK_PI_PRIVATE != (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_WAIT_BITSET_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_BITSET_PRIVATE) && HAVE_DECL_FUTEX_WAIT_BITSET_PRIVATE))
+#if defined(FUTEX_WAIT_BITSET_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_BITSET_PRIVATE) && HAVE_DECL_FUTEX_WAIT_BITSET_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAIT_BITSET_PRIVATE) == ((FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)), "FUTEX_WAIT_BITSET_PRIVATE != (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_WAKE_BITSET_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAKE_BITSET_PRIVATE) && HAVE_DECL_FUTEX_WAKE_BITSET_PRIVATE))
+#if defined(FUTEX_WAKE_BITSET_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAKE_BITSET_PRIVATE) && HAVE_DECL_FUTEX_WAKE_BITSET_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAKE_BITSET_PRIVATE) == ((FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)), "FUTEX_WAKE_BITSET_PRIVATE != (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_WAIT_REQUEUE_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_REQUEUE_PI_PRIVATE) && HAVE_DECL_FUTEX_WAIT_REQUEUE_PI_PRIVATE))
+#if defined(FUTEX_WAIT_REQUEUE_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_REQUEUE_PI_PRIVATE) && HAVE_DECL_FUTEX_WAIT_REQUEUE_PI_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_WAIT_REQUEUE_PI_PRIVATE) == ((FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)), "FUTEX_WAIT_REQUEUE_PI_PRIVATE != (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
#endif
-#if !(defined(FUTEX_CMP_REQUEUE_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE_PI_PRIVATE) && HAVE_DECL_FUTEX_CMP_REQUEUE_PI_PRIVATE))
+#if defined(FUTEX_CMP_REQUEUE_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_CMP_REQUEUE_PI_PRIVATE) && HAVE_DECL_FUTEX_CMP_REQUEUE_PI_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_CMP_REQUEUE_PI_PRIVATE) == ((FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)), "FUTEX_CMP_REQUEUE_PI_PRIVATE != (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat futexops in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat futexops in mpers mode
+
+# else
static
const struct xlat futexops[] = {
@@ -132,4 +238,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/futexwakecmps.h b/xlat/futexwakecmps.h
index 379e0a0..b0ee5b0 100644
--- a/xlat/futexwakecmps.h
+++ b/xlat/futexwakecmps.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/futexwakecmps.in; do not edit. */
-#if !(defined(FUTEX_OP_CMP_EQ) || (defined(HAVE_DECL_FUTEX_OP_CMP_EQ) && HAVE_DECL_FUTEX_OP_CMP_EQ))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FUTEX_OP_CMP_EQ) || (defined(HAVE_DECL_FUTEX_OP_CMP_EQ) && HAVE_DECL_FUTEX_OP_CMP_EQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_CMP_EQ) == (0), "FUTEX_OP_CMP_EQ != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_CMP_EQ 0
#endif
-#if !(defined(FUTEX_OP_CMP_NE) || (defined(HAVE_DECL_FUTEX_OP_CMP_NE) && HAVE_DECL_FUTEX_OP_CMP_NE))
+#if defined(FUTEX_OP_CMP_NE) || (defined(HAVE_DECL_FUTEX_OP_CMP_NE) && HAVE_DECL_FUTEX_OP_CMP_NE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_CMP_NE) == (1), "FUTEX_OP_CMP_NE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_CMP_NE 1
#endif
-#if !(defined(FUTEX_OP_CMP_LT) || (defined(HAVE_DECL_FUTEX_OP_CMP_LT) && HAVE_DECL_FUTEX_OP_CMP_LT))
+#if defined(FUTEX_OP_CMP_LT) || (defined(HAVE_DECL_FUTEX_OP_CMP_LT) && HAVE_DECL_FUTEX_OP_CMP_LT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_CMP_LT) == (2), "FUTEX_OP_CMP_LT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_CMP_LT 2
#endif
-#if !(defined(FUTEX_OP_CMP_LE) || (defined(HAVE_DECL_FUTEX_OP_CMP_LE) && HAVE_DECL_FUTEX_OP_CMP_LE))
+#if defined(FUTEX_OP_CMP_LE) || (defined(HAVE_DECL_FUTEX_OP_CMP_LE) && HAVE_DECL_FUTEX_OP_CMP_LE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_CMP_LE) == (3), "FUTEX_OP_CMP_LE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_CMP_LE 3
#endif
-#if !(defined(FUTEX_OP_CMP_GT) || (defined(HAVE_DECL_FUTEX_OP_CMP_GT) && HAVE_DECL_FUTEX_OP_CMP_GT))
+#if defined(FUTEX_OP_CMP_GT) || (defined(HAVE_DECL_FUTEX_OP_CMP_GT) && HAVE_DECL_FUTEX_OP_CMP_GT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_CMP_GT) == (4), "FUTEX_OP_CMP_GT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_CMP_GT 4
#endif
-#if !(defined(FUTEX_OP_CMP_GE) || (defined(HAVE_DECL_FUTEX_OP_CMP_GE) && HAVE_DECL_FUTEX_OP_CMP_GE))
+#if defined(FUTEX_OP_CMP_GE) || (defined(HAVE_DECL_FUTEX_OP_CMP_GE) && HAVE_DECL_FUTEX_OP_CMP_GE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_CMP_GE) == (5), "FUTEX_OP_CMP_GE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_CMP_GE 5
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat futexwakecmps in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat futexwakecmps in mpers mode
+
+# else
static
const struct xlat futexwakecmps[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/futexwakeops.h b/xlat/futexwakeops.h
index cd9b6b5..b643353 100644
--- a/xlat/futexwakeops.h
+++ b/xlat/futexwakeops.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/futexwakeops.in; do not edit. */
-#if !(defined(FUTEX_OP_SET) || (defined(HAVE_DECL_FUTEX_OP_SET) && HAVE_DECL_FUTEX_OP_SET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FUTEX_OP_SET) || (defined(HAVE_DECL_FUTEX_OP_SET) && HAVE_DECL_FUTEX_OP_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_SET) == (0), "FUTEX_OP_SET != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_SET 0
#endif
-#if !(defined(FUTEX_OP_ADD) || (defined(HAVE_DECL_FUTEX_OP_ADD) && HAVE_DECL_FUTEX_OP_ADD))
+#if defined(FUTEX_OP_ADD) || (defined(HAVE_DECL_FUTEX_OP_ADD) && HAVE_DECL_FUTEX_OP_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_ADD) == (1), "FUTEX_OP_ADD != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_ADD 1
#endif
-#if !(defined(FUTEX_OP_OR) || (defined(HAVE_DECL_FUTEX_OP_OR) && HAVE_DECL_FUTEX_OP_OR))
+#if defined(FUTEX_OP_OR) || (defined(HAVE_DECL_FUTEX_OP_OR) && HAVE_DECL_FUTEX_OP_OR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_OR) == (2), "FUTEX_OP_OR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_OR 2
#endif
-#if !(defined(FUTEX_OP_ANDN) || (defined(HAVE_DECL_FUTEX_OP_ANDN) && HAVE_DECL_FUTEX_OP_ANDN))
+#if defined(FUTEX_OP_ANDN) || (defined(HAVE_DECL_FUTEX_OP_ANDN) && HAVE_DECL_FUTEX_OP_ANDN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_ANDN) == (3), "FUTEX_OP_ANDN != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_ANDN 3
#endif
-#if !(defined(FUTEX_OP_XOR) || (defined(HAVE_DECL_FUTEX_OP_XOR) && HAVE_DECL_FUTEX_OP_XOR))
+#if defined(FUTEX_OP_XOR) || (defined(HAVE_DECL_FUTEX_OP_XOR) && HAVE_DECL_FUTEX_OP_XOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FUTEX_OP_XOR) == (4), "FUTEX_OP_XOR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FUTEX_OP_XOR 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat futexwakeops in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat futexwakeops in mpers mode
+
+# else
static
const struct xlat futexwakeops[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/gen.sh b/xlat/gen.sh
index 170163c..81f2096 100755
--- a/xlat/gen.sh
+++ b/xlat/gen.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/sh -eu
#
# Copyright (c) 2014-2015 Mike Frysinger <[email protected]>
# Copyright (c) 2014-2015 Dmitry V. Levin <[email protected]>
@@ -45,7 +45,7 @@
local val
val="$(printf %s "$line" |
- sed -r -n 's/^([^[:space:]]+).*$/\1/p')"
+ LC_ALL=C sed -r -n 's/^([[:alpha:]_][[:alnum:]_]*).*$/\1/p')"
local def
def="$(printf %s "${line}" |
@@ -53,7 +53,11 @@
if [ -n "$def" ]; then
cat <<-EOF
- #if !(defined($val) || (defined(HAVE_DECL_$val) && HAVE_DECL_$val))
+ #if defined($val) || (defined(HAVE_DECL_$val) && HAVE_DECL_$val)
+ DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+ static_assert(($val) == ($def), "$val != $def");
+ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
# define $val $def
#endif
EOF
@@ -65,6 +69,7 @@
local val
val="$1"; shift
+ [ 1 = "$value_indexed" ] && printf " [%s] =" "${val}"
if [ -z "${val_type-}" ]; then
echo " XLAT(${val}),"
else
@@ -78,6 +83,7 @@
val="$1"; shift
str="$1"; shift
+ [ 1 = "$value_indexed" ] && printf " [%s] =" "${val}"
if [ -z "${val_type-}" ]; then
echo " XLAT_PAIR(${val}, \"${str}\"),"
else
@@ -123,13 +129,21 @@
local decl="extern const struct xlat ${name}[];"
local in_defs= in_mpers=
+ value_indexed=0
+
if grep -F -x "$decl" "$defs" > /dev/null; then
in_defs=1
elif grep -F -x "$decl" "$mpers" > /dev/null; then
in_mpers=1
fi
- echo "/* Generated by $0 from $1; do not edit. */"
+ cat <<-EOF
+ /* Generated by $0 from $1; do not edit. */
+
+ #include "gcc_compat.h"
+ #include "static_assert.h"
+
+ EOF
local unconditional= line
# 1st pass: output directives.
@@ -151,6 +165,9 @@
'#val_type '*)
# to be processed during 2nd pass
;;
+ '#value_indexed')
+ value_indexed=1
+ ;;
'#'*)
echo "${line}"
;;
@@ -161,35 +178,41 @@
esac
done < "$input"
- echo
+ cat <<-EOF
+
+ #ifndef XLAT_MACROS_ONLY
+
+ EOF
+
if [ -n "$in_defs" ]; then
cat <<-EOF
- #ifndef IN_MPERS
+ # ifndef IN_MPERS
EOF
elif [ -n "$in_mpers" ]; then
cat <<-EOF
- #ifdef IN_MPERS
+ # ifdef IN_MPERS
${decl}
- #else
+ # else
- # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+ # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
- # endif
+ # endif
EOF
else
cat <<-EOF
- #ifdef IN_MPERS
+ # ifdef IN_MPERS
- # error static const struct xlat ${name} in mpers mode
+ # error static const struct xlat ${name} in mpers mode
- #else
+ # else
static
EOF
fi
+
echo "const struct xlat ${name}[] = {"
unconditional= val_type=
@@ -206,6 +229,8 @@
'#unconditional')
unconditional=1
;;
+ '#value_indexed')
+ ;;
'#val_type '*)
val_type="${line#\#val_type }"
;;
@@ -236,7 +261,9 @@
cat <<-EOF
};
- #endif /* !IN_MPERS */
+ # endif /* !IN_MPERS */
+
+ #endif /* !XLAT_MACROS_ONLY */
EOF
) >"${output}"
}
diff --git a/xlat/getrandom_flags.h b/xlat/getrandom_flags.h
index 6b88199..e2877d1 100644
--- a/xlat/getrandom_flags.h
+++ b/xlat/getrandom_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/getrandom_flags.in; do not edit. */
-#if !(defined(GRND_NONBLOCK) || (defined(HAVE_DECL_GRND_NONBLOCK) && HAVE_DECL_GRND_NONBLOCK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(GRND_NONBLOCK) || (defined(HAVE_DECL_GRND_NONBLOCK) && HAVE_DECL_GRND_NONBLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GRND_NONBLOCK) == (1), "GRND_NONBLOCK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GRND_NONBLOCK 1
#endif
-#if !(defined(GRND_RANDOM) || (defined(HAVE_DECL_GRND_RANDOM) && HAVE_DECL_GRND_RANDOM))
+#if defined(GRND_RANDOM) || (defined(HAVE_DECL_GRND_RANDOM) && HAVE_DECL_GRND_RANDOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GRND_RANDOM) == (2), "GRND_RANDOM != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GRND_RANDOM 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat getrandom_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat getrandom_flags in mpers mode
+
+# else
static
const struct xlat getrandom_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/getsock_ip_options.h b/xlat/getsock_ip_options.h
new file mode 100644
index 0000000..ca4bd9e
--- /dev/null
+++ b/xlat/getsock_ip_options.h
@@ -0,0 +1,91 @@
+/* Generated by ./xlat/gen.sh from ./xlat/getsock_ip_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 getsock_ip_options in mpers mode
+
+# else
+
+static
+const struct xlat getsock_ip_options[] = {
+/*
+* Options specific to getsockopt(SOL_IP).
+* Common {g,s}etsockopt(SOL_IP) options
+* should be in sock_ip_options.in instead.
+*/
+
+#if defined(ARPT_SO_GET_INFO) || (defined(HAVE_DECL_ARPT_SO_GET_INFO) && HAVE_DECL_ARPT_SO_GET_INFO)
+ XLAT(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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/getsock_ip_options.in b/xlat/getsock_ip_options.in
new file mode 100644
index 0000000..7b05460
--- /dev/null
+++ b/xlat/getsock_ip_options.in
@@ -0,0 +1,29 @@
+/*
+ * Options specific to getsockopt(SOL_IP).
+ * Common {g,s}etsockopt(SOL_IP) options
+ * should be in sock_ip_options.in instead.
+ */
+
+ARPT_SO_GET_INFO
+ARPT_SO_GET_ENTRIES
+ARPT_SO_GET_REVISION_MATCH
+ARPT_SO_GET_REVISION_TARGET
+
+EBT_SO_GET_INFO
+EBT_SO_GET_ENTRIES
+EBT_SO_GET_INIT_INFO
+EBT_SO_GET_INIT_ENTRIES
+
+IP_VS_SO_GET_VERSION
+IP_VS_SO_GET_INFO
+IP_VS_SO_GET_SERVICES
+IP_VS_SO_GET_SERVICE
+IP_VS_SO_GET_DESTS
+IP_VS_SO_GET_DEST
+IP_VS_SO_GET_TIMEOUT
+IP_VS_SO_GET_DAEMON
+
+IPT_SO_GET_INFO
+IPT_SO_GET_ENTRIES
+IPT_SO_GET_REVISION_MATCH
+IPT_SO_GET_REVISION_TARGET
diff --git a/xlat/getsock_ipv6_options.h b/xlat/getsock_ipv6_options.h
new file mode 100644
index 0000000..6525dfd
--- /dev/null
+++ b/xlat/getsock_ipv6_options.h
@@ -0,0 +1,40 @@
+/* Generated by ./xlat/gen.sh from ./xlat/getsock_ipv6_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 getsock_ipv6_options in mpers mode
+
+# else
+
+static
+const struct xlat getsock_ipv6_options[] = {
+/*
+* Options specific to getsockopt(SOL_IPV6).
+* Common {g,s}etsockopt(SOL_IPV6) options
+* should be in sock_ipv6_options.in instead.
+*/
+
+#if defined(IP6T_SO_GET_INFO) || (defined(HAVE_DECL_IP6T_SO_GET_INFO) && HAVE_DECL_IP6T_SO_GET_INFO)
+ XLAT(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),
+#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),
+#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),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/getsock_ipv6_options.in b/xlat/getsock_ipv6_options.in
new file mode 100644
index 0000000..98c450f
--- /dev/null
+++ b/xlat/getsock_ipv6_options.in
@@ -0,0 +1,10 @@
+/*
+ * Options specific to getsockopt(SOL_IPV6).
+ * Common {g,s}etsockopt(SOL_IPV6) options
+ * should be in sock_ipv6_options.in instead.
+ */
+
+IP6T_SO_GET_INFO
+IP6T_SO_GET_ENTRIES
+IP6T_SO_GET_REVISION_MATCH
+IP6T_SO_GET_REVISION_TARGET
diff --git a/xlat/getsock_options.h b/xlat/getsock_options.h
new file mode 100644
index 0000000..1f2035f
--- /dev/null
+++ b/xlat/getsock_options.h
@@ -0,0 +1,44 @@
+/* Generated by ./xlat/gen.sh from ./xlat/getsock_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined __hppa__
+#if defined(SO_GET_FILTER) || (defined(HAVE_DECL_SO_GET_FILTER) && HAVE_DECL_SO_GET_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_GET_FILTER) == (16410), "SO_GET_FILTER != 16410");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_GET_FILTER 16410
+#endif
+#else
+#if defined(SO_GET_FILTER) || (defined(HAVE_DECL_SO_GET_FILTER) && HAVE_DECL_SO_GET_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_GET_FILTER) == (26), "SO_GET_FILTER != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_GET_FILTER 26
+#endif
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat getsock_options in mpers mode
+
+# else
+
+static
+const struct xlat getsock_options[] = {
+#if defined __hppa__
+ XLAT(SO_GET_FILTER),
+#else
+ XLAT(SO_GET_FILTER),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/getsock_options.in b/xlat/getsock_options.in
new file mode 100644
index 0000000..6e47623
--- /dev/null
+++ b/xlat/getsock_options.in
@@ -0,0 +1,5 @@
+#if defined __hppa__
+SO_GET_FILTER 16410
+#else
+SO_GET_FILTER 26
+#endif
diff --git a/xlat/getsockipoptions.h b/xlat/getsockipoptions.h
deleted file mode 100644
index cd043a1..0000000
--- a/xlat/getsockipoptions.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/getsockipoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat getsockipoptions in mpers mode
-
-#else
-
-static
-const struct xlat getsockipoptions[] = {
-/*
-* Options specific to getsockopt(SOL_IP).
-* Common {g,s}etsockopt(SOL_IP) options
-* should be in sockipoptions.in instead.
-*/
-
-#if defined(ARPT_SO_GET_INFO) || (defined(HAVE_DECL_ARPT_SO_GET_INFO) && HAVE_DECL_ARPT_SO_GET_INFO)
- XLAT(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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/getsockipv6options.h b/xlat/getsockipv6options.h
deleted file mode 100644
index 402be18..0000000
--- a/xlat/getsockipv6options.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/getsockipv6options.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat getsockipv6options in mpers mode
-
-#else
-
-static
-const struct xlat getsockipv6options[] = {
-/*
-* Options specific to getsockopt(SOL_IPV6).
-* Common {g,s}etsockopt(SOL_IPV6) options
-* should be in sockipv6options.in instead.
-*/
-
-#if defined(IP6T_SO_GET_INFO) || (defined(HAVE_DECL_IP6T_SO_GET_INFO) && HAVE_DECL_IP6T_SO_GET_INFO)
- XLAT(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),
-#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),
-#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),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/hci_channels.h b/xlat/hci_channels.h
index ab6d3e3..a989ff2 100644
--- a/xlat/hci_channels.h
+++ b/xlat/hci_channels.h
@@ -1,29 +1,62 @@
/* Generated by ./xlat/gen.sh from ./xlat/hci_channels.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat hci_channels in mpers mode
-
+#if defined(HCI_CHANNEL_RAW) || (defined(HAVE_DECL_HCI_CHANNEL_RAW) && HAVE_DECL_HCI_CHANNEL_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HCI_CHANNEL_RAW) == (0), "HCI_CHANNEL_RAW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define HCI_CHANNEL_RAW 0
+#endif
+#if defined(HCI_CHANNEL_USER) || (defined(HAVE_DECL_HCI_CHANNEL_USER) && HAVE_DECL_HCI_CHANNEL_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HCI_CHANNEL_USER) == (1), "HCI_CHANNEL_USER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define HCI_CHANNEL_USER 1
+#endif
+#if defined(HCI_CHANNEL_MONITOR) || (defined(HAVE_DECL_HCI_CHANNEL_MONITOR) && HAVE_DECL_HCI_CHANNEL_MONITOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HCI_CHANNEL_MONITOR) == (2), "HCI_CHANNEL_MONITOR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define HCI_CHANNEL_MONITOR 2
+#endif
+#if defined(HCI_CHANNEL_CONTROL) || (defined(HAVE_DECL_HCI_CHANNEL_CONTROL) && HAVE_DECL_HCI_CHANNEL_CONTROL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HCI_CHANNEL_CONTROL) == (3), "HCI_CHANNEL_CONTROL != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define HCI_CHANNEL_CONTROL 3
+#endif
+#if defined(HCI_CHANNEL_LOGGING) || (defined(HAVE_DECL_HCI_CHANNEL_LOGGING) && HAVE_DECL_HCI_CHANNEL_LOGGING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HCI_CHANNEL_LOGGING) == (4), "HCI_CHANNEL_LOGGING != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define HCI_CHANNEL_LOGGING 4
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat hci_channels in mpers mode
+
+# else
static
const struct xlat hci_channels[] = {
-#if defined(HCI_CHANNEL_RAW) || (defined(HAVE_DECL_HCI_CHANNEL_RAW) && HAVE_DECL_HCI_CHANNEL_RAW)
- XLAT(HCI_CHANNEL_RAW),
-#endif
-#if defined(HCI_CHANNEL_USER) || (defined(HAVE_DECL_HCI_CHANNEL_USER) && HAVE_DECL_HCI_CHANNEL_USER)
- XLAT(HCI_CHANNEL_USER),
-#endif
-#if defined(HCI_CHANNEL_MONITOR) || (defined(HAVE_DECL_HCI_CHANNEL_MONITOR) && HAVE_DECL_HCI_CHANNEL_MONITOR)
- XLAT(HCI_CHANNEL_MONITOR),
-#endif
-#if defined(HCI_CHANNEL_CONTROL) || (defined(HAVE_DECL_HCI_CHANNEL_CONTROL) && HAVE_DECL_HCI_CHANNEL_CONTROL)
- XLAT(HCI_CHANNEL_CONTROL),
-#endif
-#if defined(HCI_CHANNEL_LOGGING) || (defined(HAVE_DECL_HCI_CHANNEL_LOGGING) && HAVE_DECL_HCI_CHANNEL_LOGGING)
- XLAT(HCI_CHANNEL_LOGGING),
-#endif
+ [HCI_CHANNEL_RAW] = XLAT(HCI_CHANNEL_RAW),
+ [HCI_CHANNEL_USER] = XLAT(HCI_CHANNEL_USER),
+ [HCI_CHANNEL_MONITOR] = XLAT(HCI_CHANNEL_MONITOR),
+ [HCI_CHANNEL_CONTROL] = XLAT(HCI_CHANNEL_CONTROL),
+ [HCI_CHANNEL_LOGGING] = XLAT(HCI_CHANNEL_LOGGING),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/hci_channels.in b/xlat/hci_channels.in
index 1fae39b..42055bb 100644
--- a/xlat/hci_channels.in
+++ b/xlat/hci_channels.in
@@ -1,5 +1,6 @@
-HCI_CHANNEL_RAW
-HCI_CHANNEL_USER
-HCI_CHANNEL_MONITOR
-HCI_CHANNEL_CONTROL
-HCI_CHANNEL_LOGGING
+#value_indexed
+HCI_CHANNEL_RAW 0
+HCI_CHANNEL_USER 1
+HCI_CHANNEL_MONITOR 2
+HCI_CHANNEL_CONTROL 3
+HCI_CHANNEL_LOGGING 4
diff --git a/xlat/hw_breakpoint_len.h b/xlat/hw_breakpoint_len.h
index c1b042d..cb6c457 100644
--- a/xlat/hw_breakpoint_len.h
+++ b/xlat/hw_breakpoint_len.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/hw_breakpoint_len.in; do not edit. */
-#if !(defined(HW_BREAKPOINT_LEN_1) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_1) && HAVE_DECL_HW_BREAKPOINT_LEN_1))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(HW_BREAKPOINT_LEN_1) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_1) && HAVE_DECL_HW_BREAKPOINT_LEN_1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_LEN_1) == (1), "HW_BREAKPOINT_LEN_1 != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_LEN_1 1
#endif
-#if !(defined(HW_BREAKPOINT_LEN_2) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_2) && HAVE_DECL_HW_BREAKPOINT_LEN_2))
+#if defined(HW_BREAKPOINT_LEN_2) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_2) && HAVE_DECL_HW_BREAKPOINT_LEN_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_LEN_2) == (2), "HW_BREAKPOINT_LEN_2 != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_LEN_2 2
#endif
-#if !(defined(HW_BREAKPOINT_LEN_4) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_4) && HAVE_DECL_HW_BREAKPOINT_LEN_4))
+#if defined(HW_BREAKPOINT_LEN_4) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_4) && HAVE_DECL_HW_BREAKPOINT_LEN_4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_LEN_4) == (4), "HW_BREAKPOINT_LEN_4 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_LEN_4 4
#endif
-#if !(defined(HW_BREAKPOINT_LEN_8) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_8) && HAVE_DECL_HW_BREAKPOINT_LEN_8))
+#if defined(HW_BREAKPOINT_LEN_8) || (defined(HAVE_DECL_HW_BREAKPOINT_LEN_8) && HAVE_DECL_HW_BREAKPOINT_LEN_8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_LEN_8) == (8), "HW_BREAKPOINT_LEN_8 != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_LEN_8 8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat hw_breakpoint_len in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat hw_breakpoint_len in mpers mode
+
+# else
static
const struct xlat hw_breakpoint_len[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/hw_breakpoint_type.h b/xlat/hw_breakpoint_type.h
index 3f6873a..30b3af8 100644
--- a/xlat/hw_breakpoint_type.h
+++ b/xlat/hw_breakpoint_type.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/hw_breakpoint_type.in; do not edit. */
-#if !(defined(HW_BREAKPOINT_EMPTY) || (defined(HAVE_DECL_HW_BREAKPOINT_EMPTY) && HAVE_DECL_HW_BREAKPOINT_EMPTY))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(HW_BREAKPOINT_EMPTY) || (defined(HAVE_DECL_HW_BREAKPOINT_EMPTY) && HAVE_DECL_HW_BREAKPOINT_EMPTY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_EMPTY) == (0), "HW_BREAKPOINT_EMPTY != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_EMPTY 0
#endif
-#if !(defined(HW_BREAKPOINT_R) || (defined(HAVE_DECL_HW_BREAKPOINT_R) && HAVE_DECL_HW_BREAKPOINT_R))
+#if defined(HW_BREAKPOINT_R) || (defined(HAVE_DECL_HW_BREAKPOINT_R) && HAVE_DECL_HW_BREAKPOINT_R)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_R) == (1), "HW_BREAKPOINT_R != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_R 1
#endif
-#if !(defined(HW_BREAKPOINT_W) || (defined(HAVE_DECL_HW_BREAKPOINT_W) && HAVE_DECL_HW_BREAKPOINT_W))
+#if defined(HW_BREAKPOINT_W) || (defined(HAVE_DECL_HW_BREAKPOINT_W) && HAVE_DECL_HW_BREAKPOINT_W)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_W) == (2), "HW_BREAKPOINT_W != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_W 2
#endif
-#if !(defined(HW_BREAKPOINT_RW) || (defined(HAVE_DECL_HW_BREAKPOINT_RW) && HAVE_DECL_HW_BREAKPOINT_RW))
+#if defined(HW_BREAKPOINT_RW) || (defined(HAVE_DECL_HW_BREAKPOINT_RW) && HAVE_DECL_HW_BREAKPOINT_RW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_RW) == (3), "HW_BREAKPOINT_RW != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_RW 3
#endif
-#if !(defined(HW_BREAKPOINT_X) || (defined(HAVE_DECL_HW_BREAKPOINT_X) && HAVE_DECL_HW_BREAKPOINT_X))
+#if defined(HW_BREAKPOINT_X) || (defined(HAVE_DECL_HW_BREAKPOINT_X) && HAVE_DECL_HW_BREAKPOINT_X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((HW_BREAKPOINT_X) == (4), "HW_BREAKPOINT_X != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define HW_BREAKPOINT_X 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat hw_breakpoint_type in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat hw_breakpoint_type in mpers mode
+
+# else
static
const struct xlat hw_breakpoint_type[] = {
@@ -32,4 +58,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/icmpfilterflags.h b/xlat/icmpfilterflags.h
index 1672a19..a3f1300 100644
--- a/xlat/icmpfilterflags.h
+++ b/xlat/icmpfilterflags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/icmpfilterflags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat icmpfilterflags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat icmpfilterflags in mpers mode
+
+# else
static
const struct xlat icmpfilterflags[] = {
@@ -50,4 +56,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/if_dqblk_valid.h b/xlat/if_dqblk_valid.h
index 67d3934..e6d03bf 100644
--- a/xlat/if_dqblk_valid.h
+++ b/xlat/if_dqblk_valid.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/if_dqblk_valid.in; do not edit. */
-#if !(defined(QIF_BLIMITS) || (defined(HAVE_DECL_QIF_BLIMITS) && HAVE_DECL_QIF_BLIMITS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(QIF_BLIMITS) || (defined(HAVE_DECL_QIF_BLIMITS) && HAVE_DECL_QIF_BLIMITS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QIF_BLIMITS) == ((1 << 0)), "QIF_BLIMITS != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QIF_BLIMITS (1 << 0)
#endif
-#if !(defined(QIF_SPACE) || (defined(HAVE_DECL_QIF_SPACE) && HAVE_DECL_QIF_SPACE))
+#if defined(QIF_SPACE) || (defined(HAVE_DECL_QIF_SPACE) && HAVE_DECL_QIF_SPACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QIF_SPACE) == ((1 << 1)), "QIF_SPACE != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QIF_SPACE (1 << 1)
#endif
-#if !(defined(QIF_ILIMITS) || (defined(HAVE_DECL_QIF_ILIMITS) && HAVE_DECL_QIF_ILIMITS))
+#if defined(QIF_ILIMITS) || (defined(HAVE_DECL_QIF_ILIMITS) && HAVE_DECL_QIF_ILIMITS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QIF_ILIMITS) == ((1 << 2)), "QIF_ILIMITS != (1 << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QIF_ILIMITS (1 << 2)
#endif
-#if !(defined(QIF_INODES) || (defined(HAVE_DECL_QIF_INODES) && HAVE_DECL_QIF_INODES))
+#if defined(QIF_INODES) || (defined(HAVE_DECL_QIF_INODES) && HAVE_DECL_QIF_INODES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QIF_INODES) == ((1 << 3)), "QIF_INODES != (1 << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QIF_INODES (1 << 3)
#endif
-#if !(defined(QIF_BTIME) || (defined(HAVE_DECL_QIF_BTIME) && HAVE_DECL_QIF_BTIME))
+#if defined(QIF_BTIME) || (defined(HAVE_DECL_QIF_BTIME) && HAVE_DECL_QIF_BTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QIF_BTIME) == ((1 << 4)), "QIF_BTIME != (1 << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QIF_BTIME (1 << 4)
#endif
-#if !(defined(QIF_ITIME) || (defined(HAVE_DECL_QIF_ITIME) && HAVE_DECL_QIF_ITIME))
+#if defined(QIF_ITIME) || (defined(HAVE_DECL_QIF_ITIME) && HAVE_DECL_QIF_ITIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QIF_ITIME) == ((1 << 5)), "QIF_ITIME != (1 << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QIF_ITIME (1 << 5)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat if_dqblk_valid in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat if_dqblk_valid in mpers mode
+
+# else
static
const struct xlat if_dqblk_valid[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/if_dqinfo_flags.h b/xlat/if_dqinfo_flags.h
index 72b2690..aeb76bd 100644
--- a/xlat/if_dqinfo_flags.h
+++ b/xlat/if_dqinfo_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/if_dqinfo_flags.in; do not edit. */
-#if !(defined(DQF_ROOT_SQUASH) || (defined(HAVE_DECL_DQF_ROOT_SQUASH) && HAVE_DECL_DQF_ROOT_SQUASH))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(DQF_ROOT_SQUASH) || (defined(HAVE_DECL_DQF_ROOT_SQUASH) && HAVE_DECL_DQF_ROOT_SQUASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DQF_ROOT_SQUASH) == ((1 << 0)), "DQF_ROOT_SQUASH != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DQF_ROOT_SQUASH (1 << 0)
#endif
-#if !(defined(DQF_SYS_FILE) || (defined(HAVE_DECL_DQF_SYS_FILE) && HAVE_DECL_DQF_SYS_FILE))
+#if defined(DQF_SYS_FILE) || (defined(HAVE_DECL_DQF_SYS_FILE) && HAVE_DECL_DQF_SYS_FILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DQF_SYS_FILE) == ((1 << 16)), "DQF_SYS_FILE != (1 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DQF_SYS_FILE (1 << 16)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat if_dqinfo_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat if_dqinfo_flags in mpers mode
+
+# else
static
const struct xlat if_dqinfo_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/if_dqinfo_valid.h b/xlat/if_dqinfo_valid.h
index 8944d17..b4fc127 100644
--- a/xlat/if_dqinfo_valid.h
+++ b/xlat/if_dqinfo_valid.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/if_dqinfo_valid.in; do not edit. */
-#if !(defined(IIF_BGRACE) || (defined(HAVE_DECL_IIF_BGRACE) && HAVE_DECL_IIF_BGRACE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IIF_BGRACE) || (defined(HAVE_DECL_IIF_BGRACE) && HAVE_DECL_IIF_BGRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IIF_BGRACE) == ((1 << 0)), "IIF_BGRACE != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IIF_BGRACE (1 << 0)
#endif
-#if !(defined(IIF_IGRACE) || (defined(HAVE_DECL_IIF_IGRACE) && HAVE_DECL_IIF_IGRACE))
+#if defined(IIF_IGRACE) || (defined(HAVE_DECL_IIF_IGRACE) && HAVE_DECL_IIF_IGRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IIF_IGRACE) == ((1 << 1)), "IIF_IGRACE != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IIF_IGRACE (1 << 1)
#endif
-#if !(defined(IIF_FLAGS) || (defined(HAVE_DECL_IIF_FLAGS) && HAVE_DECL_IIF_FLAGS))
+#if defined(IIF_FLAGS) || (defined(HAVE_DECL_IIF_FLAGS) && HAVE_DECL_IIF_FLAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IIF_FLAGS) == ((1 << 2)), "IIF_FLAGS != (1 << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IIF_FLAGS (1 << 2)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat if_dqinfo_valid in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat if_dqinfo_valid in mpers mode
+
+# else
static
const struct xlat if_dqinfo_valid[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ifaddrflags.h b/xlat/ifaddrflags.h
index 95aa830..cc2c989 100644
--- a/xlat/ifaddrflags.h
+++ b/xlat/ifaddrflags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ifaddrflags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ifaddrflags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ifaddrflags in mpers mode
+
+# else
static
const struct xlat ifaddrflags[] = {
@@ -47,4 +53,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/iffflags.h b/xlat/iffflags.h
index b197e08..5c1b507 100644
--- a/xlat/iffflags.h
+++ b/xlat/iffflags.h
@@ -1,54 +1,170 @@
/* Generated by ./xlat/gen.sh from ./xlat/iffflags.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-const struct xlat iffflags[] = {
#if defined(IFF_UP) || (defined(HAVE_DECL_IFF_UP) && HAVE_DECL_IFF_UP)
- XLAT(IFF_UP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_UP) == ((1 << 0)), "IFF_UP != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_UP (1 << 0)
#endif
#if defined(IFF_BROADCAST) || (defined(HAVE_DECL_IFF_BROADCAST) && HAVE_DECL_IFF_BROADCAST)
- XLAT(IFF_BROADCAST),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_BROADCAST) == ((1 << 1)), "IFF_BROADCAST != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_BROADCAST (1 << 1)
#endif
#if defined(IFF_DEBUG) || (defined(HAVE_DECL_IFF_DEBUG) && HAVE_DECL_IFF_DEBUG)
- XLAT(IFF_DEBUG),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_DEBUG) == ((1 << 2)), "IFF_DEBUG != (1 << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_DEBUG (1 << 2)
#endif
#if defined(IFF_LOOPBACK) || (defined(HAVE_DECL_IFF_LOOPBACK) && HAVE_DECL_IFF_LOOPBACK)
- XLAT(IFF_LOOPBACK),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_LOOPBACK) == ((1 << 3)), "IFF_LOOPBACK != (1 << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_LOOPBACK (1 << 3)
#endif
#if defined(IFF_POINTOPOINT) || (defined(HAVE_DECL_IFF_POINTOPOINT) && HAVE_DECL_IFF_POINTOPOINT)
- XLAT(IFF_POINTOPOINT),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_POINTOPOINT) == ((1 << 4)), "IFF_POINTOPOINT != (1 << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_POINTOPOINT (1 << 4)
#endif
#if defined(IFF_NOTRAILERS) || (defined(HAVE_DECL_IFF_NOTRAILERS) && HAVE_DECL_IFF_NOTRAILERS)
- XLAT(IFF_NOTRAILERS),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_NOTRAILERS) == ((1 << 5)), "IFF_NOTRAILERS != (1 << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_NOTRAILERS (1 << 5)
#endif
#if defined(IFF_RUNNING) || (defined(HAVE_DECL_IFF_RUNNING) && HAVE_DECL_IFF_RUNNING)
- XLAT(IFF_RUNNING),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_RUNNING) == ((1 << 6)), "IFF_RUNNING != (1 << 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_RUNNING (1 << 6)
#endif
#if defined(IFF_NOARP) || (defined(HAVE_DECL_IFF_NOARP) && HAVE_DECL_IFF_NOARP)
- XLAT(IFF_NOARP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_NOARP) == ((1 << 7)), "IFF_NOARP != (1 << 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_NOARP (1 << 7)
#endif
#if defined(IFF_PROMISC) || (defined(HAVE_DECL_IFF_PROMISC) && HAVE_DECL_IFF_PROMISC)
- XLAT(IFF_PROMISC),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_PROMISC) == ((1 << 8)), "IFF_PROMISC != (1 << 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_PROMISC (1 << 8)
#endif
#if defined(IFF_ALLMULTI) || (defined(HAVE_DECL_IFF_ALLMULTI) && HAVE_DECL_IFF_ALLMULTI)
- XLAT(IFF_ALLMULTI),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_ALLMULTI) == ((1 << 9)), "IFF_ALLMULTI != (1 << 9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_ALLMULTI (1 << 9)
#endif
#if defined(IFF_MASTER) || (defined(HAVE_DECL_IFF_MASTER) && HAVE_DECL_IFF_MASTER)
- XLAT(IFF_MASTER),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_MASTER) == ((1 << 10)), "IFF_MASTER != (1 << 10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_MASTER (1 << 10)
#endif
#if defined(IFF_SLAVE) || (defined(HAVE_DECL_IFF_SLAVE) && HAVE_DECL_IFF_SLAVE)
- XLAT(IFF_SLAVE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_SLAVE) == ((1 << 11)), "IFF_SLAVE != (1 << 11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_SLAVE (1 << 11)
#endif
#if defined(IFF_MULTICAST) || (defined(HAVE_DECL_IFF_MULTICAST) && HAVE_DECL_IFF_MULTICAST)
- XLAT(IFF_MULTICAST),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_MULTICAST) == ((1 << 12)), "IFF_MULTICAST != (1 << 12)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_MULTICAST (1 << 12)
#endif
#if defined(IFF_PORTSEL) || (defined(HAVE_DECL_IFF_PORTSEL) && HAVE_DECL_IFF_PORTSEL)
- XLAT(IFF_PORTSEL),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_PORTSEL) == ((1 << 13)), "IFF_PORTSEL != (1 << 13)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_PORTSEL (1 << 13)
#endif
#if defined(IFF_AUTOMEDIA) || (defined(HAVE_DECL_IFF_AUTOMEDIA) && HAVE_DECL_IFF_AUTOMEDIA)
- XLAT(IFF_AUTOMEDIA),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_AUTOMEDIA) == ((1 << 14)), "IFF_AUTOMEDIA != (1 << 14)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_AUTOMEDIA (1 << 14)
#endif
+#if defined(IFF_DYNAMIC) || (defined(HAVE_DECL_IFF_DYNAMIC) && HAVE_DECL_IFF_DYNAMIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_DYNAMIC) == ((1 << 15)), "IFF_DYNAMIC != (1 << 15)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_DYNAMIC (1 << 15)
+#endif
+#if defined(IFF_LOWER_UP) || (defined(HAVE_DECL_IFF_LOWER_UP) && HAVE_DECL_IFF_LOWER_UP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_LOWER_UP) == ((1 << 16)), "IFF_LOWER_UP != (1 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_LOWER_UP (1 << 16)
+#endif
+#if defined(IFF_DORMANT) || (defined(HAVE_DECL_IFF_DORMANT) && HAVE_DECL_IFF_DORMANT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_DORMANT) == ((1 << 17)), "IFF_DORMANT != (1 << 17)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_DORMANT (1 << 17)
+#endif
+#if defined(IFF_ECHO) || (defined(HAVE_DECL_IFF_ECHO) && HAVE_DECL_IFF_ECHO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_ECHO) == ((1 << 18)), "IFF_ECHO != (1 << 18)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_ECHO (1 << 18)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
+
+const struct xlat iffflags[] = {
+
+ XLAT(IFF_UP),
+ XLAT(IFF_BROADCAST),
+ XLAT(IFF_DEBUG),
+ XLAT(IFF_LOOPBACK),
+ XLAT(IFF_POINTOPOINT),
+ XLAT(IFF_NOTRAILERS),
+ XLAT(IFF_RUNNING),
+ XLAT(IFF_NOARP),
+ XLAT(IFF_PROMISC),
+ XLAT(IFF_ALLMULTI),
+ XLAT(IFF_MASTER),
+ XLAT(IFF_SLAVE),
+ XLAT(IFF_MULTICAST),
+ XLAT(IFF_PORTSEL),
+ XLAT(IFF_AUTOMEDIA),
+ XLAT(IFF_DYNAMIC),
+ XLAT(IFF_LOWER_UP),
+ XLAT(IFF_DORMANT),
+ XLAT(IFF_ECHO),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/iffflags.in b/xlat/iffflags.in
index a6249b0..210495b 100644
--- a/xlat/iffflags.in
+++ b/xlat/iffflags.in
@@ -1,15 +1,20 @@
-IFF_UP
-IFF_BROADCAST
-IFF_DEBUG
-IFF_LOOPBACK
-IFF_POINTOPOINT
-IFF_NOTRAILERS
-IFF_RUNNING
-IFF_NOARP
-IFF_PROMISC
-IFF_ALLMULTI
-IFF_MASTER
-IFF_SLAVE
-IFF_MULTICAST
-IFF_PORTSEL
-IFF_AUTOMEDIA
+/* sort -k4,4g */
+IFF_UP (1 << 0)
+IFF_BROADCAST (1 << 1)
+IFF_DEBUG (1 << 2)
+IFF_LOOPBACK (1 << 3)
+IFF_POINTOPOINT (1 << 4)
+IFF_NOTRAILERS (1 << 5)
+IFF_RUNNING (1 << 6)
+IFF_NOARP (1 << 7)
+IFF_PROMISC (1 << 8)
+IFF_ALLMULTI (1 << 9)
+IFF_MASTER (1 << 10)
+IFF_SLAVE (1 << 11)
+IFF_MULTICAST (1 << 12)
+IFF_PORTSEL (1 << 13)
+IFF_AUTOMEDIA (1 << 14)
+IFF_DYNAMIC (1 << 15)
+IFF_LOWER_UP (1 << 16)
+IFF_DORMANT (1 << 17)
+IFF_ECHO (1 << 18)
diff --git a/xlat/in6_addr_gen_mode.h b/xlat/in6_addr_gen_mode.h
new file mode 100644
index 0000000..c11c00a
--- /dev/null
+++ b/xlat/in6_addr_gen_mode.h
@@ -0,0 +1,54 @@
+/* Generated by ./xlat/gen.sh from ./xlat/in6_addr_gen_mode.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IN6_ADDR_GEN_MODE_EUI64) || (defined(HAVE_DECL_IN6_ADDR_GEN_MODE_EUI64) && HAVE_DECL_IN6_ADDR_GEN_MODE_EUI64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN6_ADDR_GEN_MODE_EUI64) == (0), "IN6_ADDR_GEN_MODE_EUI64 != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IN6_ADDR_GEN_MODE_EUI64 0
+#endif
+#if defined(IN6_ADDR_GEN_MODE_NONE) || (defined(HAVE_DECL_IN6_ADDR_GEN_MODE_NONE) && HAVE_DECL_IN6_ADDR_GEN_MODE_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN6_ADDR_GEN_MODE_NONE) == (1), "IN6_ADDR_GEN_MODE_NONE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IN6_ADDR_GEN_MODE_NONE 1
+#endif
+#if defined(IN6_ADDR_GEN_MODE_STABLE_PRIVACY) || (defined(HAVE_DECL_IN6_ADDR_GEN_MODE_STABLE_PRIVACY) && HAVE_DECL_IN6_ADDR_GEN_MODE_STABLE_PRIVACY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN6_ADDR_GEN_MODE_STABLE_PRIVACY) == (2), "IN6_ADDR_GEN_MODE_STABLE_PRIVACY != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IN6_ADDR_GEN_MODE_STABLE_PRIVACY 2
+#endif
+#if defined(IN6_ADDR_GEN_MODE_RANDOM) || (defined(HAVE_DECL_IN6_ADDR_GEN_MODE_RANDOM) && HAVE_DECL_IN6_ADDR_GEN_MODE_RANDOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN6_ADDR_GEN_MODE_RANDOM) == (3), "IN6_ADDR_GEN_MODE_RANDOM != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IN6_ADDR_GEN_MODE_RANDOM 3
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat in6_addr_gen_mode in mpers mode
+
+# else
+
+static
+const struct xlat in6_addr_gen_mode[] = {
+ [IN6_ADDR_GEN_MODE_EUI64] = XLAT(IN6_ADDR_GEN_MODE_EUI64),
+ [IN6_ADDR_GEN_MODE_NONE] = XLAT(IN6_ADDR_GEN_MODE_NONE),
+ [IN6_ADDR_GEN_MODE_STABLE_PRIVACY] = XLAT(IN6_ADDR_GEN_MODE_STABLE_PRIVACY),
+ [IN6_ADDR_GEN_MODE_RANDOM] = XLAT(IN6_ADDR_GEN_MODE_RANDOM),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/in6_addr_gen_mode.in b/xlat/in6_addr_gen_mode.in
new file mode 100644
index 0000000..5d01a13
--- /dev/null
+++ b/xlat/in6_addr_gen_mode.in
@@ -0,0 +1,5 @@
+#value_indexed
+IN6_ADDR_GEN_MODE_EUI64 0
+IN6_ADDR_GEN_MODE_NONE 1
+IN6_ADDR_GEN_MODE_STABLE_PRIVACY 2
+IN6_ADDR_GEN_MODE_RANDOM 3
diff --git a/xlat/inet6_devconf_indices.h b/xlat/inet6_devconf_indices.h
new file mode 100644
index 0000000..97a210b
--- /dev/null
+++ b/xlat/inet6_devconf_indices.h
@@ -0,0 +1,430 @@
+/* Generated by ./xlat/gen.sh from ./xlat/inet6_devconf_indices.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(DEVCONF_FORWARDING) || (defined(HAVE_DECL_DEVCONF_FORWARDING) && HAVE_DECL_DEVCONF_FORWARDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_FORWARDING) == (0), "DEVCONF_FORWARDING != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_FORWARDING 0
+#endif
+#if defined(DEVCONF_HOPLIMIT) || (defined(HAVE_DECL_DEVCONF_HOPLIMIT) && HAVE_DECL_DEVCONF_HOPLIMIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_HOPLIMIT) == (1), "DEVCONF_HOPLIMIT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_HOPLIMIT 1
+#endif
+#if defined(DEVCONF_MTU6) || (defined(HAVE_DECL_DEVCONF_MTU6) && HAVE_DECL_DEVCONF_MTU6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_MTU6) == (2), "DEVCONF_MTU6 != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_MTU6 2
+#endif
+#if defined(DEVCONF_ACCEPT_RA) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA) && HAVE_DECL_DEVCONF_ACCEPT_RA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA) == (3), "DEVCONF_ACCEPT_RA != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA 3
+#endif
+#if defined(DEVCONF_ACCEPT_REDIRECTS) || (defined(HAVE_DECL_DEVCONF_ACCEPT_REDIRECTS) && HAVE_DECL_DEVCONF_ACCEPT_REDIRECTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_REDIRECTS) == (4), "DEVCONF_ACCEPT_REDIRECTS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_REDIRECTS 4
+#endif
+#if defined(DEVCONF_AUTOCONF) || (defined(HAVE_DECL_DEVCONF_AUTOCONF) && HAVE_DECL_DEVCONF_AUTOCONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_AUTOCONF) == (5), "DEVCONF_AUTOCONF != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_AUTOCONF 5
+#endif
+#if defined(DEVCONF_DAD_TRANSMITS) || (defined(HAVE_DECL_DEVCONF_DAD_TRANSMITS) && HAVE_DECL_DEVCONF_DAD_TRANSMITS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_DAD_TRANSMITS) == (6), "DEVCONF_DAD_TRANSMITS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_DAD_TRANSMITS 6
+#endif
+#if defined(DEVCONF_RTR_SOLICITS) || (defined(HAVE_DECL_DEVCONF_RTR_SOLICITS) && HAVE_DECL_DEVCONF_RTR_SOLICITS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_RTR_SOLICITS) == (7), "DEVCONF_RTR_SOLICITS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_RTR_SOLICITS 7
+#endif
+#if defined(DEVCONF_RTR_SOLICIT_INTERVAL) || (defined(HAVE_DECL_DEVCONF_RTR_SOLICIT_INTERVAL) && HAVE_DECL_DEVCONF_RTR_SOLICIT_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_RTR_SOLICIT_INTERVAL) == (8), "DEVCONF_RTR_SOLICIT_INTERVAL != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_RTR_SOLICIT_INTERVAL 8
+#endif
+#if defined(DEVCONF_RTR_SOLICIT_DELAY) || (defined(HAVE_DECL_DEVCONF_RTR_SOLICIT_DELAY) && HAVE_DECL_DEVCONF_RTR_SOLICIT_DELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_RTR_SOLICIT_DELAY) == (9), "DEVCONF_RTR_SOLICIT_DELAY != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_RTR_SOLICIT_DELAY 9
+#endif
+#if defined(DEVCONF_USE_TEMPADDR) || (defined(HAVE_DECL_DEVCONF_USE_TEMPADDR) && HAVE_DECL_DEVCONF_USE_TEMPADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_USE_TEMPADDR) == (10), "DEVCONF_USE_TEMPADDR != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_USE_TEMPADDR 10
+#endif
+#if defined(DEVCONF_TEMP_VALID_LFT) || (defined(HAVE_DECL_DEVCONF_TEMP_VALID_LFT) && HAVE_DECL_DEVCONF_TEMP_VALID_LFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_TEMP_VALID_LFT) == (11), "DEVCONF_TEMP_VALID_LFT != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_TEMP_VALID_LFT 11
+#endif
+#if defined(DEVCONF_TEMP_PREFERED_LFT) || (defined(HAVE_DECL_DEVCONF_TEMP_PREFERED_LFT) && HAVE_DECL_DEVCONF_TEMP_PREFERED_LFT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_TEMP_PREFERED_LFT) == (12), "DEVCONF_TEMP_PREFERED_LFT != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_TEMP_PREFERED_LFT 12
+#endif
+#if defined(DEVCONF_REGEN_MAX_RETRY) || (defined(HAVE_DECL_DEVCONF_REGEN_MAX_RETRY) && HAVE_DECL_DEVCONF_REGEN_MAX_RETRY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_REGEN_MAX_RETRY) == (13), "DEVCONF_REGEN_MAX_RETRY != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_REGEN_MAX_RETRY 13
+#endif
+#if defined(DEVCONF_MAX_DESYNC_FACTOR) || (defined(HAVE_DECL_DEVCONF_MAX_DESYNC_FACTOR) && HAVE_DECL_DEVCONF_MAX_DESYNC_FACTOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_MAX_DESYNC_FACTOR) == (14), "DEVCONF_MAX_DESYNC_FACTOR != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_MAX_DESYNC_FACTOR 14
+#endif
+#if defined(DEVCONF_MAX_ADDRESSES) || (defined(HAVE_DECL_DEVCONF_MAX_ADDRESSES) && HAVE_DECL_DEVCONF_MAX_ADDRESSES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_MAX_ADDRESSES) == (15), "DEVCONF_MAX_ADDRESSES != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_MAX_ADDRESSES 15
+#endif
+#if defined(DEVCONF_FORCE_MLD_VERSION) || (defined(HAVE_DECL_DEVCONF_FORCE_MLD_VERSION) && HAVE_DECL_DEVCONF_FORCE_MLD_VERSION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_FORCE_MLD_VERSION) == (16), "DEVCONF_FORCE_MLD_VERSION != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_FORCE_MLD_VERSION 16
+#endif
+#if defined(DEVCONF_ACCEPT_RA_DEFRTR) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_DEFRTR) && HAVE_DECL_DEVCONF_ACCEPT_RA_DEFRTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_DEFRTR) == (17), "DEVCONF_ACCEPT_RA_DEFRTR != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_DEFRTR 17
+#endif
+#if defined(DEVCONF_ACCEPT_RA_PINFO) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_PINFO) && HAVE_DECL_DEVCONF_ACCEPT_RA_PINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_PINFO) == (18), "DEVCONF_ACCEPT_RA_PINFO != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_PINFO 18
+#endif
+#if defined(DEVCONF_ACCEPT_RA_RTR_PREF) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_RTR_PREF) && HAVE_DECL_DEVCONF_ACCEPT_RA_RTR_PREF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_RTR_PREF) == (19), "DEVCONF_ACCEPT_RA_RTR_PREF != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_RTR_PREF 19
+#endif
+#if defined(DEVCONF_RTR_PROBE_INTERVAL) || (defined(HAVE_DECL_DEVCONF_RTR_PROBE_INTERVAL) && HAVE_DECL_DEVCONF_RTR_PROBE_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_RTR_PROBE_INTERVAL) == (20), "DEVCONF_RTR_PROBE_INTERVAL != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_RTR_PROBE_INTERVAL 20
+#endif
+#if defined(DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN) && HAVE_DECL_DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN) == (21), "DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN 21
+#endif
+#if defined(DEVCONF_PROXY_NDP) || (defined(HAVE_DECL_DEVCONF_PROXY_NDP) && HAVE_DECL_DEVCONF_PROXY_NDP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_PROXY_NDP) == (22), "DEVCONF_PROXY_NDP != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_PROXY_NDP 22
+#endif
+#if defined(DEVCONF_OPTIMISTIC_DAD) || (defined(HAVE_DECL_DEVCONF_OPTIMISTIC_DAD) && HAVE_DECL_DEVCONF_OPTIMISTIC_DAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_OPTIMISTIC_DAD) == (23), "DEVCONF_OPTIMISTIC_DAD != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_OPTIMISTIC_DAD 23
+#endif
+#if defined(DEVCONF_ACCEPT_SOURCE_ROUTE) || (defined(HAVE_DECL_DEVCONF_ACCEPT_SOURCE_ROUTE) && HAVE_DECL_DEVCONF_ACCEPT_SOURCE_ROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_SOURCE_ROUTE) == (24), "DEVCONF_ACCEPT_SOURCE_ROUTE != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_SOURCE_ROUTE 24
+#endif
+#if defined(DEVCONF_MC_FORWARDING) || (defined(HAVE_DECL_DEVCONF_MC_FORWARDING) && HAVE_DECL_DEVCONF_MC_FORWARDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_MC_FORWARDING) == (25), "DEVCONF_MC_FORWARDING != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_MC_FORWARDING 25
+#endif
+#if defined(DEVCONF_DISABLE_IPV6) || (defined(HAVE_DECL_DEVCONF_DISABLE_IPV6) && HAVE_DECL_DEVCONF_DISABLE_IPV6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_DISABLE_IPV6) == (26), "DEVCONF_DISABLE_IPV6 != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_DISABLE_IPV6 26
+#endif
+#if defined(DEVCONF_ACCEPT_DAD) || (defined(HAVE_DECL_DEVCONF_ACCEPT_DAD) && HAVE_DECL_DEVCONF_ACCEPT_DAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_DAD) == (27), "DEVCONF_ACCEPT_DAD != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_DAD 27
+#endif
+#if defined(DEVCONF_FORCE_TLLAO) || (defined(HAVE_DECL_DEVCONF_FORCE_TLLAO) && HAVE_DECL_DEVCONF_FORCE_TLLAO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_FORCE_TLLAO) == (28), "DEVCONF_FORCE_TLLAO != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_FORCE_TLLAO 28
+#endif
+#if defined(DEVCONF_NDISC_NOTIFY) || (defined(HAVE_DECL_DEVCONF_NDISC_NOTIFY) && HAVE_DECL_DEVCONF_NDISC_NOTIFY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_NDISC_NOTIFY) == (29), "DEVCONF_NDISC_NOTIFY != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_NDISC_NOTIFY 29
+#endif
+#if defined(DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL) || (defined(HAVE_DECL_DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL) && HAVE_DECL_DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL) == (30), "DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL 30
+#endif
+#if defined(DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL) || (defined(HAVE_DECL_DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL) && HAVE_DECL_DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL) == (31), "DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL 31
+#endif
+#if defined(DEVCONF_SUPPRESS_FRAG_NDISC) || (defined(HAVE_DECL_DEVCONF_SUPPRESS_FRAG_NDISC) && HAVE_DECL_DEVCONF_SUPPRESS_FRAG_NDISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_SUPPRESS_FRAG_NDISC) == (32), "DEVCONF_SUPPRESS_FRAG_NDISC != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_SUPPRESS_FRAG_NDISC 32
+#endif
+#if defined(DEVCONF_ACCEPT_RA_FROM_LOCAL) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_FROM_LOCAL) && HAVE_DECL_DEVCONF_ACCEPT_RA_FROM_LOCAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_FROM_LOCAL) == (33), "DEVCONF_ACCEPT_RA_FROM_LOCAL != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_FROM_LOCAL 33
+#endif
+#if defined(DEVCONF_USE_OPTIMISTIC) || (defined(HAVE_DECL_DEVCONF_USE_OPTIMISTIC) && HAVE_DECL_DEVCONF_USE_OPTIMISTIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_USE_OPTIMISTIC) == (34), "DEVCONF_USE_OPTIMISTIC != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_USE_OPTIMISTIC 34
+#endif
+#if defined(DEVCONF_ACCEPT_RA_MTU) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_MTU) && HAVE_DECL_DEVCONF_ACCEPT_RA_MTU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_MTU) == (35), "DEVCONF_ACCEPT_RA_MTU != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_MTU 35
+#endif
+#if defined(DEVCONF_STABLE_SECRET) || (defined(HAVE_DECL_DEVCONF_STABLE_SECRET) && HAVE_DECL_DEVCONF_STABLE_SECRET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_STABLE_SECRET) == (36), "DEVCONF_STABLE_SECRET != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_STABLE_SECRET 36
+#endif
+#if defined(DEVCONF_USE_OIF_ADDRS_ONLY) || (defined(HAVE_DECL_DEVCONF_USE_OIF_ADDRS_ONLY) && HAVE_DECL_DEVCONF_USE_OIF_ADDRS_ONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_USE_OIF_ADDRS_ONLY) == (37), "DEVCONF_USE_OIF_ADDRS_ONLY != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_USE_OIF_ADDRS_ONLY 37
+#endif
+#if defined(DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT) && HAVE_DECL_DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT) == (38), "DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT 38
+#endif
+#if defined(DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN) || (defined(HAVE_DECL_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN) && HAVE_DECL_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN) == (39), "DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN 39
+#endif
+#if defined(DEVCONF_DROP_UNICAST_IN_L2_MULTICAST) || (defined(HAVE_DECL_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST) && HAVE_DECL_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_DROP_UNICAST_IN_L2_MULTICAST) == (40), "DEVCONF_DROP_UNICAST_IN_L2_MULTICAST != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_DROP_UNICAST_IN_L2_MULTICAST 40
+#endif
+#if defined(DEVCONF_DROP_UNSOLICITED_NA) || (defined(HAVE_DECL_DEVCONF_DROP_UNSOLICITED_NA) && HAVE_DECL_DEVCONF_DROP_UNSOLICITED_NA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_DROP_UNSOLICITED_NA) == (41), "DEVCONF_DROP_UNSOLICITED_NA != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_DROP_UNSOLICITED_NA 41
+#endif
+#if defined(DEVCONF_KEEP_ADDR_ON_DOWN) || (defined(HAVE_DECL_DEVCONF_KEEP_ADDR_ON_DOWN) && HAVE_DECL_DEVCONF_KEEP_ADDR_ON_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_KEEP_ADDR_ON_DOWN) == (42), "DEVCONF_KEEP_ADDR_ON_DOWN != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_KEEP_ADDR_ON_DOWN 42
+#endif
+#if defined(DEVCONF_RTR_SOLICIT_MAX_INTERVAL) || (defined(HAVE_DECL_DEVCONF_RTR_SOLICIT_MAX_INTERVAL) && HAVE_DECL_DEVCONF_RTR_SOLICIT_MAX_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_RTR_SOLICIT_MAX_INTERVAL) == (43), "DEVCONF_RTR_SOLICIT_MAX_INTERVAL != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_RTR_SOLICIT_MAX_INTERVAL 43
+#endif
+#if defined(DEVCONF_SEG6_ENABLED) || (defined(HAVE_DECL_DEVCONF_SEG6_ENABLED) && HAVE_DECL_DEVCONF_SEG6_ENABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_SEG6_ENABLED) == (44), "DEVCONF_SEG6_ENABLED != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_SEG6_ENABLED 44
+#endif
+#if defined(DEVCONF_SEG6_REQUIRE_HMAC) || (defined(HAVE_DECL_DEVCONF_SEG6_REQUIRE_HMAC) && HAVE_DECL_DEVCONF_SEG6_REQUIRE_HMAC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_SEG6_REQUIRE_HMAC) == (45), "DEVCONF_SEG6_REQUIRE_HMAC != 45");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_SEG6_REQUIRE_HMAC 45
+#endif
+#if defined(DEVCONF_ENHANCED_DAD) || (defined(HAVE_DECL_DEVCONF_ENHANCED_DAD) && HAVE_DECL_DEVCONF_ENHANCED_DAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ENHANCED_DAD) == (46), "DEVCONF_ENHANCED_DAD != 46");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ENHANCED_DAD 46
+#endif
+#if defined(DEVCONF_ADDR_GEN_MODE) || (defined(HAVE_DECL_DEVCONF_ADDR_GEN_MODE) && HAVE_DECL_DEVCONF_ADDR_GEN_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ADDR_GEN_MODE) == (47), "DEVCONF_ADDR_GEN_MODE != 47");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ADDR_GEN_MODE 47
+#endif
+#if defined(DEVCONF_DISABLE_POLICY) || (defined(HAVE_DECL_DEVCONF_DISABLE_POLICY) && HAVE_DECL_DEVCONF_DISABLE_POLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_DISABLE_POLICY) == (48), "DEVCONF_DISABLE_POLICY != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_DISABLE_POLICY 48
+#endif
+#if defined(DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN) || (defined(HAVE_DECL_DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN) && HAVE_DECL_DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN) == (49), "DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN != 49");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN 49
+#endif
+#if defined(DEVCONF_NDISC_TCLASS) || (defined(HAVE_DECL_DEVCONF_NDISC_TCLASS) && HAVE_DECL_DEVCONF_NDISC_TCLASS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DEVCONF_NDISC_TCLASS) == (50), "DEVCONF_NDISC_TCLASS != 50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DEVCONF_NDISC_TCLASS 50
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat inet6_devconf_indices in mpers mode
+
+# else
+
+static
+const struct xlat inet6_devconf_indices[] = {
+ [DEVCONF_FORWARDING] = XLAT(DEVCONF_FORWARDING),
+ [DEVCONF_HOPLIMIT] = XLAT(DEVCONF_HOPLIMIT),
+ [DEVCONF_MTU6] = XLAT(DEVCONF_MTU6),
+ [DEVCONF_ACCEPT_RA] = XLAT(DEVCONF_ACCEPT_RA),
+ [DEVCONF_ACCEPT_REDIRECTS] = XLAT(DEVCONF_ACCEPT_REDIRECTS),
+ [DEVCONF_AUTOCONF] = XLAT(DEVCONF_AUTOCONF),
+ [DEVCONF_DAD_TRANSMITS] = XLAT(DEVCONF_DAD_TRANSMITS),
+ [DEVCONF_RTR_SOLICITS] = XLAT(DEVCONF_RTR_SOLICITS),
+ [DEVCONF_RTR_SOLICIT_INTERVAL] = XLAT(DEVCONF_RTR_SOLICIT_INTERVAL),
+ [DEVCONF_RTR_SOLICIT_DELAY] = XLAT(DEVCONF_RTR_SOLICIT_DELAY),
+ [DEVCONF_USE_TEMPADDR] = XLAT(DEVCONF_USE_TEMPADDR),
+ [DEVCONF_TEMP_VALID_LFT] = XLAT(DEVCONF_TEMP_VALID_LFT),
+ [DEVCONF_TEMP_PREFERED_LFT] = XLAT(DEVCONF_TEMP_PREFERED_LFT),
+ [DEVCONF_REGEN_MAX_RETRY] = XLAT(DEVCONF_REGEN_MAX_RETRY),
+ [DEVCONF_MAX_DESYNC_FACTOR] = XLAT(DEVCONF_MAX_DESYNC_FACTOR),
+ [DEVCONF_MAX_ADDRESSES] = XLAT(DEVCONF_MAX_ADDRESSES),
+ [DEVCONF_FORCE_MLD_VERSION] = XLAT(DEVCONF_FORCE_MLD_VERSION),
+ [DEVCONF_ACCEPT_RA_DEFRTR] = XLAT(DEVCONF_ACCEPT_RA_DEFRTR),
+ [DEVCONF_ACCEPT_RA_PINFO] = XLAT(DEVCONF_ACCEPT_RA_PINFO),
+ [DEVCONF_ACCEPT_RA_RTR_PREF] = XLAT(DEVCONF_ACCEPT_RA_RTR_PREF),
+ [DEVCONF_RTR_PROBE_INTERVAL] = XLAT(DEVCONF_RTR_PROBE_INTERVAL),
+ [DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN] = XLAT(DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN),
+ [DEVCONF_PROXY_NDP] = XLAT(DEVCONF_PROXY_NDP),
+ [DEVCONF_OPTIMISTIC_DAD] = XLAT(DEVCONF_OPTIMISTIC_DAD),
+ [DEVCONF_ACCEPT_SOURCE_ROUTE] = XLAT(DEVCONF_ACCEPT_SOURCE_ROUTE),
+ [DEVCONF_MC_FORWARDING] = XLAT(DEVCONF_MC_FORWARDING),
+ [DEVCONF_DISABLE_IPV6] = XLAT(DEVCONF_DISABLE_IPV6),
+ [DEVCONF_ACCEPT_DAD] = XLAT(DEVCONF_ACCEPT_DAD),
+ [DEVCONF_FORCE_TLLAO] = XLAT(DEVCONF_FORCE_TLLAO),
+ [DEVCONF_NDISC_NOTIFY] = XLAT(DEVCONF_NDISC_NOTIFY),
+ [DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL] = XLAT(DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL),
+ [DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL] = XLAT(DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL),
+ [DEVCONF_SUPPRESS_FRAG_NDISC] = XLAT(DEVCONF_SUPPRESS_FRAG_NDISC),
+ [DEVCONF_ACCEPT_RA_FROM_LOCAL] = XLAT(DEVCONF_ACCEPT_RA_FROM_LOCAL),
+ [DEVCONF_USE_OPTIMISTIC] = XLAT(DEVCONF_USE_OPTIMISTIC),
+ [DEVCONF_ACCEPT_RA_MTU] = XLAT(DEVCONF_ACCEPT_RA_MTU),
+ [DEVCONF_STABLE_SECRET] = XLAT(DEVCONF_STABLE_SECRET),
+ [DEVCONF_USE_OIF_ADDRS_ONLY] = XLAT(DEVCONF_USE_OIF_ADDRS_ONLY),
+ [DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT] = XLAT(DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT),
+ [DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN] = XLAT(DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN),
+ [DEVCONF_DROP_UNICAST_IN_L2_MULTICAST] = XLAT(DEVCONF_DROP_UNICAST_IN_L2_MULTICAST),
+ [DEVCONF_DROP_UNSOLICITED_NA] = XLAT(DEVCONF_DROP_UNSOLICITED_NA),
+ [DEVCONF_KEEP_ADDR_ON_DOWN] = XLAT(DEVCONF_KEEP_ADDR_ON_DOWN),
+ [DEVCONF_RTR_SOLICIT_MAX_INTERVAL] = XLAT(DEVCONF_RTR_SOLICIT_MAX_INTERVAL),
+ [DEVCONF_SEG6_ENABLED] = XLAT(DEVCONF_SEG6_ENABLED),
+ [DEVCONF_SEG6_REQUIRE_HMAC] = XLAT(DEVCONF_SEG6_REQUIRE_HMAC),
+ [DEVCONF_ENHANCED_DAD] = XLAT(DEVCONF_ENHANCED_DAD),
+ [DEVCONF_ADDR_GEN_MODE] = XLAT(DEVCONF_ADDR_GEN_MODE),
+ [DEVCONF_DISABLE_POLICY] = XLAT(DEVCONF_DISABLE_POLICY),
+ [DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN] = XLAT(DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN),
+ [DEVCONF_NDISC_TCLASS] = XLAT(DEVCONF_NDISC_TCLASS),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet6_devconf_indices.in b/xlat/inet6_devconf_indices.in
new file mode 100644
index 0000000..89efe7f
--- /dev/null
+++ b/xlat/inet6_devconf_indices.in
@@ -0,0 +1,52 @@
+#value_indexed
+DEVCONF_FORWARDING 0
+DEVCONF_HOPLIMIT 1
+DEVCONF_MTU6 2
+DEVCONF_ACCEPT_RA 3
+DEVCONF_ACCEPT_REDIRECTS 4
+DEVCONF_AUTOCONF 5
+DEVCONF_DAD_TRANSMITS 6
+DEVCONF_RTR_SOLICITS 7
+DEVCONF_RTR_SOLICIT_INTERVAL 8
+DEVCONF_RTR_SOLICIT_DELAY 9
+DEVCONF_USE_TEMPADDR 10
+DEVCONF_TEMP_VALID_LFT 11
+DEVCONF_TEMP_PREFERED_LFT 12
+DEVCONF_REGEN_MAX_RETRY 13
+DEVCONF_MAX_DESYNC_FACTOR 14
+DEVCONF_MAX_ADDRESSES 15
+DEVCONF_FORCE_MLD_VERSION 16
+DEVCONF_ACCEPT_RA_DEFRTR 17
+DEVCONF_ACCEPT_RA_PINFO 18
+DEVCONF_ACCEPT_RA_RTR_PREF 19
+DEVCONF_RTR_PROBE_INTERVAL 20
+DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN 21
+DEVCONF_PROXY_NDP 22
+DEVCONF_OPTIMISTIC_DAD 23
+DEVCONF_ACCEPT_SOURCE_ROUTE 24
+DEVCONF_MC_FORWARDING 25
+DEVCONF_DISABLE_IPV6 26
+DEVCONF_ACCEPT_DAD 27
+DEVCONF_FORCE_TLLAO 28
+DEVCONF_NDISC_NOTIFY 29
+DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL 30
+DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL 31
+DEVCONF_SUPPRESS_FRAG_NDISC 32
+DEVCONF_ACCEPT_RA_FROM_LOCAL 33
+DEVCONF_USE_OPTIMISTIC 34
+DEVCONF_ACCEPT_RA_MTU 35
+DEVCONF_STABLE_SECRET 36
+DEVCONF_USE_OIF_ADDRS_ONLY 37
+DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT 38
+DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN 39
+DEVCONF_DROP_UNICAST_IN_L2_MULTICAST 40
+DEVCONF_DROP_UNSOLICITED_NA 41
+DEVCONF_KEEP_ADDR_ON_DOWN 42
+DEVCONF_RTR_SOLICIT_MAX_INTERVAL 43
+DEVCONF_SEG6_ENABLED 44
+DEVCONF_SEG6_REQUIRE_HMAC 45
+DEVCONF_ENHANCED_DAD 46
+DEVCONF_ADDR_GEN_MODE 47
+DEVCONF_DISABLE_POLICY 48
+DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN 49
+DEVCONF_NDISC_TCLASS 50
diff --git a/xlat/inet6_if_flags.h b/xlat/inet6_if_flags.h
new file mode 100644
index 0000000..74ba7d1
--- /dev/null
+++ b/xlat/inet6_if_flags.h
@@ -0,0 +1,63 @@
+/* Generated by ./xlat/gen.sh from ./xlat/inet6_if_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IF_RS_SENT) || (defined(HAVE_DECL_IF_RS_SENT) && HAVE_DECL_IF_RS_SENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IF_RS_SENT) == (0x10), "IF_RS_SENT != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IF_RS_SENT 0x10
+#endif
+#if defined(IF_RA_RCVD) || (defined(HAVE_DECL_IF_RA_RCVD) && HAVE_DECL_IF_RA_RCVD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IF_RA_RCVD) == (0x20), "IF_RA_RCVD != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IF_RA_RCVD 0x20
+#endif
+#if defined(IF_RA_MANAGED) || (defined(HAVE_DECL_IF_RA_MANAGED) && HAVE_DECL_IF_RA_MANAGED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IF_RA_MANAGED) == (0x40), "IF_RA_MANAGED != 0x40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IF_RA_MANAGED 0x40
+#endif
+#if defined(IF_RA_OTHERCONF) || (defined(HAVE_DECL_IF_RA_OTHERCONF) && HAVE_DECL_IF_RA_OTHERCONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IF_RA_OTHERCONF) == (0x80), "IF_RA_OTHERCONF != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IF_RA_OTHERCONF 0x80
+#endif
+#if defined(IF_READY) || (defined(HAVE_DECL_IF_READY) && HAVE_DECL_IF_READY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IF_READY) == (0x80000000), "IF_READY != 0x80000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IF_READY 0x80000000
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat inet6_if_flags in mpers mode
+
+# else
+
+static
+const struct xlat inet6_if_flags[] = {
+
+ XLAT(IF_RS_SENT),
+ XLAT(IF_RA_RCVD),
+ XLAT(IF_RA_MANAGED),
+ XLAT(IF_RA_OTHERCONF),
+ XLAT(IF_READY),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet6_if_flags.in b/xlat/inet6_if_flags.in
new file mode 100644
index 0000000..befd223
--- /dev/null
+++ b/xlat/inet6_if_flags.in
@@ -0,0 +1,6 @@
+/* sort -k2,2g */
+IF_RS_SENT 0x10
+IF_RA_RCVD 0x20
+IF_RA_MANAGED 0x40
+IF_RA_OTHERCONF 0x80
+IF_READY 0x80000000
diff --git a/xlat/inet_devconf_indices.h b/xlat/inet_devconf_indices.h
new file mode 100644
index 0000000..ce00a54
--- /dev/null
+++ b/xlat/inet_devconf_indices.h
@@ -0,0 +1,271 @@
+/* Generated by ./xlat/gen.sh from ./xlat/inet_devconf_indices.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPV4_DEVCONF_FORWARDING) || (defined(HAVE_DECL_IPV4_DEVCONF_FORWARDING) && HAVE_DECL_IPV4_DEVCONF_FORWARDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_FORWARDING) == (1), "IPV4_DEVCONF_FORWARDING != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_FORWARDING 1
+#endif
+#if defined(IPV4_DEVCONF_MC_FORWARDING) || (defined(HAVE_DECL_IPV4_DEVCONF_MC_FORWARDING) && HAVE_DECL_IPV4_DEVCONF_MC_FORWARDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_MC_FORWARDING) == (2), "IPV4_DEVCONF_MC_FORWARDING != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_MC_FORWARDING 2
+#endif
+#if defined(IPV4_DEVCONF_PROXY_ARP) || (defined(HAVE_DECL_IPV4_DEVCONF_PROXY_ARP) && HAVE_DECL_IPV4_DEVCONF_PROXY_ARP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_PROXY_ARP) == (3), "IPV4_DEVCONF_PROXY_ARP != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_PROXY_ARP 3
+#endif
+#if defined(IPV4_DEVCONF_ACCEPT_REDIRECTS) || (defined(HAVE_DECL_IPV4_DEVCONF_ACCEPT_REDIRECTS) && HAVE_DECL_IPV4_DEVCONF_ACCEPT_REDIRECTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ACCEPT_REDIRECTS) == (4), "IPV4_DEVCONF_ACCEPT_REDIRECTS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ACCEPT_REDIRECTS 4
+#endif
+#if defined(IPV4_DEVCONF_SECURE_REDIRECTS) || (defined(HAVE_DECL_IPV4_DEVCONF_SECURE_REDIRECTS) && HAVE_DECL_IPV4_DEVCONF_SECURE_REDIRECTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_SECURE_REDIRECTS) == (5), "IPV4_DEVCONF_SECURE_REDIRECTS != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_SECURE_REDIRECTS 5
+#endif
+#if defined(IPV4_DEVCONF_SEND_REDIRECTS) || (defined(HAVE_DECL_IPV4_DEVCONF_SEND_REDIRECTS) && HAVE_DECL_IPV4_DEVCONF_SEND_REDIRECTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_SEND_REDIRECTS) == (6), "IPV4_DEVCONF_SEND_REDIRECTS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_SEND_REDIRECTS 6
+#endif
+#if defined(IPV4_DEVCONF_SHARED_MEDIA) || (defined(HAVE_DECL_IPV4_DEVCONF_SHARED_MEDIA) && HAVE_DECL_IPV4_DEVCONF_SHARED_MEDIA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_SHARED_MEDIA) == (7), "IPV4_DEVCONF_SHARED_MEDIA != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_SHARED_MEDIA 7
+#endif
+#if defined(IPV4_DEVCONF_RP_FILTER) || (defined(HAVE_DECL_IPV4_DEVCONF_RP_FILTER) && HAVE_DECL_IPV4_DEVCONF_RP_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_RP_FILTER) == (8), "IPV4_DEVCONF_RP_FILTER != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_RP_FILTER 8
+#endif
+#if defined(IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE) || (defined(HAVE_DECL_IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE) && HAVE_DECL_IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE) == (9), "IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE 9
+#endif
+#if defined(IPV4_DEVCONF_BOOTP_RELAY) || (defined(HAVE_DECL_IPV4_DEVCONF_BOOTP_RELAY) && HAVE_DECL_IPV4_DEVCONF_BOOTP_RELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_BOOTP_RELAY) == (10), "IPV4_DEVCONF_BOOTP_RELAY != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_BOOTP_RELAY 10
+#endif
+#if defined(IPV4_DEVCONF_LOG_MARTIANS) || (defined(HAVE_DECL_IPV4_DEVCONF_LOG_MARTIANS) && HAVE_DECL_IPV4_DEVCONF_LOG_MARTIANS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_LOG_MARTIANS) == (11), "IPV4_DEVCONF_LOG_MARTIANS != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_LOG_MARTIANS 11
+#endif
+#if defined(IPV4_DEVCONF_TAG) || (defined(HAVE_DECL_IPV4_DEVCONF_TAG) && HAVE_DECL_IPV4_DEVCONF_TAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_TAG) == (12), "IPV4_DEVCONF_TAG != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_TAG 12
+#endif
+#if defined(IPV4_DEVCONF_ARPFILTER) || (defined(HAVE_DECL_IPV4_DEVCONF_ARPFILTER) && HAVE_DECL_IPV4_DEVCONF_ARPFILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ARPFILTER) == (13), "IPV4_DEVCONF_ARPFILTER != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ARPFILTER 13
+#endif
+#if defined(IPV4_DEVCONF_MEDIUM_ID) || (defined(HAVE_DECL_IPV4_DEVCONF_MEDIUM_ID) && HAVE_DECL_IPV4_DEVCONF_MEDIUM_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_MEDIUM_ID) == (14), "IPV4_DEVCONF_MEDIUM_ID != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_MEDIUM_ID 14
+#endif
+#if defined(IPV4_DEVCONF_NOXFRM) || (defined(HAVE_DECL_IPV4_DEVCONF_NOXFRM) && HAVE_DECL_IPV4_DEVCONF_NOXFRM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_NOXFRM) == (15), "IPV4_DEVCONF_NOXFRM != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_NOXFRM 15
+#endif
+#if defined(IPV4_DEVCONF_NOPOLICY) || (defined(HAVE_DECL_IPV4_DEVCONF_NOPOLICY) && HAVE_DECL_IPV4_DEVCONF_NOPOLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_NOPOLICY) == (16), "IPV4_DEVCONF_NOPOLICY != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_NOPOLICY 16
+#endif
+#if defined(IPV4_DEVCONF_FORCE_IGMP_VERSION) || (defined(HAVE_DECL_IPV4_DEVCONF_FORCE_IGMP_VERSION) && HAVE_DECL_IPV4_DEVCONF_FORCE_IGMP_VERSION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_FORCE_IGMP_VERSION) == (17), "IPV4_DEVCONF_FORCE_IGMP_VERSION != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_FORCE_IGMP_VERSION 17
+#endif
+#if defined(IPV4_DEVCONF_ARP_ANNOUNCE) || (defined(HAVE_DECL_IPV4_DEVCONF_ARP_ANNOUNCE) && HAVE_DECL_IPV4_DEVCONF_ARP_ANNOUNCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ARP_ANNOUNCE) == (18), "IPV4_DEVCONF_ARP_ANNOUNCE != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ARP_ANNOUNCE 18
+#endif
+#if defined(IPV4_DEVCONF_ARP_IGNORE) || (defined(HAVE_DECL_IPV4_DEVCONF_ARP_IGNORE) && HAVE_DECL_IPV4_DEVCONF_ARP_IGNORE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ARP_IGNORE) == (19), "IPV4_DEVCONF_ARP_IGNORE != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ARP_IGNORE 19
+#endif
+#if defined(IPV4_DEVCONF_PROMOTE_SECONDARIES) || (defined(HAVE_DECL_IPV4_DEVCONF_PROMOTE_SECONDARIES) && HAVE_DECL_IPV4_DEVCONF_PROMOTE_SECONDARIES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_PROMOTE_SECONDARIES) == (20), "IPV4_DEVCONF_PROMOTE_SECONDARIES != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_PROMOTE_SECONDARIES 20
+#endif
+#if defined(IPV4_DEVCONF_ARP_ACCEPT) || (defined(HAVE_DECL_IPV4_DEVCONF_ARP_ACCEPT) && HAVE_DECL_IPV4_DEVCONF_ARP_ACCEPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ARP_ACCEPT) == (21), "IPV4_DEVCONF_ARP_ACCEPT != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ARP_ACCEPT 21
+#endif
+#if defined(IPV4_DEVCONF_ARP_NOTIFY) || (defined(HAVE_DECL_IPV4_DEVCONF_ARP_NOTIFY) && HAVE_DECL_IPV4_DEVCONF_ARP_NOTIFY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ARP_NOTIFY) == (22), "IPV4_DEVCONF_ARP_NOTIFY != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ARP_NOTIFY 22
+#endif
+#if defined(IPV4_DEVCONF_ACCEPT_LOCAL) || (defined(HAVE_DECL_IPV4_DEVCONF_ACCEPT_LOCAL) && HAVE_DECL_IPV4_DEVCONF_ACCEPT_LOCAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ACCEPT_LOCAL) == (23), "IPV4_DEVCONF_ACCEPT_LOCAL != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ACCEPT_LOCAL 23
+#endif
+#if defined(IPV4_DEVCONF_SRC_VMARK) || (defined(HAVE_DECL_IPV4_DEVCONF_SRC_VMARK) && HAVE_DECL_IPV4_DEVCONF_SRC_VMARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_SRC_VMARK) == (24), "IPV4_DEVCONF_SRC_VMARK != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_SRC_VMARK 24
+#endif
+#if defined(IPV4_DEVCONF_PROXY_ARP_PVLAN) || (defined(HAVE_DECL_IPV4_DEVCONF_PROXY_ARP_PVLAN) && HAVE_DECL_IPV4_DEVCONF_PROXY_ARP_PVLAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_PROXY_ARP_PVLAN) == (25), "IPV4_DEVCONF_PROXY_ARP_PVLAN != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_PROXY_ARP_PVLAN 25
+#endif
+#if defined(IPV4_DEVCONF_ROUTE_LOCALNET) || (defined(HAVE_DECL_IPV4_DEVCONF_ROUTE_LOCALNET) && HAVE_DECL_IPV4_DEVCONF_ROUTE_LOCALNET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_ROUTE_LOCALNET) == (26), "IPV4_DEVCONF_ROUTE_LOCALNET != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_ROUTE_LOCALNET 26
+#endif
+#if defined(IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL) || (defined(HAVE_DECL_IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL) && HAVE_DECL_IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL) == (27), "IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL 27
+#endif
+#if defined(IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL) || (defined(HAVE_DECL_IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL) && HAVE_DECL_IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL) == (28), "IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL 28
+#endif
+#if defined(IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN) || (defined(HAVE_DECL_IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN) && HAVE_DECL_IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN) == (29), "IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN 29
+#endif
+#if defined(IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST) || (defined(HAVE_DECL_IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST) && HAVE_DECL_IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST) == (30), "IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST 30
+#endif
+#if defined(IPV4_DEVCONF_DROP_GRATUITOUS_ARP) || (defined(HAVE_DECL_IPV4_DEVCONF_DROP_GRATUITOUS_ARP) && HAVE_DECL_IPV4_DEVCONF_DROP_GRATUITOUS_ARP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPV4_DEVCONF_DROP_GRATUITOUS_ARP) == (31), "IPV4_DEVCONF_DROP_GRATUITOUS_ARP != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPV4_DEVCONF_DROP_GRATUITOUS_ARP 31
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat inet_devconf_indices in mpers mode
+
+# else
+
+static
+const struct xlat inet_devconf_indices[] = {
+
+ [IPV4_DEVCONF_FORWARDING-1] = XLAT(IPV4_DEVCONF_FORWARDING-1),
+ [IPV4_DEVCONF_MC_FORWARDING-1] = XLAT(IPV4_DEVCONF_MC_FORWARDING-1),
+ [IPV4_DEVCONF_PROXY_ARP-1] = XLAT(IPV4_DEVCONF_PROXY_ARP-1),
+ [IPV4_DEVCONF_ACCEPT_REDIRECTS-1] = XLAT(IPV4_DEVCONF_ACCEPT_REDIRECTS-1),
+ [IPV4_DEVCONF_SECURE_REDIRECTS-1] = XLAT(IPV4_DEVCONF_SECURE_REDIRECTS-1),
+ [IPV4_DEVCONF_SEND_REDIRECTS-1] = XLAT(IPV4_DEVCONF_SEND_REDIRECTS-1),
+ [IPV4_DEVCONF_SHARED_MEDIA-1] = XLAT(IPV4_DEVCONF_SHARED_MEDIA-1),
+ [IPV4_DEVCONF_RP_FILTER-1] = XLAT(IPV4_DEVCONF_RP_FILTER-1),
+ [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1] = XLAT(IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1),
+ [IPV4_DEVCONF_BOOTP_RELAY-1] = XLAT(IPV4_DEVCONF_BOOTP_RELAY-1),
+ [IPV4_DEVCONF_LOG_MARTIANS-1] = XLAT(IPV4_DEVCONF_LOG_MARTIANS-1),
+ [IPV4_DEVCONF_TAG-1] = XLAT(IPV4_DEVCONF_TAG-1),
+ [IPV4_DEVCONF_ARPFILTER-1] = XLAT(IPV4_DEVCONF_ARPFILTER-1),
+ [IPV4_DEVCONF_MEDIUM_ID-1] = XLAT(IPV4_DEVCONF_MEDIUM_ID-1),
+ [IPV4_DEVCONF_NOXFRM-1] = XLAT(IPV4_DEVCONF_NOXFRM-1),
+ [IPV4_DEVCONF_NOPOLICY-1] = XLAT(IPV4_DEVCONF_NOPOLICY-1),
+ [IPV4_DEVCONF_FORCE_IGMP_VERSION-1] = XLAT(IPV4_DEVCONF_FORCE_IGMP_VERSION-1),
+ [IPV4_DEVCONF_ARP_ANNOUNCE-1] = XLAT(IPV4_DEVCONF_ARP_ANNOUNCE-1),
+ [IPV4_DEVCONF_ARP_IGNORE-1] = XLAT(IPV4_DEVCONF_ARP_IGNORE-1),
+ [IPV4_DEVCONF_PROMOTE_SECONDARIES-1] = XLAT(IPV4_DEVCONF_PROMOTE_SECONDARIES-1),
+ [IPV4_DEVCONF_ARP_ACCEPT-1] = XLAT(IPV4_DEVCONF_ARP_ACCEPT-1),
+ [IPV4_DEVCONF_ARP_NOTIFY-1] = XLAT(IPV4_DEVCONF_ARP_NOTIFY-1),
+ [IPV4_DEVCONF_ACCEPT_LOCAL-1] = XLAT(IPV4_DEVCONF_ACCEPT_LOCAL-1),
+ [IPV4_DEVCONF_SRC_VMARK-1] = XLAT(IPV4_DEVCONF_SRC_VMARK-1),
+ [IPV4_DEVCONF_PROXY_ARP_PVLAN-1] = XLAT(IPV4_DEVCONF_PROXY_ARP_PVLAN-1),
+ [IPV4_DEVCONF_ROUTE_LOCALNET-1] = XLAT(IPV4_DEVCONF_ROUTE_LOCALNET-1),
+ [IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1] = XLAT(IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1),
+ [IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1] = XLAT(IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1),
+ [IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1] = XLAT(IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1),
+ [IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1] = XLAT(IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1),
+ [IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1] = XLAT(IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet_devconf_indices.in b/xlat/inet_devconf_indices.in
new file mode 100644
index 0000000..eabcfc5
--- /dev/null
+++ b/xlat/inet_devconf_indices.in
@@ -0,0 +1,33 @@
+#value_indexed
+/* These fallback definitions are for constants, not for expressions. */
+IPV4_DEVCONF_FORWARDING-1 1
+IPV4_DEVCONF_MC_FORWARDING-1 2
+IPV4_DEVCONF_PROXY_ARP-1 3
+IPV4_DEVCONF_ACCEPT_REDIRECTS-1 4
+IPV4_DEVCONF_SECURE_REDIRECTS-1 5
+IPV4_DEVCONF_SEND_REDIRECTS-1 6
+IPV4_DEVCONF_SHARED_MEDIA-1 7
+IPV4_DEVCONF_RP_FILTER-1 8
+IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE-1 9
+IPV4_DEVCONF_BOOTP_RELAY-1 10
+IPV4_DEVCONF_LOG_MARTIANS-1 11
+IPV4_DEVCONF_TAG-1 12
+IPV4_DEVCONF_ARPFILTER-1 13
+IPV4_DEVCONF_MEDIUM_ID-1 14
+IPV4_DEVCONF_NOXFRM-1 15
+IPV4_DEVCONF_NOPOLICY-1 16
+IPV4_DEVCONF_FORCE_IGMP_VERSION-1 17
+IPV4_DEVCONF_ARP_ANNOUNCE-1 18
+IPV4_DEVCONF_ARP_IGNORE-1 19
+IPV4_DEVCONF_PROMOTE_SECONDARIES-1 20
+IPV4_DEVCONF_ARP_ACCEPT-1 21
+IPV4_DEVCONF_ARP_NOTIFY-1 22
+IPV4_DEVCONF_ACCEPT_LOCAL-1 23
+IPV4_DEVCONF_SRC_VMARK-1 24
+IPV4_DEVCONF_PROXY_ARP_PVLAN-1 25
+IPV4_DEVCONF_ROUTE_LOCALNET-1 26
+IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL-1 27
+IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL-1 28
+IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN-1 29
+IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST-1 30
+IPV4_DEVCONF_DROP_GRATUITOUS_ARP-1 31
diff --git a/xlat/inet_diag_attrs.h b/xlat/inet_diag_attrs.h
index a483373..ebfd2ad 100644
--- a/xlat/inet_diag_attrs.h
+++ b/xlat/inet_diag_attrs.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_attrs.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat inet_diag_attrs in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat inet_diag_attrs in mpers mode
+
+# else
static
const struct xlat inet_diag_attrs[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet_diag_bytecodes.h b/xlat/inet_diag_bytecodes.h
index 21d35eb..93286db 100644
--- a/xlat/inet_diag_bytecodes.h
+++ b/xlat/inet_diag_bytecodes.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_bytecodes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat inet_diag_bytecodes in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat inet_diag_bytecodes in mpers mode
+
+# else
static
const struct xlat inet_diag_bytecodes[] = {
@@ -24,4 +30,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet_diag_extended_flags.h b/xlat/inet_diag_extended_flags.h
index 158e4e1..410b920 100644
--- a/xlat/inet_diag_extended_flags.h
+++ b/xlat/inet_diag_extended_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_extended_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat inet_diag_extended_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat inet_diag_extended_flags in mpers mode
+
+# else
static
const struct xlat inet_diag_extended_flags[] = {
@@ -28,4 +34,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet_diag_req_attrs.h b/xlat/inet_diag_req_attrs.h
index 6fc4bac..be64b3f 100644
--- a/xlat/inet_diag_req_attrs.h
+++ b/xlat/inet_diag_req_attrs.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_req_attrs.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat inet_diag_req_attrs in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat inet_diag_req_attrs in mpers mode
+
+# else
static
const struct xlat inet_diag_req_attrs[] = {
@@ -13,4 +19,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet_protocols.h b/xlat/inet_protocols.h
index 47c0c0d..81672b8 100644
--- a/xlat/inet_protocols.h
+++ b/xlat/inet_protocols.h
@@ -1,108 +1,282 @@
/* Generated by ./xlat/gen.sh from ./xlat/inet_protocols.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-const struct xlat inet_protocols[] = {
#if defined(IPPROTO_IP) || (defined(HAVE_DECL_IPPROTO_IP) && HAVE_DECL_IPPROTO_IP)
- XLAT(IPPROTO_IP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_IP) == (0), "IPPROTO_IP != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_IP 0
#endif
#if defined(IPPROTO_ICMP) || (defined(HAVE_DECL_IPPROTO_ICMP) && HAVE_DECL_IPPROTO_ICMP)
- XLAT(IPPROTO_ICMP),
-#endif
-#if defined(IPPROTO_TCP) || (defined(HAVE_DECL_IPPROTO_TCP) && HAVE_DECL_IPPROTO_TCP)
- XLAT(IPPROTO_TCP),
-#endif
-#if defined(IPPROTO_UDP) || (defined(HAVE_DECL_IPPROTO_UDP) && HAVE_DECL_IPPROTO_UDP)
- XLAT(IPPROTO_UDP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_ICMP) == (1), "IPPROTO_ICMP != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_ICMP 1
#endif
#if defined(IPPROTO_IGMP) || (defined(HAVE_DECL_IPPROTO_IGMP) && HAVE_DECL_IPPROTO_IGMP)
- XLAT(IPPROTO_IGMP),
-#endif
-#if defined(IPPROTO_GGP) || (defined(HAVE_DECL_IPPROTO_GGP) && HAVE_DECL_IPPROTO_GGP)
- XLAT(IPPROTO_GGP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_IGMP) == (2), "IPPROTO_IGMP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_IGMP 2
#endif
#if defined(IPPROTO_IPIP) || (defined(HAVE_DECL_IPPROTO_IPIP) && HAVE_DECL_IPPROTO_IPIP)
- XLAT(IPPROTO_IPIP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_IPIP) == (4), "IPPROTO_IPIP != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_IPIP 4
+#endif
+#if defined(IPPROTO_TCP) || (defined(HAVE_DECL_IPPROTO_TCP) && HAVE_DECL_IPPROTO_TCP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_TCP) == (6), "IPPROTO_TCP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_TCP 6
#endif
#if defined(IPPROTO_EGP) || (defined(HAVE_DECL_IPPROTO_EGP) && HAVE_DECL_IPPROTO_EGP)
- XLAT(IPPROTO_EGP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_EGP) == (8), "IPPROTO_EGP != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_EGP 8
#endif
#if defined(IPPROTO_PUP) || (defined(HAVE_DECL_IPPROTO_PUP) && HAVE_DECL_IPPROTO_PUP)
- XLAT(IPPROTO_PUP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_PUP) == (12), "IPPROTO_PUP != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_PUP 12
+#endif
+#if defined(IPPROTO_UDP) || (defined(HAVE_DECL_IPPROTO_UDP) && HAVE_DECL_IPPROTO_UDP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_UDP) == (17), "IPPROTO_UDP != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_UDP 17
#endif
#if defined(IPPROTO_IDP) || (defined(HAVE_DECL_IPPROTO_IDP) && HAVE_DECL_IPPROTO_IDP)
- XLAT(IPPROTO_IDP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_IDP) == (22), "IPPROTO_IDP != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_IDP 22
#endif
#if defined(IPPROTO_TP) || (defined(HAVE_DECL_IPPROTO_TP) && HAVE_DECL_IPPROTO_TP)
- XLAT(IPPROTO_TP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_TP) == (29), "IPPROTO_TP != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_TP 29
#endif
#if defined(IPPROTO_DCCP) || (defined(HAVE_DECL_IPPROTO_DCCP) && HAVE_DECL_IPPROTO_DCCP)
- XLAT(IPPROTO_DCCP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_DCCP) == (33), "IPPROTO_DCCP != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_DCCP 33
#endif
#if defined(IPPROTO_IPV6) || (defined(HAVE_DECL_IPPROTO_IPV6) && HAVE_DECL_IPPROTO_IPV6)
- XLAT(IPPROTO_IPV6),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_IPV6) == (41), "IPPROTO_IPV6 != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_IPV6 41
#endif
#if defined(IPPROTO_ROUTING) || (defined(HAVE_DECL_IPPROTO_ROUTING) && HAVE_DECL_IPPROTO_ROUTING)
- XLAT(IPPROTO_ROUTING),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_ROUTING) == (43), "IPPROTO_ROUTING != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_ROUTING 43
#endif
#if defined(IPPROTO_FRAGMENT) || (defined(HAVE_DECL_IPPROTO_FRAGMENT) && HAVE_DECL_IPPROTO_FRAGMENT)
- XLAT(IPPROTO_FRAGMENT),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_FRAGMENT) == (44), "IPPROTO_FRAGMENT != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_FRAGMENT 44
#endif
#if defined(IPPROTO_RSVP) || (defined(HAVE_DECL_IPPROTO_RSVP) && HAVE_DECL_IPPROTO_RSVP)
- XLAT(IPPROTO_RSVP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_RSVP) == (46), "IPPROTO_RSVP != 46");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_RSVP 46
#endif
#if defined(IPPROTO_GRE) || (defined(HAVE_DECL_IPPROTO_GRE) && HAVE_DECL_IPPROTO_GRE)
- XLAT(IPPROTO_GRE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_GRE) == (47), "IPPROTO_GRE != 47");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_GRE 47
#endif
#if defined(IPPROTO_ESP) || (defined(HAVE_DECL_IPPROTO_ESP) && HAVE_DECL_IPPROTO_ESP)
- XLAT(IPPROTO_ESP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_ESP) == (50), "IPPROTO_ESP != 50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_ESP 50
#endif
#if defined(IPPROTO_AH) || (defined(HAVE_DECL_IPPROTO_AH) && HAVE_DECL_IPPROTO_AH)
- XLAT(IPPROTO_AH),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_AH) == (51), "IPPROTO_AH != 51");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_AH 51
#endif
#if defined(IPPROTO_ICMPV6) || (defined(HAVE_DECL_IPPROTO_ICMPV6) && HAVE_DECL_IPPROTO_ICMPV6)
- XLAT(IPPROTO_ICMPV6),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_ICMPV6) == (58), "IPPROTO_ICMPV6 != 58");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_ICMPV6 58
#endif
#if defined(IPPROTO_NONE) || (defined(HAVE_DECL_IPPROTO_NONE) && HAVE_DECL_IPPROTO_NONE)
- XLAT(IPPROTO_NONE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_NONE) == (59), "IPPROTO_NONE != 59");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_NONE 59
#endif
#if defined(IPPROTO_DSTOPTS) || (defined(HAVE_DECL_IPPROTO_DSTOPTS) && HAVE_DECL_IPPROTO_DSTOPTS)
- XLAT(IPPROTO_DSTOPTS),
-#endif
-#if defined(IPPROTO_HELLO) || (defined(HAVE_DECL_IPPROTO_HELLO) && HAVE_DECL_IPPROTO_HELLO)
- XLAT(IPPROTO_HELLO),
-#endif
-#if defined(IPPROTO_ND) || (defined(HAVE_DECL_IPPROTO_ND) && HAVE_DECL_IPPROTO_ND)
- XLAT(IPPROTO_ND),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_DSTOPTS) == (60), "IPPROTO_DSTOPTS != 60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_DSTOPTS 60
#endif
#if defined(IPPROTO_MTP) || (defined(HAVE_DECL_IPPROTO_MTP) && HAVE_DECL_IPPROTO_MTP)
- XLAT(IPPROTO_MTP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_MTP) == (92), "IPPROTO_MTP != 92");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_MTP 92
+#endif
+#if defined(IPPROTO_BEETPH) || (defined(HAVE_DECL_IPPROTO_BEETPH) && HAVE_DECL_IPPROTO_BEETPH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_BEETPH) == (94), "IPPROTO_BEETPH != 94");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_BEETPH 94
#endif
#if defined(IPPROTO_ENCAP) || (defined(HAVE_DECL_IPPROTO_ENCAP) && HAVE_DECL_IPPROTO_ENCAP)
- XLAT(IPPROTO_ENCAP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_ENCAP) == (98), "IPPROTO_ENCAP != 98");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_ENCAP 98
#endif
#if defined(IPPROTO_PIM) || (defined(HAVE_DECL_IPPROTO_PIM) && HAVE_DECL_IPPROTO_PIM)
- XLAT(IPPROTO_PIM),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_PIM) == (103), "IPPROTO_PIM != 103");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_PIM 103
#endif
#if defined(IPPROTO_COMP) || (defined(HAVE_DECL_IPPROTO_COMP) && HAVE_DECL_IPPROTO_COMP)
- XLAT(IPPROTO_COMP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_COMP) == (108), "IPPROTO_COMP != 108");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_COMP 108
+#endif
+#if defined(IPPROTO_L2TP) || (defined(HAVE_DECL_IPPROTO_L2TP) && HAVE_DECL_IPPROTO_L2TP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_L2TP) == (115), "IPPROTO_L2TP != 115");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_L2TP 115
#endif
#if defined(IPPROTO_SCTP) || (defined(HAVE_DECL_IPPROTO_SCTP) && HAVE_DECL_IPPROTO_SCTP)
- XLAT(IPPROTO_SCTP),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_SCTP) == (132), "IPPROTO_SCTP != 132");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_SCTP 132
+#endif
+#if defined(IPPROTO_MH) || (defined(HAVE_DECL_IPPROTO_MH) && HAVE_DECL_IPPROTO_MH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_MH) == (135), "IPPROTO_MH != 135");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_MH 135
#endif
#if defined(IPPROTO_UDPLITE) || (defined(HAVE_DECL_IPPROTO_UDPLITE) && HAVE_DECL_IPPROTO_UDPLITE)
- XLAT(IPPROTO_UDPLITE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_UDPLITE) == (136), "IPPROTO_UDPLITE != 136");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_UDPLITE 136
#endif
#if defined(IPPROTO_MPLS) || (defined(HAVE_DECL_IPPROTO_MPLS) && HAVE_DECL_IPPROTO_MPLS)
- XLAT(IPPROTO_MPLS),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_MPLS) == (137), "IPPROTO_MPLS != 137");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_MPLS 137
#endif
#if defined(IPPROTO_RAW) || (defined(HAVE_DECL_IPPROTO_RAW) && HAVE_DECL_IPPROTO_RAW)
- XLAT(IPPROTO_RAW),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_RAW) == (255), "IPPROTO_RAW != 255");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_RAW 255
#endif
#if defined(IPPROTO_MAX) || (defined(HAVE_DECL_IPPROTO_MAX) && HAVE_DECL_IPPROTO_MAX)
- XLAT(IPPROTO_MAX),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPPROTO_MAX) == (256), "IPPROTO_MAX != 256");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPPROTO_MAX 256
#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
+
+const struct xlat inet_protocols[] = {
+
+ XLAT(IPPROTO_IP),
+ XLAT(IPPROTO_ICMP),
+ XLAT(IPPROTO_IGMP),
+ XLAT(IPPROTO_IPIP),
+ XLAT(IPPROTO_TCP),
+ XLAT(IPPROTO_EGP),
+ XLAT(IPPROTO_PUP),
+ XLAT(IPPROTO_UDP),
+ XLAT(IPPROTO_IDP),
+ XLAT(IPPROTO_TP),
+ XLAT(IPPROTO_DCCP),
+ XLAT(IPPROTO_IPV6),
+ XLAT(IPPROTO_ROUTING),
+ XLAT(IPPROTO_FRAGMENT),
+ XLAT(IPPROTO_RSVP),
+ XLAT(IPPROTO_GRE),
+ XLAT(IPPROTO_ESP),
+ XLAT(IPPROTO_AH),
+ XLAT(IPPROTO_ICMPV6),
+ XLAT(IPPROTO_NONE),
+ XLAT(IPPROTO_DSTOPTS),
+ XLAT(IPPROTO_MTP),
+ XLAT(IPPROTO_BEETPH),
+ XLAT(IPPROTO_ENCAP),
+ XLAT(IPPROTO_PIM),
+ XLAT(IPPROTO_COMP),
+ XLAT(IPPROTO_L2TP),
+ XLAT(IPPROTO_SCTP),
+ XLAT(IPPROTO_MH),
+ XLAT(IPPROTO_UDPLITE),
+ XLAT(IPPROTO_MPLS),
+ XLAT(IPPROTO_RAW),
+ XLAT(IPPROTO_MAX),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inet_protocols.in b/xlat/inet_protocols.in
index b7e13c9..b35b428 100644
--- a/xlat/inet_protocols.in
+++ b/xlat/inet_protocols.in
@@ -1,33 +1,34 @@
-IPPROTO_IP
-IPPROTO_ICMP
-IPPROTO_TCP
-IPPROTO_UDP
-IPPROTO_IGMP
-IPPROTO_GGP
-IPPROTO_IPIP
-IPPROTO_EGP
-IPPROTO_PUP
-IPPROTO_IDP
-IPPROTO_TP
-IPPROTO_DCCP
-IPPROTO_IPV6
-IPPROTO_ROUTING
-IPPROTO_FRAGMENT
-IPPROTO_RSVP
-IPPROTO_GRE
-IPPROTO_ESP
-IPPROTO_AH
-IPPROTO_ICMPV6
-IPPROTO_NONE
-IPPROTO_DSTOPTS
-IPPROTO_HELLO
-IPPROTO_ND
-IPPROTO_MTP
-IPPROTO_ENCAP
-IPPROTO_PIM
-IPPROTO_COMP
-IPPROTO_SCTP
-IPPROTO_UDPLITE
-IPPROTO_MPLS
-IPPROTO_RAW
-IPPROTO_MAX
+/* sort -k2,2n */
+IPPROTO_IP 0
+IPPROTO_ICMP 1
+IPPROTO_IGMP 2
+IPPROTO_IPIP 4
+IPPROTO_TCP 6
+IPPROTO_EGP 8
+IPPROTO_PUP 12
+IPPROTO_UDP 17
+IPPROTO_IDP 22
+IPPROTO_TP 29
+IPPROTO_DCCP 33
+IPPROTO_IPV6 41
+IPPROTO_ROUTING 43
+IPPROTO_FRAGMENT 44
+IPPROTO_RSVP 46
+IPPROTO_GRE 47
+IPPROTO_ESP 50
+IPPROTO_AH 51
+IPPROTO_ICMPV6 58
+IPPROTO_NONE 59
+IPPROTO_DSTOPTS 60
+IPPROTO_MTP 92
+IPPROTO_BEETPH 94
+IPPROTO_ENCAP 98
+IPPROTO_PIM 103
+IPPROTO_COMP 108
+IPPROTO_L2TP 115
+IPPROTO_SCTP 132
+IPPROTO_MH 135
+IPPROTO_UDPLITE 136
+IPPROTO_MPLS 137
+IPPROTO_RAW 255
+IPPROTO_MAX 256
diff --git a/xlat/inotify_flags.h b/xlat/inotify_flags.h
index 5638f5b..1cab92d 100644
--- a/xlat/inotify_flags.h
+++ b/xlat/inotify_flags.h
@@ -1,73 +1,163 @@
/* Generated by ./xlat/gen.sh from ./xlat/inotify_flags.in; do not edit. */
-#if !(defined(IN_ACCESS) || (defined(HAVE_DECL_IN_ACCESS) && HAVE_DECL_IN_ACCESS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IN_ACCESS) || (defined(HAVE_DECL_IN_ACCESS) && HAVE_DECL_IN_ACCESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_ACCESS) == (0x00000001), "IN_ACCESS != 0x00000001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_ACCESS 0x00000001
#endif
-#if !(defined(IN_MODIFY) || (defined(HAVE_DECL_IN_MODIFY) && HAVE_DECL_IN_MODIFY))
+#if defined(IN_MODIFY) || (defined(HAVE_DECL_IN_MODIFY) && HAVE_DECL_IN_MODIFY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_MODIFY) == (0x00000002), "IN_MODIFY != 0x00000002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_MODIFY 0x00000002
#endif
-#if !(defined(IN_ATTRIB) || (defined(HAVE_DECL_IN_ATTRIB) && HAVE_DECL_IN_ATTRIB))
+#if defined(IN_ATTRIB) || (defined(HAVE_DECL_IN_ATTRIB) && HAVE_DECL_IN_ATTRIB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_ATTRIB) == (0x00000004), "IN_ATTRIB != 0x00000004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_ATTRIB 0x00000004
#endif
-#if !(defined(IN_CLOSE_WRITE) || (defined(HAVE_DECL_IN_CLOSE_WRITE) && HAVE_DECL_IN_CLOSE_WRITE))
+#if defined(IN_CLOSE_WRITE) || (defined(HAVE_DECL_IN_CLOSE_WRITE) && HAVE_DECL_IN_CLOSE_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_CLOSE_WRITE) == (0x00000008), "IN_CLOSE_WRITE != 0x00000008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_CLOSE_WRITE 0x00000008
#endif
-#if !(defined(IN_CLOSE_NOWRITE) || (defined(HAVE_DECL_IN_CLOSE_NOWRITE) && HAVE_DECL_IN_CLOSE_NOWRITE))
+#if defined(IN_CLOSE_NOWRITE) || (defined(HAVE_DECL_IN_CLOSE_NOWRITE) && HAVE_DECL_IN_CLOSE_NOWRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_CLOSE_NOWRITE) == (0x00000010), "IN_CLOSE_NOWRITE != 0x00000010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_CLOSE_NOWRITE 0x00000010
#endif
-#if !(defined(IN_OPEN) || (defined(HAVE_DECL_IN_OPEN) && HAVE_DECL_IN_OPEN))
+#if defined(IN_OPEN) || (defined(HAVE_DECL_IN_OPEN) && HAVE_DECL_IN_OPEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_OPEN) == (0x00000020), "IN_OPEN != 0x00000020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_OPEN 0x00000020
#endif
-#if !(defined(IN_MOVED_FROM) || (defined(HAVE_DECL_IN_MOVED_FROM) && HAVE_DECL_IN_MOVED_FROM))
+#if defined(IN_MOVED_FROM) || (defined(HAVE_DECL_IN_MOVED_FROM) && HAVE_DECL_IN_MOVED_FROM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_MOVED_FROM) == (0x00000040), "IN_MOVED_FROM != 0x00000040");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_MOVED_FROM 0x00000040
#endif
-#if !(defined(IN_MOVED_TO) || (defined(HAVE_DECL_IN_MOVED_TO) && HAVE_DECL_IN_MOVED_TO))
+#if defined(IN_MOVED_TO) || (defined(HAVE_DECL_IN_MOVED_TO) && HAVE_DECL_IN_MOVED_TO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_MOVED_TO) == (0x00000080), "IN_MOVED_TO != 0x00000080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_MOVED_TO 0x00000080
#endif
-#if !(defined(IN_CREATE) || (defined(HAVE_DECL_IN_CREATE) && HAVE_DECL_IN_CREATE))
+#if defined(IN_CREATE) || (defined(HAVE_DECL_IN_CREATE) && HAVE_DECL_IN_CREATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_CREATE) == (0x00000100), "IN_CREATE != 0x00000100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_CREATE 0x00000100
#endif
-#if !(defined(IN_DELETE) || (defined(HAVE_DECL_IN_DELETE) && HAVE_DECL_IN_DELETE))
+#if defined(IN_DELETE) || (defined(HAVE_DECL_IN_DELETE) && HAVE_DECL_IN_DELETE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_DELETE) == (0x00000200), "IN_DELETE != 0x00000200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_DELETE 0x00000200
#endif
-#if !(defined(IN_DELETE_SELF) || (defined(HAVE_DECL_IN_DELETE_SELF) && HAVE_DECL_IN_DELETE_SELF))
+#if defined(IN_DELETE_SELF) || (defined(HAVE_DECL_IN_DELETE_SELF) && HAVE_DECL_IN_DELETE_SELF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_DELETE_SELF) == (0x00000400), "IN_DELETE_SELF != 0x00000400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_DELETE_SELF 0x00000400
#endif
-#if !(defined(IN_MOVE_SELF) || (defined(HAVE_DECL_IN_MOVE_SELF) && HAVE_DECL_IN_MOVE_SELF))
+#if defined(IN_MOVE_SELF) || (defined(HAVE_DECL_IN_MOVE_SELF) && HAVE_DECL_IN_MOVE_SELF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_MOVE_SELF) == (0x00000800), "IN_MOVE_SELF != 0x00000800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_MOVE_SELF 0x00000800
#endif
-#if !(defined(IN_UNMOUNT) || (defined(HAVE_DECL_IN_UNMOUNT) && HAVE_DECL_IN_UNMOUNT))
+#if defined(IN_UNMOUNT) || (defined(HAVE_DECL_IN_UNMOUNT) && HAVE_DECL_IN_UNMOUNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_UNMOUNT) == (0x00002000), "IN_UNMOUNT != 0x00002000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_UNMOUNT 0x00002000
#endif
-#if !(defined(IN_Q_OVERFLOW) || (defined(HAVE_DECL_IN_Q_OVERFLOW) && HAVE_DECL_IN_Q_OVERFLOW))
+#if defined(IN_Q_OVERFLOW) || (defined(HAVE_DECL_IN_Q_OVERFLOW) && HAVE_DECL_IN_Q_OVERFLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_Q_OVERFLOW) == (0x00004000), "IN_Q_OVERFLOW != 0x00004000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_Q_OVERFLOW 0x00004000
#endif
-#if !(defined(IN_IGNORED) || (defined(HAVE_DECL_IN_IGNORED) && HAVE_DECL_IN_IGNORED))
+#if defined(IN_IGNORED) || (defined(HAVE_DECL_IN_IGNORED) && HAVE_DECL_IN_IGNORED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_IGNORED) == (0x00008000), "IN_IGNORED != 0x00008000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_IGNORED 0x00008000
#endif
-#if !(defined(IN_ONLYDIR) || (defined(HAVE_DECL_IN_ONLYDIR) && HAVE_DECL_IN_ONLYDIR))
+#if defined(IN_ONLYDIR) || (defined(HAVE_DECL_IN_ONLYDIR) && HAVE_DECL_IN_ONLYDIR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_ONLYDIR) == (0x01000000), "IN_ONLYDIR != 0x01000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_ONLYDIR 0x01000000
#endif
-#if !(defined(IN_DONT_FOLLOW) || (defined(HAVE_DECL_IN_DONT_FOLLOW) && HAVE_DECL_IN_DONT_FOLLOW))
+#if defined(IN_DONT_FOLLOW) || (defined(HAVE_DECL_IN_DONT_FOLLOW) && HAVE_DECL_IN_DONT_FOLLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_DONT_FOLLOW) == (0x02000000), "IN_DONT_FOLLOW != 0x02000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_DONT_FOLLOW 0x02000000
#endif
-#if !(defined(IN_EXCL_UNLINK) || (defined(HAVE_DECL_IN_EXCL_UNLINK) && HAVE_DECL_IN_EXCL_UNLINK))
+#if defined(IN_EXCL_UNLINK) || (defined(HAVE_DECL_IN_EXCL_UNLINK) && HAVE_DECL_IN_EXCL_UNLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_EXCL_UNLINK) == (0x04000000), "IN_EXCL_UNLINK != 0x04000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_EXCL_UNLINK 0x04000000
#endif
-#if !(defined(IN_MASK_ADD) || (defined(HAVE_DECL_IN_MASK_ADD) && HAVE_DECL_IN_MASK_ADD))
+#if defined(IN_MASK_ADD) || (defined(HAVE_DECL_IN_MASK_ADD) && HAVE_DECL_IN_MASK_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_MASK_ADD) == (0x20000000), "IN_MASK_ADD != 0x20000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_MASK_ADD 0x20000000
#endif
-#if !(defined(IN_ISDIR) || (defined(HAVE_DECL_IN_ISDIR) && HAVE_DECL_IN_ISDIR))
+#if defined(IN_ISDIR) || (defined(HAVE_DECL_IN_ISDIR) && HAVE_DECL_IN_ISDIR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_ISDIR) == (0x40000000), "IN_ISDIR != 0x40000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_ISDIR 0x40000000
#endif
-#if !(defined(IN_ONESHOT) || (defined(HAVE_DECL_IN_ONESHOT) && HAVE_DECL_IN_ONESHOT))
+#if defined(IN_ONESHOT) || (defined(HAVE_DECL_IN_ONESHOT) && HAVE_DECL_IN_ONESHOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_ONESHOT) == (0x80000000), "IN_ONESHOT != 0x80000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_ONESHOT 0x80000000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat inotify_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat inotify_flags in mpers mode
+
+# else
static
const struct xlat inotify_flags[] = {
@@ -95,4 +185,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/inotify_init_flags.h b/xlat/inotify_init_flags.h
index f413147..973a54b 100644
--- a/xlat/inotify_init_flags.h
+++ b/xlat/inotify_init_flags.h
@@ -1,18 +1,32 @@
/* Generated by ./xlat/gen.sh from ./xlat/inotify_init_flags.in; do not edit. */
-#if !(defined(IN_NONBLOCK) || (defined(HAVE_DECL_IN_NONBLOCK) && HAVE_DECL_IN_NONBLOCK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IN_NONBLOCK) || (defined(HAVE_DECL_IN_NONBLOCK) && HAVE_DECL_IN_NONBLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_NONBLOCK) == (O_NONBLOCK), "IN_NONBLOCK != O_NONBLOCK");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_NONBLOCK O_NONBLOCK
#endif
#if defined IN_CLOEXEC || defined O_CLOEXEC
-#if !(defined(IN_CLOEXEC) || (defined(HAVE_DECL_IN_CLOEXEC) && HAVE_DECL_IN_CLOEXEC))
+#if defined(IN_CLOEXEC) || (defined(HAVE_DECL_IN_CLOEXEC) && HAVE_DECL_IN_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IN_CLOEXEC) == (O_CLOEXEC), "IN_CLOEXEC != O_CLOEXEC");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IN_CLOEXEC O_CLOEXEC
#endif
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat inotify_init_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat inotify_init_flags in mpers mode
+
+# else
static
const struct xlat inotify_init_flags[] = {
@@ -23,4 +37,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ioctl_dirs.h b/xlat/ioctl_dirs.h
index 14bb3e4..d4cae21 100644
--- a/xlat/ioctl_dirs.h
+++ b/xlat/ioctl_dirs.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ioctl_dirs.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ioctl_dirs in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ioctl_dirs in mpers mode
+
+# else
static
const struct xlat ioctl_dirs[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ioprio_class.h b/xlat/ioprio_class.h
index 3e4f893..c7bfa4b 100644
--- a/xlat/ioprio_class.h
+++ b/xlat/ioprio_class.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ioprio_class.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ioprio_class in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ioprio_class in mpers mode
+
+# else
static
const struct xlat ioprio_class[] = {
@@ -15,4 +21,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ioprio_who.h b/xlat/ioprio_who.h
index b7880ca..e296fde 100644
--- a/xlat/ioprio_who.h
+++ b/xlat/ioprio_who.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ioprio_who.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ioprio_who in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ioprio_who in mpers mode
+
+# else
static
const struct xlat ioprio_who[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ip_cmsg_types.h b/xlat/ip_cmsg_types.h
index 979d295..5d714e3 100644
--- a/xlat/ip_cmsg_types.h
+++ b/xlat/ip_cmsg_types.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/ip_cmsg_types.in; do not edit. */
-#if !(defined(IP_TOS) || (defined(HAVE_DECL_IP_TOS) && HAVE_DECL_IP_TOS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IP_TOS) || (defined(HAVE_DECL_IP_TOS) && HAVE_DECL_IP_TOS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_TOS) == (1), "IP_TOS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_TOS 1
#endif
-#if !(defined(IP_TTL) || (defined(HAVE_DECL_IP_TTL) && HAVE_DECL_IP_TTL))
+#if defined(IP_TTL) || (defined(HAVE_DECL_IP_TTL) && HAVE_DECL_IP_TTL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_TTL) == (2), "IP_TTL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_TTL 2
#endif
-#if !(defined(IP_RECVOPTS) || (defined(HAVE_DECL_IP_RECVOPTS) && HAVE_DECL_IP_RECVOPTS))
+#if defined(IP_RECVOPTS) || (defined(HAVE_DECL_IP_RECVOPTS) && HAVE_DECL_IP_RECVOPTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_RECVOPTS) == (6), "IP_RECVOPTS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_RECVOPTS 6
#endif
-#if !(defined(IP_RETOPTS) || (defined(HAVE_DECL_IP_RETOPTS) && HAVE_DECL_IP_RETOPTS))
+#if defined(IP_RETOPTS) || (defined(HAVE_DECL_IP_RETOPTS) && HAVE_DECL_IP_RETOPTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_RETOPTS) == (7), "IP_RETOPTS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_RETOPTS 7
#endif
-#if !(defined(IP_PKTINFO) || (defined(HAVE_DECL_IP_PKTINFO) && HAVE_DECL_IP_PKTINFO))
+#if defined(IP_PKTINFO) || (defined(HAVE_DECL_IP_PKTINFO) && HAVE_DECL_IP_PKTINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_PKTINFO) == (8), "IP_PKTINFO != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_PKTINFO 8
#endif
-#if !(defined(IP_RECVERR) || (defined(HAVE_DECL_IP_RECVERR) && HAVE_DECL_IP_RECVERR))
+#if defined(IP_RECVERR) || (defined(HAVE_DECL_IP_RECVERR) && HAVE_DECL_IP_RECVERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_RECVERR) == (11), "IP_RECVERR != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_RECVERR 11
#endif
-#if !(defined(IP_ORIGDSTADDR) || (defined(HAVE_DECL_IP_ORIGDSTADDR) && HAVE_DECL_IP_ORIGDSTADDR))
+#if defined(IP_ORIGDSTADDR) || (defined(HAVE_DECL_IP_ORIGDSTADDR) && HAVE_DECL_IP_ORIGDSTADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_ORIGDSTADDR) == (20), "IP_ORIGDSTADDR != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_ORIGDSTADDR 20
#endif
-#if !(defined(IP_CHECKSUM) || (defined(HAVE_DECL_IP_CHECKSUM) && HAVE_DECL_IP_CHECKSUM))
+#if defined(IP_CHECKSUM) || (defined(HAVE_DECL_IP_CHECKSUM) && HAVE_DECL_IP_CHECKSUM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IP_CHECKSUM) == (23), "IP_CHECKSUM != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IP_CHECKSUM 23
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat ip_cmsg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat ip_cmsg_types in mpers mode
+
+# else
static
const struct xlat ip_cmsg_types[] = {
@@ -46,4 +84,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ip_type_of_services.h b/xlat/ip_type_of_services.h
index 9a327fa..78a451c 100644
--- a/xlat/ip_type_of_services.h
+++ b/xlat/ip_type_of_services.h
@@ -1,6 +1,12 @@
/* Generated by ./xlat/gen.sh from ./xlat/ip_type_of_services.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat ip_type_of_services[] = {
#if defined(IPTOS_LOWDELAY) || (defined(HAVE_DECL_IPTOS_LOWDELAY) && HAVE_DECL_IPTOS_LOWDELAY)
@@ -18,4 +24,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ipc_msg_flags.h b/xlat/ipc_msg_flags.h
index a37ca87..df3bd1d 100644
--- a/xlat/ipc_msg_flags.h
+++ b/xlat/ipc_msg_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ipc_msg_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ipc_msg_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ipc_msg_flags in mpers mode
+
+# else
static
const struct xlat ipc_msg_flags[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ipc_private.h b/xlat/ipc_private.h
new file mode 100644
index 0000000..d6dd0ea
--- /dev/null
+++ b/xlat/ipc_private.h
@@ -0,0 +1,25 @@
+/* Generated by ./xlat/gen.sh from ./xlat/ipc_private.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPC_PRIVATE) || (defined(HAVE_DECL_IPC_PRIVATE) && HAVE_DECL_IPC_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_PRIVATE) == (0), "IPC_PRIVATE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_PRIVATE 0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
+
+const struct xlat ipc_private[] = {
+ XLAT(IPC_PRIVATE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ipc_private.in b/xlat/ipc_private.in
new file mode 100644
index 0000000..b3b233b
--- /dev/null
+++ b/xlat/ipc_private.in
@@ -0,0 +1 @@
+IPC_PRIVATE 0
diff --git a/xlat/ipccalls.h b/xlat/ipccalls.h
index fc988e6..1079e3e 100644
--- a/xlat/ipccalls.h
+++ b/xlat/ipccalls.h
@@ -1,46 +1,100 @@
/* Generated by ./xlat/gen.sh from ./xlat/ipccalls.in; do not edit. */
-#if !(defined(SEMOP) || (defined(HAVE_DECL_SEMOP) && HAVE_DECL_SEMOP))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SEMOP) || (defined(HAVE_DECL_SEMOP) && HAVE_DECL_SEMOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEMOP) == (1), "SEMOP != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEMOP 1
#endif
-#if !(defined(SEMGET) || (defined(HAVE_DECL_SEMGET) && HAVE_DECL_SEMGET))
+#if defined(SEMGET) || (defined(HAVE_DECL_SEMGET) && HAVE_DECL_SEMGET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEMGET) == (2), "SEMGET != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEMGET 2
#endif
-#if !(defined(SEMCTL) || (defined(HAVE_DECL_SEMCTL) && HAVE_DECL_SEMCTL))
+#if defined(SEMCTL) || (defined(HAVE_DECL_SEMCTL) && HAVE_DECL_SEMCTL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEMCTL) == (3), "SEMCTL != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEMCTL 3
#endif
-#if !(defined(SEMTIMEDOP) || (defined(HAVE_DECL_SEMTIMEDOP) && HAVE_DECL_SEMTIMEDOP))
+#if defined(SEMTIMEDOP) || (defined(HAVE_DECL_SEMTIMEDOP) && HAVE_DECL_SEMTIMEDOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEMTIMEDOP) == (4), "SEMTIMEDOP != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEMTIMEDOP 4
#endif
-#if !(defined(MSGSND) || (defined(HAVE_DECL_MSGSND) && HAVE_DECL_MSGSND))
+#if defined(MSGSND) || (defined(HAVE_DECL_MSGSND) && HAVE_DECL_MSGSND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSGSND) == (11), "MSGSND != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MSGSND 11
#endif
-#if !(defined(MSGRCV) || (defined(HAVE_DECL_MSGRCV) && HAVE_DECL_MSGRCV))
+#if defined(MSGRCV) || (defined(HAVE_DECL_MSGRCV) && HAVE_DECL_MSGRCV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSGRCV) == (12), "MSGRCV != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MSGRCV 12
#endif
-#if !(defined(MSGGET) || (defined(HAVE_DECL_MSGGET) && HAVE_DECL_MSGGET))
+#if defined(MSGGET) || (defined(HAVE_DECL_MSGGET) && HAVE_DECL_MSGGET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSGGET) == (13), "MSGGET != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MSGGET 13
#endif
-#if !(defined(MSGCTL) || (defined(HAVE_DECL_MSGCTL) && HAVE_DECL_MSGCTL))
+#if defined(MSGCTL) || (defined(HAVE_DECL_MSGCTL) && HAVE_DECL_MSGCTL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSGCTL) == (14), "MSGCTL != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MSGCTL 14
#endif
-#if !(defined(SHMAT) || (defined(HAVE_DECL_SHMAT) && HAVE_DECL_SHMAT))
+#if defined(SHMAT) || (defined(HAVE_DECL_SHMAT) && HAVE_DECL_SHMAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHMAT) == (21), "SHMAT != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHMAT 21
#endif
-#if !(defined(SHMDT) || (defined(HAVE_DECL_SHMDT) && HAVE_DECL_SHMDT))
+#if defined(SHMDT) || (defined(HAVE_DECL_SHMDT) && HAVE_DECL_SHMDT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHMDT) == (22), "SHMDT != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHMDT 22
#endif
-#if !(defined(SHMGET) || (defined(HAVE_DECL_SHMGET) && HAVE_DECL_SHMGET))
+#if defined(SHMGET) || (defined(HAVE_DECL_SHMGET) && HAVE_DECL_SHMGET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHMGET) == (23), "SHMGET != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHMGET 23
#endif
-#if !(defined(SHMCTL) || (defined(HAVE_DECL_SHMCTL) && HAVE_DECL_SHMCTL))
+#if defined(SHMCTL) || (defined(HAVE_DECL_SHMCTL) && HAVE_DECL_SHMCTL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHMCTL) == (24), "SHMCTL != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHMCTL 24
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat ipccalls in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat ipccalls in mpers mode
+
+# else
static
const struct xlat ipccalls[] = {
@@ -59,4 +113,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/irda_protocols.h b/xlat/irda_protocols.h
new file mode 100644
index 0000000..6c7e9ad
--- /dev/null
+++ b/xlat/irda_protocols.h
@@ -0,0 +1,38 @@
+/* Generated by ./xlat/gen.sh from ./xlat/irda_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IRDAPROTO_UNITDATA) || (defined(HAVE_DECL_IRDAPROTO_UNITDATA) && HAVE_DECL_IRDAPROTO_UNITDATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRDAPROTO_UNITDATA) == (0), "IRDAPROTO_UNITDATA != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRDAPROTO_UNITDATA 0
+#endif
+#if defined(IRDAPROTO_ULTRA) || (defined(HAVE_DECL_IRDAPROTO_ULTRA) && HAVE_DECL_IRDAPROTO_ULTRA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRDAPROTO_ULTRA) == (1), "IRDAPROTO_ULTRA != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRDAPROTO_ULTRA 1
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat irda_protocols in mpers mode
+
+# else
+
+static
+const struct xlat irda_protocols[] = {
+ [IRDAPROTO_UNITDATA] = XLAT(IRDAPROTO_UNITDATA),
+ [IRDAPROTO_ULTRA] = XLAT(IRDAPROTO_ULTRA),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/irda_protocols.in b/xlat/irda_protocols.in
new file mode 100644
index 0000000..e3cd40f
--- /dev/null
+++ b/xlat/irda_protocols.in
@@ -0,0 +1,3 @@
+#value_indexed
+IRDAPROTO_UNITDATA 0
+IRDAPROTO_ULTRA 1
diff --git a/xlat/isdn_protocols.h b/xlat/isdn_protocols.h
new file mode 100644
index 0000000..51ecb7a
--- /dev/null
+++ b/xlat/isdn_protocols.h
@@ -0,0 +1,132 @@
+/* Generated by ./xlat/gen.sh from ./xlat/isdn_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ISDN_P_BASE) || (defined(HAVE_DECL_ISDN_P_BASE) && HAVE_DECL_ISDN_P_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_BASE) == (0), "ISDN_P_BASE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_BASE 0
+#endif
+#if defined(ISDN_P_TE_S0) || (defined(HAVE_DECL_ISDN_P_TE_S0) && HAVE_DECL_ISDN_P_TE_S0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_TE_S0) == (1), "ISDN_P_TE_S0 != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_TE_S0 1
+#endif
+#if defined(ISDN_P_NT_S0) || (defined(HAVE_DECL_ISDN_P_NT_S0) && HAVE_DECL_ISDN_P_NT_S0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_NT_S0) == (2), "ISDN_P_NT_S0 != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_NT_S0 2
+#endif
+#if defined(ISDN_P_TE_E1) || (defined(HAVE_DECL_ISDN_P_TE_E1) && HAVE_DECL_ISDN_P_TE_E1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_TE_E1) == (3), "ISDN_P_TE_E1 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_TE_E1 3
+#endif
+#if defined(ISDN_P_NT_E1) || (defined(HAVE_DECL_ISDN_P_NT_E1) && HAVE_DECL_ISDN_P_NT_E1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_NT_E1) == (4), "ISDN_P_NT_E1 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_NT_E1 4
+#endif
+#if defined(ISDN_P_LAPD_TE) || (defined(HAVE_DECL_ISDN_P_LAPD_TE) && HAVE_DECL_ISDN_P_LAPD_TE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_LAPD_TE) == (0x10), "ISDN_P_LAPD_TE != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_LAPD_TE 0x10
+#endif
+#if defined(ISDN_P_LAPD_NT) || (defined(HAVE_DECL_ISDN_P_LAPD_NT) && HAVE_DECL_ISDN_P_LAPD_NT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_LAPD_NT) == (0x11), "ISDN_P_LAPD_NT != 0x11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_LAPD_NT 0x11
+#endif
+#if defined(ISDN_P_B_RAW) || (defined(HAVE_DECL_ISDN_P_B_RAW) && HAVE_DECL_ISDN_P_B_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_B_RAW) == (0x21), "ISDN_P_B_RAW != 0x21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_B_RAW 0x21
+#endif
+#if defined(ISDN_P_B_HDLC) || (defined(HAVE_DECL_ISDN_P_B_HDLC) && HAVE_DECL_ISDN_P_B_HDLC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_B_HDLC) == (0x22), "ISDN_P_B_HDLC != 0x22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_B_HDLC 0x22
+#endif
+#if defined(ISDN_P_B_X75SLP) || (defined(HAVE_DECL_ISDN_P_B_X75SLP) && HAVE_DECL_ISDN_P_B_X75SLP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_B_X75SLP) == (0x23), "ISDN_P_B_X75SLP != 0x23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_B_X75SLP 0x23
+#endif
+#if defined(ISDN_P_B_L2DTMF) || (defined(HAVE_DECL_ISDN_P_B_L2DTMF) && HAVE_DECL_ISDN_P_B_L2DTMF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_B_L2DTMF) == (0x24), "ISDN_P_B_L2DTMF != 0x24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_B_L2DTMF 0x24
+#endif
+#if defined(ISDN_P_B_L2DSP) || (defined(HAVE_DECL_ISDN_P_B_L2DSP) && HAVE_DECL_ISDN_P_B_L2DSP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_B_L2DSP) == (0x25), "ISDN_P_B_L2DSP != 0x25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_B_L2DSP 0x25
+#endif
+#if defined(ISDN_P_B_L2DSPHDLC) || (defined(HAVE_DECL_ISDN_P_B_L2DSPHDLC) && HAVE_DECL_ISDN_P_B_L2DSPHDLC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ISDN_P_B_L2DSPHDLC) == (0x26), "ISDN_P_B_L2DSPHDLC != 0x26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ISDN_P_B_L2DSPHDLC 0x26
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat isdn_protocols in mpers mode
+
+# else
+
+static
+const struct xlat isdn_protocols[] = {
+ XLAT(ISDN_P_BASE),
+ XLAT(ISDN_P_TE_S0),
+ XLAT(ISDN_P_NT_S0),
+ XLAT(ISDN_P_TE_E1),
+ XLAT(ISDN_P_NT_E1),
+ XLAT(ISDN_P_LAPD_TE),
+ XLAT(ISDN_P_LAPD_NT),
+ XLAT(ISDN_P_B_RAW),
+ XLAT(ISDN_P_B_HDLC),
+ XLAT(ISDN_P_B_X75SLP),
+ XLAT(ISDN_P_B_L2DTMF),
+ XLAT(ISDN_P_B_L2DSP),
+ XLAT(ISDN_P_B_L2DSPHDLC),
+/*
+* those two are present in include/linux/mISDNif.h but are not handled during
+* socket creation.
+*/
+
+
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/isdn_protocols.in b/xlat/isdn_protocols.in
new file mode 100644
index 0000000..a193607
--- /dev/null
+++ b/xlat/isdn_protocols.in
@@ -0,0 +1,19 @@
+ISDN_P_BASE 0
+ISDN_P_TE_S0 1
+ISDN_P_NT_S0 2
+ISDN_P_TE_E1 3
+ISDN_P_NT_E1 4
+ISDN_P_LAPD_TE 0x10
+ISDN_P_LAPD_NT 0x11
+ISDN_P_B_RAW 0x21
+ISDN_P_B_HDLC 0x22
+ISDN_P_B_X75SLP 0x23
+ISDN_P_B_L2DTMF 0x24
+ISDN_P_B_L2DSP 0x25
+ISDN_P_B_L2DSPHDLC 0x26
+/*
+ * those two are present in include/linux/mISDNif.h but are not handled during
+ * socket creation.
+ */
+/* ISDN_P_B_T30_FAX 0x27 */
+/* ISDN_P_B_MODEM_ASYNC 0x28 */
diff --git a/xlat/itimer_which.h b/xlat/itimer_which.h
index a9180c6..c82be25 100644
--- a/xlat/itimer_which.h
+++ b/xlat/itimer_which.h
@@ -1,23 +1,46 @@
/* Generated by ./xlat/gen.sh from ./xlat/itimer_which.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat itimer_which in mpers mode
-
+#if defined(ITIMER_REAL) || (defined(HAVE_DECL_ITIMER_REAL) && HAVE_DECL_ITIMER_REAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ITIMER_REAL) == (0), "ITIMER_REAL != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define ITIMER_REAL 0
+#endif
+#if defined(ITIMER_VIRTUAL) || (defined(HAVE_DECL_ITIMER_VIRTUAL) && HAVE_DECL_ITIMER_VIRTUAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ITIMER_VIRTUAL) == (1), "ITIMER_VIRTUAL != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ITIMER_VIRTUAL 1
+#endif
+#if defined(ITIMER_PROF) || (defined(HAVE_DECL_ITIMER_PROF) && HAVE_DECL_ITIMER_PROF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ITIMER_PROF) == (2), "ITIMER_PROF != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ITIMER_PROF 2
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat itimer_which in mpers mode
+
+# else
static
const struct xlat itimer_which[] = {
-#if defined(ITIMER_REAL) || (defined(HAVE_DECL_ITIMER_REAL) && HAVE_DECL_ITIMER_REAL)
- XLAT(ITIMER_REAL),
-#endif
-#if defined(ITIMER_VIRTUAL) || (defined(HAVE_DECL_ITIMER_VIRTUAL) && HAVE_DECL_ITIMER_VIRTUAL)
- XLAT(ITIMER_VIRTUAL),
-#endif
-#if defined(ITIMER_PROF) || (defined(HAVE_DECL_ITIMER_PROF) && HAVE_DECL_ITIMER_PROF)
- XLAT(ITIMER_PROF),
-#endif
+ [ITIMER_REAL] = XLAT(ITIMER_REAL),
+ [ITIMER_VIRTUAL] = XLAT(ITIMER_VIRTUAL),
+ [ITIMER_PROF] = XLAT(ITIMER_PROF),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/itimer_which.in b/xlat/itimer_which.in
index 768b20f..23635a2 100644
--- a/xlat/itimer_which.in
+++ b/xlat/itimer_which.in
@@ -1,3 +1,4 @@
-ITIMER_REAL
-ITIMER_VIRTUAL
-ITIMER_PROF
+#value_indexed
+ITIMER_REAL 0
+ITIMER_VIRTUAL 1
+ITIMER_PROF 2
diff --git a/xlat/kcm_protocols.h b/xlat/kcm_protocols.h
new file mode 100644
index 0000000..e386380
--- /dev/null
+++ b/xlat/kcm_protocols.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/kcm_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KCMPROTO_CONNECTED) || (defined(HAVE_DECL_KCMPROTO_CONNECTED) && HAVE_DECL_KCMPROTO_CONNECTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMPROTO_CONNECTED) == (0), "KCMPROTO_CONNECTED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define KCMPROTO_CONNECTED 0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat kcm_protocols in mpers mode
+
+# else
+
+static
+const struct xlat kcm_protocols[] = {
+ [KCMPROTO_CONNECTED] = XLAT(KCMPROTO_CONNECTED),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/kcm_protocols.in b/xlat/kcm_protocols.in
new file mode 100644
index 0000000..0001455
--- /dev/null
+++ b/xlat/kcm_protocols.in
@@ -0,0 +1,2 @@
+#value_indexed
+KCMPROTO_CONNECTED 0
diff --git a/xlat/kcmp_types.h b/xlat/kcmp_types.h
index 1b88607..d666fa2 100644
--- a/xlat/kcmp_types.h
+++ b/xlat/kcmp_types.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/kcmp_types.in; do not edit. */
-#if !(defined(KCMP_FILE) || (defined(HAVE_DECL_KCMP_FILE) && HAVE_DECL_KCMP_FILE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KCMP_FILE) || (defined(HAVE_DECL_KCMP_FILE) && HAVE_DECL_KCMP_FILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_FILE) == (0), "KCMP_FILE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_FILE 0
#endif
-#if !(defined(KCMP_VM) || (defined(HAVE_DECL_KCMP_VM) && HAVE_DECL_KCMP_VM))
+#if defined(KCMP_VM) || (defined(HAVE_DECL_KCMP_VM) && HAVE_DECL_KCMP_VM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_VM) == (1), "KCMP_VM != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_VM 1
#endif
-#if !(defined(KCMP_FILES) || (defined(HAVE_DECL_KCMP_FILES) && HAVE_DECL_KCMP_FILES))
+#if defined(KCMP_FILES) || (defined(HAVE_DECL_KCMP_FILES) && HAVE_DECL_KCMP_FILES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_FILES) == (2), "KCMP_FILES != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_FILES 2
#endif
-#if !(defined(KCMP_FS) || (defined(HAVE_DECL_KCMP_FS) && HAVE_DECL_KCMP_FS))
+#if defined(KCMP_FS) || (defined(HAVE_DECL_KCMP_FS) && HAVE_DECL_KCMP_FS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_FS) == (3), "KCMP_FS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_FS 3
#endif
-#if !(defined(KCMP_SIGHAND) || (defined(HAVE_DECL_KCMP_SIGHAND) && HAVE_DECL_KCMP_SIGHAND))
+#if defined(KCMP_SIGHAND) || (defined(HAVE_DECL_KCMP_SIGHAND) && HAVE_DECL_KCMP_SIGHAND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_SIGHAND) == (4), "KCMP_SIGHAND != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_SIGHAND 4
#endif
-#if !(defined(KCMP_IO) || (defined(HAVE_DECL_KCMP_IO) && HAVE_DECL_KCMP_IO))
+#if defined(KCMP_IO) || (defined(HAVE_DECL_KCMP_IO) && HAVE_DECL_KCMP_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_IO) == (5), "KCMP_IO != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_IO 5
#endif
-#if !(defined(KCMP_SYSVSEM) || (defined(HAVE_DECL_KCMP_SYSVSEM) && HAVE_DECL_KCMP_SYSVSEM))
+#if defined(KCMP_SYSVSEM) || (defined(HAVE_DECL_KCMP_SYSVSEM) && HAVE_DECL_KCMP_SYSVSEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_SYSVSEM) == (6), "KCMP_SYSVSEM != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_SYSVSEM 6
#endif
-#if !(defined(KCMP_EPOLL_TFD) || (defined(HAVE_DECL_KCMP_EPOLL_TFD) && HAVE_DECL_KCMP_EPOLL_TFD))
+#if defined(KCMP_EPOLL_TFD) || (defined(HAVE_DECL_KCMP_EPOLL_TFD) && HAVE_DECL_KCMP_EPOLL_TFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCMP_EPOLL_TFD) == (7), "KCMP_EPOLL_TFD != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KCMP_EPOLL_TFD 7
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat kcmp_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat kcmp_types in mpers mode
+
+# else
static
const struct xlat kcmp_types[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/kexec_arch_values.h b/xlat/kexec_arch_values.h
index 537ba4b..df40c4b 100644
--- a/xlat/kexec_arch_values.h
+++ b/xlat/kexec_arch_values.h
@@ -1,49 +1,107 @@
/* Generated by ./xlat/gen.sh from ./xlat/kexec_arch_values.in; do not edit. */
-#if !(defined(KEXEC_ARCH_DEFAULT) || (defined(HAVE_DECL_KEXEC_ARCH_DEFAULT) && HAVE_DECL_KEXEC_ARCH_DEFAULT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEXEC_ARCH_DEFAULT) || (defined(HAVE_DECL_KEXEC_ARCH_DEFAULT) && HAVE_DECL_KEXEC_ARCH_DEFAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_DEFAULT) == (( 0 << 16)), "KEXEC_ARCH_DEFAULT != ( 0 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_DEFAULT ( 0 << 16)
#endif
-#if !(defined(KEXEC_ARCH_386) || (defined(HAVE_DECL_KEXEC_ARCH_386) && HAVE_DECL_KEXEC_ARCH_386))
+#if defined(KEXEC_ARCH_386) || (defined(HAVE_DECL_KEXEC_ARCH_386) && HAVE_DECL_KEXEC_ARCH_386)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_386) == (( 3 << 16)), "KEXEC_ARCH_386 != ( 3 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_386 ( 3 << 16)
#endif
-#if !(defined(KEXEC_ARCH_68K) || (defined(HAVE_DECL_KEXEC_ARCH_68K) && HAVE_DECL_KEXEC_ARCH_68K))
+#if defined(KEXEC_ARCH_68K) || (defined(HAVE_DECL_KEXEC_ARCH_68K) && HAVE_DECL_KEXEC_ARCH_68K)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_68K) == (( 4 << 16)), "KEXEC_ARCH_68K != ( 4 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_68K ( 4 << 16)
#endif
-#if !(defined(KEXEC_ARCH_X86_64) || (defined(HAVE_DECL_KEXEC_ARCH_X86_64) && HAVE_DECL_KEXEC_ARCH_X86_64))
+#if defined(KEXEC_ARCH_X86_64) || (defined(HAVE_DECL_KEXEC_ARCH_X86_64) && HAVE_DECL_KEXEC_ARCH_X86_64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_X86_64) == ((62 << 16)), "KEXEC_ARCH_X86_64 != (62 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_X86_64 (62 << 16)
#endif
-#if !(defined(KEXEC_ARCH_PPC) || (defined(HAVE_DECL_KEXEC_ARCH_PPC) && HAVE_DECL_KEXEC_ARCH_PPC))
+#if defined(KEXEC_ARCH_PPC) || (defined(HAVE_DECL_KEXEC_ARCH_PPC) && HAVE_DECL_KEXEC_ARCH_PPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_PPC) == ((20 << 16)), "KEXEC_ARCH_PPC != (20 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_PPC (20 << 16)
#endif
-#if !(defined(KEXEC_ARCH_PPC64) || (defined(HAVE_DECL_KEXEC_ARCH_PPC64) && HAVE_DECL_KEXEC_ARCH_PPC64))
+#if defined(KEXEC_ARCH_PPC64) || (defined(HAVE_DECL_KEXEC_ARCH_PPC64) && HAVE_DECL_KEXEC_ARCH_PPC64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_PPC64) == ((21 << 16)), "KEXEC_ARCH_PPC64 != (21 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_PPC64 (21 << 16)
#endif
-#if !(defined(KEXEC_ARCH_IA_64) || (defined(HAVE_DECL_KEXEC_ARCH_IA_64) && HAVE_DECL_KEXEC_ARCH_IA_64))
+#if defined(KEXEC_ARCH_IA_64) || (defined(HAVE_DECL_KEXEC_ARCH_IA_64) && HAVE_DECL_KEXEC_ARCH_IA_64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_IA_64) == ((50 << 16)), "KEXEC_ARCH_IA_64 != (50 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_IA_64 (50 << 16)
#endif
-#if !(defined(KEXEC_ARCH_ARM) || (defined(HAVE_DECL_KEXEC_ARCH_ARM) && HAVE_DECL_KEXEC_ARCH_ARM))
+#if defined(KEXEC_ARCH_ARM) || (defined(HAVE_DECL_KEXEC_ARCH_ARM) && HAVE_DECL_KEXEC_ARCH_ARM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_ARM) == ((40 << 16)), "KEXEC_ARCH_ARM != (40 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_ARM (40 << 16)
#endif
-#if !(defined(KEXEC_ARCH_S390) || (defined(HAVE_DECL_KEXEC_ARCH_S390) && HAVE_DECL_KEXEC_ARCH_S390))
+#if defined(KEXEC_ARCH_S390) || (defined(HAVE_DECL_KEXEC_ARCH_S390) && HAVE_DECL_KEXEC_ARCH_S390)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_S390) == ((22 << 16)), "KEXEC_ARCH_S390 != (22 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_S390 (22 << 16)
#endif
-#if !(defined(KEXEC_ARCH_SH) || (defined(HAVE_DECL_KEXEC_ARCH_SH) && HAVE_DECL_KEXEC_ARCH_SH))
+#if defined(KEXEC_ARCH_SH) || (defined(HAVE_DECL_KEXEC_ARCH_SH) && HAVE_DECL_KEXEC_ARCH_SH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_SH) == ((42 << 16)), "KEXEC_ARCH_SH != (42 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_SH (42 << 16)
#endif
-#if !(defined(KEXEC_ARCH_MIPS_LE) || (defined(HAVE_DECL_KEXEC_ARCH_MIPS_LE) && HAVE_DECL_KEXEC_ARCH_MIPS_LE))
+#if defined(KEXEC_ARCH_MIPS_LE) || (defined(HAVE_DECL_KEXEC_ARCH_MIPS_LE) && HAVE_DECL_KEXEC_ARCH_MIPS_LE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_MIPS_LE) == ((10 << 16)), "KEXEC_ARCH_MIPS_LE != (10 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_MIPS_LE (10 << 16)
#endif
-#if !(defined(KEXEC_ARCH_MIPS) || (defined(HAVE_DECL_KEXEC_ARCH_MIPS) && HAVE_DECL_KEXEC_ARCH_MIPS))
+#if defined(KEXEC_ARCH_MIPS) || (defined(HAVE_DECL_KEXEC_ARCH_MIPS) && HAVE_DECL_KEXEC_ARCH_MIPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_MIPS) == (( 8 << 16)), "KEXEC_ARCH_MIPS != ( 8 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_MIPS ( 8 << 16)
#endif
-#if !(defined(KEXEC_ARCH_AARCH64) || (defined(HAVE_DECL_KEXEC_ARCH_AARCH64) && HAVE_DECL_KEXEC_ARCH_AARCH64))
+#if defined(KEXEC_ARCH_AARCH64) || (defined(HAVE_DECL_KEXEC_ARCH_AARCH64) && HAVE_DECL_KEXEC_ARCH_AARCH64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ARCH_AARCH64) == ((183 << 16)), "KEXEC_ARCH_AARCH64 != (183 << 16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ARCH_AARCH64 (183 << 16)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat kexec_arch_values in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat kexec_arch_values in mpers mode
+
+# else
static
const struct xlat kexec_arch_values[] = {
@@ -63,4 +121,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/kexec_file_load_flags.h b/xlat/kexec_file_load_flags.h
index 340ca3f..5c257c8 100644
--- a/xlat/kexec_file_load_flags.h
+++ b/xlat/kexec_file_load_flags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/kexec_file_load_flags.in; do not edit. */
-#if !(defined(KEXEC_FILE_UNLOAD) || (defined(HAVE_DECL_KEXEC_FILE_UNLOAD) && HAVE_DECL_KEXEC_FILE_UNLOAD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEXEC_FILE_UNLOAD) || (defined(HAVE_DECL_KEXEC_FILE_UNLOAD) && HAVE_DECL_KEXEC_FILE_UNLOAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_FILE_UNLOAD) == (1), "KEXEC_FILE_UNLOAD != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_FILE_UNLOAD 1
#endif
-#if !(defined(KEXEC_FILE_ON_CRASH) || (defined(HAVE_DECL_KEXEC_FILE_ON_CRASH) && HAVE_DECL_KEXEC_FILE_ON_CRASH))
+#if defined(KEXEC_FILE_ON_CRASH) || (defined(HAVE_DECL_KEXEC_FILE_ON_CRASH) && HAVE_DECL_KEXEC_FILE_ON_CRASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_FILE_ON_CRASH) == (2), "KEXEC_FILE_ON_CRASH != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_FILE_ON_CRASH 2
#endif
-#if !(defined(KEXEC_FILE_NO_INITRAMFS) || (defined(HAVE_DECL_KEXEC_FILE_NO_INITRAMFS) && HAVE_DECL_KEXEC_FILE_NO_INITRAMFS))
+#if defined(KEXEC_FILE_NO_INITRAMFS) || (defined(HAVE_DECL_KEXEC_FILE_NO_INITRAMFS) && HAVE_DECL_KEXEC_FILE_NO_INITRAMFS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_FILE_NO_INITRAMFS) == (4), "KEXEC_FILE_NO_INITRAMFS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_FILE_NO_INITRAMFS 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat kexec_file_load_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat kexec_file_load_flags in mpers mode
+
+# else
static
const struct xlat kexec_file_load_flags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/kexec_load_flags.h b/xlat/kexec_load_flags.h
index 00a51c7..dcee0c1 100644
--- a/xlat/kexec_load_flags.h
+++ b/xlat/kexec_load_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/kexec_load_flags.in; do not edit. */
-#if !(defined(KEXEC_ON_CRASH) || (defined(HAVE_DECL_KEXEC_ON_CRASH) && HAVE_DECL_KEXEC_ON_CRASH))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEXEC_ON_CRASH) || (defined(HAVE_DECL_KEXEC_ON_CRASH) && HAVE_DECL_KEXEC_ON_CRASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_ON_CRASH) == (0x00000001), "KEXEC_ON_CRASH != 0x00000001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_ON_CRASH 0x00000001
#endif
-#if !(defined(KEXEC_PRESERVE_CONTEXT) || (defined(HAVE_DECL_KEXEC_PRESERVE_CONTEXT) && HAVE_DECL_KEXEC_PRESERVE_CONTEXT))
+#if defined(KEXEC_PRESERVE_CONTEXT) || (defined(HAVE_DECL_KEXEC_PRESERVE_CONTEXT) && HAVE_DECL_KEXEC_PRESERVE_CONTEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEXEC_PRESERVE_CONTEXT) == (0x00000002), "KEXEC_PRESERVE_CONTEXT != 0x00000002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEXEC_PRESERVE_CONTEXT 0x00000002
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat kexec_load_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat kexec_load_flags in mpers mode
+
+# else
static
const struct xlat kexec_load_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/key_perms.h b/xlat/key_perms.h
index 4488f70..852a9fe 100644
--- a/xlat/key_perms.h
+++ b/xlat/key_perms.h
@@ -1,94 +1,212 @@
/* Generated by ./xlat/gen.sh from ./xlat/key_perms.in; do not edit. */
-#if !(defined(KEY_POS_VIEW) || (defined(HAVE_DECL_KEY_POS_VIEW) && HAVE_DECL_KEY_POS_VIEW))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEY_POS_VIEW) || (defined(HAVE_DECL_KEY_POS_VIEW) && HAVE_DECL_KEY_POS_VIEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POS_VIEW) == (0x01000000), "KEY_POS_VIEW != 0x01000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POS_VIEW 0x01000000
#endif
-#if !(defined(KEY_POS_READ) || (defined(HAVE_DECL_KEY_POS_READ) && HAVE_DECL_KEY_POS_READ))
+#if defined(KEY_POS_READ) || (defined(HAVE_DECL_KEY_POS_READ) && HAVE_DECL_KEY_POS_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POS_READ) == (0x02000000), "KEY_POS_READ != 0x02000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POS_READ 0x02000000
#endif
-#if !(defined(KEY_POS_WRITE) || (defined(HAVE_DECL_KEY_POS_WRITE) && HAVE_DECL_KEY_POS_WRITE))
+#if defined(KEY_POS_WRITE) || (defined(HAVE_DECL_KEY_POS_WRITE) && HAVE_DECL_KEY_POS_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POS_WRITE) == (0x04000000), "KEY_POS_WRITE != 0x04000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POS_WRITE 0x04000000
#endif
-#if !(defined(KEY_POS_SEARCH) || (defined(HAVE_DECL_KEY_POS_SEARCH) && HAVE_DECL_KEY_POS_SEARCH))
+#if defined(KEY_POS_SEARCH) || (defined(HAVE_DECL_KEY_POS_SEARCH) && HAVE_DECL_KEY_POS_SEARCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POS_SEARCH) == (0x08000000), "KEY_POS_SEARCH != 0x08000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POS_SEARCH 0x08000000
#endif
-#if !(defined(KEY_POS_LINK) || (defined(HAVE_DECL_KEY_POS_LINK) && HAVE_DECL_KEY_POS_LINK))
+#if defined(KEY_POS_LINK) || (defined(HAVE_DECL_KEY_POS_LINK) && HAVE_DECL_KEY_POS_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POS_LINK) == (0x10000000), "KEY_POS_LINK != 0x10000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POS_LINK 0x10000000
#endif
-#if !(defined(KEY_POS_SETATTR) || (defined(HAVE_DECL_KEY_POS_SETATTR) && HAVE_DECL_KEY_POS_SETATTR))
+#if defined(KEY_POS_SETATTR) || (defined(HAVE_DECL_KEY_POS_SETATTR) && HAVE_DECL_KEY_POS_SETATTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POS_SETATTR) == (0x20000000), "KEY_POS_SETATTR != 0x20000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POS_SETATTR 0x20000000
#endif
-#if !(defined(KEY_POS_ALL) || (defined(HAVE_DECL_KEY_POS_ALL) && HAVE_DECL_KEY_POS_ALL))
+#if defined(KEY_POS_ALL) || (defined(HAVE_DECL_KEY_POS_ALL) && HAVE_DECL_KEY_POS_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_POS_ALL) == (0x3f000000), "KEY_POS_ALL != 0x3f000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_POS_ALL 0x3f000000
#endif
-#if !(defined(KEY_USR_VIEW) || (defined(HAVE_DECL_KEY_USR_VIEW) && HAVE_DECL_KEY_USR_VIEW))
+#if defined(KEY_USR_VIEW) || (defined(HAVE_DECL_KEY_USR_VIEW) && HAVE_DECL_KEY_USR_VIEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_USR_VIEW) == (0x00010000), "KEY_USR_VIEW != 0x00010000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_USR_VIEW 0x00010000
#endif
-#if !(defined(KEY_USR_READ) || (defined(HAVE_DECL_KEY_USR_READ) && HAVE_DECL_KEY_USR_READ))
+#if defined(KEY_USR_READ) || (defined(HAVE_DECL_KEY_USR_READ) && HAVE_DECL_KEY_USR_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_USR_READ) == (0x00020000), "KEY_USR_READ != 0x00020000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_USR_READ 0x00020000
#endif
-#if !(defined(KEY_USR_WRITE) || (defined(HAVE_DECL_KEY_USR_WRITE) && HAVE_DECL_KEY_USR_WRITE))
+#if defined(KEY_USR_WRITE) || (defined(HAVE_DECL_KEY_USR_WRITE) && HAVE_DECL_KEY_USR_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_USR_WRITE) == (0x00040000), "KEY_USR_WRITE != 0x00040000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_USR_WRITE 0x00040000
#endif
-#if !(defined(KEY_USR_SEARCH) || (defined(HAVE_DECL_KEY_USR_SEARCH) && HAVE_DECL_KEY_USR_SEARCH))
+#if defined(KEY_USR_SEARCH) || (defined(HAVE_DECL_KEY_USR_SEARCH) && HAVE_DECL_KEY_USR_SEARCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_USR_SEARCH) == (0x00080000), "KEY_USR_SEARCH != 0x00080000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_USR_SEARCH 0x00080000
#endif
-#if !(defined(KEY_USR_LINK) || (defined(HAVE_DECL_KEY_USR_LINK) && HAVE_DECL_KEY_USR_LINK))
+#if defined(KEY_USR_LINK) || (defined(HAVE_DECL_KEY_USR_LINK) && HAVE_DECL_KEY_USR_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_USR_LINK) == (0x00100000), "KEY_USR_LINK != 0x00100000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_USR_LINK 0x00100000
#endif
-#if !(defined(KEY_USR_SETATTR) || (defined(HAVE_DECL_KEY_USR_SETATTR) && HAVE_DECL_KEY_USR_SETATTR))
+#if defined(KEY_USR_SETATTR) || (defined(HAVE_DECL_KEY_USR_SETATTR) && HAVE_DECL_KEY_USR_SETATTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_USR_SETATTR) == (0x00200000), "KEY_USR_SETATTR != 0x00200000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_USR_SETATTR 0x00200000
#endif
-#if !(defined(KEY_USR_ALL) || (defined(HAVE_DECL_KEY_USR_ALL) && HAVE_DECL_KEY_USR_ALL))
+#if defined(KEY_USR_ALL) || (defined(HAVE_DECL_KEY_USR_ALL) && HAVE_DECL_KEY_USR_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_USR_ALL) == (0x003f0000), "KEY_USR_ALL != 0x003f0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_USR_ALL 0x003f0000
#endif
-#if !(defined(KEY_GRP_VIEW) || (defined(HAVE_DECL_KEY_GRP_VIEW) && HAVE_DECL_KEY_GRP_VIEW))
+#if defined(KEY_GRP_VIEW) || (defined(HAVE_DECL_KEY_GRP_VIEW) && HAVE_DECL_KEY_GRP_VIEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRP_VIEW) == (0x00000100), "KEY_GRP_VIEW != 0x00000100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRP_VIEW 0x00000100
#endif
-#if !(defined(KEY_GRP_READ) || (defined(HAVE_DECL_KEY_GRP_READ) && HAVE_DECL_KEY_GRP_READ))
+#if defined(KEY_GRP_READ) || (defined(HAVE_DECL_KEY_GRP_READ) && HAVE_DECL_KEY_GRP_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRP_READ) == (0x00000200), "KEY_GRP_READ != 0x00000200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRP_READ 0x00000200
#endif
-#if !(defined(KEY_GRP_WRITE) || (defined(HAVE_DECL_KEY_GRP_WRITE) && HAVE_DECL_KEY_GRP_WRITE))
+#if defined(KEY_GRP_WRITE) || (defined(HAVE_DECL_KEY_GRP_WRITE) && HAVE_DECL_KEY_GRP_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRP_WRITE) == (0x00000400), "KEY_GRP_WRITE != 0x00000400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRP_WRITE 0x00000400
#endif
-#if !(defined(KEY_GRP_SEARCH) || (defined(HAVE_DECL_KEY_GRP_SEARCH) && HAVE_DECL_KEY_GRP_SEARCH))
+#if defined(KEY_GRP_SEARCH) || (defined(HAVE_DECL_KEY_GRP_SEARCH) && HAVE_DECL_KEY_GRP_SEARCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRP_SEARCH) == (0x00000800), "KEY_GRP_SEARCH != 0x00000800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRP_SEARCH 0x00000800
#endif
-#if !(defined(KEY_GRP_LINK) || (defined(HAVE_DECL_KEY_GRP_LINK) && HAVE_DECL_KEY_GRP_LINK))
+#if defined(KEY_GRP_LINK) || (defined(HAVE_DECL_KEY_GRP_LINK) && HAVE_DECL_KEY_GRP_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRP_LINK) == (0x00001000), "KEY_GRP_LINK != 0x00001000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRP_LINK 0x00001000
#endif
-#if !(defined(KEY_GRP_SETATTR) || (defined(HAVE_DECL_KEY_GRP_SETATTR) && HAVE_DECL_KEY_GRP_SETATTR))
+#if defined(KEY_GRP_SETATTR) || (defined(HAVE_DECL_KEY_GRP_SETATTR) && HAVE_DECL_KEY_GRP_SETATTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRP_SETATTR) == (0x00002000), "KEY_GRP_SETATTR != 0x00002000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRP_SETATTR 0x00002000
#endif
-#if !(defined(KEY_GRP_ALL) || (defined(HAVE_DECL_KEY_GRP_ALL) && HAVE_DECL_KEY_GRP_ALL))
+#if defined(KEY_GRP_ALL) || (defined(HAVE_DECL_KEY_GRP_ALL) && HAVE_DECL_KEY_GRP_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_GRP_ALL) == (0x00003f00), "KEY_GRP_ALL != 0x00003f00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_GRP_ALL 0x00003f00
#endif
-#if !(defined(KEY_OTH_VIEW) || (defined(HAVE_DECL_KEY_OTH_VIEW) && HAVE_DECL_KEY_OTH_VIEW))
+#if defined(KEY_OTH_VIEW) || (defined(HAVE_DECL_KEY_OTH_VIEW) && HAVE_DECL_KEY_OTH_VIEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OTH_VIEW) == (0x00000001), "KEY_OTH_VIEW != 0x00000001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OTH_VIEW 0x00000001
#endif
-#if !(defined(KEY_OTH_READ) || (defined(HAVE_DECL_KEY_OTH_READ) && HAVE_DECL_KEY_OTH_READ))
+#if defined(KEY_OTH_READ) || (defined(HAVE_DECL_KEY_OTH_READ) && HAVE_DECL_KEY_OTH_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OTH_READ) == (0x00000002), "KEY_OTH_READ != 0x00000002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OTH_READ 0x00000002
#endif
-#if !(defined(KEY_OTH_WRITE) || (defined(HAVE_DECL_KEY_OTH_WRITE) && HAVE_DECL_KEY_OTH_WRITE))
+#if defined(KEY_OTH_WRITE) || (defined(HAVE_DECL_KEY_OTH_WRITE) && HAVE_DECL_KEY_OTH_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OTH_WRITE) == (0x00000004), "KEY_OTH_WRITE != 0x00000004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OTH_WRITE 0x00000004
#endif
-#if !(defined(KEY_OTH_SEARCH) || (defined(HAVE_DECL_KEY_OTH_SEARCH) && HAVE_DECL_KEY_OTH_SEARCH))
+#if defined(KEY_OTH_SEARCH) || (defined(HAVE_DECL_KEY_OTH_SEARCH) && HAVE_DECL_KEY_OTH_SEARCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OTH_SEARCH) == (0x00000008), "KEY_OTH_SEARCH != 0x00000008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OTH_SEARCH 0x00000008
#endif
-#if !(defined(KEY_OTH_LINK) || (defined(HAVE_DECL_KEY_OTH_LINK) && HAVE_DECL_KEY_OTH_LINK))
+#if defined(KEY_OTH_LINK) || (defined(HAVE_DECL_KEY_OTH_LINK) && HAVE_DECL_KEY_OTH_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OTH_LINK) == (0x00000010), "KEY_OTH_LINK != 0x00000010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OTH_LINK 0x00000010
#endif
-#if !(defined(KEY_OTH_SETATTR) || (defined(HAVE_DECL_KEY_OTH_SETATTR) && HAVE_DECL_KEY_OTH_SETATTR))
+#if defined(KEY_OTH_SETATTR) || (defined(HAVE_DECL_KEY_OTH_SETATTR) && HAVE_DECL_KEY_OTH_SETATTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OTH_SETATTR) == (0x00000020), "KEY_OTH_SETATTR != 0x00000020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OTH_SETATTR 0x00000020
#endif
-#if !(defined(KEY_OTH_ALL) || (defined(HAVE_DECL_KEY_OTH_ALL) && HAVE_DECL_KEY_OTH_ALL))
+#if defined(KEY_OTH_ALL) || (defined(HAVE_DECL_KEY_OTH_ALL) && HAVE_DECL_KEY_OTH_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_OTH_ALL) == (0x0000003f), "KEY_OTH_ALL != 0x0000003f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_OTH_ALL 0x0000003f
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat key_perms in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat key_perms in mpers mode
+
+# else
static
const struct xlat key_perms[] = {
@@ -123,4 +241,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/key_reqkeys.h b/xlat/key_reqkeys.h
index 920fbe4..52b0823 100644
--- a/xlat/key_reqkeys.h
+++ b/xlat/key_reqkeys.h
@@ -1,50 +1,94 @@
/* Generated by ./xlat/gen.sh from ./xlat/key_reqkeys.in; do not edit. */
-#if !(defined(KEY_REQKEY_DEFL_NO_CHANGE) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE) && HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEY_REQKEY_DEFL_NO_CHANGE) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE) && HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_NO_CHANGE) == (-1), "KEY_REQKEY_DEFL_NO_CHANGE != -1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_NO_CHANGE -1
#endif
-#if !(defined(KEY_REQKEY_DEFL_DEFAULT) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT) && HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT))
+#if defined(KEY_REQKEY_DEFL_DEFAULT) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT) && HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_DEFAULT) == (0), "KEY_REQKEY_DEFL_DEFAULT != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_DEFAULT 0
#endif
-#if !(defined(KEY_REQKEY_DEFL_THREAD_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING))
+#if defined(KEY_REQKEY_DEFL_THREAD_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_THREAD_KEYRING) == (1), "KEY_REQKEY_DEFL_THREAD_KEYRING != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_THREAD_KEYRING 1
#endif
-#if !(defined(KEY_REQKEY_DEFL_PROCESS_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING))
+#if defined(KEY_REQKEY_DEFL_PROCESS_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_PROCESS_KEYRING) == (2), "KEY_REQKEY_DEFL_PROCESS_KEYRING != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_PROCESS_KEYRING 2
#endif
-#if !(defined(KEY_REQKEY_DEFL_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING))
+#if defined(KEY_REQKEY_DEFL_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_SESSION_KEYRING) == (3), "KEY_REQKEY_DEFL_SESSION_KEYRING != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_SESSION_KEYRING 3
#endif
-#if !(defined(KEY_REQKEY_DEFL_USER_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING))
+#if defined(KEY_REQKEY_DEFL_USER_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_USER_KEYRING) == (4), "KEY_REQKEY_DEFL_USER_KEYRING != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_USER_KEYRING 4
#endif
-#if !(defined(KEY_REQKEY_DEFL_USER_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING))
+#if defined(KEY_REQKEY_DEFL_USER_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_USER_SESSION_KEYRING) == (5), "KEY_REQKEY_DEFL_USER_SESSION_KEYRING != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_USER_SESSION_KEYRING 5
#endif
-#if !(defined(KEY_REQKEY_DEFL_GROUP_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING))
+#if defined(KEY_REQKEY_DEFL_GROUP_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_GROUP_KEYRING) == (6), "KEY_REQKEY_DEFL_GROUP_KEYRING != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_GROUP_KEYRING 6
#endif
-#if !(defined(KEY_REQKEY_DEFL_REQUESTOR_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING))
+#if defined(KEY_REQKEY_DEFL_REQUESTOR_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_REQKEY_DEFL_REQUESTOR_KEYRING) == (7), "KEY_REQKEY_DEFL_REQUESTOR_KEYRING != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_REQKEY_DEFL_REQUESTOR_KEYRING 7
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat key_reqkeys in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat key_reqkeys in mpers mode
+
+# else
static
const struct xlat key_reqkeys[] = {
- XLAT(KEY_REQKEY_DEFL_NO_CHANGE),
- XLAT(KEY_REQKEY_DEFL_DEFAULT),
- XLAT(KEY_REQKEY_DEFL_THREAD_KEYRING),
- XLAT(KEY_REQKEY_DEFL_PROCESS_KEYRING),
- XLAT(KEY_REQKEY_DEFL_SESSION_KEYRING),
- XLAT(KEY_REQKEY_DEFL_USER_KEYRING),
- XLAT(KEY_REQKEY_DEFL_USER_SESSION_KEYRING),
- XLAT(KEY_REQKEY_DEFL_GROUP_KEYRING),
- XLAT(KEY_REQKEY_DEFL_REQUESTOR_KEYRING),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_NO_CHANGE),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_DEFAULT),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_THREAD_KEYRING),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_PROCESS_KEYRING),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_SESSION_KEYRING),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_USER_KEYRING),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_USER_SESSION_KEYRING),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_GROUP_KEYRING),
+ XLAT_TYPE(int, KEY_REQKEY_DEFL_REQUESTOR_KEYRING),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/key_reqkeys.in b/xlat/key_reqkeys.in
index 747e440..ca60ca6 100644
--- a/xlat/key_reqkeys.in
+++ b/xlat/key_reqkeys.in
@@ -1,3 +1,4 @@
+#val_type int
KEY_REQKEY_DEFL_NO_CHANGE -1
KEY_REQKEY_DEFL_DEFAULT 0
KEY_REQKEY_DEFL_THREAD_KEYRING 1
diff --git a/xlat/key_spec.h b/xlat/key_spec.h
index 888a8f3..98d317d 100644
--- a/xlat/key_spec.h
+++ b/xlat/key_spec.h
@@ -1,46 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/key_spec.in; do not edit. */
-#if !(defined(KEY_SPEC_THREAD_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_THREAD_KEYRING) && HAVE_DECL_KEY_SPEC_THREAD_KEYRING))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEY_SPEC_THREAD_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_THREAD_KEYRING) && HAVE_DECL_KEY_SPEC_THREAD_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_THREAD_KEYRING) == (-1), "KEY_SPEC_THREAD_KEYRING != -1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_THREAD_KEYRING -1
#endif
-#if !(defined(KEY_SPEC_PROCESS_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_PROCESS_KEYRING) && HAVE_DECL_KEY_SPEC_PROCESS_KEYRING))
+#if defined(KEY_SPEC_PROCESS_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_PROCESS_KEYRING) && HAVE_DECL_KEY_SPEC_PROCESS_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_PROCESS_KEYRING) == (-2), "KEY_SPEC_PROCESS_KEYRING != -2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_PROCESS_KEYRING -2
#endif
-#if !(defined(KEY_SPEC_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_SESSION_KEYRING) && HAVE_DECL_KEY_SPEC_SESSION_KEYRING))
+#if defined(KEY_SPEC_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_SESSION_KEYRING) && HAVE_DECL_KEY_SPEC_SESSION_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_SESSION_KEYRING) == (-3), "KEY_SPEC_SESSION_KEYRING != -3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_SESSION_KEYRING -3
#endif
-#if !(defined(KEY_SPEC_USER_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_USER_KEYRING) && HAVE_DECL_KEY_SPEC_USER_KEYRING))
+#if defined(KEY_SPEC_USER_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_USER_KEYRING) && HAVE_DECL_KEY_SPEC_USER_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_USER_KEYRING) == (-4), "KEY_SPEC_USER_KEYRING != -4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_USER_KEYRING -4
#endif
-#if !(defined(KEY_SPEC_USER_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_USER_SESSION_KEYRING) && HAVE_DECL_KEY_SPEC_USER_SESSION_KEYRING))
+#if defined(KEY_SPEC_USER_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_USER_SESSION_KEYRING) && HAVE_DECL_KEY_SPEC_USER_SESSION_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_USER_SESSION_KEYRING) == (-5), "KEY_SPEC_USER_SESSION_KEYRING != -5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_USER_SESSION_KEYRING -5
#endif
-#if !(defined(KEY_SPEC_GROUP_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_GROUP_KEYRING) && HAVE_DECL_KEY_SPEC_GROUP_KEYRING))
+#if defined(KEY_SPEC_GROUP_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_GROUP_KEYRING) && HAVE_DECL_KEY_SPEC_GROUP_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_GROUP_KEYRING) == (-6), "KEY_SPEC_GROUP_KEYRING != -6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_GROUP_KEYRING -6
#endif
-#if !(defined(KEY_SPEC_REQKEY_AUTH_KEY) || (defined(HAVE_DECL_KEY_SPEC_REQKEY_AUTH_KEY) && HAVE_DECL_KEY_SPEC_REQKEY_AUTH_KEY))
+#if defined(KEY_SPEC_REQKEY_AUTH_KEY) || (defined(HAVE_DECL_KEY_SPEC_REQKEY_AUTH_KEY) && HAVE_DECL_KEY_SPEC_REQKEY_AUTH_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_REQKEY_AUTH_KEY) == (-7), "KEY_SPEC_REQKEY_AUTH_KEY != -7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_REQKEY_AUTH_KEY -7
#endif
-#if !(defined(KEY_SPEC_REQUESTOR_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_REQUESTOR_KEYRING) && HAVE_DECL_KEY_SPEC_REQUESTOR_KEYRING))
+#if defined(KEY_SPEC_REQUESTOR_KEYRING) || (defined(HAVE_DECL_KEY_SPEC_REQUESTOR_KEYRING) && HAVE_DECL_KEY_SPEC_REQUESTOR_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEY_SPEC_REQUESTOR_KEYRING) == (-8), "KEY_SPEC_REQUESTOR_KEYRING != -8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEY_SPEC_REQUESTOR_KEYRING -8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat key_spec in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat key_spec in mpers mode
+
+# else
static
const struct xlat key_spec[] = {
- XLAT(KEY_SPEC_THREAD_KEYRING),
- XLAT(KEY_SPEC_PROCESS_KEYRING),
- XLAT(KEY_SPEC_SESSION_KEYRING),
- XLAT(KEY_SPEC_USER_KEYRING),
- XLAT(KEY_SPEC_USER_SESSION_KEYRING),
- XLAT(KEY_SPEC_GROUP_KEYRING),
- XLAT(KEY_SPEC_REQKEY_AUTH_KEY),
- XLAT(KEY_SPEC_REQUESTOR_KEYRING),
+ XLAT_TYPE(int, KEY_SPEC_THREAD_KEYRING),
+ XLAT_TYPE(int, KEY_SPEC_PROCESS_KEYRING),
+ XLAT_TYPE(int, KEY_SPEC_SESSION_KEYRING),
+ XLAT_TYPE(int, KEY_SPEC_USER_KEYRING),
+ XLAT_TYPE(int, KEY_SPEC_USER_SESSION_KEYRING),
+ XLAT_TYPE(int, KEY_SPEC_GROUP_KEYRING),
+ XLAT_TYPE(int, KEY_SPEC_REQKEY_AUTH_KEY),
+ XLAT_TYPE(int, KEY_SPEC_REQUESTOR_KEYRING),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/key_spec.in b/xlat/key_spec.in
index 3e87954..02d9ee0 100644
--- a/xlat/key_spec.in
+++ b/xlat/key_spec.in
@@ -1,3 +1,4 @@
+#val_type int
KEY_SPEC_THREAD_KEYRING -1
KEY_SPEC_PROCESS_KEYRING -2
KEY_SPEC_SESSION_KEYRING -3
diff --git a/xlat/keyctl_commands.h b/xlat/keyctl_commands.h
index cbe760d..2766271 100644
--- a/xlat/keyctl_commands.h
+++ b/xlat/keyctl_commands.h
@@ -1,85 +1,191 @@
/* Generated by ./xlat/gen.sh from ./xlat/keyctl_commands.in; do not edit. */
-#if !(defined(KEYCTL_GET_KEYRING_ID) || (defined(HAVE_DECL_KEYCTL_GET_KEYRING_ID) && HAVE_DECL_KEYCTL_GET_KEYRING_ID))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KEYCTL_GET_KEYRING_ID) || (defined(HAVE_DECL_KEYCTL_GET_KEYRING_ID) && HAVE_DECL_KEYCTL_GET_KEYRING_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_GET_KEYRING_ID) == (0), "KEYCTL_GET_KEYRING_ID != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_GET_KEYRING_ID 0
#endif
-#if !(defined(KEYCTL_JOIN_SESSION_KEYRING) || (defined(HAVE_DECL_KEYCTL_JOIN_SESSION_KEYRING) && HAVE_DECL_KEYCTL_JOIN_SESSION_KEYRING))
+#if defined(KEYCTL_JOIN_SESSION_KEYRING) || (defined(HAVE_DECL_KEYCTL_JOIN_SESSION_KEYRING) && HAVE_DECL_KEYCTL_JOIN_SESSION_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_JOIN_SESSION_KEYRING) == (1), "KEYCTL_JOIN_SESSION_KEYRING != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_JOIN_SESSION_KEYRING 1
#endif
-#if !(defined(KEYCTL_UPDATE) || (defined(HAVE_DECL_KEYCTL_UPDATE) && HAVE_DECL_KEYCTL_UPDATE))
+#if defined(KEYCTL_UPDATE) || (defined(HAVE_DECL_KEYCTL_UPDATE) && HAVE_DECL_KEYCTL_UPDATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_UPDATE) == (2), "KEYCTL_UPDATE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_UPDATE 2
#endif
-#if !(defined(KEYCTL_REVOKE) || (defined(HAVE_DECL_KEYCTL_REVOKE) && HAVE_DECL_KEYCTL_REVOKE))
+#if defined(KEYCTL_REVOKE) || (defined(HAVE_DECL_KEYCTL_REVOKE) && HAVE_DECL_KEYCTL_REVOKE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_REVOKE) == (3), "KEYCTL_REVOKE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_REVOKE 3
#endif
-#if !(defined(KEYCTL_CHOWN) || (defined(HAVE_DECL_KEYCTL_CHOWN) && HAVE_DECL_KEYCTL_CHOWN))
+#if defined(KEYCTL_CHOWN) || (defined(HAVE_DECL_KEYCTL_CHOWN) && HAVE_DECL_KEYCTL_CHOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_CHOWN) == (4), "KEYCTL_CHOWN != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_CHOWN 4
#endif
-#if !(defined(KEYCTL_SETPERM) || (defined(HAVE_DECL_KEYCTL_SETPERM) && HAVE_DECL_KEYCTL_SETPERM))
+#if defined(KEYCTL_SETPERM) || (defined(HAVE_DECL_KEYCTL_SETPERM) && HAVE_DECL_KEYCTL_SETPERM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_SETPERM) == (5), "KEYCTL_SETPERM != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_SETPERM 5
#endif
-#if !(defined(KEYCTL_DESCRIBE) || (defined(HAVE_DECL_KEYCTL_DESCRIBE) && HAVE_DECL_KEYCTL_DESCRIBE))
+#if defined(KEYCTL_DESCRIBE) || (defined(HAVE_DECL_KEYCTL_DESCRIBE) && HAVE_DECL_KEYCTL_DESCRIBE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_DESCRIBE) == (6), "KEYCTL_DESCRIBE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_DESCRIBE 6
#endif
-#if !(defined(KEYCTL_CLEAR) || (defined(HAVE_DECL_KEYCTL_CLEAR) && HAVE_DECL_KEYCTL_CLEAR))
+#if defined(KEYCTL_CLEAR) || (defined(HAVE_DECL_KEYCTL_CLEAR) && HAVE_DECL_KEYCTL_CLEAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_CLEAR) == (7), "KEYCTL_CLEAR != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_CLEAR 7
#endif
-#if !(defined(KEYCTL_LINK) || (defined(HAVE_DECL_KEYCTL_LINK) && HAVE_DECL_KEYCTL_LINK))
+#if defined(KEYCTL_LINK) || (defined(HAVE_DECL_KEYCTL_LINK) && HAVE_DECL_KEYCTL_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_LINK) == (8), "KEYCTL_LINK != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_LINK 8
#endif
-#if !(defined(KEYCTL_UNLINK) || (defined(HAVE_DECL_KEYCTL_UNLINK) && HAVE_DECL_KEYCTL_UNLINK))
+#if defined(KEYCTL_UNLINK) || (defined(HAVE_DECL_KEYCTL_UNLINK) && HAVE_DECL_KEYCTL_UNLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_UNLINK) == (9), "KEYCTL_UNLINK != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_UNLINK 9
#endif
-#if !(defined(KEYCTL_SEARCH) || (defined(HAVE_DECL_KEYCTL_SEARCH) && HAVE_DECL_KEYCTL_SEARCH))
+#if defined(KEYCTL_SEARCH) || (defined(HAVE_DECL_KEYCTL_SEARCH) && HAVE_DECL_KEYCTL_SEARCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_SEARCH) == (10), "KEYCTL_SEARCH != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_SEARCH 10
#endif
-#if !(defined(KEYCTL_READ) || (defined(HAVE_DECL_KEYCTL_READ) && HAVE_DECL_KEYCTL_READ))
+#if defined(KEYCTL_READ) || (defined(HAVE_DECL_KEYCTL_READ) && HAVE_DECL_KEYCTL_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_READ) == (11), "KEYCTL_READ != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_READ 11
#endif
-#if !(defined(KEYCTL_INSTANTIATE) || (defined(HAVE_DECL_KEYCTL_INSTANTIATE) && HAVE_DECL_KEYCTL_INSTANTIATE))
+#if defined(KEYCTL_INSTANTIATE) || (defined(HAVE_DECL_KEYCTL_INSTANTIATE) && HAVE_DECL_KEYCTL_INSTANTIATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_INSTANTIATE) == (12), "KEYCTL_INSTANTIATE != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_INSTANTIATE 12
#endif
-#if !(defined(KEYCTL_NEGATE) || (defined(HAVE_DECL_KEYCTL_NEGATE) && HAVE_DECL_KEYCTL_NEGATE))
+#if defined(KEYCTL_NEGATE) || (defined(HAVE_DECL_KEYCTL_NEGATE) && HAVE_DECL_KEYCTL_NEGATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_NEGATE) == (13), "KEYCTL_NEGATE != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_NEGATE 13
#endif
-#if !(defined(KEYCTL_SET_REQKEY_KEYRING) || (defined(HAVE_DECL_KEYCTL_SET_REQKEY_KEYRING) && HAVE_DECL_KEYCTL_SET_REQKEY_KEYRING))
+#if defined(KEYCTL_SET_REQKEY_KEYRING) || (defined(HAVE_DECL_KEYCTL_SET_REQKEY_KEYRING) && HAVE_DECL_KEYCTL_SET_REQKEY_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_SET_REQKEY_KEYRING) == (14), "KEYCTL_SET_REQKEY_KEYRING != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_SET_REQKEY_KEYRING 14
#endif
-#if !(defined(KEYCTL_SET_TIMEOUT) || (defined(HAVE_DECL_KEYCTL_SET_TIMEOUT) && HAVE_DECL_KEYCTL_SET_TIMEOUT))
+#if defined(KEYCTL_SET_TIMEOUT) || (defined(HAVE_DECL_KEYCTL_SET_TIMEOUT) && HAVE_DECL_KEYCTL_SET_TIMEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_SET_TIMEOUT) == (15), "KEYCTL_SET_TIMEOUT != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_SET_TIMEOUT 15
#endif
-#if !(defined(KEYCTL_ASSUME_AUTHORITY) || (defined(HAVE_DECL_KEYCTL_ASSUME_AUTHORITY) && HAVE_DECL_KEYCTL_ASSUME_AUTHORITY))
+#if defined(KEYCTL_ASSUME_AUTHORITY) || (defined(HAVE_DECL_KEYCTL_ASSUME_AUTHORITY) && HAVE_DECL_KEYCTL_ASSUME_AUTHORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_ASSUME_AUTHORITY) == (16), "KEYCTL_ASSUME_AUTHORITY != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_ASSUME_AUTHORITY 16
#endif
-#if !(defined(KEYCTL_GET_SECURITY) || (defined(HAVE_DECL_KEYCTL_GET_SECURITY) && HAVE_DECL_KEYCTL_GET_SECURITY))
+#if defined(KEYCTL_GET_SECURITY) || (defined(HAVE_DECL_KEYCTL_GET_SECURITY) && HAVE_DECL_KEYCTL_GET_SECURITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_GET_SECURITY) == (17), "KEYCTL_GET_SECURITY != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_GET_SECURITY 17
#endif
-#if !(defined(KEYCTL_SESSION_TO_PARENT) || (defined(HAVE_DECL_KEYCTL_SESSION_TO_PARENT) && HAVE_DECL_KEYCTL_SESSION_TO_PARENT))
+#if defined(KEYCTL_SESSION_TO_PARENT) || (defined(HAVE_DECL_KEYCTL_SESSION_TO_PARENT) && HAVE_DECL_KEYCTL_SESSION_TO_PARENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_SESSION_TO_PARENT) == (18), "KEYCTL_SESSION_TO_PARENT != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_SESSION_TO_PARENT 18
#endif
-#if !(defined(KEYCTL_REJECT) || (defined(HAVE_DECL_KEYCTL_REJECT) && HAVE_DECL_KEYCTL_REJECT))
+#if defined(KEYCTL_REJECT) || (defined(HAVE_DECL_KEYCTL_REJECT) && HAVE_DECL_KEYCTL_REJECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_REJECT) == (19), "KEYCTL_REJECT != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_REJECT 19
#endif
-#if !(defined(KEYCTL_INSTANTIATE_IOV) || (defined(HAVE_DECL_KEYCTL_INSTANTIATE_IOV) && HAVE_DECL_KEYCTL_INSTANTIATE_IOV))
+#if defined(KEYCTL_INSTANTIATE_IOV) || (defined(HAVE_DECL_KEYCTL_INSTANTIATE_IOV) && HAVE_DECL_KEYCTL_INSTANTIATE_IOV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_INSTANTIATE_IOV) == (20), "KEYCTL_INSTANTIATE_IOV != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_INSTANTIATE_IOV 20
#endif
-#if !(defined(KEYCTL_INVALIDATE) || (defined(HAVE_DECL_KEYCTL_INVALIDATE) && HAVE_DECL_KEYCTL_INVALIDATE))
+#if defined(KEYCTL_INVALIDATE) || (defined(HAVE_DECL_KEYCTL_INVALIDATE) && HAVE_DECL_KEYCTL_INVALIDATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_INVALIDATE) == (21), "KEYCTL_INVALIDATE != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_INVALIDATE 21
#endif
-#if !(defined(KEYCTL_GET_PERSISTENT) || (defined(HAVE_DECL_KEYCTL_GET_PERSISTENT) && HAVE_DECL_KEYCTL_GET_PERSISTENT))
+#if defined(KEYCTL_GET_PERSISTENT) || (defined(HAVE_DECL_KEYCTL_GET_PERSISTENT) && HAVE_DECL_KEYCTL_GET_PERSISTENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_GET_PERSISTENT) == (22), "KEYCTL_GET_PERSISTENT != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_GET_PERSISTENT 22
#endif
-#if !(defined(KEYCTL_DH_COMPUTE) || (defined(HAVE_DECL_KEYCTL_DH_COMPUTE) && HAVE_DECL_KEYCTL_DH_COMPUTE))
+#if defined(KEYCTL_DH_COMPUTE) || (defined(HAVE_DECL_KEYCTL_DH_COMPUTE) && HAVE_DECL_KEYCTL_DH_COMPUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_DH_COMPUTE) == (23), "KEYCTL_DH_COMPUTE != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_DH_COMPUTE 23
#endif
-#if !(defined(KEYCTL_RESTRICT_KEYRING) || (defined(HAVE_DECL_KEYCTL_RESTRICT_KEYRING) && HAVE_DECL_KEYCTL_RESTRICT_KEYRING))
+#if defined(KEYCTL_RESTRICT_KEYRING) || (defined(HAVE_DECL_KEYCTL_RESTRICT_KEYRING) && HAVE_DECL_KEYCTL_RESTRICT_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KEYCTL_RESTRICT_KEYRING) == (29), "KEYCTL_RESTRICT_KEYRING != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KEYCTL_RESTRICT_KEYRING 29
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat keyctl_commands in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat keyctl_commands in mpers mode
+
+# else
static
const struct xlat keyctl_commands[] = {
@@ -111,4 +217,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/kvm_mem_flags.h b/xlat/kvm_mem_flags.h
index 5a8ebee..3598821 100644
--- a/xlat/kvm_mem_flags.h
+++ b/xlat/kvm_mem_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/kvm_mem_flags.in; do not edit. */
-#if !(defined(KVM_MEM_LOG_DIRTY_PAGES) || (defined(HAVE_DECL_KVM_MEM_LOG_DIRTY_PAGES) && HAVE_DECL_KVM_MEM_LOG_DIRTY_PAGES))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KVM_MEM_LOG_DIRTY_PAGES) || (defined(HAVE_DECL_KVM_MEM_LOG_DIRTY_PAGES) && HAVE_DECL_KVM_MEM_LOG_DIRTY_PAGES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KVM_MEM_LOG_DIRTY_PAGES) == ((1 << 0)), "KVM_MEM_LOG_DIRTY_PAGES != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KVM_MEM_LOG_DIRTY_PAGES (1 << 0)
#endif
-#if !(defined(KVM_MEM_READONLY) || (defined(HAVE_DECL_KVM_MEM_READONLY) && HAVE_DECL_KVM_MEM_READONLY))
+#if defined(KVM_MEM_READONLY) || (defined(HAVE_DECL_KVM_MEM_READONLY) && HAVE_DECL_KVM_MEM_READONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KVM_MEM_READONLY) == ((1 << 1)), "KVM_MEM_READONLY != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KVM_MEM_READONLY (1 << 1)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat kvm_mem_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat kvm_mem_flags in mpers mode
+
+# else
static
const struct xlat kvm_mem_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/lockfcmds.h b/xlat/lockfcmds.h
index 632c9cb..da69625 100644
--- a/xlat/lockfcmds.h
+++ b/xlat/lockfcmds.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/lockfcmds.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat lockfcmds in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat lockfcmds in mpers mode
+
+# else
static
const struct xlat lockfcmds[] = {
@@ -26,4 +32,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/loop_cmds.h b/xlat/loop_cmds.h
index cc8a7c9..7230821 100644
--- a/xlat/loop_cmds.h
+++ b/xlat/loop_cmds.h
@@ -1,40 +1,96 @@
/* Generated by ./xlat/gen.sh from ./xlat/loop_cmds.in; do not edit. */
-#if !(defined(LOOP_SET_FD) || (defined(HAVE_DECL_LOOP_SET_FD) && HAVE_DECL_LOOP_SET_FD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LOOP_SET_FD) || (defined(HAVE_DECL_LOOP_SET_FD) && HAVE_DECL_LOOP_SET_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_SET_FD) == (0x4C00), "LOOP_SET_FD != 0x4C00");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_SET_FD 0x4C00
#endif
-#if !(defined(LOOP_CLR_FD) || (defined(HAVE_DECL_LOOP_CLR_FD) && HAVE_DECL_LOOP_CLR_FD))
+#if defined(LOOP_CLR_FD) || (defined(HAVE_DECL_LOOP_CLR_FD) && HAVE_DECL_LOOP_CLR_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_CLR_FD) == (0x4C01), "LOOP_CLR_FD != 0x4C01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_CLR_FD 0x4C01
#endif
-#if !(defined(LOOP_SET_STATUS) || (defined(HAVE_DECL_LOOP_SET_STATUS) && HAVE_DECL_LOOP_SET_STATUS))
+#if defined(LOOP_SET_STATUS) || (defined(HAVE_DECL_LOOP_SET_STATUS) && HAVE_DECL_LOOP_SET_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_SET_STATUS) == (0x4C02), "LOOP_SET_STATUS != 0x4C02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_SET_STATUS 0x4C02
#endif
-#if !(defined(LOOP_GET_STATUS) || (defined(HAVE_DECL_LOOP_GET_STATUS) && HAVE_DECL_LOOP_GET_STATUS))
+#if defined(LOOP_GET_STATUS) || (defined(HAVE_DECL_LOOP_GET_STATUS) && HAVE_DECL_LOOP_GET_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_GET_STATUS) == (0x4C03), "LOOP_GET_STATUS != 0x4C03");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_GET_STATUS 0x4C03
#endif
-#if !(defined(LOOP_SET_STATUS64) || (defined(HAVE_DECL_LOOP_SET_STATUS64) && HAVE_DECL_LOOP_SET_STATUS64))
+#if defined(LOOP_SET_STATUS64) || (defined(HAVE_DECL_LOOP_SET_STATUS64) && HAVE_DECL_LOOP_SET_STATUS64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_SET_STATUS64) == (0x4C04), "LOOP_SET_STATUS64 != 0x4C04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_SET_STATUS64 0x4C04
#endif
-#if !(defined(LOOP_GET_STATUS64) || (defined(HAVE_DECL_LOOP_GET_STATUS64) && HAVE_DECL_LOOP_GET_STATUS64))
+#if defined(LOOP_GET_STATUS64) || (defined(HAVE_DECL_LOOP_GET_STATUS64) && HAVE_DECL_LOOP_GET_STATUS64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_GET_STATUS64) == (0x4C05), "LOOP_GET_STATUS64 != 0x4C05");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_GET_STATUS64 0x4C05
#endif
-#if !(defined(LOOP_CHANGE_FD) || (defined(HAVE_DECL_LOOP_CHANGE_FD) && HAVE_DECL_LOOP_CHANGE_FD))
+#if defined(LOOP_CHANGE_FD) || (defined(HAVE_DECL_LOOP_CHANGE_FD) && HAVE_DECL_LOOP_CHANGE_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_CHANGE_FD) == (0x4C06), "LOOP_CHANGE_FD != 0x4C06");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_CHANGE_FD 0x4C06
#endif
-#if !(defined(LOOP_SET_CAPACITY) || (defined(HAVE_DECL_LOOP_SET_CAPACITY) && HAVE_DECL_LOOP_SET_CAPACITY))
+#if defined(LOOP_SET_CAPACITY) || (defined(HAVE_DECL_LOOP_SET_CAPACITY) && HAVE_DECL_LOOP_SET_CAPACITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_SET_CAPACITY) == (0x4C07), "LOOP_SET_CAPACITY != 0x4C07");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_SET_CAPACITY 0x4C07
#endif
-#if !(defined(LOOP_SET_DIRECT_IO) || (defined(HAVE_DECL_LOOP_SET_DIRECT_IO) && HAVE_DECL_LOOP_SET_DIRECT_IO))
+#if defined(LOOP_SET_DIRECT_IO) || (defined(HAVE_DECL_LOOP_SET_DIRECT_IO) && HAVE_DECL_LOOP_SET_DIRECT_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_SET_DIRECT_IO) == (0x4C08), "LOOP_SET_DIRECT_IO != 0x4C08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_SET_DIRECT_IO 0x4C08
#endif
-#if !(defined(LOOP_SET_BLOCK_SIZE) || (defined(HAVE_DECL_LOOP_SET_BLOCK_SIZE) && HAVE_DECL_LOOP_SET_BLOCK_SIZE))
+#if defined(LOOP_SET_BLOCK_SIZE) || (defined(HAVE_DECL_LOOP_SET_BLOCK_SIZE) && HAVE_DECL_LOOP_SET_BLOCK_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_SET_BLOCK_SIZE) == (0x4C09), "LOOP_SET_BLOCK_SIZE != 0x4C09");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_SET_BLOCK_SIZE 0x4C09
#endif
-#if !(defined(LOOP_CTL_ADD) || (defined(HAVE_DECL_LOOP_CTL_ADD) && HAVE_DECL_LOOP_CTL_ADD))
+#if defined(LOOP_CTL_ADD) || (defined(HAVE_DECL_LOOP_CTL_ADD) && HAVE_DECL_LOOP_CTL_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_CTL_ADD) == (0x4C80), "LOOP_CTL_ADD != 0x4C80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_CTL_ADD 0x4C80
#endif
-#if !(defined(LOOP_CTL_REMOVE) || (defined(HAVE_DECL_LOOP_CTL_REMOVE) && HAVE_DECL_LOOP_CTL_REMOVE))
+#if defined(LOOP_CTL_REMOVE) || (defined(HAVE_DECL_LOOP_CTL_REMOVE) && HAVE_DECL_LOOP_CTL_REMOVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_CTL_REMOVE) == (0x4C81), "LOOP_CTL_REMOVE != 0x4C81");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_CTL_REMOVE 0x4C81
#endif
-#if !(defined(LOOP_CTL_GET_FREE) || (defined(HAVE_DECL_LOOP_CTL_GET_FREE) && HAVE_DECL_LOOP_CTL_GET_FREE))
+#if defined(LOOP_CTL_GET_FREE) || (defined(HAVE_DECL_LOOP_CTL_GET_FREE) && HAVE_DECL_LOOP_CTL_GET_FREE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LOOP_CTL_GET_FREE) == (0x4C82), "LOOP_CTL_GET_FREE != 0x4C82");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LOOP_CTL_GET_FREE 0x4C82
#endif
diff --git a/xlat/loop_crypt_type_options.h b/xlat/loop_crypt_type_options.h
index 478618b..a08c6a7 100644
--- a/xlat/loop_crypt_type_options.h
+++ b/xlat/loop_crypt_type_options.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/loop_crypt_type_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat loop_crypt_type_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat loop_crypt_type_options[] = {
#if defined(LO_CRYPT_NONE) || (defined(HAVE_DECL_LO_CRYPT_NONE) && HAVE_DECL_LO_CRYPT_NONE)
XLAT(LO_CRYPT_NONE),
@@ -43,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/loop_flags_options.h b/xlat/loop_flags_options.h
index d69f53d..5af8dfc 100644
--- a/xlat/loop_flags_options.h
+++ b/xlat/loop_flags_options.h
@@ -1,29 +1,55 @@
/* Generated by ./xlat/gen.sh from ./xlat/loop_flags_options.in; do not edit. */
-#if !(defined(LO_FLAGS_READ_ONLY) || (defined(HAVE_DECL_LO_FLAGS_READ_ONLY) && HAVE_DECL_LO_FLAGS_READ_ONLY))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LO_FLAGS_READ_ONLY) || (defined(HAVE_DECL_LO_FLAGS_READ_ONLY) && HAVE_DECL_LO_FLAGS_READ_ONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LO_FLAGS_READ_ONLY) == (1), "LO_FLAGS_READ_ONLY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LO_FLAGS_READ_ONLY 1
#endif
-#if !(defined(LO_FLAGS_USE_AOPS) || (defined(HAVE_DECL_LO_FLAGS_USE_AOPS) && HAVE_DECL_LO_FLAGS_USE_AOPS))
+#if defined(LO_FLAGS_USE_AOPS) || (defined(HAVE_DECL_LO_FLAGS_USE_AOPS) && HAVE_DECL_LO_FLAGS_USE_AOPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LO_FLAGS_USE_AOPS) == (2), "LO_FLAGS_USE_AOPS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LO_FLAGS_USE_AOPS 2
#endif
-#if !(defined(LO_FLAGS_AUTOCLEAR) || (defined(HAVE_DECL_LO_FLAGS_AUTOCLEAR) && HAVE_DECL_LO_FLAGS_AUTOCLEAR))
+#if defined(LO_FLAGS_AUTOCLEAR) || (defined(HAVE_DECL_LO_FLAGS_AUTOCLEAR) && HAVE_DECL_LO_FLAGS_AUTOCLEAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LO_FLAGS_AUTOCLEAR) == (4), "LO_FLAGS_AUTOCLEAR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LO_FLAGS_AUTOCLEAR 4
#endif
-#if !(defined(LO_FLAGS_PARTSCAN) || (defined(HAVE_DECL_LO_FLAGS_PARTSCAN) && HAVE_DECL_LO_FLAGS_PARTSCAN))
+#if defined(LO_FLAGS_PARTSCAN) || (defined(HAVE_DECL_LO_FLAGS_PARTSCAN) && HAVE_DECL_LO_FLAGS_PARTSCAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LO_FLAGS_PARTSCAN) == (8), "LO_FLAGS_PARTSCAN != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LO_FLAGS_PARTSCAN 8
#endif
-#if !(defined(LO_FLAGS_DIRECT_IO) || (defined(HAVE_DECL_LO_FLAGS_DIRECT_IO) && HAVE_DECL_LO_FLAGS_DIRECT_IO))
+#if defined(LO_FLAGS_DIRECT_IO) || (defined(HAVE_DECL_LO_FLAGS_DIRECT_IO) && HAVE_DECL_LO_FLAGS_DIRECT_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LO_FLAGS_DIRECT_IO) == (16), "LO_FLAGS_DIRECT_IO != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LO_FLAGS_DIRECT_IO 16
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat loop_flags_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat loop_flags_options[] = {
XLAT(LO_FLAGS_READ_ONLY),
@@ -37,4 +63,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/lwtunnel_encap_types.h b/xlat/lwtunnel_encap_types.h
index ce29b6f..f5f4c5f 100644
--- a/xlat/lwtunnel_encap_types.h
+++ b/xlat/lwtunnel_encap_types.h
@@ -1,31 +1,65 @@
/* Generated by ./xlat/gen.sh from ./xlat/lwtunnel_encap_types.in; do not edit. */
-#if !(defined(LWTUNNEL_ENCAP_NONE) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_NONE) && HAVE_DECL_LWTUNNEL_ENCAP_NONE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LWTUNNEL_ENCAP_NONE) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_NONE) && HAVE_DECL_LWTUNNEL_ENCAP_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LWTUNNEL_ENCAP_NONE) == (0), "LWTUNNEL_ENCAP_NONE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LWTUNNEL_ENCAP_NONE 0
#endif
-#if !(defined(LWTUNNEL_ENCAP_MPLS) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_MPLS) && HAVE_DECL_LWTUNNEL_ENCAP_MPLS))
+#if defined(LWTUNNEL_ENCAP_MPLS) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_MPLS) && HAVE_DECL_LWTUNNEL_ENCAP_MPLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LWTUNNEL_ENCAP_MPLS) == (1), "LWTUNNEL_ENCAP_MPLS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LWTUNNEL_ENCAP_MPLS 1
#endif
-#if !(defined(LWTUNNEL_ENCAP_IP) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_IP) && HAVE_DECL_LWTUNNEL_ENCAP_IP))
+#if defined(LWTUNNEL_ENCAP_IP) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_IP) && HAVE_DECL_LWTUNNEL_ENCAP_IP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LWTUNNEL_ENCAP_IP) == (2), "LWTUNNEL_ENCAP_IP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LWTUNNEL_ENCAP_IP 2
#endif
-#if !(defined(LWTUNNEL_ENCAP_ILA) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_ILA) && HAVE_DECL_LWTUNNEL_ENCAP_ILA))
+#if defined(LWTUNNEL_ENCAP_ILA) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_ILA) && HAVE_DECL_LWTUNNEL_ENCAP_ILA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LWTUNNEL_ENCAP_ILA) == (3), "LWTUNNEL_ENCAP_ILA != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LWTUNNEL_ENCAP_ILA 3
#endif
-#if !(defined(LWTUNNEL_ENCAP_IP6) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_IP6) && HAVE_DECL_LWTUNNEL_ENCAP_IP6))
+#if defined(LWTUNNEL_ENCAP_IP6) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_IP6) && HAVE_DECL_LWTUNNEL_ENCAP_IP6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LWTUNNEL_ENCAP_IP6) == (4), "LWTUNNEL_ENCAP_IP6 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LWTUNNEL_ENCAP_IP6 4
#endif
-#if !(defined(LWTUNNEL_ENCAP_SEG6) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_SEG6) && HAVE_DECL_LWTUNNEL_ENCAP_SEG6))
+#if defined(LWTUNNEL_ENCAP_SEG6) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_SEG6) && HAVE_DECL_LWTUNNEL_ENCAP_SEG6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LWTUNNEL_ENCAP_SEG6) == (5), "LWTUNNEL_ENCAP_SEG6 != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LWTUNNEL_ENCAP_SEG6 5
#endif
-#if !(defined(LWTUNNEL_ENCAP_BPF) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_BPF) && HAVE_DECL_LWTUNNEL_ENCAP_BPF))
+#if defined(LWTUNNEL_ENCAP_BPF) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_BPF) && HAVE_DECL_LWTUNNEL_ENCAP_BPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LWTUNNEL_ENCAP_BPF) == (6), "LWTUNNEL_ENCAP_BPF != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define LWTUNNEL_ENCAP_BPF 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat lwtunnel_encap_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat lwtunnel_encap_types in mpers mode
+
+# else
static
const struct xlat lwtunnel_encap_types[] = {
@@ -39,4 +73,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/madvise_cmds.h b/xlat/madvise_cmds.h
index ec5b06b..15cdd0f 100644
--- a/xlat/madvise_cmds.h
+++ b/xlat/madvise_cmds.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/madvise_cmds.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat madvise_cmds in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat madvise_cmds in mpers mode
+
+# else
static
const struct xlat madvise_cmds[] = {
@@ -68,4 +74,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mbindflags.h b/xlat/mbindflags.h
index eb30ba1..ea4e1ec 100644
--- a/xlat/mbindflags.h
+++ b/xlat/mbindflags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/mbindflags.in; do not edit. */
-#if !(defined(MPOL_MF_STRICT) || (defined(HAVE_DECL_MPOL_MF_STRICT) && HAVE_DECL_MPOL_MF_STRICT))
+
+#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))
+#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))
+#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
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat mbindflags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat mbindflags in mpers mode
+
+# else
static
const struct xlat mbindflags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mctl_sync.h b/xlat/mctl_sync.h
index 144f7f7..f70c693 100644
--- a/xlat/mctl_sync.h
+++ b/xlat/mctl_sync.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/mctl_sync.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat mctl_sync in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat mctl_sync in mpers mode
+
+# else
static
const struct xlat mctl_sync[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mdb_flags.h b/xlat/mdb_flags.h
index 4340f3e..15b066c 100644
--- a/xlat/mdb_flags.h
+++ b/xlat/mdb_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/mdb_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat mdb_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat mdb_flags in mpers mode
+
+# else
static
const struct xlat mdb_flags[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mdb_states.h b/xlat/mdb_states.h
index dd1337d..f5ca3ed 100644
--- a/xlat/mdb_states.h
+++ b/xlat/mdb_states.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/mdb_states.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat mdb_states in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat mdb_states in mpers mode
+
+# else
static
const struct xlat mdb_states[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/membarrier_cmds.h b/xlat/membarrier_cmds.h
index 25c3e32..71e2960 100644
--- a/xlat/membarrier_cmds.h
+++ b/xlat/membarrier_cmds.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/membarrier_cmds.in; do not edit. */
-#if !(defined(MEMBARRIER_CMD_QUERY) || (defined(HAVE_DECL_MEMBARRIER_CMD_QUERY) && HAVE_DECL_MEMBARRIER_CMD_QUERY))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MEMBARRIER_CMD_QUERY) || (defined(HAVE_DECL_MEMBARRIER_CMD_QUERY) && HAVE_DECL_MEMBARRIER_CMD_QUERY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_QUERY) == (0), "MEMBARRIER_CMD_QUERY != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_QUERY 0
#endif
-#if !(defined(MEMBARRIER_CMD_GLOBAL) || (defined(HAVE_DECL_MEMBARRIER_CMD_GLOBAL) && HAVE_DECL_MEMBARRIER_CMD_GLOBAL))
+#if defined(MEMBARRIER_CMD_GLOBAL) || (defined(HAVE_DECL_MEMBARRIER_CMD_GLOBAL) && HAVE_DECL_MEMBARRIER_CMD_GLOBAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_GLOBAL) == (1 << 0), "MEMBARRIER_CMD_GLOBAL != 1 << 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_GLOBAL 1 << 0
#endif
-#if !(defined(MEMBARRIER_CMD_GLOBAL_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_GLOBAL_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_GLOBAL_EXPEDITED))
+#if defined(MEMBARRIER_CMD_GLOBAL_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_GLOBAL_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_GLOBAL_EXPEDITED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_GLOBAL_EXPEDITED) == (1 << 1), "MEMBARRIER_CMD_GLOBAL_EXPEDITED != 1 << 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_GLOBAL_EXPEDITED 1 << 1
#endif
-#if !(defined(MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED))
+#if defined(MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED) == (1 << 2), "MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED != 1 << 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED 1 << 2
#endif
-#if !(defined(MEMBARRIER_CMD_PRIVATE_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED))
+#if defined(MEMBARRIER_CMD_PRIVATE_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_PRIVATE_EXPEDITED) == (1 << 3), "MEMBARRIER_CMD_PRIVATE_EXPEDITED != 1 << 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_PRIVATE_EXPEDITED 1 << 3
#endif
-#if !(defined(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED))
+#if defined(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) == (1 << 4), "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED != 1 << 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED 1 << 4
#endif
-#if !(defined(MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE) || (defined(HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE) && HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE))
+#if defined(MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE) || (defined(HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE) && HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE) == (1 << 5), "MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE != 1 << 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE 1 << 5
#endif
-#if !(defined(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE) || (defined(HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE) && HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE))
+#if defined(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE) || (defined(HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE) && HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE) == (1 << 6), "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE != 1 << 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE 1 << 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat membarrier_cmds in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat membarrier_cmds in mpers mode
+
+# else
static
const struct xlat membarrier_cmds[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/memfd_create_flags.h b/xlat/memfd_create_flags.h
index f656e6b..1fd77d1 100644
--- a/xlat/memfd_create_flags.h
+++ b/xlat/memfd_create_flags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/memfd_create_flags.in; do not edit. */
-#if !(defined(MFD_CLOEXEC) || (defined(HAVE_DECL_MFD_CLOEXEC) && HAVE_DECL_MFD_CLOEXEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MFD_CLOEXEC) || (defined(HAVE_DECL_MFD_CLOEXEC) && HAVE_DECL_MFD_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MFD_CLOEXEC) == (1), "MFD_CLOEXEC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MFD_CLOEXEC 1
#endif
-#if !(defined(MFD_ALLOW_SEALING) || (defined(HAVE_DECL_MFD_ALLOW_SEALING) && HAVE_DECL_MFD_ALLOW_SEALING))
+#if defined(MFD_ALLOW_SEALING) || (defined(HAVE_DECL_MFD_ALLOW_SEALING) && HAVE_DECL_MFD_ALLOW_SEALING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MFD_ALLOW_SEALING) == (2), "MFD_ALLOW_SEALING != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MFD_ALLOW_SEALING 2
#endif
-#if !(defined(MFD_HUGETLB) || (defined(HAVE_DECL_MFD_HUGETLB) && HAVE_DECL_MFD_HUGETLB))
+#if defined(MFD_HUGETLB) || (defined(HAVE_DECL_MFD_HUGETLB) && HAVE_DECL_MFD_HUGETLB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MFD_HUGETLB) == (4), "MFD_HUGETLB != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MFD_HUGETLB 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat memfd_create_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat memfd_create_flags in mpers mode
+
+# else
static
const struct xlat memfd_create_flags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mempolicyflags.h b/xlat/mempolicyflags.h
index 38db13c..a68fcec 100644
--- a/xlat/mempolicyflags.h
+++ b/xlat/mempolicyflags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/mempolicyflags.in; do not edit. */
-#if !(defined(MPOL_F_NODE) || (defined(HAVE_DECL_MPOL_F_NODE) && HAVE_DECL_MPOL_F_NODE))
+
+#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))
+#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
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat mempolicyflags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat mempolicyflags in mpers mode
+
+# else
static
const struct xlat mempolicyflags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mlock_flags.h b/xlat/mlock_flags.h
index 9ec2e54..f2ef3e4 100644
--- a/xlat/mlock_flags.h
+++ b/xlat/mlock_flags.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/mlock_flags.in; do not edit. */
-#if !(defined(MLOCK_ONFAULT) || (defined(HAVE_DECL_MLOCK_ONFAULT) && HAVE_DECL_MLOCK_ONFAULT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MLOCK_ONFAULT) || (defined(HAVE_DECL_MLOCK_ONFAULT) && HAVE_DECL_MLOCK_ONFAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MLOCK_ONFAULT) == (1), "MLOCK_ONFAULT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MLOCK_ONFAULT 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat mlock_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat mlock_flags in mpers mode
+
+# else
static
const struct xlat mlock_flags[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mlockall_flags.h b/xlat/mlockall_flags.h
index c3fb08f..718ce3f 100644
--- a/xlat/mlockall_flags.h
+++ b/xlat/mlockall_flags.h
@@ -1,26 +1,76 @@
/* Generated by ./xlat/gen.sh from ./xlat/mlockall_flags.in; do not edit. */
-#if !(defined(MCL_CURRENT) || (defined(HAVE_DECL_MCL_CURRENT) && HAVE_DECL_MCL_CURRENT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined __alpha__ || defined __powerpc__ || defined __powerpc64__ || defined __sparc__
+#if defined(MCL_CURRENT) || (defined(HAVE_DECL_MCL_CURRENT) && HAVE_DECL_MCL_CURRENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MCL_CURRENT) == (0x2000), "MCL_CURRENT != 0x2000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MCL_CURRENT 0x2000
+#endif
+#if defined(MCL_FUTURE) || (defined(HAVE_DECL_MCL_FUTURE) && HAVE_DECL_MCL_FUTURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MCL_FUTURE) == (0x4000), "MCL_FUTURE != 0x4000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MCL_FUTURE 0x4000
+#endif
+#if defined(MCL_ONFAULT) || (defined(HAVE_DECL_MCL_ONFAULT) && HAVE_DECL_MCL_ONFAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MCL_ONFAULT) == (0x8000), "MCL_ONFAULT != 0x8000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MCL_ONFAULT 0x8000
+#endif
+#else
+#if defined(MCL_CURRENT) || (defined(HAVE_DECL_MCL_CURRENT) && HAVE_DECL_MCL_CURRENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MCL_CURRENT) == (1), "MCL_CURRENT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MCL_CURRENT 1
#endif
-#if !(defined(MCL_FUTURE) || (defined(HAVE_DECL_MCL_FUTURE) && HAVE_DECL_MCL_FUTURE))
+#if defined(MCL_FUTURE) || (defined(HAVE_DECL_MCL_FUTURE) && HAVE_DECL_MCL_FUTURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MCL_FUTURE) == (2), "MCL_FUTURE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MCL_FUTURE 2
#endif
-#if !(defined(MCL_ONFAULT) || (defined(HAVE_DECL_MCL_ONFAULT) && HAVE_DECL_MCL_ONFAULT))
+#if defined(MCL_ONFAULT) || (defined(HAVE_DECL_MCL_ONFAULT) && HAVE_DECL_MCL_ONFAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MCL_ONFAULT) == (4), "MCL_ONFAULT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MCL_ONFAULT 4
#endif
+#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat mlockall_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat mlockall_flags in mpers mode
+
+# else
static
const struct xlat mlockall_flags[] = {
+#if defined __alpha__ || defined __powerpc__ || defined __powerpc64__ || defined __sparc__
XLAT(MCL_CURRENT),
XLAT(MCL_FUTURE),
XLAT(MCL_ONFAULT),
+#else
+ XLAT(MCL_CURRENT),
+ XLAT(MCL_FUTURE),
+ XLAT(MCL_ONFAULT),
+#endif
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mlockall_flags.in b/xlat/mlockall_flags.in
index a39d7ba..d9ad7af 100644
--- a/xlat/mlockall_flags.in
+++ b/xlat/mlockall_flags.in
@@ -1,3 +1,9 @@
+#if defined __alpha__ || defined __powerpc__ || defined __powerpc64__ || defined __sparc__
+MCL_CURRENT 0x2000
+MCL_FUTURE 0x4000
+MCL_ONFAULT 0x8000
+#else
MCL_CURRENT 1
MCL_FUTURE 2
MCL_ONFAULT 4
+#endif
diff --git a/xlat/mmap_flags.h b/xlat/mmap_flags.h
index 4858f07..aafa168 100644
--- a/xlat/mmap_flags.h
+++ b/xlat/mmap_flags.h
@@ -1,21 +1,39 @@
/* Generated by ./xlat/gen.sh from ./xlat/mmap_flags.in; do not edit. */
-#if !(defined(MAP_SHARED) || (defined(HAVE_DECL_MAP_SHARED) && HAVE_DECL_MAP_SHARED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MAP_SHARED) || (defined(HAVE_DECL_MAP_SHARED) && HAVE_DECL_MAP_SHARED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MAP_SHARED) == (1), "MAP_SHARED != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MAP_SHARED 1
#endif
-#if !(defined(MAP_PRIVATE) || (defined(HAVE_DECL_MAP_PRIVATE) && HAVE_DECL_MAP_PRIVATE))
+#if defined(MAP_PRIVATE) || (defined(HAVE_DECL_MAP_PRIVATE) && HAVE_DECL_MAP_PRIVATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MAP_PRIVATE) == (2), "MAP_PRIVATE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MAP_PRIVATE 2
#endif
-#if !(defined(MAP_SHARED_VALIDATE) || (defined(HAVE_DECL_MAP_SHARED_VALIDATE) && HAVE_DECL_MAP_SHARED_VALIDATE))
+#if defined(MAP_SHARED_VALIDATE) || (defined(HAVE_DECL_MAP_SHARED_VALIDATE) && HAVE_DECL_MAP_SHARED_VALIDATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MAP_SHARED_VALIDATE) == (3), "MAP_SHARED_VALIDATE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MAP_SHARED_VALIDATE 3
#endif
#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED > 0
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat mmap_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat mmap_flags in mpers mode
+
+# else
static
const struct xlat mmap_flags[] = {
@@ -87,6 +105,9 @@
XLAT(MAP_UNINITIALIZED),
#endif
#endif
+#if defined(MAP_FIXED_NOREPLACE) || (defined(HAVE_DECL_MAP_FIXED_NOREPLACE) && HAVE_DECL_MAP_FIXED_NOREPLACE)
+ XLAT(MAP_FIXED_NOREPLACE),
+#endif
#if defined(MAP_AUTOGROW) || (defined(HAVE_DECL_MAP_AUTOGROW) && HAVE_DECL_MAP_AUTOGROW)
XLAT(MAP_AUTOGROW),
#endif
@@ -102,4 +123,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mmap_flags.in b/xlat/mmap_flags.in
index 5b05e61..150717a 100644
--- a/xlat/mmap_flags.in
+++ b/xlat/mmap_flags.in
@@ -24,6 +24,7 @@
#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED > 0
MAP_UNINITIALIZED
#endif
+MAP_FIXED_NOREPLACE
MAP_AUTOGROW /* MIPS, xtensa */
MAP_AUTORSRV /* MIPS, xtensa */
MAP_LOCAL /* MIPS, xtensa */
diff --git a/xlat/mmap_prot.h b/xlat/mmap_prot.h
index 0ff04eb..310e7f1 100644
--- a/xlat/mmap_prot.h
+++ b/xlat/mmap_prot.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/mmap_prot.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat mmap_prot in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat mmap_prot in mpers mode
+
+# else
static
const struct xlat mmap_prot[] = {
@@ -32,7 +38,12 @@
#if defined(PROT_SAO) || (defined(HAVE_DECL_PROT_SAO) && HAVE_DECL_PROT_SAO)
XLAT(PROT_SAO),
#endif
+#if defined(PROT_ADI) || (defined(HAVE_DECL_PROT_ADI) && HAVE_DECL_PROT_ADI)
+ XLAT(PROT_ADI),
+#endif
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mmap_prot.in b/xlat/mmap_prot.in
index 0589980..e99ec29 100644
--- a/xlat/mmap_prot.in
+++ b/xlat/mmap_prot.in
@@ -6,3 +6,4 @@
PROT_GROWSDOWN
PROT_GROWSUP
PROT_SAO
+PROT_ADI
diff --git a/xlat/modem_flags.h b/xlat/modem_flags.h
index f171975..322ff11 100644
--- a/xlat/modem_flags.h
+++ b/xlat/modem_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/modem_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat modem_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat modem_flags in mpers mode
+
+# else
static
const struct xlat modem_flags[] = {
@@ -44,4 +50,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/modetypes.h b/xlat/modetypes.h
index 70d1868..94bd51a 100644
--- a/xlat/modetypes.h
+++ b/xlat/modetypes.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/modetypes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat modetypes in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat modetypes in mpers mode
+
+# else
static
const struct xlat modetypes[] = {
@@ -32,4 +38,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/module_init_flags.h b/xlat/module_init_flags.h
index b3219d1..3057478 100644
--- a/xlat/module_init_flags.h
+++ b/xlat/module_init_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/module_init_flags.in; do not edit. */
-#if !(defined(MODULE_INIT_IGNORE_MODVERSIONS) || (defined(HAVE_DECL_MODULE_INIT_IGNORE_MODVERSIONS) && HAVE_DECL_MODULE_INIT_IGNORE_MODVERSIONS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MODULE_INIT_IGNORE_MODVERSIONS) || (defined(HAVE_DECL_MODULE_INIT_IGNORE_MODVERSIONS) && HAVE_DECL_MODULE_INIT_IGNORE_MODVERSIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MODULE_INIT_IGNORE_MODVERSIONS) == ((1 << 0)), "MODULE_INIT_IGNORE_MODVERSIONS != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MODULE_INIT_IGNORE_MODVERSIONS (1 << 0)
#endif
-#if !(defined(MODULE_INIT_IGNORE_VERMAGIC) || (defined(HAVE_DECL_MODULE_INIT_IGNORE_VERMAGIC) && HAVE_DECL_MODULE_INIT_IGNORE_VERMAGIC))
+#if defined(MODULE_INIT_IGNORE_VERMAGIC) || (defined(HAVE_DECL_MODULE_INIT_IGNORE_VERMAGIC) && HAVE_DECL_MODULE_INIT_IGNORE_VERMAGIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MODULE_INIT_IGNORE_VERMAGIC) == ((1 << 1)), "MODULE_INIT_IGNORE_VERMAGIC != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MODULE_INIT_IGNORE_VERMAGIC (1 << 1)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat module_init_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat module_init_flags in mpers mode
+
+# else
static
const struct xlat module_init_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mount_flags.h b/xlat/mount_flags.h
index 98f1215..8c552a4 100644
--- a/xlat/mount_flags.h
+++ b/xlat/mount_flags.h
@@ -1,97 +1,226 @@
/* Generated by ./xlat/gen.sh from ./xlat/mount_flags.in; do not edit. */
-#if !(defined(MS_RDONLY) || (defined(HAVE_DECL_MS_RDONLY) && HAVE_DECL_MS_RDONLY))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_RDONLY 1
#endif
-#if !(defined(MS_NOSUID) || (defined(HAVE_DECL_MS_NOSUID) && HAVE_DECL_MS_NOSUID))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NOSUID 2
#endif
-#if !(defined(MS_NODEV) || (defined(HAVE_DECL_MS_NODEV) && HAVE_DECL_MS_NODEV))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NODEV 4
#endif
-#if !(defined(MS_NOEXEC) || (defined(HAVE_DECL_MS_NOEXEC) && HAVE_DECL_MS_NOEXEC))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NOEXEC 8
#endif
-#if !(defined(MS_SYNCHRONOUS) || (defined(HAVE_DECL_MS_SYNCHRONOUS) && HAVE_DECL_MS_SYNCHRONOUS))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_SYNCHRONOUS 16
#endif
-#if !(defined(MS_REMOUNT) || (defined(HAVE_DECL_MS_REMOUNT) && HAVE_DECL_MS_REMOUNT))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_REMOUNT 32
#endif
-#if !(defined(MS_MANDLOCK) || (defined(HAVE_DECL_MS_MANDLOCK) && HAVE_DECL_MS_MANDLOCK))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_MANDLOCK 64
#endif
-#if !(defined(MS_DIRSYNC) || (defined(HAVE_DECL_MS_DIRSYNC) && HAVE_DECL_MS_DIRSYNC))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_DIRSYNC 128
#endif
-#if !(defined(MS_NOATIME) || (defined(HAVE_DECL_MS_NOATIME) && HAVE_DECL_MS_NOATIME))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NOATIME 1024
#endif
-#if !(defined(MS_NODIRATIME) || (defined(HAVE_DECL_MS_NODIRATIME) && HAVE_DECL_MS_NODIRATIME))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NODIRATIME 2048
#endif
-#if !(defined(MS_BIND) || (defined(HAVE_DECL_MS_BIND) && HAVE_DECL_MS_BIND))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_BIND 4096
#endif
-#if !(defined(MS_MOVE) || (defined(HAVE_DECL_MS_MOVE) && HAVE_DECL_MS_MOVE))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_MOVE 8192
#endif
-#if !(defined(MS_REC) || (defined(HAVE_DECL_MS_REC) && HAVE_DECL_MS_REC))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_REC 16384
#endif
-#if !(defined(MS_SILENT) || (defined(HAVE_DECL_MS_SILENT) && HAVE_DECL_MS_SILENT))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_SILENT 32768
#endif
-#if !(defined(MS_POSIXACL) || (defined(HAVE_DECL_MS_POSIXACL) && HAVE_DECL_MS_POSIXACL))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_POSIXACL (1<<16)
#endif
-#if !(defined(MS_UNBINDABLE) || (defined(HAVE_DECL_MS_UNBINDABLE) && HAVE_DECL_MS_UNBINDABLE))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_UNBINDABLE (1<<17)
#endif
-#if !(defined(MS_PRIVATE) || (defined(HAVE_DECL_MS_PRIVATE) && HAVE_DECL_MS_PRIVATE))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_PRIVATE (1<<18)
#endif
-#if !(defined(MS_SLAVE) || (defined(HAVE_DECL_MS_SLAVE) && HAVE_DECL_MS_SLAVE))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_SLAVE (1<<19)
#endif
-#if !(defined(MS_SHARED) || (defined(HAVE_DECL_MS_SHARED) && HAVE_DECL_MS_SHARED))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_SHARED (1<<20)
#endif
-#if !(defined(MS_RELATIME) || (defined(HAVE_DECL_MS_RELATIME) && HAVE_DECL_MS_RELATIME))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_RELATIME (1<<21)
#endif
-#if !(defined(MS_KERNMOUNT) || (defined(HAVE_DECL_MS_KERNMOUNT) && HAVE_DECL_MS_KERNMOUNT))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_KERNMOUNT (1<<22)
#endif
-#if !(defined(MS_I_VERSION) || (defined(HAVE_DECL_MS_I_VERSION) && HAVE_DECL_MS_I_VERSION))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_I_VERSION (1<<23)
#endif
-#if !(defined(MS_STRICTATIME) || (defined(HAVE_DECL_MS_STRICTATIME) && HAVE_DECL_MS_STRICTATIME))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_STRICTATIME (1<<24)
#endif
-#if !(defined(MS_LAZYTIME) || (defined(HAVE_DECL_MS_LAZYTIME) && HAVE_DECL_MS_LAZYTIME))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_LAZYTIME (1<<25)
#endif
-#if !(defined(MS_NOREMOTELOCK) || (defined(HAVE_DECL_MS_NOREMOTELOCK) && HAVE_DECL_MS_NOREMOTELOCK))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MS_SUBMOUNT (1<<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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NOREMOTELOCK (1<<27)
#endif
-#if !(defined(MS_NOSEC) || (defined(HAVE_DECL_MS_NOSEC) && HAVE_DECL_MS_NOSEC))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NOSEC (1<<28)
#endif
-#if !(defined(MS_BORN) || (defined(HAVE_DECL_MS_BORN) && HAVE_DECL_MS_BORN))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_BORN (1<<29)
#endif
-#if !(defined(MS_ACTIVE) || (defined(HAVE_DECL_MS_ACTIVE) && HAVE_DECL_MS_ACTIVE))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_ACTIVE (1<<30)
#endif
-#if !(defined(MS_NOUSER) || (defined(HAVE_DECL_MS_NOUSER) && HAVE_DECL_MS_NOUSER))
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MS_NOUSER (1<<31)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat mount_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat mount_flags in mpers mode
+
+# else
static
const struct xlat mount_flags[] = {
@@ -119,6 +248,7 @@
XLAT(MS_I_VERSION),
XLAT(MS_STRICTATIME),
XLAT(MS_LAZYTIME),
+ XLAT(MS_SUBMOUNT),
XLAT(MS_NOREMOTELOCK),
XLAT(MS_NOSEC),
XLAT(MS_BORN),
@@ -127,4 +257,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mount_flags.in b/xlat/mount_flags.in
index bf903d2..e7f3ce1 100644
--- a/xlat/mount_flags.in
+++ b/xlat/mount_flags.in
@@ -22,6 +22,7 @@
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)
diff --git a/xlat/move_pages_flags.h b/xlat/move_pages_flags.h
index 0844fda..150d10d 100644
--- a/xlat/move_pages_flags.h
+++ b/xlat/move_pages_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/move_pages_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat move_pages_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat move_pages_flags in mpers mode
+
+# else
static
const struct xlat move_pages_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mq_attr_flags.h b/xlat/mq_attr_flags.h
index ed2d767..bde6678 100644
--- a/xlat/mq_attr_flags.h
+++ b/xlat/mq_attr_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/mq_attr_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat mq_attr_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat mq_attr_flags[] = {
#if defined(O_NONBLOCK) || (defined(HAVE_DECL_O_NONBLOCK) && HAVE_DECL_O_NONBLOCK)
XLAT(O_NONBLOCK),
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mremap_flags.h b/xlat/mremap_flags.h
index 803cdeb..ad86af7 100644
--- a/xlat/mremap_flags.h
+++ b/xlat/mremap_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/mremap_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat mremap_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat mremap_flags in mpers mode
+
+# else
static
const struct xlat mremap_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/msg_flags.h b/xlat/msg_flags.h
index 6518c9b..a169d9c 100644
--- a/xlat/msg_flags.h
+++ b/xlat/msg_flags.h
@@ -1,77 +1,223 @@
/* Generated by ./xlat/gen.sh from ./xlat/msg_flags.in; do not edit. */
-#if !(defined(MSG_BATCH) || (defined(HAVE_DECL_MSG_BATCH) && HAVE_DECL_MSG_BATCH))
-# define MSG_BATCH 0x40000
-#endif
-#if !(defined(MSG_ZEROCOPY) || (defined(HAVE_DECL_MSG_ZEROCOPY) && HAVE_DECL_MSG_ZEROCOPY))
-# define MSG_ZEROCOPY 0x20000000
-#endif
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-const struct xlat msg_flags[] = {
#if defined(MSG_OOB) || (defined(HAVE_DECL_MSG_OOB) && HAVE_DECL_MSG_OOB)
- XLAT(MSG_OOB),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_OOB) == (0x1), "MSG_OOB != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_OOB 0x1
#endif
#if defined(MSG_PEEK) || (defined(HAVE_DECL_MSG_PEEK) && HAVE_DECL_MSG_PEEK)
- XLAT(MSG_PEEK),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_PEEK) == (0x2), "MSG_PEEK != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_PEEK 0x2
#endif
#if defined(MSG_DONTROUTE) || (defined(HAVE_DECL_MSG_DONTROUTE) && HAVE_DECL_MSG_DONTROUTE)
- XLAT(MSG_DONTROUTE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_DONTROUTE) == (0x4), "MSG_DONTROUTE != 0x4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_DONTROUTE 0x4
#endif
#if defined(MSG_CTRUNC) || (defined(HAVE_DECL_MSG_CTRUNC) && HAVE_DECL_MSG_CTRUNC)
- XLAT(MSG_CTRUNC),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_CTRUNC) == (0x8), "MSG_CTRUNC != 0x8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_CTRUNC 0x8
#endif
#if defined(MSG_PROBE) || (defined(HAVE_DECL_MSG_PROBE) && HAVE_DECL_MSG_PROBE)
- XLAT(MSG_PROBE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_PROBE) == (0x10), "MSG_PROBE != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_PROBE 0x10
#endif
#if defined(MSG_TRUNC) || (defined(HAVE_DECL_MSG_TRUNC) && HAVE_DECL_MSG_TRUNC)
- XLAT(MSG_TRUNC),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_TRUNC) == (0x20), "MSG_TRUNC != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_TRUNC 0x20
#endif
#if defined(MSG_DONTWAIT) || (defined(HAVE_DECL_MSG_DONTWAIT) && HAVE_DECL_MSG_DONTWAIT)
- XLAT(MSG_DONTWAIT),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_DONTWAIT) == (0x40), "MSG_DONTWAIT != 0x40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_DONTWAIT 0x40
#endif
#if defined(MSG_EOR) || (defined(HAVE_DECL_MSG_EOR) && HAVE_DECL_MSG_EOR)
- XLAT(MSG_EOR),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_EOR) == (0x80), "MSG_EOR != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_EOR 0x80
#endif
#if defined(MSG_WAITALL) || (defined(HAVE_DECL_MSG_WAITALL) && HAVE_DECL_MSG_WAITALL)
- XLAT(MSG_WAITALL),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_WAITALL) == (0x100), "MSG_WAITALL != 0x100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_WAITALL 0x100
#endif
#if defined(MSG_FIN) || (defined(HAVE_DECL_MSG_FIN) && HAVE_DECL_MSG_FIN)
- XLAT(MSG_FIN),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_FIN) == (0x200), "MSG_FIN != 0x200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_FIN 0x200
#endif
#if defined(MSG_SYN) || (defined(HAVE_DECL_MSG_SYN) && HAVE_DECL_MSG_SYN)
- XLAT(MSG_SYN),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_SYN) == (0x400), "MSG_SYN != 0x400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_SYN 0x400
#endif
#if defined(MSG_CONFIRM) || (defined(HAVE_DECL_MSG_CONFIRM) && HAVE_DECL_MSG_CONFIRM)
- XLAT(MSG_CONFIRM),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_CONFIRM) == (0x800), "MSG_CONFIRM != 0x800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_CONFIRM 0x800
#endif
#if defined(MSG_RST) || (defined(HAVE_DECL_MSG_RST) && HAVE_DECL_MSG_RST)
- XLAT(MSG_RST),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_RST) == (0x1000), "MSG_RST != 0x1000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_RST 0x1000
#endif
#if defined(MSG_ERRQUEUE) || (defined(HAVE_DECL_MSG_ERRQUEUE) && HAVE_DECL_MSG_ERRQUEUE)
- XLAT(MSG_ERRQUEUE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_ERRQUEUE) == (0x2000), "MSG_ERRQUEUE != 0x2000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_ERRQUEUE 0x2000
#endif
#if defined(MSG_NOSIGNAL) || (defined(HAVE_DECL_MSG_NOSIGNAL) && HAVE_DECL_MSG_NOSIGNAL)
- XLAT(MSG_NOSIGNAL),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_NOSIGNAL) == (0x4000), "MSG_NOSIGNAL != 0x4000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_NOSIGNAL 0x4000
#endif
#if defined(MSG_MORE) || (defined(HAVE_DECL_MSG_MORE) && HAVE_DECL_MSG_MORE)
- XLAT(MSG_MORE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_MORE) == (0x8000), "MSG_MORE != 0x8000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_MORE 0x8000
#endif
#if defined(MSG_WAITFORONE) || (defined(HAVE_DECL_MSG_WAITFORONE) && HAVE_DECL_MSG_WAITFORONE)
- XLAT(MSG_WAITFORONE),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_WAITFORONE) == (0x10000), "MSG_WAITFORONE != 0x10000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_WAITFORONE 0x10000
#endif
- XLAT(MSG_BATCH),
- XLAT(MSG_ZEROCOPY),
-#if defined(MSG_EOF) || (defined(HAVE_DECL_MSG_EOF) && HAVE_DECL_MSG_EOF)
- XLAT(MSG_EOF),
+#if defined(MSG_SENDPAGE_NOTLAST) || (defined(HAVE_DECL_MSG_SENDPAGE_NOTLAST) && HAVE_DECL_MSG_SENDPAGE_NOTLAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_SENDPAGE_NOTLAST) == (0x20000), "MSG_SENDPAGE_NOTLAST != 0x20000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_SENDPAGE_NOTLAST 0x20000
+#endif
+#if defined(MSG_BATCH) || (defined(HAVE_DECL_MSG_BATCH) && HAVE_DECL_MSG_BATCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_BATCH) == (0x40000), "MSG_BATCH != 0x40000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_BATCH 0x40000
+#endif
+#if defined(MSG_NO_SHARED_FRAGS) || (defined(HAVE_DECL_MSG_NO_SHARED_FRAGS) && HAVE_DECL_MSG_NO_SHARED_FRAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_NO_SHARED_FRAGS) == (0x80000), "MSG_NO_SHARED_FRAGS != 0x80000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_NO_SHARED_FRAGS 0x80000
+#endif
+#if defined(MSG_ZEROCOPY) || (defined(HAVE_DECL_MSG_ZEROCOPY) && HAVE_DECL_MSG_ZEROCOPY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_ZEROCOPY) == (0x4000000), "MSG_ZEROCOPY != 0x4000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_ZEROCOPY 0x4000000
#endif
#if defined(MSG_FASTOPEN) || (defined(HAVE_DECL_MSG_FASTOPEN) && HAVE_DECL_MSG_FASTOPEN)
- XLAT(MSG_FASTOPEN),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_FASTOPEN) == (0x20000000), "MSG_FASTOPEN != 0x20000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_FASTOPEN 0x20000000
#endif
#if defined(MSG_CMSG_CLOEXEC) || (defined(HAVE_DECL_MSG_CMSG_CLOEXEC) && HAVE_DECL_MSG_CMSG_CLOEXEC)
- XLAT(MSG_CMSG_CLOEXEC),
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_CMSG_CLOEXEC) == (0x40000000), "MSG_CMSG_CLOEXEC != 0x40000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_CMSG_CLOEXEC 0x40000000
#endif
+#ifndef STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+# define STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+# undef MSG_CMSG_COMPAT
+#endif
+#if defined(MSG_CMSG_COMPAT) || (defined(HAVE_DECL_MSG_CMSG_COMPAT) && HAVE_DECL_MSG_CMSG_COMPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_CMSG_COMPAT) == (0x80000000), "MSG_CMSG_COMPAT != 0x80000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_CMSG_COMPAT 0x80000000
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
+
+const struct xlat msg_flags[] = {
+ XLAT(MSG_OOB),
+ XLAT(MSG_PEEK),
+ XLAT(MSG_DONTROUTE),
+
+ XLAT(MSG_CTRUNC),
+ XLAT(MSG_PROBE),
+ XLAT(MSG_TRUNC),
+ XLAT(MSG_DONTWAIT),
+ XLAT(MSG_EOR),
+ XLAT(MSG_WAITALL),
+ XLAT(MSG_FIN),
+ XLAT(MSG_SYN),
+ XLAT(MSG_CONFIRM),
+ XLAT(MSG_RST),
+ XLAT(MSG_ERRQUEUE),
+ XLAT(MSG_NOSIGNAL),
+ XLAT(MSG_MORE),
+ XLAT(MSG_WAITFORONE),
+ XLAT(MSG_SENDPAGE_NOTLAST),
+ XLAT(MSG_BATCH),
+ XLAT(MSG_NO_SHARED_FRAGS),
+ XLAT(MSG_ZEROCOPY),
+
+ XLAT(MSG_FASTOPEN),
+ XLAT(MSG_CMSG_CLOEXEC),
+#ifndef STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+# define STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+/*
+* In Linux, the value of MSG_CMSG_COMPAT depends on CONFIG_COMPAT,
+* and libc might want to replicate that behaviour.
+*/
+# undef MSG_CMSG_COMPAT
+#endif
+ XLAT(MSG_CMSG_COMPAT),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/msg_flags.in b/xlat/msg_flags.in
index 1fdd819..946b132 100644
--- a/xlat/msg_flags.in
+++ b/xlat/msg_flags.in
@@ -1,22 +1,34 @@
-MSG_OOB
-MSG_PEEK
-MSG_DONTROUTE
-MSG_CTRUNC
-MSG_PROBE
-MSG_TRUNC
-MSG_DONTWAIT
-MSG_EOR
-MSG_WAITALL
-MSG_FIN
-MSG_SYN
-MSG_CONFIRM
-MSG_RST
-MSG_ERRQUEUE
-MSG_NOSIGNAL
-MSG_MORE
-MSG_WAITFORONE
-MSG_BATCH 0x40000
-MSG_ZEROCOPY 0x20000000
-MSG_EOF
-MSG_FASTOPEN
-MSG_CMSG_CLOEXEC
+MSG_OOB 0x1
+MSG_PEEK 0x2
+MSG_DONTROUTE 0x4
+/* MSG_TRYHARD 0x4 - synonym for MSG_DONTROUTE for DECnet */
+MSG_CTRUNC 0x8
+MSG_PROBE 0x10
+MSG_TRUNC 0x20
+MSG_DONTWAIT 0x40
+MSG_EOR 0x80
+MSG_WAITALL 0x100
+MSG_FIN 0x200
+MSG_SYN 0x400
+MSG_CONFIRM 0x800
+MSG_RST 0x1000
+MSG_ERRQUEUE 0x2000
+MSG_NOSIGNAL 0x4000
+MSG_MORE 0x8000
+MSG_WAITFORONE 0x10000
+MSG_SENDPAGE_NOTLAST 0x20000 /* sendpage() internal */
+MSG_BATCH 0x40000
+MSG_NO_SHARED_FRAGS 0x80000 /* sendpage() internal */
+MSG_ZEROCOPY 0x4000000
+/* MSG_EOF MSG_FIN */
+MSG_FASTOPEN 0x20000000
+MSG_CMSG_CLOEXEC 0x40000000
+#ifndef STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+# define STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT
+/*
+ * In Linux, the value of MSG_CMSG_COMPAT depends on CONFIG_COMPAT,
+ * and libc might want to replicate that behaviour.
+ */
+# undef MSG_CMSG_COMPAT
+#endif
+MSG_CMSG_COMPAT 0x80000000
diff --git a/xlat/msgctl_flags.h b/xlat/msgctl_flags.h
index a78ee14..0ac131d 100644
--- a/xlat/msgctl_flags.h
+++ b/xlat/msgctl_flags.h
@@ -1,36 +1,81 @@
/* Generated by ./xlat/gen.sh from ./xlat/msgctl_flags.in; do not edit. */
-#if !(defined(MSG_STAT) || (defined(HAVE_DECL_MSG_STAT) && HAVE_DECL_MSG_STAT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPC_RMID) || (defined(HAVE_DECL_IPC_RMID) && HAVE_DECL_IPC_RMID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_RMID) == (0), "IPC_RMID != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_RMID 0
+#endif
+#if defined(IPC_SET) || (defined(HAVE_DECL_IPC_SET) && HAVE_DECL_IPC_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_SET) == (1), "IPC_SET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_SET 1
+#endif
+#if defined(IPC_STAT) || (defined(HAVE_DECL_IPC_STAT) && HAVE_DECL_IPC_STAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_STAT) == (2), "IPC_STAT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_STAT 2
+#endif
+#if defined(IPC_INFO) || (defined(HAVE_DECL_IPC_INFO) && HAVE_DECL_IPC_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_INFO) == (3), "IPC_INFO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_INFO 3
+#endif
+#if defined(MSG_STAT) || (defined(HAVE_DECL_MSG_STAT) && HAVE_DECL_MSG_STAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_STAT) == (11), "MSG_STAT != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MSG_STAT 11
#endif
-#if !(defined(MSG_INFO) || (defined(HAVE_DECL_MSG_INFO) && HAVE_DECL_MSG_INFO))
+#if defined(MSG_INFO) || (defined(HAVE_DECL_MSG_INFO) && HAVE_DECL_MSG_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_INFO) == (12), "MSG_INFO != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MSG_INFO 12
#endif
+#if defined(MSG_STAT_ANY) || (defined(HAVE_DECL_MSG_STAT_ANY) && HAVE_DECL_MSG_STAT_ANY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MSG_STAT_ANY) == (13), "MSG_STAT_ANY != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MSG_STAT_ANY 13
+#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat msgctl_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat msgctl_flags[] = {
-#if defined(IPC_RMID) || (defined(HAVE_DECL_IPC_RMID) && HAVE_DECL_IPC_RMID)
- XLAT(IPC_RMID),
-#endif
-#if defined(IPC_SET) || (defined(HAVE_DECL_IPC_SET) && HAVE_DECL_IPC_SET)
- XLAT(IPC_SET),
-#endif
-#if defined(IPC_STAT) || (defined(HAVE_DECL_IPC_STAT) && HAVE_DECL_IPC_STAT)
- XLAT(IPC_STAT),
-#endif
-#if defined(IPC_INFO) || (defined(HAVE_DECL_IPC_INFO) && HAVE_DECL_IPC_INFO)
- XLAT(IPC_INFO),
-#endif
+
+ XLAT(IPC_RMID),
+ XLAT(IPC_SET),
+ XLAT(IPC_STAT),
+ XLAT(IPC_INFO),
XLAT(MSG_STAT),
XLAT(MSG_INFO),
+ XLAT(MSG_STAT_ANY),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/msgctl_flags.in b/xlat/msgctl_flags.in
index 4b54adf..a81a819 100644
--- a/xlat/msgctl_flags.in
+++ b/xlat/msgctl_flags.in
@@ -1,6 +1,8 @@
-IPC_RMID
-IPC_SET
-IPC_STAT
-IPC_INFO
+/* sort -k2,2g */
+IPC_RMID 0
+IPC_SET 1
+IPC_STAT 2
+IPC_INFO 3
MSG_STAT 11
MSG_INFO 12
+MSG_STAT_ANY 13
diff --git a/xlat/mtd_file_mode_options.h b/xlat/mtd_file_mode_options.h
index 943919f..0cbeeed 100644
--- a/xlat/mtd_file_mode_options.h
+++ b/xlat/mtd_file_mode_options.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/mtd_file_mode_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat mtd_file_mode_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat mtd_file_mode_options[] = {
XLAT(MTD_FILE_MODE_NORMAL),
XLAT(MTD_FILE_MODE_OTP_FACTORY),
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mtd_flags_options.h b/xlat/mtd_flags_options.h
index 8712561..91d168f 100644
--- a/xlat/mtd_flags_options.h
+++ b/xlat/mtd_flags_options.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/mtd_flags_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat mtd_flags_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat mtd_flags_options[] = {
#if defined(MTD_WRITEABLE) || (defined(HAVE_DECL_MTD_WRITEABLE) && HAVE_DECL_MTD_WRITEABLE)
XLAT(MTD_WRITEABLE),
@@ -25,4 +31,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mtd_mode_options.h b/xlat/mtd_mode_options.h
index b7e8b4a..89a238f 100644
--- a/xlat/mtd_mode_options.h
+++ b/xlat/mtd_mode_options.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/mtd_mode_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat mtd_mode_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat mtd_mode_options[] = {
XLAT(MTD_OPS_PLACE_OOB),
XLAT(MTD_OPS_AUTO_OOB),
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mtd_nandecc_options.h b/xlat/mtd_nandecc_options.h
index 21b0166..08a37f5 100644
--- a/xlat/mtd_nandecc_options.h
+++ b/xlat/mtd_nandecc_options.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/mtd_nandecc_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat mtd_nandecc_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat mtd_nandecc_options[] = {
#if defined(MTD_NANDECC_OFF) || (defined(HAVE_DECL_MTD_NANDECC_OFF) && HAVE_DECL_MTD_NANDECC_OFF)
XLAT(MTD_NANDECC_OFF),
@@ -28,4 +34,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mtd_otp_options.h b/xlat/mtd_otp_options.h
index 2ee7f49..071fc5c 100644
--- a/xlat/mtd_otp_options.h
+++ b/xlat/mtd_otp_options.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/mtd_otp_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat mtd_otp_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat mtd_otp_options[] = {
#if defined(MTD_OTP_OFF) || (defined(HAVE_DECL_MTD_OTP_OFF) && HAVE_DECL_MTD_OTP_OFF)
XLAT(MTD_OTP_OFF),
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/mtd_type_options.h b/xlat/mtd_type_options.h
index 46829e8..c6e0ecf 100644
--- a/xlat/mtd_type_options.h
+++ b/xlat/mtd_type_options.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/mtd_type_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat mtd_type_options[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat mtd_type_options[] = {
#if defined(MTD_ABSENT) || (defined(HAVE_DECL_MTD_ABSENT) && HAVE_DECL_MTD_ABSENT)
XLAT(MTD_ABSENT),
@@ -37,4 +43,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/multicast_router_types.h b/xlat/multicast_router_types.h
index 8c68b2f..e180205 100644
--- a/xlat/multicast_router_types.h
+++ b/xlat/multicast_router_types.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/multicast_router_types.in; do not edit. */
-#if !(defined(MDB_RTR_TYPE_DISABLED) || (defined(HAVE_DECL_MDB_RTR_TYPE_DISABLED) && HAVE_DECL_MDB_RTR_TYPE_DISABLED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MDB_RTR_TYPE_DISABLED) || (defined(HAVE_DECL_MDB_RTR_TYPE_DISABLED) && HAVE_DECL_MDB_RTR_TYPE_DISABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDB_RTR_TYPE_DISABLED) == (0), "MDB_RTR_TYPE_DISABLED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDB_RTR_TYPE_DISABLED 0
#endif
-#if !(defined(MDB_RTR_TYPE_TEMP_QUERY) || (defined(HAVE_DECL_MDB_RTR_TYPE_TEMP_QUERY) && HAVE_DECL_MDB_RTR_TYPE_TEMP_QUERY))
+#if defined(MDB_RTR_TYPE_TEMP_QUERY) || (defined(HAVE_DECL_MDB_RTR_TYPE_TEMP_QUERY) && HAVE_DECL_MDB_RTR_TYPE_TEMP_QUERY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDB_RTR_TYPE_TEMP_QUERY) == (1), "MDB_RTR_TYPE_TEMP_QUERY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDB_RTR_TYPE_TEMP_QUERY 1
#endif
-#if !(defined(MDB_RTR_TYPE_PERM) || (defined(HAVE_DECL_MDB_RTR_TYPE_PERM) && HAVE_DECL_MDB_RTR_TYPE_PERM))
+#if defined(MDB_RTR_TYPE_PERM) || (defined(HAVE_DECL_MDB_RTR_TYPE_PERM) && HAVE_DECL_MDB_RTR_TYPE_PERM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDB_RTR_TYPE_PERM) == (2), "MDB_RTR_TYPE_PERM != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDB_RTR_TYPE_PERM 2
#endif
-#if !(defined(MDB_RTR_TYPE_TEMP) || (defined(HAVE_DECL_MDB_RTR_TYPE_TEMP) && HAVE_DECL_MDB_RTR_TYPE_TEMP))
+#if defined(MDB_RTR_TYPE_TEMP) || (defined(HAVE_DECL_MDB_RTR_TYPE_TEMP) && HAVE_DECL_MDB_RTR_TYPE_TEMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDB_RTR_TYPE_TEMP) == (3), "MDB_RTR_TYPE_TEMP != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDB_RTR_TYPE_TEMP 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat multicast_router_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat multicast_router_types in mpers mode
+
+# else
static
const struct xlat multicast_router_types[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/name_to_handle_at_flags.h b/xlat/name_to_handle_at_flags.h
index 512889d..87e63ae 100644
--- a/xlat/name_to_handle_at_flags.h
+++ b/xlat/name_to_handle_at_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/name_to_handle_at_flags.in; do not edit. */
-#if !(defined(AT_SYMLINK_FOLLOW) || (defined(HAVE_DECL_AT_SYMLINK_FOLLOW) && HAVE_DECL_AT_SYMLINK_FOLLOW))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#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_EMPTY_PATH) || (defined(HAVE_DECL_AT_EMPTY_PATH) && HAVE_DECL_AT_EMPTY_PATH))
+#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
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat name_to_handle_at_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat name_to_handle_at_flags in mpers mode
+
+# else
static
const struct xlat name_to_handle_at_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/neighbor_cache_entry_flags.h b/xlat/neighbor_cache_entry_flags.h
index 3bf2652..491db92 100644
--- a/xlat/neighbor_cache_entry_flags.h
+++ b/xlat/neighbor_cache_entry_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/neighbor_cache_entry_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat neighbor_cache_entry_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat neighbor_cache_entry_flags in mpers mode
+
+# else
static
const struct xlat neighbor_cache_entry_flags[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/neighbor_cache_entry_states.h b/xlat/neighbor_cache_entry_states.h
index 40454eb..d111697 100644
--- a/xlat/neighbor_cache_entry_states.h
+++ b/xlat/neighbor_cache_entry_states.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/neighbor_cache_entry_states.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat neighbor_cache_entry_states in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat neighbor_cache_entry_states in mpers mode
+
+# else
static
const struct xlat neighbor_cache_entry_states[] = {
@@ -38,4 +44,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netfilter_versions.h b/xlat/netfilter_versions.h
index 2055c5b..9ccfd5a 100644
--- a/xlat/netfilter_versions.h
+++ b/xlat/netfilter_versions.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/netfilter_versions.in; do not edit. */
-#if !(defined(NFNETLINK_V0) || (defined(HAVE_DECL_NFNETLINK_V0) && HAVE_DECL_NFNETLINK_V0))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFNETLINK_V0) || (defined(HAVE_DECL_NFNETLINK_V0) && HAVE_DECL_NFNETLINK_V0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNETLINK_V0) == (0), "NFNETLINK_V0 != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNETLINK_V0 0
#endif
-#if !(defined(NFNETLINK_V1) || (defined(HAVE_DECL_NFNETLINK_V1) && HAVE_DECL_NFNETLINK_V1))
+#if defined(NFNETLINK_V1) || (defined(HAVE_DECL_NFNETLINK_V1) && HAVE_DECL_NFNETLINK_V1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNETLINK_V1) == (1), "NFNETLINK_V1 != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNETLINK_V1 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat netfilter_versions in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat netfilter_versions in mpers mode
+
+# else
static
const struct xlat netfilter_versions[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_ack_flags.h b/xlat/netlink_ack_flags.h
index bb8c9d8..dbe197d 100644
--- a/xlat/netlink_ack_flags.h
+++ b/xlat/netlink_ack_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_ack_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat netlink_ack_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_ack_flags in mpers mode
+
+# else
static
const struct xlat netlink_ack_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_delete_flags.h b/xlat/netlink_delete_flags.h
index a40c7df..4fe0db5 100644
--- a/xlat/netlink_delete_flags.h
+++ b/xlat/netlink_delete_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_delete_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat netlink_delete_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_delete_flags in mpers mode
+
+# else
static
const struct xlat netlink_delete_flags[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_diag_attrs.h b/xlat/netlink_diag_attrs.h
index 5dcc736..fd8cd4f 100644
--- a/xlat/netlink_diag_attrs.h
+++ b/xlat/netlink_diag_attrs.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_diag_attrs.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat netlink_diag_attrs in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_diag_attrs in mpers mode
+
+# else
static
const struct xlat netlink_diag_attrs[] = {
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_diag_show.h b/xlat/netlink_diag_show.h
index 7d6f9be..e7afb75 100644
--- a/xlat/netlink_diag_show.h
+++ b/xlat/netlink_diag_show.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_diag_show.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat netlink_diag_show in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_diag_show in mpers mode
+
+# else
static
const struct xlat netlink_diag_show[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_flags.h b/xlat/netlink_flags.h
index ca1f3a3..217c9df 100644
--- a/xlat/netlink_flags.h
+++ b/xlat/netlink_flags.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_flags.in; do not edit. */
-#if !(defined(NLM_F_REQUEST) || (defined(HAVE_DECL_NLM_F_REQUEST) && HAVE_DECL_NLM_F_REQUEST))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NLM_F_REQUEST) || (defined(HAVE_DECL_NLM_F_REQUEST) && HAVE_DECL_NLM_F_REQUEST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLM_F_REQUEST) == (0x1), "NLM_F_REQUEST != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLM_F_REQUEST 0x1
#endif
-#if !(defined(NLM_F_MULTI) || (defined(HAVE_DECL_NLM_F_MULTI) && HAVE_DECL_NLM_F_MULTI))
+#if defined(NLM_F_MULTI) || (defined(HAVE_DECL_NLM_F_MULTI) && HAVE_DECL_NLM_F_MULTI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLM_F_MULTI) == (0x2), "NLM_F_MULTI != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLM_F_MULTI 0x2
#endif
-#if !(defined(NLM_F_ACK) || (defined(HAVE_DECL_NLM_F_ACK) && HAVE_DECL_NLM_F_ACK))
+#if defined(NLM_F_ACK) || (defined(HAVE_DECL_NLM_F_ACK) && HAVE_DECL_NLM_F_ACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLM_F_ACK) == (0x4), "NLM_F_ACK != 0x4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLM_F_ACK 0x4
#endif
-#if !(defined(NLM_F_ECHO) || (defined(HAVE_DECL_NLM_F_ECHO) && HAVE_DECL_NLM_F_ECHO))
+#if defined(NLM_F_ECHO) || (defined(HAVE_DECL_NLM_F_ECHO) && HAVE_DECL_NLM_F_ECHO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLM_F_ECHO) == (0x8), "NLM_F_ECHO != 0x8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLM_F_ECHO 0x8
#endif
-#if !(defined(NLM_F_DUMP_INTR) || (defined(HAVE_DECL_NLM_F_DUMP_INTR) && HAVE_DECL_NLM_F_DUMP_INTR))
+#if defined(NLM_F_DUMP_INTR) || (defined(HAVE_DECL_NLM_F_DUMP_INTR) && HAVE_DECL_NLM_F_DUMP_INTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLM_F_DUMP_INTR) == (0x10), "NLM_F_DUMP_INTR != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLM_F_DUMP_INTR 0x10
#endif
-#if !(defined(NLM_F_DUMP_FILTERED) || (defined(HAVE_DECL_NLM_F_DUMP_FILTERED) && HAVE_DECL_NLM_F_DUMP_FILTERED))
+#if defined(NLM_F_DUMP_FILTERED) || (defined(HAVE_DECL_NLM_F_DUMP_FILTERED) && HAVE_DECL_NLM_F_DUMP_FILTERED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLM_F_DUMP_FILTERED) == (0x20), "NLM_F_DUMP_FILTERED != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLM_F_DUMP_FILTERED 0x20
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat netlink_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat netlink_flags in mpers mode
+
+# else
static
const struct xlat netlink_flags[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_get_flags.h b/xlat/netlink_get_flags.h
index 3a4631c..4855c78 100644
--- a/xlat/netlink_get_flags.h
+++ b/xlat/netlink_get_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_get_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat netlink_get_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_get_flags in mpers mode
+
+# else
static
const struct xlat netlink_get_flags[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_new_flags.h b/xlat/netlink_new_flags.h
index 61af6d5..372432c 100644
--- a/xlat/netlink_new_flags.h
+++ b/xlat/netlink_new_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_new_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat netlink_new_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_new_flags in mpers mode
+
+# else
static
const struct xlat netlink_new_flags[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_protocols.h b/xlat/netlink_protocols.h
index fb86233..36845dc 100644
--- a/xlat/netlink_protocols.h
+++ b/xlat/netlink_protocols.h
@@ -1,69 +1,166 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_protocols.in; do not edit. */
-#if !(defined(NETLINK_ROUTE) || (defined(HAVE_DECL_NETLINK_ROUTE) && HAVE_DECL_NETLINK_ROUTE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NETLINK_ROUTE) || (defined(HAVE_DECL_NETLINK_ROUTE) && HAVE_DECL_NETLINK_ROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_ROUTE) == (0), "NETLINK_ROUTE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_ROUTE 0
#endif
-#if !(defined(NETLINK_UNUSED) || (defined(HAVE_DECL_NETLINK_UNUSED) && HAVE_DECL_NETLINK_UNUSED))
+#if defined(NETLINK_UNUSED) || (defined(HAVE_DECL_NETLINK_UNUSED) && HAVE_DECL_NETLINK_UNUSED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_UNUSED) == (1), "NETLINK_UNUSED != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_UNUSED 1
#endif
-#if !(defined(NETLINK_USERSOCK) || (defined(HAVE_DECL_NETLINK_USERSOCK) && HAVE_DECL_NETLINK_USERSOCK))
+#if defined(NETLINK_USERSOCK) || (defined(HAVE_DECL_NETLINK_USERSOCK) && HAVE_DECL_NETLINK_USERSOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_USERSOCK) == (2), "NETLINK_USERSOCK != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_USERSOCK 2
#endif
-#if !(defined(NETLINK_FIREWALL) || (defined(HAVE_DECL_NETLINK_FIREWALL) && HAVE_DECL_NETLINK_FIREWALL))
+#if defined(NETLINK_FIREWALL) || (defined(HAVE_DECL_NETLINK_FIREWALL) && HAVE_DECL_NETLINK_FIREWALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_FIREWALL) == (3), "NETLINK_FIREWALL != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_FIREWALL 3
#endif
-#if !(defined(NETLINK_SOCK_DIAG) || (defined(HAVE_DECL_NETLINK_SOCK_DIAG) && HAVE_DECL_NETLINK_SOCK_DIAG))
+#if defined(NETLINK_SOCK_DIAG) || (defined(HAVE_DECL_NETLINK_SOCK_DIAG) && HAVE_DECL_NETLINK_SOCK_DIAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_SOCK_DIAG) == (4), "NETLINK_SOCK_DIAG != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_SOCK_DIAG 4
#endif
-#if !(defined(NETLINK_NFLOG) || (defined(HAVE_DECL_NETLINK_NFLOG) && HAVE_DECL_NETLINK_NFLOG))
+#if defined(NETLINK_NFLOG) || (defined(HAVE_DECL_NETLINK_NFLOG) && HAVE_DECL_NETLINK_NFLOG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_NFLOG) == (5), "NETLINK_NFLOG != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_NFLOG 5
#endif
-#if !(defined(NETLINK_XFRM) || (defined(HAVE_DECL_NETLINK_XFRM) && HAVE_DECL_NETLINK_XFRM))
+#if defined(NETLINK_XFRM) || (defined(HAVE_DECL_NETLINK_XFRM) && HAVE_DECL_NETLINK_XFRM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_XFRM) == (6), "NETLINK_XFRM != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_XFRM 6
#endif
-#if !(defined(NETLINK_SELINUX) || (defined(HAVE_DECL_NETLINK_SELINUX) && HAVE_DECL_NETLINK_SELINUX))
+#if defined(NETLINK_SELINUX) || (defined(HAVE_DECL_NETLINK_SELINUX) && HAVE_DECL_NETLINK_SELINUX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_SELINUX) == (7), "NETLINK_SELINUX != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_SELINUX 7
#endif
-#if !(defined(NETLINK_ISCSI) || (defined(HAVE_DECL_NETLINK_ISCSI) && HAVE_DECL_NETLINK_ISCSI))
+#if defined(NETLINK_ISCSI) || (defined(HAVE_DECL_NETLINK_ISCSI) && HAVE_DECL_NETLINK_ISCSI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_ISCSI) == (8), "NETLINK_ISCSI != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_ISCSI 8
#endif
-#if !(defined(NETLINK_AUDIT) || (defined(HAVE_DECL_NETLINK_AUDIT) && HAVE_DECL_NETLINK_AUDIT))
+#if defined(NETLINK_AUDIT) || (defined(HAVE_DECL_NETLINK_AUDIT) && HAVE_DECL_NETLINK_AUDIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_AUDIT) == (9), "NETLINK_AUDIT != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_AUDIT 9
#endif
-#if !(defined(NETLINK_FIB_LOOKUP) || (defined(HAVE_DECL_NETLINK_FIB_LOOKUP) && HAVE_DECL_NETLINK_FIB_LOOKUP))
+#if defined(NETLINK_FIB_LOOKUP) || (defined(HAVE_DECL_NETLINK_FIB_LOOKUP) && HAVE_DECL_NETLINK_FIB_LOOKUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_FIB_LOOKUP) == (10), "NETLINK_FIB_LOOKUP != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_FIB_LOOKUP 10
#endif
-#if !(defined(NETLINK_CONNECTOR) || (defined(HAVE_DECL_NETLINK_CONNECTOR) && HAVE_DECL_NETLINK_CONNECTOR))
+#if defined(NETLINK_CONNECTOR) || (defined(HAVE_DECL_NETLINK_CONNECTOR) && HAVE_DECL_NETLINK_CONNECTOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_CONNECTOR) == (11), "NETLINK_CONNECTOR != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_CONNECTOR 11
#endif
-#if !(defined(NETLINK_NETFILTER) || (defined(HAVE_DECL_NETLINK_NETFILTER) && HAVE_DECL_NETLINK_NETFILTER))
+#if defined(NETLINK_NETFILTER) || (defined(HAVE_DECL_NETLINK_NETFILTER) && HAVE_DECL_NETLINK_NETFILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_NETFILTER) == (12), "NETLINK_NETFILTER != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_NETFILTER 12
#endif
-#if !(defined(NETLINK_IP6_FW) || (defined(HAVE_DECL_NETLINK_IP6_FW) && HAVE_DECL_NETLINK_IP6_FW))
+#if defined(NETLINK_IP6_FW) || (defined(HAVE_DECL_NETLINK_IP6_FW) && HAVE_DECL_NETLINK_IP6_FW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_IP6_FW) == (13), "NETLINK_IP6_FW != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_IP6_FW 13
#endif
-#if !(defined(NETLINK_DNRTMSG) || (defined(HAVE_DECL_NETLINK_DNRTMSG) && HAVE_DECL_NETLINK_DNRTMSG))
+#if defined(NETLINK_DNRTMSG) || (defined(HAVE_DECL_NETLINK_DNRTMSG) && HAVE_DECL_NETLINK_DNRTMSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_DNRTMSG) == (14), "NETLINK_DNRTMSG != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_DNRTMSG 14
#endif
-#if !(defined(NETLINK_KOBJECT_UEVENT) || (defined(HAVE_DECL_NETLINK_KOBJECT_UEVENT) && HAVE_DECL_NETLINK_KOBJECT_UEVENT))
+#if defined(NETLINK_KOBJECT_UEVENT) || (defined(HAVE_DECL_NETLINK_KOBJECT_UEVENT) && HAVE_DECL_NETLINK_KOBJECT_UEVENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_KOBJECT_UEVENT) == (15), "NETLINK_KOBJECT_UEVENT != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_KOBJECT_UEVENT 15
#endif
-#if !(defined(NETLINK_GENERIC) || (defined(HAVE_DECL_NETLINK_GENERIC) && HAVE_DECL_NETLINK_GENERIC))
+#if defined(NETLINK_GENERIC) || (defined(HAVE_DECL_NETLINK_GENERIC) && HAVE_DECL_NETLINK_GENERIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_GENERIC) == (16), "NETLINK_GENERIC != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_GENERIC 16
#endif
-#if !(defined(NETLINK_SCSITRANSPORT) || (defined(HAVE_DECL_NETLINK_SCSITRANSPORT) && HAVE_DECL_NETLINK_SCSITRANSPORT))
+#if defined(NETLINK_SCSITRANSPORT) || (defined(HAVE_DECL_NETLINK_SCSITRANSPORT) && HAVE_DECL_NETLINK_SCSITRANSPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_SCSITRANSPORT) == (18), "NETLINK_SCSITRANSPORT != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_SCSITRANSPORT 18
#endif
-#if !(defined(NETLINK_ECRYPTFS) || (defined(HAVE_DECL_NETLINK_ECRYPTFS) && HAVE_DECL_NETLINK_ECRYPTFS))
+#if defined(NETLINK_ECRYPTFS) || (defined(HAVE_DECL_NETLINK_ECRYPTFS) && HAVE_DECL_NETLINK_ECRYPTFS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_ECRYPTFS) == (19), "NETLINK_ECRYPTFS != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_ECRYPTFS 19
#endif
-#if !(defined(NETLINK_RDMA) || (defined(HAVE_DECL_NETLINK_RDMA) && HAVE_DECL_NETLINK_RDMA))
+#if defined(NETLINK_RDMA) || (defined(HAVE_DECL_NETLINK_RDMA) && HAVE_DECL_NETLINK_RDMA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_RDMA) == (20), "NETLINK_RDMA != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_RDMA 20
#endif
-#if !(defined(NETLINK_CRYPTO) || (defined(HAVE_DECL_NETLINK_CRYPTO) && HAVE_DECL_NETLINK_CRYPTO))
+#if defined(NETLINK_CRYPTO) || (defined(HAVE_DECL_NETLINK_CRYPTO) && HAVE_DECL_NETLINK_CRYPTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_CRYPTO) == (21), "NETLINK_CRYPTO != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_CRYPTO 21
#endif
+#if defined(NETLINK_SMC) || (defined(HAVE_DECL_NETLINK_SMC) && HAVE_DECL_NETLINK_SMC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_SMC) == (22), "NETLINK_SMC != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_SMC 22
+#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat netlink_protocols[] = {
XLAT(NETLINK_ROUTE),
@@ -87,7 +184,10 @@
XLAT(NETLINK_ECRYPTFS),
XLAT(NETLINK_RDMA),
XLAT(NETLINK_CRYPTO),
+ XLAT(NETLINK_SMC),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_protocols.in b/xlat/netlink_protocols.in
index 45116cf..a76ebd7 100644
--- a/xlat/netlink_protocols.in
+++ b/xlat/netlink_protocols.in
@@ -19,3 +19,4 @@
NETLINK_ECRYPTFS 19
NETLINK_RDMA 20
NETLINK_CRYPTO 21
+NETLINK_SMC 22
diff --git a/xlat/netlink_sk_meminfo_indices.h b/xlat/netlink_sk_meminfo_indices.h
new file mode 100644
index 0000000..9d36e15
--- /dev/null
+++ b/xlat/netlink_sk_meminfo_indices.h
@@ -0,0 +1,94 @@
+/* Generated by ./xlat/gen.sh from ./xlat/netlink_sk_meminfo_indices.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SK_MEMINFO_RMEM_ALLOC) || (defined(HAVE_DECL_SK_MEMINFO_RMEM_ALLOC) && HAVE_DECL_SK_MEMINFO_RMEM_ALLOC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_RMEM_ALLOC) == (0), "SK_MEMINFO_RMEM_ALLOC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_RMEM_ALLOC 0
+#endif
+#if defined(SK_MEMINFO_RCVBUF) || (defined(HAVE_DECL_SK_MEMINFO_RCVBUF) && HAVE_DECL_SK_MEMINFO_RCVBUF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_RCVBUF) == (1), "SK_MEMINFO_RCVBUF != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_RCVBUF 1
+#endif
+#if defined(SK_MEMINFO_WMEM_ALLOC) || (defined(HAVE_DECL_SK_MEMINFO_WMEM_ALLOC) && HAVE_DECL_SK_MEMINFO_WMEM_ALLOC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_WMEM_ALLOC) == (2), "SK_MEMINFO_WMEM_ALLOC != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_WMEM_ALLOC 2
+#endif
+#if defined(SK_MEMINFO_SNDBUF) || (defined(HAVE_DECL_SK_MEMINFO_SNDBUF) && HAVE_DECL_SK_MEMINFO_SNDBUF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_SNDBUF) == (3), "SK_MEMINFO_SNDBUF != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_SNDBUF 3
+#endif
+#if defined(SK_MEMINFO_FWD_ALLOC) || (defined(HAVE_DECL_SK_MEMINFO_FWD_ALLOC) && HAVE_DECL_SK_MEMINFO_FWD_ALLOC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_FWD_ALLOC) == (4), "SK_MEMINFO_FWD_ALLOC != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_FWD_ALLOC 4
+#endif
+#if defined(SK_MEMINFO_WMEM_QUEUED) || (defined(HAVE_DECL_SK_MEMINFO_WMEM_QUEUED) && HAVE_DECL_SK_MEMINFO_WMEM_QUEUED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_WMEM_QUEUED) == (5), "SK_MEMINFO_WMEM_QUEUED != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_WMEM_QUEUED 5
+#endif
+#if defined(SK_MEMINFO_OPTMEM) || (defined(HAVE_DECL_SK_MEMINFO_OPTMEM) && HAVE_DECL_SK_MEMINFO_OPTMEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_OPTMEM) == (6), "SK_MEMINFO_OPTMEM != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_OPTMEM 6
+#endif
+#if defined(SK_MEMINFO_BACKLOG) || (defined(HAVE_DECL_SK_MEMINFO_BACKLOG) && HAVE_DECL_SK_MEMINFO_BACKLOG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_BACKLOG) == (7), "SK_MEMINFO_BACKLOG != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_BACKLOG 7
+#endif
+#if defined(SK_MEMINFO_DROPS) || (defined(HAVE_DECL_SK_MEMINFO_DROPS) && HAVE_DECL_SK_MEMINFO_DROPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SK_MEMINFO_DROPS) == (8), "SK_MEMINFO_DROPS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SK_MEMINFO_DROPS 8
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_sk_meminfo_indices in mpers mode
+
+# else
+
+static
+const struct xlat netlink_sk_meminfo_indices[] = {
+ [SK_MEMINFO_RMEM_ALLOC] = XLAT(SK_MEMINFO_RMEM_ALLOC),
+ [SK_MEMINFO_RCVBUF] = XLAT(SK_MEMINFO_RCVBUF),
+ [SK_MEMINFO_WMEM_ALLOC] = XLAT(SK_MEMINFO_WMEM_ALLOC),
+ [SK_MEMINFO_SNDBUF] = XLAT(SK_MEMINFO_SNDBUF),
+ [SK_MEMINFO_FWD_ALLOC] = XLAT(SK_MEMINFO_FWD_ALLOC),
+ [SK_MEMINFO_WMEM_QUEUED] = XLAT(SK_MEMINFO_WMEM_QUEUED),
+ [SK_MEMINFO_OPTMEM] = XLAT(SK_MEMINFO_OPTMEM),
+ [SK_MEMINFO_BACKLOG] = XLAT(SK_MEMINFO_BACKLOG),
+ [SK_MEMINFO_DROPS] = XLAT(SK_MEMINFO_DROPS),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_sk_meminfo_indices.in b/xlat/netlink_sk_meminfo_indices.in
new file mode 100644
index 0000000..1e2f795
--- /dev/null
+++ b/xlat/netlink_sk_meminfo_indices.in
@@ -0,0 +1,10 @@
+#value_indexed
+SK_MEMINFO_RMEM_ALLOC 0
+SK_MEMINFO_RCVBUF 1
+SK_MEMINFO_WMEM_ALLOC 2
+SK_MEMINFO_SNDBUF 3
+SK_MEMINFO_FWD_ALLOC 4
+SK_MEMINFO_WMEM_QUEUED 5
+SK_MEMINFO_OPTMEM 6
+SK_MEMINFO_BACKLOG 7
+SK_MEMINFO_DROPS 8
diff --git a/xlat/netlink_socket_flags.h b/xlat/netlink_socket_flags.h
index bd9a830..7c090d2 100644
--- a/xlat/netlink_socket_flags.h
+++ b/xlat/netlink_socket_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_socket_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat netlink_socket_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat netlink_socket_flags in mpers mode
+
+# else
static
const struct xlat netlink_socket_flags[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_states.h b/xlat/netlink_states.h
index 600b52f..47dc9ed 100644
--- a/xlat/netlink_states.h
+++ b/xlat/netlink_states.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_states.in; do not edit. */
-#if !(defined(NETLINK_UNCONNECTED) || (defined(HAVE_DECL_NETLINK_UNCONNECTED) && HAVE_DECL_NETLINK_UNCONNECTED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NETLINK_UNCONNECTED) || (defined(HAVE_DECL_NETLINK_UNCONNECTED) && HAVE_DECL_NETLINK_UNCONNECTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_UNCONNECTED) == (0), "NETLINK_UNCONNECTED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_UNCONNECTED 0
#endif
-#if !(defined(NETLINK_CONNECTED) || (defined(HAVE_DECL_NETLINK_CONNECTED) && HAVE_DECL_NETLINK_CONNECTED))
+#if defined(NETLINK_CONNECTED) || (defined(HAVE_DECL_NETLINK_CONNECTED) && HAVE_DECL_NETLINK_CONNECTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_CONNECTED) == (1), "NETLINK_CONNECTED != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETLINK_CONNECTED 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat netlink_states in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat netlink_states in mpers mode
+
+# else
static
const struct xlat netlink_states[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/netlink_types.h b/xlat/netlink_types.h
index 96031f2..f6d44a3 100644
--- a/xlat/netlink_types.h
+++ b/xlat/netlink_types.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/netlink_types.in; do not edit. */
-#if !(defined(NLMSG_NOOP) || (defined(HAVE_DECL_NLMSG_NOOP) && HAVE_DECL_NLMSG_NOOP))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NLMSG_NOOP) || (defined(HAVE_DECL_NLMSG_NOOP) && HAVE_DECL_NLMSG_NOOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSG_NOOP) == (0x1), "NLMSG_NOOP != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSG_NOOP 0x1
#endif
-#if !(defined(NLMSG_ERROR) || (defined(HAVE_DECL_NLMSG_ERROR) && HAVE_DECL_NLMSG_ERROR))
+#if defined(NLMSG_ERROR) || (defined(HAVE_DECL_NLMSG_ERROR) && HAVE_DECL_NLMSG_ERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSG_ERROR) == (0x2), "NLMSG_ERROR != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSG_ERROR 0x2
#endif
-#if !(defined(NLMSG_DONE) || (defined(HAVE_DECL_NLMSG_DONE) && HAVE_DECL_NLMSG_DONE))
+#if defined(NLMSG_DONE) || (defined(HAVE_DECL_NLMSG_DONE) && HAVE_DECL_NLMSG_DONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSG_DONE) == (0x3), "NLMSG_DONE != 0x3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSG_DONE 0x3
#endif
-#if !(defined(NLMSG_OVERRUN) || (defined(HAVE_DECL_NLMSG_OVERRUN) && HAVE_DECL_NLMSG_OVERRUN))
+#if defined(NLMSG_OVERRUN) || (defined(HAVE_DECL_NLMSG_OVERRUN) && HAVE_DECL_NLMSG_OVERRUN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSG_OVERRUN) == (0x4), "NLMSG_OVERRUN != 0x4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSG_OVERRUN 0x4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat netlink_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat netlink_types in mpers mode
+
+# else
static
const struct xlat netlink_types[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_acct_msg_types.h b/xlat/nf_acct_msg_types.h
index d20681a..d0584b3 100644
--- a/xlat/nf_acct_msg_types.h
+++ b/xlat/nf_acct_msg_types.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_acct_msg_types.in; do not edit. */
-#if !(defined(NFNL_MSG_ACCT_NEW) || (defined(HAVE_DECL_NFNL_MSG_ACCT_NEW) && HAVE_DECL_NFNL_MSG_ACCT_NEW))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFNL_MSG_ACCT_NEW) || (defined(HAVE_DECL_NFNL_MSG_ACCT_NEW) && HAVE_DECL_NFNL_MSG_ACCT_NEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_ACCT_NEW) == (0), "NFNL_MSG_ACCT_NEW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_ACCT_NEW 0
#endif
-#if !(defined(NFNL_MSG_ACCT_GET) || (defined(HAVE_DECL_NFNL_MSG_ACCT_GET) && HAVE_DECL_NFNL_MSG_ACCT_GET))
+#if defined(NFNL_MSG_ACCT_GET) || (defined(HAVE_DECL_NFNL_MSG_ACCT_GET) && HAVE_DECL_NFNL_MSG_ACCT_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_ACCT_GET) == (1), "NFNL_MSG_ACCT_GET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_ACCT_GET 1
#endif
-#if !(defined(NFNL_MSG_ACCT_GET_CTRZERO) || (defined(HAVE_DECL_NFNL_MSG_ACCT_GET_CTRZERO) && HAVE_DECL_NFNL_MSG_ACCT_GET_CTRZERO))
+#if defined(NFNL_MSG_ACCT_GET_CTRZERO) || (defined(HAVE_DECL_NFNL_MSG_ACCT_GET_CTRZERO) && HAVE_DECL_NFNL_MSG_ACCT_GET_CTRZERO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_ACCT_GET_CTRZERO) == (2), "NFNL_MSG_ACCT_GET_CTRZERO != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_ACCT_GET_CTRZERO 2
#endif
-#if !(defined(NFNL_MSG_ACCT_DEL) || (defined(HAVE_DECL_NFNL_MSG_ACCT_DEL) && HAVE_DECL_NFNL_MSG_ACCT_DEL))
+#if defined(NFNL_MSG_ACCT_DEL) || (defined(HAVE_DECL_NFNL_MSG_ACCT_DEL) && HAVE_DECL_NFNL_MSG_ACCT_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_ACCT_DEL) == (3), "NFNL_MSG_ACCT_DEL != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_ACCT_DEL 3
#endif
-#if !(defined(NFNL_MSG_ACCT_OVERQUOTA) || (defined(HAVE_DECL_NFNL_MSG_ACCT_OVERQUOTA) && HAVE_DECL_NFNL_MSG_ACCT_OVERQUOTA))
+#if defined(NFNL_MSG_ACCT_OVERQUOTA) || (defined(HAVE_DECL_NFNL_MSG_ACCT_OVERQUOTA) && HAVE_DECL_NFNL_MSG_ACCT_OVERQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_ACCT_OVERQUOTA) == (4), "NFNL_MSG_ACCT_OVERQUOTA != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_ACCT_OVERQUOTA 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_acct_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_acct_msg_types in mpers mode
+
+# else
static
const struct xlat nf_acct_msg_types[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_cthelper_msg_types.h b/xlat/nf_cthelper_msg_types.h
index 3b3ee1b..0fa432a 100644
--- a/xlat/nf_cthelper_msg_types.h
+++ b/xlat/nf_cthelper_msg_types.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_cthelper_msg_types.in; do not edit. */
-#if !(defined(NFNL_MSG_CTHELPER_NEW) || (defined(HAVE_DECL_NFNL_MSG_CTHELPER_NEW) && HAVE_DECL_NFNL_MSG_CTHELPER_NEW))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFNL_MSG_CTHELPER_NEW) || (defined(HAVE_DECL_NFNL_MSG_CTHELPER_NEW) && HAVE_DECL_NFNL_MSG_CTHELPER_NEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_CTHELPER_NEW) == (0), "NFNL_MSG_CTHELPER_NEW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_CTHELPER_NEW 0
#endif
-#if !(defined(NFNL_MSG_CTHELPER_GET) || (defined(HAVE_DECL_NFNL_MSG_CTHELPER_GET) && HAVE_DECL_NFNL_MSG_CTHELPER_GET))
+#if defined(NFNL_MSG_CTHELPER_GET) || (defined(HAVE_DECL_NFNL_MSG_CTHELPER_GET) && HAVE_DECL_NFNL_MSG_CTHELPER_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_CTHELPER_GET) == (1), "NFNL_MSG_CTHELPER_GET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_CTHELPER_GET 1
#endif
-#if !(defined(NFNL_MSG_CTHELPER_DEL) || (defined(HAVE_DECL_NFNL_MSG_CTHELPER_DEL) && HAVE_DECL_NFNL_MSG_CTHELPER_DEL))
+#if defined(NFNL_MSG_CTHELPER_DEL) || (defined(HAVE_DECL_NFNL_MSG_CTHELPER_DEL) && HAVE_DECL_NFNL_MSG_CTHELPER_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_CTHELPER_DEL) == (2), "NFNL_MSG_CTHELPER_DEL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_CTHELPER_DEL 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_cthelper_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_cthelper_msg_types in mpers mode
+
+# else
static
const struct xlat nf_cthelper_msg_types[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_ctnetlink_exp_msg_types.h b/xlat/nf_ctnetlink_exp_msg_types.h
index 4988dd3..a6b13a1 100644
--- a/xlat/nf_ctnetlink_exp_msg_types.h
+++ b/xlat/nf_ctnetlink_exp_msg_types.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_ctnetlink_exp_msg_types.in; do not edit. */
-#if !(defined(IPCTNL_MSG_EXP_NEW) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_NEW) && HAVE_DECL_IPCTNL_MSG_EXP_NEW))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPCTNL_MSG_EXP_NEW) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_NEW) && HAVE_DECL_IPCTNL_MSG_EXP_NEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_EXP_NEW) == (0), "IPCTNL_MSG_EXP_NEW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_EXP_NEW 0
#endif
-#if !(defined(IPCTNL_MSG_EXP_GET) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_GET) && HAVE_DECL_IPCTNL_MSG_EXP_GET))
+#if defined(IPCTNL_MSG_EXP_GET) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_GET) && HAVE_DECL_IPCTNL_MSG_EXP_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_EXP_GET) == (1), "IPCTNL_MSG_EXP_GET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_EXP_GET 1
#endif
-#if !(defined(IPCTNL_MSG_EXP_DELETE) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_DELETE) && HAVE_DECL_IPCTNL_MSG_EXP_DELETE))
+#if defined(IPCTNL_MSG_EXP_DELETE) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_DELETE) && HAVE_DECL_IPCTNL_MSG_EXP_DELETE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_EXP_DELETE) == (2), "IPCTNL_MSG_EXP_DELETE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_EXP_DELETE 2
#endif
-#if !(defined(IPCTNL_MSG_EXP_GET_STATS_CPU) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_GET_STATS_CPU) && HAVE_DECL_IPCTNL_MSG_EXP_GET_STATS_CPU))
+#if defined(IPCTNL_MSG_EXP_GET_STATS_CPU) || (defined(HAVE_DECL_IPCTNL_MSG_EXP_GET_STATS_CPU) && HAVE_DECL_IPCTNL_MSG_EXP_GET_STATS_CPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_EXP_GET_STATS_CPU) == (3), "IPCTNL_MSG_EXP_GET_STATS_CPU != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_EXP_GET_STATS_CPU 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_ctnetlink_exp_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_ctnetlink_exp_msg_types in mpers mode
+
+# else
static
const struct xlat nf_ctnetlink_exp_msg_types[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_ctnetlink_msg_types.h b/xlat/nf_ctnetlink_msg_types.h
index 8b61e44..71d24ae 100644
--- a/xlat/nf_ctnetlink_msg_types.h
+++ b/xlat/nf_ctnetlink_msg_types.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_ctnetlink_msg_types.in; do not edit. */
-#if !(defined(IPCTNL_MSG_CT_NEW) || (defined(HAVE_DECL_IPCTNL_MSG_CT_NEW) && HAVE_DECL_IPCTNL_MSG_CT_NEW))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPCTNL_MSG_CT_NEW) || (defined(HAVE_DECL_IPCTNL_MSG_CT_NEW) && HAVE_DECL_IPCTNL_MSG_CT_NEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_NEW) == (0), "IPCTNL_MSG_CT_NEW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_NEW 0
#endif
-#if !(defined(IPCTNL_MSG_CT_GET) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET) && HAVE_DECL_IPCTNL_MSG_CT_GET))
+#if defined(IPCTNL_MSG_CT_GET) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET) && HAVE_DECL_IPCTNL_MSG_CT_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_GET) == (1), "IPCTNL_MSG_CT_GET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_GET 1
#endif
-#if !(defined(IPCTNL_MSG_CT_DELETE) || (defined(HAVE_DECL_IPCTNL_MSG_CT_DELETE) && HAVE_DECL_IPCTNL_MSG_CT_DELETE))
+#if defined(IPCTNL_MSG_CT_DELETE) || (defined(HAVE_DECL_IPCTNL_MSG_CT_DELETE) && HAVE_DECL_IPCTNL_MSG_CT_DELETE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_DELETE) == (2), "IPCTNL_MSG_CT_DELETE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_DELETE 2
#endif
-#if !(defined(IPCTNL_MSG_CT_GET_CTRZERO) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_CTRZERO) && HAVE_DECL_IPCTNL_MSG_CT_GET_CTRZERO))
+#if defined(IPCTNL_MSG_CT_GET_CTRZERO) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_CTRZERO) && HAVE_DECL_IPCTNL_MSG_CT_GET_CTRZERO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_GET_CTRZERO) == (3), "IPCTNL_MSG_CT_GET_CTRZERO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_GET_CTRZERO 3
#endif
-#if !(defined(IPCTNL_MSG_CT_GET_STATS_CPU) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_STATS_CPU) && HAVE_DECL_IPCTNL_MSG_CT_GET_STATS_CPU))
+#if defined(IPCTNL_MSG_CT_GET_STATS_CPU) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_STATS_CPU) && HAVE_DECL_IPCTNL_MSG_CT_GET_STATS_CPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_GET_STATS_CPU) == (4), "IPCTNL_MSG_CT_GET_STATS_CPU != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_GET_STATS_CPU 4
#endif
-#if !(defined(IPCTNL_MSG_CT_GET_STATS) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_STATS) && HAVE_DECL_IPCTNL_MSG_CT_GET_STATS))
+#if defined(IPCTNL_MSG_CT_GET_STATS) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_STATS) && HAVE_DECL_IPCTNL_MSG_CT_GET_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_GET_STATS) == (5), "IPCTNL_MSG_CT_GET_STATS != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_GET_STATS 5
#endif
-#if !(defined(IPCTNL_MSG_CT_GET_DYING) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_DYING) && HAVE_DECL_IPCTNL_MSG_CT_GET_DYING))
+#if defined(IPCTNL_MSG_CT_GET_DYING) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_DYING) && HAVE_DECL_IPCTNL_MSG_CT_GET_DYING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_GET_DYING) == (6), "IPCTNL_MSG_CT_GET_DYING != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_GET_DYING 6
#endif
-#if !(defined(IPCTNL_MSG_CT_GET_UNCONFIRMED) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_UNCONFIRMED) && HAVE_DECL_IPCTNL_MSG_CT_GET_UNCONFIRMED))
+#if defined(IPCTNL_MSG_CT_GET_UNCONFIRMED) || (defined(HAVE_DECL_IPCTNL_MSG_CT_GET_UNCONFIRMED) && HAVE_DECL_IPCTNL_MSG_CT_GET_UNCONFIRMED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_CT_GET_UNCONFIRMED) == (7), "IPCTNL_MSG_CT_GET_UNCONFIRMED != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_CT_GET_UNCONFIRMED 7
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_ctnetlink_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_ctnetlink_msg_types in mpers mode
+
+# else
static
const struct xlat nf_ctnetlink_msg_types[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_cttimeout_msg_types.h b/xlat/nf_cttimeout_msg_types.h
index 9c7b551..43ebec4 100644
--- a/xlat/nf_cttimeout_msg_types.h
+++ b/xlat/nf_cttimeout_msg_types.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_cttimeout_msg_types.in; do not edit. */
-#if !(defined(IPCTNL_MSG_TIMEOUT_NEW) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_NEW) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_NEW))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPCTNL_MSG_TIMEOUT_NEW) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_NEW) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_NEW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_TIMEOUT_NEW) == (0), "IPCTNL_MSG_TIMEOUT_NEW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_TIMEOUT_NEW 0
#endif
-#if !(defined(IPCTNL_MSG_TIMEOUT_GET) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_GET) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_GET))
+#if defined(IPCTNL_MSG_TIMEOUT_GET) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_GET) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_TIMEOUT_GET) == (1), "IPCTNL_MSG_TIMEOUT_GET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_TIMEOUT_GET 1
#endif
-#if !(defined(IPCTNL_MSG_TIMEOUT_DELETE) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_DELETE) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_DELETE))
+#if defined(IPCTNL_MSG_TIMEOUT_DELETE) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_DELETE) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_DELETE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_TIMEOUT_DELETE) == (2), "IPCTNL_MSG_TIMEOUT_DELETE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_TIMEOUT_DELETE 2
#endif
-#if !(defined(IPCTNL_MSG_TIMEOUT_DEFAULT_SET) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_SET) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_SET))
+#if defined(IPCTNL_MSG_TIMEOUT_DEFAULT_SET) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_SET) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_TIMEOUT_DEFAULT_SET) == (3), "IPCTNL_MSG_TIMEOUT_DEFAULT_SET != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_TIMEOUT_DEFAULT_SET 3
#endif
-#if !(defined(IPCTNL_MSG_TIMEOUT_DEFAULT_GET) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_GET) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_GET))
+#if defined(IPCTNL_MSG_TIMEOUT_DEFAULT_GET) || (defined(HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_GET) && HAVE_DECL_IPCTNL_MSG_TIMEOUT_DEFAULT_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPCTNL_MSG_TIMEOUT_DEFAULT_GET) == (4), "IPCTNL_MSG_TIMEOUT_DEFAULT_GET != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPCTNL_MSG_TIMEOUT_DEFAULT_GET 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_cttimeout_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_cttimeout_msg_types in mpers mode
+
+# else
static
const struct xlat nf_cttimeout_msg_types[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_ipset_msg_types.h b/xlat/nf_ipset_msg_types.h
index b6b32bb..4fdedd9 100644
--- a/xlat/nf_ipset_msg_types.h
+++ b/xlat/nf_ipset_msg_types.h
@@ -1,67 +1,149 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_ipset_msg_types.in; do not edit. */
-#if !(defined(IPSET_CMD_NONE) || (defined(HAVE_DECL_IPSET_CMD_NONE) && HAVE_DECL_IPSET_CMD_NONE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPSET_CMD_NONE) || (defined(HAVE_DECL_IPSET_CMD_NONE) && HAVE_DECL_IPSET_CMD_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_NONE) == (0), "IPSET_CMD_NONE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_NONE 0
#endif
-#if !(defined(IPSET_CMD_PROTOCOL) || (defined(HAVE_DECL_IPSET_CMD_PROTOCOL) && HAVE_DECL_IPSET_CMD_PROTOCOL))
+#if defined(IPSET_CMD_PROTOCOL) || (defined(HAVE_DECL_IPSET_CMD_PROTOCOL) && HAVE_DECL_IPSET_CMD_PROTOCOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_PROTOCOL) == (1), "IPSET_CMD_PROTOCOL != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_PROTOCOL 1
#endif
-#if !(defined(IPSET_CMD_CREATE) || (defined(HAVE_DECL_IPSET_CMD_CREATE) && HAVE_DECL_IPSET_CMD_CREATE))
+#if defined(IPSET_CMD_CREATE) || (defined(HAVE_DECL_IPSET_CMD_CREATE) && HAVE_DECL_IPSET_CMD_CREATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_CREATE) == (2), "IPSET_CMD_CREATE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_CREATE 2
#endif
-#if !(defined(IPSET_CMD_DESTROY) || (defined(HAVE_DECL_IPSET_CMD_DESTROY) && HAVE_DECL_IPSET_CMD_DESTROY))
+#if defined(IPSET_CMD_DESTROY) || (defined(HAVE_DECL_IPSET_CMD_DESTROY) && HAVE_DECL_IPSET_CMD_DESTROY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_DESTROY) == (3), "IPSET_CMD_DESTROY != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_DESTROY 3
#endif
-#if !(defined(IPSET_CMD_FLUSH) || (defined(HAVE_DECL_IPSET_CMD_FLUSH) && HAVE_DECL_IPSET_CMD_FLUSH))
+#if defined(IPSET_CMD_FLUSH) || (defined(HAVE_DECL_IPSET_CMD_FLUSH) && HAVE_DECL_IPSET_CMD_FLUSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_FLUSH) == (4), "IPSET_CMD_FLUSH != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_FLUSH 4
#endif
-#if !(defined(IPSET_CMD_RENAME) || (defined(HAVE_DECL_IPSET_CMD_RENAME) && HAVE_DECL_IPSET_CMD_RENAME))
+#if defined(IPSET_CMD_RENAME) || (defined(HAVE_DECL_IPSET_CMD_RENAME) && HAVE_DECL_IPSET_CMD_RENAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_RENAME) == (5), "IPSET_CMD_RENAME != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_RENAME 5
#endif
-#if !(defined(IPSET_CMD_SWAP) || (defined(HAVE_DECL_IPSET_CMD_SWAP) && HAVE_DECL_IPSET_CMD_SWAP))
+#if defined(IPSET_CMD_SWAP) || (defined(HAVE_DECL_IPSET_CMD_SWAP) && HAVE_DECL_IPSET_CMD_SWAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_SWAP) == (6), "IPSET_CMD_SWAP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_SWAP 6
#endif
-#if !(defined(IPSET_CMD_LIST) || (defined(HAVE_DECL_IPSET_CMD_LIST) && HAVE_DECL_IPSET_CMD_LIST))
+#if defined(IPSET_CMD_LIST) || (defined(HAVE_DECL_IPSET_CMD_LIST) && HAVE_DECL_IPSET_CMD_LIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_LIST) == (7), "IPSET_CMD_LIST != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_LIST 7
#endif
-#if !(defined(IPSET_CMD_SAVE) || (defined(HAVE_DECL_IPSET_CMD_SAVE) && HAVE_DECL_IPSET_CMD_SAVE))
+#if defined(IPSET_CMD_SAVE) || (defined(HAVE_DECL_IPSET_CMD_SAVE) && HAVE_DECL_IPSET_CMD_SAVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_SAVE) == (8), "IPSET_CMD_SAVE != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_SAVE 8
#endif
-#if !(defined(IPSET_CMD_ADD) || (defined(HAVE_DECL_IPSET_CMD_ADD) && HAVE_DECL_IPSET_CMD_ADD))
+#if defined(IPSET_CMD_ADD) || (defined(HAVE_DECL_IPSET_CMD_ADD) && HAVE_DECL_IPSET_CMD_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_ADD) == (9), "IPSET_CMD_ADD != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_ADD 9
#endif
-#if !(defined(IPSET_CMD_DEL) || (defined(HAVE_DECL_IPSET_CMD_DEL) && HAVE_DECL_IPSET_CMD_DEL))
+#if defined(IPSET_CMD_DEL) || (defined(HAVE_DECL_IPSET_CMD_DEL) && HAVE_DECL_IPSET_CMD_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_DEL) == (10), "IPSET_CMD_DEL != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_DEL 10
#endif
-#if !(defined(IPSET_CMD_TEST) || (defined(HAVE_DECL_IPSET_CMD_TEST) && HAVE_DECL_IPSET_CMD_TEST))
+#if defined(IPSET_CMD_TEST) || (defined(HAVE_DECL_IPSET_CMD_TEST) && HAVE_DECL_IPSET_CMD_TEST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_TEST) == (11), "IPSET_CMD_TEST != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_TEST 11
#endif
-#if !(defined(IPSET_CMD_HEADER) || (defined(HAVE_DECL_IPSET_CMD_HEADER) && HAVE_DECL_IPSET_CMD_HEADER))
+#if defined(IPSET_CMD_HEADER) || (defined(HAVE_DECL_IPSET_CMD_HEADER) && HAVE_DECL_IPSET_CMD_HEADER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_HEADER) == (12), "IPSET_CMD_HEADER != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_HEADER 12
#endif
-#if !(defined(IPSET_CMD_TYPE) || (defined(HAVE_DECL_IPSET_CMD_TYPE) && HAVE_DECL_IPSET_CMD_TYPE))
+#if defined(IPSET_CMD_TYPE) || (defined(HAVE_DECL_IPSET_CMD_TYPE) && HAVE_DECL_IPSET_CMD_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_TYPE) == (13), "IPSET_CMD_TYPE != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_TYPE 13
#endif
-#if !(defined(IPSET_CMD_RESTORE) || (defined(HAVE_DECL_IPSET_CMD_RESTORE) && HAVE_DECL_IPSET_CMD_RESTORE))
+#if defined(IPSET_CMD_RESTORE) || (defined(HAVE_DECL_IPSET_CMD_RESTORE) && HAVE_DECL_IPSET_CMD_RESTORE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_RESTORE) == (14), "IPSET_CMD_RESTORE != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_RESTORE 14
#endif
-#if !(defined(IPSET_CMD_HELP) || (defined(HAVE_DECL_IPSET_CMD_HELP) && HAVE_DECL_IPSET_CMD_HELP))
+#if defined(IPSET_CMD_HELP) || (defined(HAVE_DECL_IPSET_CMD_HELP) && HAVE_DECL_IPSET_CMD_HELP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_HELP) == (15), "IPSET_CMD_HELP != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_HELP 15
#endif
-#if !(defined(IPSET_CMD_VERSION) || (defined(HAVE_DECL_IPSET_CMD_VERSION) && HAVE_DECL_IPSET_CMD_VERSION))
+#if defined(IPSET_CMD_VERSION) || (defined(HAVE_DECL_IPSET_CMD_VERSION) && HAVE_DECL_IPSET_CMD_VERSION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_VERSION) == (16), "IPSET_CMD_VERSION != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_VERSION 16
#endif
-#if !(defined(IPSET_CMD_QUIT) || (defined(HAVE_DECL_IPSET_CMD_QUIT) && HAVE_DECL_IPSET_CMD_QUIT))
+#if defined(IPSET_CMD_QUIT) || (defined(HAVE_DECL_IPSET_CMD_QUIT) && HAVE_DECL_IPSET_CMD_QUIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_QUIT) == (17), "IPSET_CMD_QUIT != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_QUIT 17
#endif
-#if !(defined(IPSET_CMD_COMMIT) || (defined(HAVE_DECL_IPSET_CMD_COMMIT) && HAVE_DECL_IPSET_CMD_COMMIT))
+#if defined(IPSET_CMD_COMMIT) || (defined(HAVE_DECL_IPSET_CMD_COMMIT) && HAVE_DECL_IPSET_CMD_COMMIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSET_CMD_COMMIT) == (18), "IPSET_CMD_COMMIT != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IPSET_CMD_COMMIT 18
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_ipset_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_ipset_msg_types in mpers mode
+
+# else
static
const struct xlat nf_ipset_msg_types[] = {
@@ -89,4 +171,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_nft_compat_msg_types.h b/xlat/nf_nft_compat_msg_types.h
index 1134678..010ec9d 100644
--- a/xlat/nf_nft_compat_msg_types.h
+++ b/xlat/nf_nft_compat_msg_types.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_nft_compat_msg_types.in; do not edit. */
-#if !(defined(NFNL_MSG_COMPAT_GET) || (defined(HAVE_DECL_NFNL_MSG_COMPAT_GET) && HAVE_DECL_NFNL_MSG_COMPAT_GET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFNL_MSG_COMPAT_GET) || (defined(HAVE_DECL_NFNL_MSG_COMPAT_GET) && HAVE_DECL_NFNL_MSG_COMPAT_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_COMPAT_GET) == (0), "NFNL_MSG_COMPAT_GET != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_COMPAT_GET 0
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_nft_compat_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_nft_compat_msg_types in mpers mode
+
+# else
static
const struct xlat nf_nft_compat_msg_types[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_nftables_msg_types.h b/xlat/nf_nftables_msg_types.h
index 8a1a6de..f2b3c51 100644
--- a/xlat/nf_nftables_msg_types.h
+++ b/xlat/nf_nftables_msg_types.h
@@ -1,76 +1,170 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_nftables_msg_types.in; do not edit. */
-#if !(defined(NFT_MSG_NEWTABLE) || (defined(HAVE_DECL_NFT_MSG_NEWTABLE) && HAVE_DECL_NFT_MSG_NEWTABLE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFT_MSG_NEWTABLE) || (defined(HAVE_DECL_NFT_MSG_NEWTABLE) && HAVE_DECL_NFT_MSG_NEWTABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_NEWTABLE) == (0), "NFT_MSG_NEWTABLE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_NEWTABLE 0
#endif
-#if !(defined(NFT_MSG_GETTABLE) || (defined(HAVE_DECL_NFT_MSG_GETTABLE) && HAVE_DECL_NFT_MSG_GETTABLE))
+#if defined(NFT_MSG_GETTABLE) || (defined(HAVE_DECL_NFT_MSG_GETTABLE) && HAVE_DECL_NFT_MSG_GETTABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETTABLE) == (1), "NFT_MSG_GETTABLE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETTABLE 1
#endif
-#if !(defined(NFT_MSG_DELTABLE) || (defined(HAVE_DECL_NFT_MSG_DELTABLE) && HAVE_DECL_NFT_MSG_DELTABLE))
+#if defined(NFT_MSG_DELTABLE) || (defined(HAVE_DECL_NFT_MSG_DELTABLE) && HAVE_DECL_NFT_MSG_DELTABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_DELTABLE) == (2), "NFT_MSG_DELTABLE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_DELTABLE 2
#endif
-#if !(defined(NFT_MSG_NEWCHAIN) || (defined(HAVE_DECL_NFT_MSG_NEWCHAIN) && HAVE_DECL_NFT_MSG_NEWCHAIN))
+#if defined(NFT_MSG_NEWCHAIN) || (defined(HAVE_DECL_NFT_MSG_NEWCHAIN) && HAVE_DECL_NFT_MSG_NEWCHAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_NEWCHAIN) == (3), "NFT_MSG_NEWCHAIN != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_NEWCHAIN 3
#endif
-#if !(defined(NFT_MSG_GETCHAIN) || (defined(HAVE_DECL_NFT_MSG_GETCHAIN) && HAVE_DECL_NFT_MSG_GETCHAIN))
+#if defined(NFT_MSG_GETCHAIN) || (defined(HAVE_DECL_NFT_MSG_GETCHAIN) && HAVE_DECL_NFT_MSG_GETCHAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETCHAIN) == (4), "NFT_MSG_GETCHAIN != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETCHAIN 4
#endif
-#if !(defined(NFT_MSG_DELCHAIN) || (defined(HAVE_DECL_NFT_MSG_DELCHAIN) && HAVE_DECL_NFT_MSG_DELCHAIN))
+#if defined(NFT_MSG_DELCHAIN) || (defined(HAVE_DECL_NFT_MSG_DELCHAIN) && HAVE_DECL_NFT_MSG_DELCHAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_DELCHAIN) == (5), "NFT_MSG_DELCHAIN != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_DELCHAIN 5
#endif
-#if !(defined(NFT_MSG_NEWRULE) || (defined(HAVE_DECL_NFT_MSG_NEWRULE) && HAVE_DECL_NFT_MSG_NEWRULE))
+#if defined(NFT_MSG_NEWRULE) || (defined(HAVE_DECL_NFT_MSG_NEWRULE) && HAVE_DECL_NFT_MSG_NEWRULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_NEWRULE) == (6), "NFT_MSG_NEWRULE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_NEWRULE 6
#endif
-#if !(defined(NFT_MSG_GETRULE) || (defined(HAVE_DECL_NFT_MSG_GETRULE) && HAVE_DECL_NFT_MSG_GETRULE))
+#if defined(NFT_MSG_GETRULE) || (defined(HAVE_DECL_NFT_MSG_GETRULE) && HAVE_DECL_NFT_MSG_GETRULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETRULE) == (7), "NFT_MSG_GETRULE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETRULE 7
#endif
-#if !(defined(NFT_MSG_DELRULE) || (defined(HAVE_DECL_NFT_MSG_DELRULE) && HAVE_DECL_NFT_MSG_DELRULE))
+#if defined(NFT_MSG_DELRULE) || (defined(HAVE_DECL_NFT_MSG_DELRULE) && HAVE_DECL_NFT_MSG_DELRULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_DELRULE) == (8), "NFT_MSG_DELRULE != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_DELRULE 8
#endif
-#if !(defined(NFT_MSG_NEWSET) || (defined(HAVE_DECL_NFT_MSG_NEWSET) && HAVE_DECL_NFT_MSG_NEWSET))
+#if defined(NFT_MSG_NEWSET) || (defined(HAVE_DECL_NFT_MSG_NEWSET) && HAVE_DECL_NFT_MSG_NEWSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_NEWSET) == (9), "NFT_MSG_NEWSET != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_NEWSET 9
#endif
-#if !(defined(NFT_MSG_GETSET) || (defined(HAVE_DECL_NFT_MSG_GETSET) && HAVE_DECL_NFT_MSG_GETSET))
+#if defined(NFT_MSG_GETSET) || (defined(HAVE_DECL_NFT_MSG_GETSET) && HAVE_DECL_NFT_MSG_GETSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETSET) == (10), "NFT_MSG_GETSET != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETSET 10
#endif
-#if !(defined(NFT_MSG_DELSET) || (defined(HAVE_DECL_NFT_MSG_DELSET) && HAVE_DECL_NFT_MSG_DELSET))
+#if defined(NFT_MSG_DELSET) || (defined(HAVE_DECL_NFT_MSG_DELSET) && HAVE_DECL_NFT_MSG_DELSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_DELSET) == (11), "NFT_MSG_DELSET != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_DELSET 11
#endif
-#if !(defined(NFT_MSG_NEWSETELEM) || (defined(HAVE_DECL_NFT_MSG_NEWSETELEM) && HAVE_DECL_NFT_MSG_NEWSETELEM))
+#if defined(NFT_MSG_NEWSETELEM) || (defined(HAVE_DECL_NFT_MSG_NEWSETELEM) && HAVE_DECL_NFT_MSG_NEWSETELEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_NEWSETELEM) == (12), "NFT_MSG_NEWSETELEM != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_NEWSETELEM 12
#endif
-#if !(defined(NFT_MSG_GETSETELEM) || (defined(HAVE_DECL_NFT_MSG_GETSETELEM) && HAVE_DECL_NFT_MSG_GETSETELEM))
+#if defined(NFT_MSG_GETSETELEM) || (defined(HAVE_DECL_NFT_MSG_GETSETELEM) && HAVE_DECL_NFT_MSG_GETSETELEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETSETELEM) == (13), "NFT_MSG_GETSETELEM != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETSETELEM 13
#endif
-#if !(defined(NFT_MSG_DELSETELEM) || (defined(HAVE_DECL_NFT_MSG_DELSETELEM) && HAVE_DECL_NFT_MSG_DELSETELEM))
+#if defined(NFT_MSG_DELSETELEM) || (defined(HAVE_DECL_NFT_MSG_DELSETELEM) && HAVE_DECL_NFT_MSG_DELSETELEM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_DELSETELEM) == (14), "NFT_MSG_DELSETELEM != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_DELSETELEM 14
#endif
-#if !(defined(NFT_MSG_NEWGEN) || (defined(HAVE_DECL_NFT_MSG_NEWGEN) && HAVE_DECL_NFT_MSG_NEWGEN))
+#if defined(NFT_MSG_NEWGEN) || (defined(HAVE_DECL_NFT_MSG_NEWGEN) && HAVE_DECL_NFT_MSG_NEWGEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_NEWGEN) == (15), "NFT_MSG_NEWGEN != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_NEWGEN 15
#endif
-#if !(defined(NFT_MSG_GETGEN) || (defined(HAVE_DECL_NFT_MSG_GETGEN) && HAVE_DECL_NFT_MSG_GETGEN))
+#if defined(NFT_MSG_GETGEN) || (defined(HAVE_DECL_NFT_MSG_GETGEN) && HAVE_DECL_NFT_MSG_GETGEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETGEN) == (16), "NFT_MSG_GETGEN != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETGEN 16
#endif
-#if !(defined(NFT_MSG_TRACE) || (defined(HAVE_DECL_NFT_MSG_TRACE) && HAVE_DECL_NFT_MSG_TRACE))
+#if defined(NFT_MSG_TRACE) || (defined(HAVE_DECL_NFT_MSG_TRACE) && HAVE_DECL_NFT_MSG_TRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_TRACE) == (17), "NFT_MSG_TRACE != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_TRACE 17
#endif
-#if !(defined(NFT_MSG_NEWOBJ) || (defined(HAVE_DECL_NFT_MSG_NEWOBJ) && HAVE_DECL_NFT_MSG_NEWOBJ))
+#if defined(NFT_MSG_NEWOBJ) || (defined(HAVE_DECL_NFT_MSG_NEWOBJ) && HAVE_DECL_NFT_MSG_NEWOBJ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_NEWOBJ) == (18), "NFT_MSG_NEWOBJ != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_NEWOBJ 18
#endif
-#if !(defined(NFT_MSG_GETOBJ) || (defined(HAVE_DECL_NFT_MSG_GETOBJ) && HAVE_DECL_NFT_MSG_GETOBJ))
+#if defined(NFT_MSG_GETOBJ) || (defined(HAVE_DECL_NFT_MSG_GETOBJ) && HAVE_DECL_NFT_MSG_GETOBJ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETOBJ) == (19), "NFT_MSG_GETOBJ != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETOBJ 19
#endif
-#if !(defined(NFT_MSG_DELOBJ) || (defined(HAVE_DECL_NFT_MSG_DELOBJ) && HAVE_DECL_NFT_MSG_DELOBJ))
+#if defined(NFT_MSG_DELOBJ) || (defined(HAVE_DECL_NFT_MSG_DELOBJ) && HAVE_DECL_NFT_MSG_DELOBJ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_DELOBJ) == (20), "NFT_MSG_DELOBJ != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_DELOBJ 20
#endif
-#if !(defined(NFT_MSG_GETOBJ_RESET) || (defined(HAVE_DECL_NFT_MSG_GETOBJ_RESET) && HAVE_DECL_NFT_MSG_GETOBJ_RESET))
+#if defined(NFT_MSG_GETOBJ_RESET) || (defined(HAVE_DECL_NFT_MSG_GETOBJ_RESET) && HAVE_DECL_NFT_MSG_GETOBJ_RESET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFT_MSG_GETOBJ_RESET) == (21), "NFT_MSG_GETOBJ_RESET != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFT_MSG_GETOBJ_RESET 21
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_nftables_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_nftables_msg_types in mpers mode
+
+# else
static
const struct xlat nf_nftables_msg_types[] = {
@@ -99,4 +193,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_osf_msg_types.h b/xlat/nf_osf_msg_types.h
index f5661ef..bf84df6 100644
--- a/xlat/nf_osf_msg_types.h
+++ b/xlat/nf_osf_msg_types.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_osf_msg_types.in; do not edit. */
-#if !(defined(OSF_MSG_ADD) || (defined(HAVE_DECL_OSF_MSG_ADD) && HAVE_DECL_OSF_MSG_ADD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(OSF_MSG_ADD) || (defined(HAVE_DECL_OSF_MSG_ADD) && HAVE_DECL_OSF_MSG_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((OSF_MSG_ADD) == (0), "OSF_MSG_ADD != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define OSF_MSG_ADD 0
#endif
-#if !(defined(OSF_MSG_REMOVE) || (defined(HAVE_DECL_OSF_MSG_REMOVE) && HAVE_DECL_OSF_MSG_REMOVE))
+#if defined(OSF_MSG_REMOVE) || (defined(HAVE_DECL_OSF_MSG_REMOVE) && HAVE_DECL_OSF_MSG_REMOVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((OSF_MSG_REMOVE) == (1), "OSF_MSG_REMOVE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define OSF_MSG_REMOVE 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_osf_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_osf_msg_types in mpers mode
+
+# else
static
const struct xlat nf_osf_msg_types[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_queue_msg_types.h b/xlat/nf_queue_msg_types.h
index 7b4f4a4..88ab109 100644
--- a/xlat/nf_queue_msg_types.h
+++ b/xlat/nf_queue_msg_types.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_queue_msg_types.in; do not edit. */
-#if !(defined(NFQNL_MSG_PACKET) || (defined(HAVE_DECL_NFQNL_MSG_PACKET) && HAVE_DECL_NFQNL_MSG_PACKET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFQNL_MSG_PACKET) || (defined(HAVE_DECL_NFQNL_MSG_PACKET) && HAVE_DECL_NFQNL_MSG_PACKET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFQNL_MSG_PACKET) == (0), "NFQNL_MSG_PACKET != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFQNL_MSG_PACKET 0
#endif
-#if !(defined(NFQNL_MSG_VERDICT) || (defined(HAVE_DECL_NFQNL_MSG_VERDICT) && HAVE_DECL_NFQNL_MSG_VERDICT))
+#if defined(NFQNL_MSG_VERDICT) || (defined(HAVE_DECL_NFQNL_MSG_VERDICT) && HAVE_DECL_NFQNL_MSG_VERDICT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFQNL_MSG_VERDICT) == (1), "NFQNL_MSG_VERDICT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFQNL_MSG_VERDICT 1
#endif
-#if !(defined(NFQNL_MSG_CONFIG) || (defined(HAVE_DECL_NFQNL_MSG_CONFIG) && HAVE_DECL_NFQNL_MSG_CONFIG))
+#if defined(NFQNL_MSG_CONFIG) || (defined(HAVE_DECL_NFQNL_MSG_CONFIG) && HAVE_DECL_NFQNL_MSG_CONFIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFQNL_MSG_CONFIG) == (2), "NFQNL_MSG_CONFIG != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFQNL_MSG_CONFIG 2
#endif
-#if !(defined(NFQNL_MSG_VERDICT_BATCH) || (defined(HAVE_DECL_NFQNL_MSG_VERDICT_BATCH) && HAVE_DECL_NFQNL_MSG_VERDICT_BATCH))
+#if defined(NFQNL_MSG_VERDICT_BATCH) || (defined(HAVE_DECL_NFQNL_MSG_VERDICT_BATCH) && HAVE_DECL_NFQNL_MSG_VERDICT_BATCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFQNL_MSG_VERDICT_BATCH) == (3), "NFQNL_MSG_VERDICT_BATCH != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFQNL_MSG_VERDICT_BATCH 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_queue_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_queue_msg_types in mpers mode
+
+# else
static
const struct xlat nf_queue_msg_types[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nf_ulog_msg_types.h b/xlat/nf_ulog_msg_types.h
index b0ab051..c8c8389 100644
--- a/xlat/nf_ulog_msg_types.h
+++ b/xlat/nf_ulog_msg_types.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/nf_ulog_msg_types.in; do not edit. */
-#if !(defined(NFULNL_MSG_PACKET) || (defined(HAVE_DECL_NFULNL_MSG_PACKET) && HAVE_DECL_NFULNL_MSG_PACKET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFULNL_MSG_PACKET) || (defined(HAVE_DECL_NFULNL_MSG_PACKET) && HAVE_DECL_NFULNL_MSG_PACKET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFULNL_MSG_PACKET) == (0), "NFULNL_MSG_PACKET != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFULNL_MSG_PACKET 0
#endif
-#if !(defined(NFULNL_MSG_CONFIG) || (defined(HAVE_DECL_NFULNL_MSG_CONFIG) && HAVE_DECL_NFULNL_MSG_CONFIG))
+#if defined(NFULNL_MSG_CONFIG) || (defined(HAVE_DECL_NFULNL_MSG_CONFIG) && HAVE_DECL_NFULNL_MSG_CONFIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFULNL_MSG_CONFIG) == (1), "NFULNL_MSG_CONFIG != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFULNL_MSG_CONFIG 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nf_ulog_msg_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nf_ulog_msg_types in mpers mode
+
+# else
static
const struct xlat nf_ulog_msg_types[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nfc_protocols.h b/xlat/nfc_protocols.h
new file mode 100644
index 0000000..88331a5
--- /dev/null
+++ b/xlat/nfc_protocols.h
@@ -0,0 +1,38 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nfc_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFC_SOCKPROTO_RAW) || (defined(HAVE_DECL_NFC_SOCKPROTO_RAW) && HAVE_DECL_NFC_SOCKPROTO_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFC_SOCKPROTO_RAW) == (0), "NFC_SOCKPROTO_RAW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NFC_SOCKPROTO_RAW 0
+#endif
+#if defined(NFC_SOCKPROTO_LLCP) || (defined(HAVE_DECL_NFC_SOCKPROTO_LLCP) && HAVE_DECL_NFC_SOCKPROTO_LLCP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFC_SOCKPROTO_LLCP) == (1), "NFC_SOCKPROTO_LLCP != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NFC_SOCKPROTO_LLCP 1
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat nfc_protocols in mpers mode
+
+# else
+
+static
+const struct xlat nfc_protocols[] = {
+ [NFC_SOCKPROTO_RAW] = XLAT(NFC_SOCKPROTO_RAW),
+ [NFC_SOCKPROTO_LLCP] = XLAT(NFC_SOCKPROTO_LLCP),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nfc_protocols.in b/xlat/nfc_protocols.in
new file mode 100644
index 0000000..2771897
--- /dev/null
+++ b/xlat/nfc_protocols.in
@@ -0,0 +1,3 @@
+#value_indexed
+NFC_SOCKPROTO_RAW 0
+NFC_SOCKPROTO_LLCP 1
diff --git a/xlat/nl_audit_types.h b/xlat/nl_audit_types.h
index 37f658a..076bcc5 100644
--- a/xlat/nl_audit_types.h
+++ b/xlat/nl_audit_types.h
@@ -1,280 +1,650 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_audit_types.in; do not edit. */
-#if !(defined(AUDIT_GET) || (defined(HAVE_DECL_AUDIT_GET) && HAVE_DECL_AUDIT_GET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(AUDIT_GET) || (defined(HAVE_DECL_AUDIT_GET) && HAVE_DECL_AUDIT_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_GET) == (1000), "AUDIT_GET != 1000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_GET 1000
#endif
-#if !(defined(AUDIT_SET) || (defined(HAVE_DECL_AUDIT_SET) && HAVE_DECL_AUDIT_SET))
+#if defined(AUDIT_SET) || (defined(HAVE_DECL_AUDIT_SET) && HAVE_DECL_AUDIT_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SET) == (1001), "AUDIT_SET != 1001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SET 1001
#endif
-#if !(defined(AUDIT_LIST) || (defined(HAVE_DECL_AUDIT_LIST) && HAVE_DECL_AUDIT_LIST))
+#if defined(AUDIT_LIST) || (defined(HAVE_DECL_AUDIT_LIST) && HAVE_DECL_AUDIT_LIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_LIST) == (1002), "AUDIT_LIST != 1002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_LIST 1002
#endif
-#if !(defined(AUDIT_ADD) || (defined(HAVE_DECL_AUDIT_ADD) && HAVE_DECL_AUDIT_ADD))
+#if defined(AUDIT_ADD) || (defined(HAVE_DECL_AUDIT_ADD) && HAVE_DECL_AUDIT_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_ADD) == (1003), "AUDIT_ADD != 1003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_ADD 1003
#endif
-#if !(defined(AUDIT_DEL) || (defined(HAVE_DECL_AUDIT_DEL) && HAVE_DECL_AUDIT_DEL))
+#if defined(AUDIT_DEL) || (defined(HAVE_DECL_AUDIT_DEL) && HAVE_DECL_AUDIT_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_DEL) == (1004), "AUDIT_DEL != 1004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_DEL 1004
#endif
-#if !(defined(AUDIT_USER) || (defined(HAVE_DECL_AUDIT_USER) && HAVE_DECL_AUDIT_USER))
+#if defined(AUDIT_USER) || (defined(HAVE_DECL_AUDIT_USER) && HAVE_DECL_AUDIT_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_USER) == (1005), "AUDIT_USER != 1005");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_USER 1005
#endif
-#if !(defined(AUDIT_LOGIN) || (defined(HAVE_DECL_AUDIT_LOGIN) && HAVE_DECL_AUDIT_LOGIN))
+#if defined(AUDIT_LOGIN) || (defined(HAVE_DECL_AUDIT_LOGIN) && HAVE_DECL_AUDIT_LOGIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_LOGIN) == (1006), "AUDIT_LOGIN != 1006");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_LOGIN 1006
#endif
-#if !(defined(AUDIT_WATCH_INS) || (defined(HAVE_DECL_AUDIT_WATCH_INS) && HAVE_DECL_AUDIT_WATCH_INS))
+#if defined(AUDIT_WATCH_INS) || (defined(HAVE_DECL_AUDIT_WATCH_INS) && HAVE_DECL_AUDIT_WATCH_INS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_WATCH_INS) == (1007), "AUDIT_WATCH_INS != 1007");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_WATCH_INS 1007
#endif
-#if !(defined(AUDIT_WATCH_REM) || (defined(HAVE_DECL_AUDIT_WATCH_REM) && HAVE_DECL_AUDIT_WATCH_REM))
+#if defined(AUDIT_WATCH_REM) || (defined(HAVE_DECL_AUDIT_WATCH_REM) && HAVE_DECL_AUDIT_WATCH_REM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_WATCH_REM) == (1008), "AUDIT_WATCH_REM != 1008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_WATCH_REM 1008
#endif
-#if !(defined(AUDIT_WATCH_LIST) || (defined(HAVE_DECL_AUDIT_WATCH_LIST) && HAVE_DECL_AUDIT_WATCH_LIST))
+#if defined(AUDIT_WATCH_LIST) || (defined(HAVE_DECL_AUDIT_WATCH_LIST) && HAVE_DECL_AUDIT_WATCH_LIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_WATCH_LIST) == (1009), "AUDIT_WATCH_LIST != 1009");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_WATCH_LIST 1009
#endif
-#if !(defined(AUDIT_SIGNAL_INFO) || (defined(HAVE_DECL_AUDIT_SIGNAL_INFO) && HAVE_DECL_AUDIT_SIGNAL_INFO))
+#if defined(AUDIT_SIGNAL_INFO) || (defined(HAVE_DECL_AUDIT_SIGNAL_INFO) && HAVE_DECL_AUDIT_SIGNAL_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SIGNAL_INFO) == (1010), "AUDIT_SIGNAL_INFO != 1010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SIGNAL_INFO 1010
#endif
-#if !(defined(AUDIT_ADD_RULE) || (defined(HAVE_DECL_AUDIT_ADD_RULE) && HAVE_DECL_AUDIT_ADD_RULE))
+#if defined(AUDIT_ADD_RULE) || (defined(HAVE_DECL_AUDIT_ADD_RULE) && HAVE_DECL_AUDIT_ADD_RULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_ADD_RULE) == (1011), "AUDIT_ADD_RULE != 1011");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_ADD_RULE 1011
#endif
-#if !(defined(AUDIT_DEL_RULE) || (defined(HAVE_DECL_AUDIT_DEL_RULE) && HAVE_DECL_AUDIT_DEL_RULE))
+#if defined(AUDIT_DEL_RULE) || (defined(HAVE_DECL_AUDIT_DEL_RULE) && HAVE_DECL_AUDIT_DEL_RULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_DEL_RULE) == (1012), "AUDIT_DEL_RULE != 1012");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_DEL_RULE 1012
#endif
-#if !(defined(AUDIT_LIST_RULES) || (defined(HAVE_DECL_AUDIT_LIST_RULES) && HAVE_DECL_AUDIT_LIST_RULES))
+#if defined(AUDIT_LIST_RULES) || (defined(HAVE_DECL_AUDIT_LIST_RULES) && HAVE_DECL_AUDIT_LIST_RULES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_LIST_RULES) == (1013), "AUDIT_LIST_RULES != 1013");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_LIST_RULES 1013
#endif
-#if !(defined(AUDIT_TRIM) || (defined(HAVE_DECL_AUDIT_TRIM) && HAVE_DECL_AUDIT_TRIM))
+#if defined(AUDIT_TRIM) || (defined(HAVE_DECL_AUDIT_TRIM) && HAVE_DECL_AUDIT_TRIM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_TRIM) == (1014), "AUDIT_TRIM != 1014");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_TRIM 1014
#endif
-#if !(defined(AUDIT_MAKE_EQUIV) || (defined(HAVE_DECL_AUDIT_MAKE_EQUIV) && HAVE_DECL_AUDIT_MAKE_EQUIV))
+#if defined(AUDIT_MAKE_EQUIV) || (defined(HAVE_DECL_AUDIT_MAKE_EQUIV) && HAVE_DECL_AUDIT_MAKE_EQUIV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAKE_EQUIV) == (1015), "AUDIT_MAKE_EQUIV != 1015");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAKE_EQUIV 1015
#endif
-#if !(defined(AUDIT_TTY_GET) || (defined(HAVE_DECL_AUDIT_TTY_GET) && HAVE_DECL_AUDIT_TTY_GET))
+#if defined(AUDIT_TTY_GET) || (defined(HAVE_DECL_AUDIT_TTY_GET) && HAVE_DECL_AUDIT_TTY_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_TTY_GET) == (1016), "AUDIT_TTY_GET != 1016");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_TTY_GET 1016
#endif
-#if !(defined(AUDIT_TTY_SET) || (defined(HAVE_DECL_AUDIT_TTY_SET) && HAVE_DECL_AUDIT_TTY_SET))
+#if defined(AUDIT_TTY_SET) || (defined(HAVE_DECL_AUDIT_TTY_SET) && HAVE_DECL_AUDIT_TTY_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_TTY_SET) == (1017), "AUDIT_TTY_SET != 1017");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_TTY_SET 1017
#endif
-#if !(defined(AUDIT_SET_FEATURE) || (defined(HAVE_DECL_AUDIT_SET_FEATURE) && HAVE_DECL_AUDIT_SET_FEATURE))
+#if defined(AUDIT_SET_FEATURE) || (defined(HAVE_DECL_AUDIT_SET_FEATURE) && HAVE_DECL_AUDIT_SET_FEATURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SET_FEATURE) == (1018), "AUDIT_SET_FEATURE != 1018");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SET_FEATURE 1018
#endif
-#if !(defined(AUDIT_GET_FEATURE) || (defined(HAVE_DECL_AUDIT_GET_FEATURE) && HAVE_DECL_AUDIT_GET_FEATURE))
+#if defined(AUDIT_GET_FEATURE) || (defined(HAVE_DECL_AUDIT_GET_FEATURE) && HAVE_DECL_AUDIT_GET_FEATURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_GET_FEATURE) == (1019), "AUDIT_GET_FEATURE != 1019");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_GET_FEATURE 1019
#endif
-#if !(defined(AUDIT_FIRST_USER_MSG) || (defined(HAVE_DECL_AUDIT_FIRST_USER_MSG) && HAVE_DECL_AUDIT_FIRST_USER_MSG))
+#if defined(AUDIT_FIRST_USER_MSG) || (defined(HAVE_DECL_AUDIT_FIRST_USER_MSG) && HAVE_DECL_AUDIT_FIRST_USER_MSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_FIRST_USER_MSG) == (1100), "AUDIT_FIRST_USER_MSG != 1100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_FIRST_USER_MSG 1100
#endif
-#if !(defined(AUDIT_USER_AVC) || (defined(HAVE_DECL_AUDIT_USER_AVC) && HAVE_DECL_AUDIT_USER_AVC))
+#if defined(AUDIT_USER_AVC) || (defined(HAVE_DECL_AUDIT_USER_AVC) && HAVE_DECL_AUDIT_USER_AVC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_USER_AVC) == (1107), "AUDIT_USER_AVC != 1107");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_USER_AVC 1107
#endif
-#if !(defined(AUDIT_USER_TTY) || (defined(HAVE_DECL_AUDIT_USER_TTY) && HAVE_DECL_AUDIT_USER_TTY))
+#if defined(AUDIT_USER_TTY) || (defined(HAVE_DECL_AUDIT_USER_TTY) && HAVE_DECL_AUDIT_USER_TTY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_USER_TTY) == (1124), "AUDIT_USER_TTY != 1124");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_USER_TTY 1124
#endif
-#if !(defined(AUDIT_LAST_USER_MSG) || (defined(HAVE_DECL_AUDIT_LAST_USER_MSG) && HAVE_DECL_AUDIT_LAST_USER_MSG))
+#if defined(AUDIT_LAST_USER_MSG) || (defined(HAVE_DECL_AUDIT_LAST_USER_MSG) && HAVE_DECL_AUDIT_LAST_USER_MSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_LAST_USER_MSG) == (1199), "AUDIT_LAST_USER_MSG != 1199");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_LAST_USER_MSG 1199
#endif
-#if !(defined(AUDIT_DAEMON_START) || (defined(HAVE_DECL_AUDIT_DAEMON_START) && HAVE_DECL_AUDIT_DAEMON_START))
+#if defined(AUDIT_DAEMON_START) || (defined(HAVE_DECL_AUDIT_DAEMON_START) && HAVE_DECL_AUDIT_DAEMON_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_DAEMON_START) == (1200), "AUDIT_DAEMON_START != 1200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_DAEMON_START 1200
#endif
-#if !(defined(AUDIT_DAEMON_END) || (defined(HAVE_DECL_AUDIT_DAEMON_END) && HAVE_DECL_AUDIT_DAEMON_END))
+#if defined(AUDIT_DAEMON_END) || (defined(HAVE_DECL_AUDIT_DAEMON_END) && HAVE_DECL_AUDIT_DAEMON_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_DAEMON_END) == (1201), "AUDIT_DAEMON_END != 1201");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_DAEMON_END 1201
#endif
-#if !(defined(AUDIT_DAEMON_ABORT) || (defined(HAVE_DECL_AUDIT_DAEMON_ABORT) && HAVE_DECL_AUDIT_DAEMON_ABORT))
+#if defined(AUDIT_DAEMON_ABORT) || (defined(HAVE_DECL_AUDIT_DAEMON_ABORT) && HAVE_DECL_AUDIT_DAEMON_ABORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_DAEMON_ABORT) == (1202), "AUDIT_DAEMON_ABORT != 1202");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_DAEMON_ABORT 1202
#endif
-#if !(defined(AUDIT_DAEMON_CONFIG) || (defined(HAVE_DECL_AUDIT_DAEMON_CONFIG) && HAVE_DECL_AUDIT_DAEMON_CONFIG))
+#if defined(AUDIT_DAEMON_CONFIG) || (defined(HAVE_DECL_AUDIT_DAEMON_CONFIG) && HAVE_DECL_AUDIT_DAEMON_CONFIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_DAEMON_CONFIG) == (1203), "AUDIT_DAEMON_CONFIG != 1203");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_DAEMON_CONFIG 1203
#endif
-#if !(defined(AUDIT_SYSCALL) || (defined(HAVE_DECL_AUDIT_SYSCALL) && HAVE_DECL_AUDIT_SYSCALL))
+#if defined(AUDIT_SYSCALL) || (defined(HAVE_DECL_AUDIT_SYSCALL) && HAVE_DECL_AUDIT_SYSCALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SYSCALL) == (1300), "AUDIT_SYSCALL != 1300");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SYSCALL 1300
#endif
-#if !(defined(AUDIT_FS_WATCH) || (defined(HAVE_DECL_AUDIT_FS_WATCH) && HAVE_DECL_AUDIT_FS_WATCH))
+#if defined(AUDIT_FS_WATCH) || (defined(HAVE_DECL_AUDIT_FS_WATCH) && HAVE_DECL_AUDIT_FS_WATCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_FS_WATCH) == (1301), "AUDIT_FS_WATCH != 1301");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_FS_WATCH 1301
#endif
-#if !(defined(AUDIT_PATH) || (defined(HAVE_DECL_AUDIT_PATH) && HAVE_DECL_AUDIT_PATH))
+#if defined(AUDIT_PATH) || (defined(HAVE_DECL_AUDIT_PATH) && HAVE_DECL_AUDIT_PATH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_PATH) == (1302), "AUDIT_PATH != 1302");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_PATH 1302
#endif
-#if !(defined(AUDIT_IPC) || (defined(HAVE_DECL_AUDIT_IPC) && HAVE_DECL_AUDIT_IPC))
+#if defined(AUDIT_IPC) || (defined(HAVE_DECL_AUDIT_IPC) && HAVE_DECL_AUDIT_IPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_IPC) == (1303), "AUDIT_IPC != 1303");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_IPC 1303
#endif
-#if !(defined(AUDIT_SOCKETCALL) || (defined(HAVE_DECL_AUDIT_SOCKETCALL) && HAVE_DECL_AUDIT_SOCKETCALL))
+#if defined(AUDIT_SOCKETCALL) || (defined(HAVE_DECL_AUDIT_SOCKETCALL) && HAVE_DECL_AUDIT_SOCKETCALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SOCKETCALL) == (1304), "AUDIT_SOCKETCALL != 1304");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SOCKETCALL 1304
#endif
-#if !(defined(AUDIT_CONFIG_CHANGE) || (defined(HAVE_DECL_AUDIT_CONFIG_CHANGE) && HAVE_DECL_AUDIT_CONFIG_CHANGE))
+#if defined(AUDIT_CONFIG_CHANGE) || (defined(HAVE_DECL_AUDIT_CONFIG_CHANGE) && HAVE_DECL_AUDIT_CONFIG_CHANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_CONFIG_CHANGE) == (1305), "AUDIT_CONFIG_CHANGE != 1305");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_CONFIG_CHANGE 1305
#endif
-#if !(defined(AUDIT_SOCKADDR) || (defined(HAVE_DECL_AUDIT_SOCKADDR) && HAVE_DECL_AUDIT_SOCKADDR))
+#if defined(AUDIT_SOCKADDR) || (defined(HAVE_DECL_AUDIT_SOCKADDR) && HAVE_DECL_AUDIT_SOCKADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SOCKADDR) == (1306), "AUDIT_SOCKADDR != 1306");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SOCKADDR 1306
#endif
-#if !(defined(AUDIT_CWD) || (defined(HAVE_DECL_AUDIT_CWD) && HAVE_DECL_AUDIT_CWD))
+#if defined(AUDIT_CWD) || (defined(HAVE_DECL_AUDIT_CWD) && HAVE_DECL_AUDIT_CWD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_CWD) == (1307), "AUDIT_CWD != 1307");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_CWD 1307
#endif
-#if !(defined(AUDIT_EXECVE) || (defined(HAVE_DECL_AUDIT_EXECVE) && HAVE_DECL_AUDIT_EXECVE))
+#if defined(AUDIT_EXECVE) || (defined(HAVE_DECL_AUDIT_EXECVE) && HAVE_DECL_AUDIT_EXECVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_EXECVE) == (1309), "AUDIT_EXECVE != 1309");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_EXECVE 1309
#endif
-#if !(defined(AUDIT_IPC_SET_PERM) || (defined(HAVE_DECL_AUDIT_IPC_SET_PERM) && HAVE_DECL_AUDIT_IPC_SET_PERM))
+#if defined(AUDIT_IPC_SET_PERM) || (defined(HAVE_DECL_AUDIT_IPC_SET_PERM) && HAVE_DECL_AUDIT_IPC_SET_PERM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_IPC_SET_PERM) == (1311), "AUDIT_IPC_SET_PERM != 1311");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_IPC_SET_PERM 1311
#endif
-#if !(defined(AUDIT_MQ_OPEN) || (defined(HAVE_DECL_AUDIT_MQ_OPEN) && HAVE_DECL_AUDIT_MQ_OPEN))
+#if defined(AUDIT_MQ_OPEN) || (defined(HAVE_DECL_AUDIT_MQ_OPEN) && HAVE_DECL_AUDIT_MQ_OPEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MQ_OPEN) == (1312), "AUDIT_MQ_OPEN != 1312");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MQ_OPEN 1312
#endif
-#if !(defined(AUDIT_MQ_SENDRECV) || (defined(HAVE_DECL_AUDIT_MQ_SENDRECV) && HAVE_DECL_AUDIT_MQ_SENDRECV))
+#if defined(AUDIT_MQ_SENDRECV) || (defined(HAVE_DECL_AUDIT_MQ_SENDRECV) && HAVE_DECL_AUDIT_MQ_SENDRECV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MQ_SENDRECV) == (1313), "AUDIT_MQ_SENDRECV != 1313");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MQ_SENDRECV 1313
#endif
-#if !(defined(AUDIT_MQ_NOTIFY) || (defined(HAVE_DECL_AUDIT_MQ_NOTIFY) && HAVE_DECL_AUDIT_MQ_NOTIFY))
+#if defined(AUDIT_MQ_NOTIFY) || (defined(HAVE_DECL_AUDIT_MQ_NOTIFY) && HAVE_DECL_AUDIT_MQ_NOTIFY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MQ_NOTIFY) == (1314), "AUDIT_MQ_NOTIFY != 1314");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MQ_NOTIFY 1314
#endif
-#if !(defined(AUDIT_MQ_GETSETATTR) || (defined(HAVE_DECL_AUDIT_MQ_GETSETATTR) && HAVE_DECL_AUDIT_MQ_GETSETATTR))
+#if defined(AUDIT_MQ_GETSETATTR) || (defined(HAVE_DECL_AUDIT_MQ_GETSETATTR) && HAVE_DECL_AUDIT_MQ_GETSETATTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MQ_GETSETATTR) == (1315), "AUDIT_MQ_GETSETATTR != 1315");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MQ_GETSETATTR 1315
#endif
-#if !(defined(AUDIT_KERNEL_OTHER) || (defined(HAVE_DECL_AUDIT_KERNEL_OTHER) && HAVE_DECL_AUDIT_KERNEL_OTHER))
+#if defined(AUDIT_KERNEL_OTHER) || (defined(HAVE_DECL_AUDIT_KERNEL_OTHER) && HAVE_DECL_AUDIT_KERNEL_OTHER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_KERNEL_OTHER) == (1316), "AUDIT_KERNEL_OTHER != 1316");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_KERNEL_OTHER 1316
#endif
-#if !(defined(AUDIT_FD_PAIR) || (defined(HAVE_DECL_AUDIT_FD_PAIR) && HAVE_DECL_AUDIT_FD_PAIR))
+#if defined(AUDIT_FD_PAIR) || (defined(HAVE_DECL_AUDIT_FD_PAIR) && HAVE_DECL_AUDIT_FD_PAIR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_FD_PAIR) == (1317), "AUDIT_FD_PAIR != 1317");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_FD_PAIR 1317
#endif
-#if !(defined(AUDIT_OBJ_PID) || (defined(HAVE_DECL_AUDIT_OBJ_PID) && HAVE_DECL_AUDIT_OBJ_PID))
+#if defined(AUDIT_OBJ_PID) || (defined(HAVE_DECL_AUDIT_OBJ_PID) && HAVE_DECL_AUDIT_OBJ_PID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_OBJ_PID) == (1318), "AUDIT_OBJ_PID != 1318");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_OBJ_PID 1318
#endif
-#if !(defined(AUDIT_TTY) || (defined(HAVE_DECL_AUDIT_TTY) && HAVE_DECL_AUDIT_TTY))
+#if defined(AUDIT_TTY) || (defined(HAVE_DECL_AUDIT_TTY) && HAVE_DECL_AUDIT_TTY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_TTY) == (1319), "AUDIT_TTY != 1319");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_TTY 1319
#endif
-#if !(defined(AUDIT_EOE) || (defined(HAVE_DECL_AUDIT_EOE) && HAVE_DECL_AUDIT_EOE))
+#if defined(AUDIT_EOE) || (defined(HAVE_DECL_AUDIT_EOE) && HAVE_DECL_AUDIT_EOE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_EOE) == (1320), "AUDIT_EOE != 1320");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_EOE 1320
#endif
-#if !(defined(AUDIT_BPRM_FCAPS) || (defined(HAVE_DECL_AUDIT_BPRM_FCAPS) && HAVE_DECL_AUDIT_BPRM_FCAPS))
+#if defined(AUDIT_BPRM_FCAPS) || (defined(HAVE_DECL_AUDIT_BPRM_FCAPS) && HAVE_DECL_AUDIT_BPRM_FCAPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_BPRM_FCAPS) == (1321), "AUDIT_BPRM_FCAPS != 1321");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_BPRM_FCAPS 1321
#endif
-#if !(defined(AUDIT_CAPSET) || (defined(HAVE_DECL_AUDIT_CAPSET) && HAVE_DECL_AUDIT_CAPSET))
+#if defined(AUDIT_CAPSET) || (defined(HAVE_DECL_AUDIT_CAPSET) && HAVE_DECL_AUDIT_CAPSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_CAPSET) == (1322), "AUDIT_CAPSET != 1322");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_CAPSET 1322
#endif
-#if !(defined(AUDIT_MMAP) || (defined(HAVE_DECL_AUDIT_MMAP) && HAVE_DECL_AUDIT_MMAP))
+#if defined(AUDIT_MMAP) || (defined(HAVE_DECL_AUDIT_MMAP) && HAVE_DECL_AUDIT_MMAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MMAP) == (1323), "AUDIT_MMAP != 1323");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MMAP 1323
#endif
-#if !(defined(AUDIT_NETFILTER_PKT) || (defined(HAVE_DECL_AUDIT_NETFILTER_PKT) && HAVE_DECL_AUDIT_NETFILTER_PKT))
+#if defined(AUDIT_NETFILTER_PKT) || (defined(HAVE_DECL_AUDIT_NETFILTER_PKT) && HAVE_DECL_AUDIT_NETFILTER_PKT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_NETFILTER_PKT) == (1324), "AUDIT_NETFILTER_PKT != 1324");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_NETFILTER_PKT 1324
#endif
-#if !(defined(AUDIT_NETFILTER_CFG) || (defined(HAVE_DECL_AUDIT_NETFILTER_CFG) && HAVE_DECL_AUDIT_NETFILTER_CFG))
+#if defined(AUDIT_NETFILTER_CFG) || (defined(HAVE_DECL_AUDIT_NETFILTER_CFG) && HAVE_DECL_AUDIT_NETFILTER_CFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_NETFILTER_CFG) == (1325), "AUDIT_NETFILTER_CFG != 1325");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_NETFILTER_CFG 1325
#endif
-#if !(defined(AUDIT_SECCOMP) || (defined(HAVE_DECL_AUDIT_SECCOMP) && HAVE_DECL_AUDIT_SECCOMP))
+#if defined(AUDIT_SECCOMP) || (defined(HAVE_DECL_AUDIT_SECCOMP) && HAVE_DECL_AUDIT_SECCOMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SECCOMP) == (1326), "AUDIT_SECCOMP != 1326");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SECCOMP 1326
#endif
-#if !(defined(AUDIT_PROCTITLE) || (defined(HAVE_DECL_AUDIT_PROCTITLE) && HAVE_DECL_AUDIT_PROCTITLE))
+#if defined(AUDIT_PROCTITLE) || (defined(HAVE_DECL_AUDIT_PROCTITLE) && HAVE_DECL_AUDIT_PROCTITLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_PROCTITLE) == (1327), "AUDIT_PROCTITLE != 1327");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_PROCTITLE 1327
#endif
-#if !(defined(AUDIT_FEATURE_CHANGE) || (defined(HAVE_DECL_AUDIT_FEATURE_CHANGE) && HAVE_DECL_AUDIT_FEATURE_CHANGE))
+#ifndef STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE
+# define STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE
+# undef AUDIT_FEATURE_CHANGE
+#endif
+#if defined(AUDIT_FEATURE_CHANGE) || (defined(HAVE_DECL_AUDIT_FEATURE_CHANGE) && HAVE_DECL_AUDIT_FEATURE_CHANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_FEATURE_CHANGE) == (1328), "AUDIT_FEATURE_CHANGE != 1328");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_FEATURE_CHANGE 1328
#endif
-#if !(defined(AUDIT_REPLACE) || (defined(HAVE_DECL_AUDIT_REPLACE) && HAVE_DECL_AUDIT_REPLACE))
+#if defined(AUDIT_REPLACE) || (defined(HAVE_DECL_AUDIT_REPLACE) && HAVE_DECL_AUDIT_REPLACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_REPLACE) == (1329), "AUDIT_REPLACE != 1329");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_REPLACE 1329
#endif
-#if !(defined(AUDIT_KERN_MODULE) || (defined(HAVE_DECL_AUDIT_KERN_MODULE) && HAVE_DECL_AUDIT_KERN_MODULE))
+#if defined(AUDIT_KERN_MODULE) || (defined(HAVE_DECL_AUDIT_KERN_MODULE) && HAVE_DECL_AUDIT_KERN_MODULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_KERN_MODULE) == (1330), "AUDIT_KERN_MODULE != 1330");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_KERN_MODULE 1330
#endif
-#if !(defined(AUDIT_AVC) || (defined(HAVE_DECL_AUDIT_AVC) && HAVE_DECL_AUDIT_AVC))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_AVC 1400
#endif
-#if !(defined(AUDIT_SELINUX_ERR) || (defined(HAVE_DECL_AUDIT_SELINUX_ERR) && HAVE_DECL_AUDIT_SELINUX_ERR))
+#if defined(AUDIT_SELINUX_ERR) || (defined(HAVE_DECL_AUDIT_SELINUX_ERR) && HAVE_DECL_AUDIT_SELINUX_ERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_SELINUX_ERR) == (1401), "AUDIT_SELINUX_ERR != 1401");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_SELINUX_ERR 1401
#endif
-#if !(defined(AUDIT_AVC_PATH) || (defined(HAVE_DECL_AUDIT_AVC_PATH) && HAVE_DECL_AUDIT_AVC_PATH))
+#if defined(AUDIT_AVC_PATH) || (defined(HAVE_DECL_AUDIT_AVC_PATH) && HAVE_DECL_AUDIT_AVC_PATH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_AVC_PATH) == (1402), "AUDIT_AVC_PATH != 1402");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_AVC_PATH 1402
#endif
-#if !(defined(AUDIT_MAC_POLICY_LOAD) || (defined(HAVE_DECL_AUDIT_MAC_POLICY_LOAD) && HAVE_DECL_AUDIT_MAC_POLICY_LOAD))
+#if defined(AUDIT_MAC_POLICY_LOAD) || (defined(HAVE_DECL_AUDIT_MAC_POLICY_LOAD) && HAVE_DECL_AUDIT_MAC_POLICY_LOAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_POLICY_LOAD) == (1403), "AUDIT_MAC_POLICY_LOAD != 1403");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_POLICY_LOAD 1403
#endif
-#if !(defined(AUDIT_MAC_STATUS) || (defined(HAVE_DECL_AUDIT_MAC_STATUS) && HAVE_DECL_AUDIT_MAC_STATUS))
+#if defined(AUDIT_MAC_STATUS) || (defined(HAVE_DECL_AUDIT_MAC_STATUS) && HAVE_DECL_AUDIT_MAC_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_STATUS) == (1404), "AUDIT_MAC_STATUS != 1404");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_STATUS 1404
#endif
-#if !(defined(AUDIT_MAC_CONFIG_CHANGE) || (defined(HAVE_DECL_AUDIT_MAC_CONFIG_CHANGE) && HAVE_DECL_AUDIT_MAC_CONFIG_CHANGE))
+#if defined(AUDIT_MAC_CONFIG_CHANGE) || (defined(HAVE_DECL_AUDIT_MAC_CONFIG_CHANGE) && HAVE_DECL_AUDIT_MAC_CONFIG_CHANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_CONFIG_CHANGE) == (1405), "AUDIT_MAC_CONFIG_CHANGE != 1405");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_CONFIG_CHANGE 1405
#endif
-#if !(defined(AUDIT_MAC_UNLBL_ALLOW) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_ALLOW) && HAVE_DECL_AUDIT_MAC_UNLBL_ALLOW))
+#if defined(AUDIT_MAC_UNLBL_ALLOW) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_ALLOW) && HAVE_DECL_AUDIT_MAC_UNLBL_ALLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_UNLBL_ALLOW) == (1406), "AUDIT_MAC_UNLBL_ALLOW != 1406");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_UNLBL_ALLOW 1406
#endif
-#if !(defined(AUDIT_MAC_CIPSOV4_ADD) || (defined(HAVE_DECL_AUDIT_MAC_CIPSOV4_ADD) && HAVE_DECL_AUDIT_MAC_CIPSOV4_ADD))
+#if defined(AUDIT_MAC_CIPSOV4_ADD) || (defined(HAVE_DECL_AUDIT_MAC_CIPSOV4_ADD) && HAVE_DECL_AUDIT_MAC_CIPSOV4_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_CIPSOV4_ADD) == (1407), "AUDIT_MAC_CIPSOV4_ADD != 1407");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_CIPSOV4_ADD 1407
#endif
-#if !(defined(AUDIT_MAC_CIPSOV4_DEL) || (defined(HAVE_DECL_AUDIT_MAC_CIPSOV4_DEL) && HAVE_DECL_AUDIT_MAC_CIPSOV4_DEL))
+#if defined(AUDIT_MAC_CIPSOV4_DEL) || (defined(HAVE_DECL_AUDIT_MAC_CIPSOV4_DEL) && HAVE_DECL_AUDIT_MAC_CIPSOV4_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_CIPSOV4_DEL) == (1408), "AUDIT_MAC_CIPSOV4_DEL != 1408");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_CIPSOV4_DEL 1408
#endif
-#if !(defined(AUDIT_MAC_MAP_ADD) || (defined(HAVE_DECL_AUDIT_MAC_MAP_ADD) && HAVE_DECL_AUDIT_MAC_MAP_ADD))
+#if defined(AUDIT_MAC_MAP_ADD) || (defined(HAVE_DECL_AUDIT_MAC_MAP_ADD) && HAVE_DECL_AUDIT_MAC_MAP_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_MAP_ADD) == (1409), "AUDIT_MAC_MAP_ADD != 1409");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_MAP_ADD 1409
#endif
-#if !(defined(AUDIT_MAC_MAP_DEL) || (defined(HAVE_DECL_AUDIT_MAC_MAP_DEL) && HAVE_DECL_AUDIT_MAC_MAP_DEL))
+#if defined(AUDIT_MAC_MAP_DEL) || (defined(HAVE_DECL_AUDIT_MAC_MAP_DEL) && HAVE_DECL_AUDIT_MAC_MAP_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_MAP_DEL) == (1410), "AUDIT_MAC_MAP_DEL != 1410");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_MAP_DEL 1410
#endif
-#if !(defined(AUDIT_MAC_IPSEC_ADDSA) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_ADDSA) && HAVE_DECL_AUDIT_MAC_IPSEC_ADDSA))
+#if defined(AUDIT_MAC_IPSEC_ADDSA) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_ADDSA) && HAVE_DECL_AUDIT_MAC_IPSEC_ADDSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_IPSEC_ADDSA) == (1411), "AUDIT_MAC_IPSEC_ADDSA != 1411");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_IPSEC_ADDSA 1411
#endif
-#if !(defined(AUDIT_MAC_IPSEC_DELSA) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_DELSA) && HAVE_DECL_AUDIT_MAC_IPSEC_DELSA))
+#if defined(AUDIT_MAC_IPSEC_DELSA) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_DELSA) && HAVE_DECL_AUDIT_MAC_IPSEC_DELSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_IPSEC_DELSA) == (1412), "AUDIT_MAC_IPSEC_DELSA != 1412");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_IPSEC_DELSA 1412
#endif
-#if !(defined(AUDIT_MAC_IPSEC_ADDSPD) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_ADDSPD) && HAVE_DECL_AUDIT_MAC_IPSEC_ADDSPD))
+#if defined(AUDIT_MAC_IPSEC_ADDSPD) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_ADDSPD) && HAVE_DECL_AUDIT_MAC_IPSEC_ADDSPD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_IPSEC_ADDSPD) == (1413), "AUDIT_MAC_IPSEC_ADDSPD != 1413");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_IPSEC_ADDSPD 1413
#endif
-#if !(defined(AUDIT_MAC_IPSEC_DELSPD) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_DELSPD) && HAVE_DECL_AUDIT_MAC_IPSEC_DELSPD))
+#if defined(AUDIT_MAC_IPSEC_DELSPD) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_DELSPD) && HAVE_DECL_AUDIT_MAC_IPSEC_DELSPD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_IPSEC_DELSPD) == (1414), "AUDIT_MAC_IPSEC_DELSPD != 1414");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_IPSEC_DELSPD 1414
#endif
-#if !(defined(AUDIT_MAC_IPSEC_EVENT) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_EVENT) && HAVE_DECL_AUDIT_MAC_IPSEC_EVENT))
+#if defined(AUDIT_MAC_IPSEC_EVENT) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_EVENT) && HAVE_DECL_AUDIT_MAC_IPSEC_EVENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_IPSEC_EVENT) == (1415), "AUDIT_MAC_IPSEC_EVENT != 1415");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_IPSEC_EVENT 1415
#endif
-#if !(defined(AUDIT_MAC_UNLBL_STCADD) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_STCADD) && HAVE_DECL_AUDIT_MAC_UNLBL_STCADD))
+#if defined(AUDIT_MAC_UNLBL_STCADD) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_STCADD) && HAVE_DECL_AUDIT_MAC_UNLBL_STCADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_UNLBL_STCADD) == (1416), "AUDIT_MAC_UNLBL_STCADD != 1416");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_UNLBL_STCADD 1416
#endif
-#if !(defined(AUDIT_MAC_UNLBL_STCDEL) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_STCDEL) && HAVE_DECL_AUDIT_MAC_UNLBL_STCDEL))
+#if defined(AUDIT_MAC_UNLBL_STCDEL) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_STCDEL) && HAVE_DECL_AUDIT_MAC_UNLBL_STCDEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_UNLBL_STCDEL) == (1417), "AUDIT_MAC_UNLBL_STCDEL != 1417");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_UNLBL_STCDEL 1417
#endif
-#if !(defined(AUDIT_MAC_CALIPSO_ADD) || (defined(HAVE_DECL_AUDIT_MAC_CALIPSO_ADD) && HAVE_DECL_AUDIT_MAC_CALIPSO_ADD))
+#if defined(AUDIT_MAC_CALIPSO_ADD) || (defined(HAVE_DECL_AUDIT_MAC_CALIPSO_ADD) && HAVE_DECL_AUDIT_MAC_CALIPSO_ADD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_CALIPSO_ADD) == (1418), "AUDIT_MAC_CALIPSO_ADD != 1418");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_CALIPSO_ADD 1418
#endif
-#if !(defined(AUDIT_MAC_CALIPSO_DEL) || (defined(HAVE_DECL_AUDIT_MAC_CALIPSO_DEL) && HAVE_DECL_AUDIT_MAC_CALIPSO_DEL))
+#if defined(AUDIT_MAC_CALIPSO_DEL) || (defined(HAVE_DECL_AUDIT_MAC_CALIPSO_DEL) && HAVE_DECL_AUDIT_MAC_CALIPSO_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_MAC_CALIPSO_DEL) == (1419), "AUDIT_MAC_CALIPSO_DEL != 1419");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_MAC_CALIPSO_DEL 1419
#endif
-#if !(defined(AUDIT_ANOM_PROMISCUOUS) || (defined(HAVE_DECL_AUDIT_ANOM_PROMISCUOUS) && HAVE_DECL_AUDIT_ANOM_PROMISCUOUS))
+#if defined(AUDIT_ANOM_PROMISCUOUS) || (defined(HAVE_DECL_AUDIT_ANOM_PROMISCUOUS) && HAVE_DECL_AUDIT_ANOM_PROMISCUOUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_ANOM_PROMISCUOUS) == (1700), "AUDIT_ANOM_PROMISCUOUS != 1700");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_ANOM_PROMISCUOUS 1700
#endif
-#if !(defined(AUDIT_ANOM_ABEND) || (defined(HAVE_DECL_AUDIT_ANOM_ABEND) && HAVE_DECL_AUDIT_ANOM_ABEND))
+#if defined(AUDIT_ANOM_ABEND) || (defined(HAVE_DECL_AUDIT_ANOM_ABEND) && HAVE_DECL_AUDIT_ANOM_ABEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_ANOM_ABEND) == (1701), "AUDIT_ANOM_ABEND != 1701");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_ANOM_ABEND 1701
#endif
-#if !(defined(AUDIT_ANOM_LINK) || (defined(HAVE_DECL_AUDIT_ANOM_LINK) && HAVE_DECL_AUDIT_ANOM_LINK))
+#if defined(AUDIT_ANOM_LINK) || (defined(HAVE_DECL_AUDIT_ANOM_LINK) && HAVE_DECL_AUDIT_ANOM_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_ANOM_LINK) == (1702), "AUDIT_ANOM_LINK != 1702");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_ANOM_LINK 1702
#endif
-#if !(defined(AUDIT_LAST_KERN_ANOM_MSG) || (defined(HAVE_DECL_AUDIT_LAST_KERN_ANOM_MSG) && HAVE_DECL_AUDIT_LAST_KERN_ANOM_MSG))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_LAST_KERN_ANOM_MSG 1799
#endif
-#if !(defined(AUDIT_INTEGRITY_DATA) || (defined(HAVE_DECL_AUDIT_INTEGRITY_DATA) && HAVE_DECL_AUDIT_INTEGRITY_DATA))
+#if defined(AUDIT_INTEGRITY_DATA) || (defined(HAVE_DECL_AUDIT_INTEGRITY_DATA) && HAVE_DECL_AUDIT_INTEGRITY_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_INTEGRITY_DATA) == (1800), "AUDIT_INTEGRITY_DATA != 1800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_INTEGRITY_DATA 1800
#endif
-#if !(defined(AUDIT_INTEGRITY_METADATA) || (defined(HAVE_DECL_AUDIT_INTEGRITY_METADATA) && HAVE_DECL_AUDIT_INTEGRITY_METADATA))
+#if defined(AUDIT_INTEGRITY_METADATA) || (defined(HAVE_DECL_AUDIT_INTEGRITY_METADATA) && HAVE_DECL_AUDIT_INTEGRITY_METADATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_INTEGRITY_METADATA) == (1801), "AUDIT_INTEGRITY_METADATA != 1801");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_INTEGRITY_METADATA 1801
#endif
-#if !(defined(AUDIT_INTEGRITY_STATUS) || (defined(HAVE_DECL_AUDIT_INTEGRITY_STATUS) && HAVE_DECL_AUDIT_INTEGRITY_STATUS))
+#if defined(AUDIT_INTEGRITY_STATUS) || (defined(HAVE_DECL_AUDIT_INTEGRITY_STATUS) && HAVE_DECL_AUDIT_INTEGRITY_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_INTEGRITY_STATUS) == (1802), "AUDIT_INTEGRITY_STATUS != 1802");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_INTEGRITY_STATUS 1802
#endif
-#if !(defined(AUDIT_INTEGRITY_HASH) || (defined(HAVE_DECL_AUDIT_INTEGRITY_HASH) && HAVE_DECL_AUDIT_INTEGRITY_HASH))
+#if defined(AUDIT_INTEGRITY_HASH) || (defined(HAVE_DECL_AUDIT_INTEGRITY_HASH) && HAVE_DECL_AUDIT_INTEGRITY_HASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_INTEGRITY_HASH) == (1803), "AUDIT_INTEGRITY_HASH != 1803");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_INTEGRITY_HASH 1803
#endif
-#if !(defined(AUDIT_INTEGRITY_PCR) || (defined(HAVE_DECL_AUDIT_INTEGRITY_PCR) && HAVE_DECL_AUDIT_INTEGRITY_PCR))
+#if defined(AUDIT_INTEGRITY_PCR) || (defined(HAVE_DECL_AUDIT_INTEGRITY_PCR) && HAVE_DECL_AUDIT_INTEGRITY_PCR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_INTEGRITY_PCR) == (1804), "AUDIT_INTEGRITY_PCR != 1804");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_INTEGRITY_PCR 1804
#endif
-#if !(defined(AUDIT_INTEGRITY_RULE) || (defined(HAVE_DECL_AUDIT_INTEGRITY_RULE) && HAVE_DECL_AUDIT_INTEGRITY_RULE))
+#if defined(AUDIT_INTEGRITY_RULE) || (defined(HAVE_DECL_AUDIT_INTEGRITY_RULE) && HAVE_DECL_AUDIT_INTEGRITY_RULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_INTEGRITY_RULE) == (1805), "AUDIT_INTEGRITY_RULE != 1805");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_INTEGRITY_RULE 1805
#endif
-#if !(defined(AUDIT_KERNEL) || (defined(HAVE_DECL_AUDIT_KERNEL) && HAVE_DECL_AUDIT_KERNEL))
+#if defined(AUDIT_KERNEL) || (defined(HAVE_DECL_AUDIT_KERNEL) && HAVE_DECL_AUDIT_KERNEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_KERNEL) == (2000), "AUDIT_KERNEL != 2000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_KERNEL 2000
#endif
-#if !(defined(AUDIT_FIRST_USER_MSG2) || (defined(HAVE_DECL_AUDIT_FIRST_USER_MSG2) && HAVE_DECL_AUDIT_FIRST_USER_MSG2))
+#if defined(AUDIT_FIRST_USER_MSG2) || (defined(HAVE_DECL_AUDIT_FIRST_USER_MSG2) && HAVE_DECL_AUDIT_FIRST_USER_MSG2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_FIRST_USER_MSG2) == (2100), "AUDIT_FIRST_USER_MSG2 != 2100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_FIRST_USER_MSG2 2100
#endif
-#if !(defined(AUDIT_LAST_USER_MSG2) || (defined(HAVE_DECL_AUDIT_LAST_USER_MSG2) && HAVE_DECL_AUDIT_LAST_USER_MSG2))
+#if defined(AUDIT_LAST_USER_MSG2) || (defined(HAVE_DECL_AUDIT_LAST_USER_MSG2) && HAVE_DECL_AUDIT_LAST_USER_MSG2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((AUDIT_LAST_USER_MSG2) == (2999), "AUDIT_LAST_USER_MSG2 != 2999");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define AUDIT_LAST_USER_MSG2 2999
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nl_audit_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nl_audit_types in mpers mode
+
+# else
static
const struct xlat nl_audit_types[] = {
@@ -335,7 +705,24 @@
XLAT(AUDIT_NETFILTER_CFG),
XLAT(AUDIT_SECCOMP),
XLAT(AUDIT_PROCTITLE),
+
+#ifndef STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE
+# define STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE
+/*
+* Linux kernel commit v3.15-rc1~18^2~1 has changed the value
+* of AUDIT_FEATURE_CHANGE constant introduced by commit v3.13-rc1~19^2~20
+* which is of course an ABI breakage that affected 3.13 and 3.14 kernel
+* releases as well as their LTS derivatives.
+* Linux kernel commit v3.15-rc1~18^2~1 also claims that the old value
+* of AUDIT_FEATURE_CHANGE was ignored by userspace because of the established
+* convention how netlink messages for the audit system are divided into blocks.
+* Looks like the best way to handle this situation is to pretend that
+* the old value of AUDIT_FEATURE_CHANGE didn't exist.
+*/
+# undef AUDIT_FEATURE_CHANGE
+#endif
XLAT(AUDIT_FEATURE_CHANGE),
+
XLAT(AUDIT_REPLACE),
XLAT(AUDIT_KERN_MODULE),
@@ -379,4 +766,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nl_audit_types.in b/xlat/nl_audit_types.in
index 8b52010..f03dd01 100644
--- a/xlat/nl_audit_types.in
+++ b/xlat/nl_audit_types.in
@@ -55,7 +55,24 @@
AUDIT_NETFILTER_CFG 1325
AUDIT_SECCOMP 1326
AUDIT_PROCTITLE 1327
+
+#ifndef STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE
+# define STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE
+/*
+ * Linux kernel commit v3.15-rc1~18^2~1 has changed the value
+ * of AUDIT_FEATURE_CHANGE constant introduced by commit v3.13-rc1~19^2~20
+ * which is of course an ABI breakage that affected 3.13 and 3.14 kernel
+ * releases as well as their LTS derivatives.
+ * Linux kernel commit v3.15-rc1~18^2~1 also claims that the old value
+ * of AUDIT_FEATURE_CHANGE was ignored by userspace because of the established
+ * convention how netlink messages for the audit system are divided into blocks.
+ * Looks like the best way to handle this situation is to pretend that
+ * the old value of AUDIT_FEATURE_CHANGE didn't exist.
+ */
+# undef AUDIT_FEATURE_CHANGE
+#endif
AUDIT_FEATURE_CHANGE 1328
+
AUDIT_REPLACE 1329
AUDIT_KERN_MODULE 1330
diff --git a/xlat/nl_crypto_types.h b/xlat/nl_crypto_types.h
index 4e15ec6..87b6a68 100644
--- a/xlat/nl_crypto_types.h
+++ b/xlat/nl_crypto_types.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_crypto_types.in; do not edit. */
-#if !(defined(CRYPTO_MSG_NEWALG) || (defined(HAVE_DECL_CRYPTO_MSG_NEWALG) && HAVE_DECL_CRYPTO_MSG_NEWALG))
+
+#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))
+#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))
+#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))
+#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))
+#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
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nl_crypto_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nl_crypto_types in mpers mode
+
+# else
static
const struct xlat nl_crypto_types[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nl_netfilter_msg_types.h b/xlat/nl_netfilter_msg_types.h
index 0614af4..a92f187 100644
--- a/xlat/nl_netfilter_msg_types.h
+++ b/xlat/nl_netfilter_msg_types.h
@@ -1,12 +1,26 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_netfilter_msg_types.in; do not edit. */
-#if !(defined(NFNL_MSG_BATCH_BEGIN) || (defined(HAVE_DECL_NFNL_MSG_BATCH_BEGIN) && HAVE_DECL_NFNL_MSG_BATCH_BEGIN))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFNL_MSG_BATCH_BEGIN) || (defined(HAVE_DECL_NFNL_MSG_BATCH_BEGIN) && HAVE_DECL_NFNL_MSG_BATCH_BEGIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_BATCH_BEGIN) == (0x10), "NFNL_MSG_BATCH_BEGIN != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_BATCH_BEGIN 0x10
#endif
-#if !(defined(NFNL_MSG_BATCH_END) || (defined(HAVE_DECL_NFNL_MSG_BATCH_END) && HAVE_DECL_NFNL_MSG_BATCH_END))
+#if defined(NFNL_MSG_BATCH_END) || (defined(HAVE_DECL_NFNL_MSG_BATCH_END) && HAVE_DECL_NFNL_MSG_BATCH_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_MSG_BATCH_END) == (0x11), "NFNL_MSG_BATCH_END != 0x11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_MSG_BATCH_END 0x11
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat nl_netfilter_msg_types[] = {
XLAT(NFNL_MSG_BATCH_BEGIN),
@@ -14,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nl_netfilter_subsys_ids.h b/xlat/nl_netfilter_subsys_ids.h
index 3d3a7ba..f6af1f3 100644
--- a/xlat/nl_netfilter_subsys_ids.h
+++ b/xlat/nl_netfilter_subsys_ids.h
@@ -1,46 +1,100 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_netfilter_subsys_ids.in; do not edit. */
-#if !(defined(NFNL_SUBSYS_NONE) || (defined(HAVE_DECL_NFNL_SUBSYS_NONE) && HAVE_DECL_NFNL_SUBSYS_NONE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFNL_SUBSYS_NONE) || (defined(HAVE_DECL_NFNL_SUBSYS_NONE) && HAVE_DECL_NFNL_SUBSYS_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_NONE) == (0), "NFNL_SUBSYS_NONE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_NONE 0
#endif
-#if !(defined(NFNL_SUBSYS_CTNETLINK) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK))
+#if defined(NFNL_SUBSYS_CTNETLINK) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_CTNETLINK) == (1), "NFNL_SUBSYS_CTNETLINK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_CTNETLINK 1
#endif
-#if !(defined(NFNL_SUBSYS_CTNETLINK_EXP) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP))
+#if defined(NFNL_SUBSYS_CTNETLINK_EXP) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_CTNETLINK_EXP) == (2), "NFNL_SUBSYS_CTNETLINK_EXP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_CTNETLINK_EXP 2
#endif
-#if !(defined(NFNL_SUBSYS_QUEUE) || (defined(HAVE_DECL_NFNL_SUBSYS_QUEUE) && HAVE_DECL_NFNL_SUBSYS_QUEUE))
+#if defined(NFNL_SUBSYS_QUEUE) || (defined(HAVE_DECL_NFNL_SUBSYS_QUEUE) && HAVE_DECL_NFNL_SUBSYS_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_QUEUE) == (3), "NFNL_SUBSYS_QUEUE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_QUEUE 3
#endif
-#if !(defined(NFNL_SUBSYS_ULOG) || (defined(HAVE_DECL_NFNL_SUBSYS_ULOG) && HAVE_DECL_NFNL_SUBSYS_ULOG))
+#if defined(NFNL_SUBSYS_ULOG) || (defined(HAVE_DECL_NFNL_SUBSYS_ULOG) && HAVE_DECL_NFNL_SUBSYS_ULOG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_ULOG) == (4), "NFNL_SUBSYS_ULOG != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_ULOG 4
#endif
-#if !(defined(NFNL_SUBSYS_OSF) || (defined(HAVE_DECL_NFNL_SUBSYS_OSF) && HAVE_DECL_NFNL_SUBSYS_OSF))
+#if defined(NFNL_SUBSYS_OSF) || (defined(HAVE_DECL_NFNL_SUBSYS_OSF) && HAVE_DECL_NFNL_SUBSYS_OSF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_OSF) == (5), "NFNL_SUBSYS_OSF != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_OSF 5
#endif
-#if !(defined(NFNL_SUBSYS_IPSET) || (defined(HAVE_DECL_NFNL_SUBSYS_IPSET) && HAVE_DECL_NFNL_SUBSYS_IPSET))
+#if defined(NFNL_SUBSYS_IPSET) || (defined(HAVE_DECL_NFNL_SUBSYS_IPSET) && HAVE_DECL_NFNL_SUBSYS_IPSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_IPSET) == (6), "NFNL_SUBSYS_IPSET != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_IPSET 6
#endif
-#if !(defined(NFNL_SUBSYS_ACCT) || (defined(HAVE_DECL_NFNL_SUBSYS_ACCT) && HAVE_DECL_NFNL_SUBSYS_ACCT))
+#if defined(NFNL_SUBSYS_ACCT) || (defined(HAVE_DECL_NFNL_SUBSYS_ACCT) && HAVE_DECL_NFNL_SUBSYS_ACCT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_ACCT) == (7), "NFNL_SUBSYS_ACCT != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_ACCT 7
#endif
-#if !(defined(NFNL_SUBSYS_CTNETLINK_TIMEOUT) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT))
+#if defined(NFNL_SUBSYS_CTNETLINK_TIMEOUT) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_CTNETLINK_TIMEOUT) == (8), "NFNL_SUBSYS_CTNETLINK_TIMEOUT != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
#endif
-#if !(defined(NFNL_SUBSYS_CTHELPER) || (defined(HAVE_DECL_NFNL_SUBSYS_CTHELPER) && HAVE_DECL_NFNL_SUBSYS_CTHELPER))
+#if defined(NFNL_SUBSYS_CTHELPER) || (defined(HAVE_DECL_NFNL_SUBSYS_CTHELPER) && HAVE_DECL_NFNL_SUBSYS_CTHELPER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_CTHELPER) == (9), "NFNL_SUBSYS_CTHELPER != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_CTHELPER 9
#endif
-#if !(defined(NFNL_SUBSYS_NFTABLES) || (defined(HAVE_DECL_NFNL_SUBSYS_NFTABLES) && HAVE_DECL_NFNL_SUBSYS_NFTABLES))
+#if defined(NFNL_SUBSYS_NFTABLES) || (defined(HAVE_DECL_NFNL_SUBSYS_NFTABLES) && HAVE_DECL_NFNL_SUBSYS_NFTABLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_NFTABLES) == (10), "NFNL_SUBSYS_NFTABLES != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_NFTABLES 10
#endif
-#if !(defined(NFNL_SUBSYS_NFT_COMPAT) || (defined(HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT) && HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT))
+#if defined(NFNL_SUBSYS_NFT_COMPAT) || (defined(HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT) && HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFNL_SUBSYS_NFT_COMPAT) == (11), "NFNL_SUBSYS_NFT_COMPAT != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NFNL_SUBSYS_NFT_COMPAT 11
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nl_netfilter_subsys_ids in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nl_netfilter_subsys_ids in mpers mode
+
+# else
static
const struct xlat nl_netfilter_subsys_ids[] = {
@@ -59,4 +113,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nl_route_types.h b/xlat/nl_route_types.h
index 5f8159f..80b06fe 100644
--- a/xlat/nl_route_types.h
+++ b/xlat/nl_route_types.h
@@ -1,162 +1,376 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_route_types.in; do not edit. */
-#if !(defined(RTM_NEWLINK) || (defined(HAVE_DECL_RTM_NEWLINK) && HAVE_DECL_RTM_NEWLINK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RTM_NEWLINK) || (defined(HAVE_DECL_RTM_NEWLINK) && HAVE_DECL_RTM_NEWLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWLINK) == (16), "RTM_NEWLINK != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWLINK 16
#endif
-#if !(defined(RTM_DELLINK) || (defined(HAVE_DECL_RTM_DELLINK) && HAVE_DECL_RTM_DELLINK))
+#if defined(RTM_DELLINK) || (defined(HAVE_DECL_RTM_DELLINK) && HAVE_DECL_RTM_DELLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELLINK) == (17), "RTM_DELLINK != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELLINK 17
#endif
-#if !(defined(RTM_GETLINK) || (defined(HAVE_DECL_RTM_GETLINK) && HAVE_DECL_RTM_GETLINK))
+#if defined(RTM_GETLINK) || (defined(HAVE_DECL_RTM_GETLINK) && HAVE_DECL_RTM_GETLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETLINK) == (18), "RTM_GETLINK != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETLINK 18
#endif
-#if !(defined(RTM_SETLINK) || (defined(HAVE_DECL_RTM_SETLINK) && HAVE_DECL_RTM_SETLINK))
+#if defined(RTM_SETLINK) || (defined(HAVE_DECL_RTM_SETLINK) && HAVE_DECL_RTM_SETLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_SETLINK) == (19), "RTM_SETLINK != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_SETLINK 19
#endif
-#if !(defined(RTM_NEWADDR) || (defined(HAVE_DECL_RTM_NEWADDR) && HAVE_DECL_RTM_NEWADDR))
+#if defined(RTM_NEWADDR) || (defined(HAVE_DECL_RTM_NEWADDR) && HAVE_DECL_RTM_NEWADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWADDR) == (20), "RTM_NEWADDR != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWADDR 20
#endif
-#if !(defined(RTM_DELADDR) || (defined(HAVE_DECL_RTM_DELADDR) && HAVE_DECL_RTM_DELADDR))
+#if defined(RTM_DELADDR) || (defined(HAVE_DECL_RTM_DELADDR) && HAVE_DECL_RTM_DELADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELADDR) == (21), "RTM_DELADDR != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELADDR 21
#endif
-#if !(defined(RTM_GETADDR) || (defined(HAVE_DECL_RTM_GETADDR) && HAVE_DECL_RTM_GETADDR))
+#if defined(RTM_GETADDR) || (defined(HAVE_DECL_RTM_GETADDR) && HAVE_DECL_RTM_GETADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETADDR) == (22), "RTM_GETADDR != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETADDR 22
#endif
-#if !(defined(RTM_NEWROUTE) || (defined(HAVE_DECL_RTM_NEWROUTE) && HAVE_DECL_RTM_NEWROUTE))
+#if defined(RTM_NEWROUTE) || (defined(HAVE_DECL_RTM_NEWROUTE) && HAVE_DECL_RTM_NEWROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWROUTE) == (24), "RTM_NEWROUTE != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWROUTE 24
#endif
-#if !(defined(RTM_DELROUTE) || (defined(HAVE_DECL_RTM_DELROUTE) && HAVE_DECL_RTM_DELROUTE))
+#if defined(RTM_DELROUTE) || (defined(HAVE_DECL_RTM_DELROUTE) && HAVE_DECL_RTM_DELROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELROUTE) == (25), "RTM_DELROUTE != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELROUTE 25
#endif
-#if !(defined(RTM_GETROUTE) || (defined(HAVE_DECL_RTM_GETROUTE) && HAVE_DECL_RTM_GETROUTE))
+#if defined(RTM_GETROUTE) || (defined(HAVE_DECL_RTM_GETROUTE) && HAVE_DECL_RTM_GETROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETROUTE) == (26), "RTM_GETROUTE != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETROUTE 26
#endif
-#if !(defined(RTM_NEWNEIGH) || (defined(HAVE_DECL_RTM_NEWNEIGH) && HAVE_DECL_RTM_NEWNEIGH))
+#if defined(RTM_NEWNEIGH) || (defined(HAVE_DECL_RTM_NEWNEIGH) && HAVE_DECL_RTM_NEWNEIGH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWNEIGH) == (28), "RTM_NEWNEIGH != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWNEIGH 28
#endif
-#if !(defined(RTM_DELNEIGH) || (defined(HAVE_DECL_RTM_DELNEIGH) && HAVE_DECL_RTM_DELNEIGH))
+#if defined(RTM_DELNEIGH) || (defined(HAVE_DECL_RTM_DELNEIGH) && HAVE_DECL_RTM_DELNEIGH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELNEIGH) == (29), "RTM_DELNEIGH != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELNEIGH 29
#endif
-#if !(defined(RTM_GETNEIGH) || (defined(HAVE_DECL_RTM_GETNEIGH) && HAVE_DECL_RTM_GETNEIGH))
+#if defined(RTM_GETNEIGH) || (defined(HAVE_DECL_RTM_GETNEIGH) && HAVE_DECL_RTM_GETNEIGH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETNEIGH) == (30), "RTM_GETNEIGH != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETNEIGH 30
#endif
-#if !(defined(RTM_NEWRULE) || (defined(HAVE_DECL_RTM_NEWRULE) && HAVE_DECL_RTM_NEWRULE))
+#if defined(RTM_NEWRULE) || (defined(HAVE_DECL_RTM_NEWRULE) && HAVE_DECL_RTM_NEWRULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWRULE) == (32), "RTM_NEWRULE != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWRULE 32
#endif
-#if !(defined(RTM_DELRULE) || (defined(HAVE_DECL_RTM_DELRULE) && HAVE_DECL_RTM_DELRULE))
+#if defined(RTM_DELRULE) || (defined(HAVE_DECL_RTM_DELRULE) && HAVE_DECL_RTM_DELRULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELRULE) == (33), "RTM_DELRULE != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELRULE 33
#endif
-#if !(defined(RTM_GETRULE) || (defined(HAVE_DECL_RTM_GETRULE) && HAVE_DECL_RTM_GETRULE))
+#if defined(RTM_GETRULE) || (defined(HAVE_DECL_RTM_GETRULE) && HAVE_DECL_RTM_GETRULE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETRULE) == (34), "RTM_GETRULE != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETRULE 34
#endif
-#if !(defined(RTM_NEWQDISC) || (defined(HAVE_DECL_RTM_NEWQDISC) && HAVE_DECL_RTM_NEWQDISC))
+#if defined(RTM_NEWQDISC) || (defined(HAVE_DECL_RTM_NEWQDISC) && HAVE_DECL_RTM_NEWQDISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWQDISC) == (36), "RTM_NEWQDISC != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWQDISC 36
#endif
-#if !(defined(RTM_DELQDISC) || (defined(HAVE_DECL_RTM_DELQDISC) && HAVE_DECL_RTM_DELQDISC))
+#if defined(RTM_DELQDISC) || (defined(HAVE_DECL_RTM_DELQDISC) && HAVE_DECL_RTM_DELQDISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELQDISC) == (37), "RTM_DELQDISC != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELQDISC 37
#endif
-#if !(defined(RTM_GETQDISC) || (defined(HAVE_DECL_RTM_GETQDISC) && HAVE_DECL_RTM_GETQDISC))
+#if defined(RTM_GETQDISC) || (defined(HAVE_DECL_RTM_GETQDISC) && HAVE_DECL_RTM_GETQDISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETQDISC) == (38), "RTM_GETQDISC != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETQDISC 38
#endif
-#if !(defined(RTM_NEWTCLASS) || (defined(HAVE_DECL_RTM_NEWTCLASS) && HAVE_DECL_RTM_NEWTCLASS))
+#if defined(RTM_NEWTCLASS) || (defined(HAVE_DECL_RTM_NEWTCLASS) && HAVE_DECL_RTM_NEWTCLASS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWTCLASS) == (40), "RTM_NEWTCLASS != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWTCLASS 40
#endif
-#if !(defined(RTM_DELTCLASS) || (defined(HAVE_DECL_RTM_DELTCLASS) && HAVE_DECL_RTM_DELTCLASS))
+#if defined(RTM_DELTCLASS) || (defined(HAVE_DECL_RTM_DELTCLASS) && HAVE_DECL_RTM_DELTCLASS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELTCLASS) == (41), "RTM_DELTCLASS != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELTCLASS 41
#endif
-#if !(defined(RTM_GETTCLASS) || (defined(HAVE_DECL_RTM_GETTCLASS) && HAVE_DECL_RTM_GETTCLASS))
+#if defined(RTM_GETTCLASS) || (defined(HAVE_DECL_RTM_GETTCLASS) && HAVE_DECL_RTM_GETTCLASS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETTCLASS) == (42), "RTM_GETTCLASS != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETTCLASS 42
#endif
-#if !(defined(RTM_NEWTFILTER) || (defined(HAVE_DECL_RTM_NEWTFILTER) && HAVE_DECL_RTM_NEWTFILTER))
+#if defined(RTM_NEWTFILTER) || (defined(HAVE_DECL_RTM_NEWTFILTER) && HAVE_DECL_RTM_NEWTFILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWTFILTER) == (44), "RTM_NEWTFILTER != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWTFILTER 44
#endif
-#if !(defined(RTM_DELTFILTER) || (defined(HAVE_DECL_RTM_DELTFILTER) && HAVE_DECL_RTM_DELTFILTER))
+#if defined(RTM_DELTFILTER) || (defined(HAVE_DECL_RTM_DELTFILTER) && HAVE_DECL_RTM_DELTFILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELTFILTER) == (45), "RTM_DELTFILTER != 45");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELTFILTER 45
#endif
-#if !(defined(RTM_GETTFILTER) || (defined(HAVE_DECL_RTM_GETTFILTER) && HAVE_DECL_RTM_GETTFILTER))
+#if defined(RTM_GETTFILTER) || (defined(HAVE_DECL_RTM_GETTFILTER) && HAVE_DECL_RTM_GETTFILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETTFILTER) == (46), "RTM_GETTFILTER != 46");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETTFILTER 46
#endif
-#if !(defined(RTM_NEWACTION) || (defined(HAVE_DECL_RTM_NEWACTION) && HAVE_DECL_RTM_NEWACTION))
+#if defined(RTM_NEWACTION) || (defined(HAVE_DECL_RTM_NEWACTION) && HAVE_DECL_RTM_NEWACTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWACTION) == (48), "RTM_NEWACTION != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWACTION 48
#endif
-#if !(defined(RTM_DELACTION) || (defined(HAVE_DECL_RTM_DELACTION) && HAVE_DECL_RTM_DELACTION))
+#if defined(RTM_DELACTION) || (defined(HAVE_DECL_RTM_DELACTION) && HAVE_DECL_RTM_DELACTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELACTION) == (49), "RTM_DELACTION != 49");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELACTION 49
#endif
-#if !(defined(RTM_GETACTION) || (defined(HAVE_DECL_RTM_GETACTION) && HAVE_DECL_RTM_GETACTION))
+#if defined(RTM_GETACTION) || (defined(HAVE_DECL_RTM_GETACTION) && HAVE_DECL_RTM_GETACTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETACTION) == (50), "RTM_GETACTION != 50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETACTION 50
#endif
-#if !(defined(RTM_NEWPREFIX) || (defined(HAVE_DECL_RTM_NEWPREFIX) && HAVE_DECL_RTM_NEWPREFIX))
+#if defined(RTM_NEWPREFIX) || (defined(HAVE_DECL_RTM_NEWPREFIX) && HAVE_DECL_RTM_NEWPREFIX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWPREFIX) == (52), "RTM_NEWPREFIX != 52");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWPREFIX 52
#endif
-#if !(defined(RTM_GETPREFIX) || (defined(HAVE_DECL_RTM_GETPREFIX) && HAVE_DECL_RTM_GETPREFIX))
+#if defined(RTM_GETPREFIX) || (defined(HAVE_DECL_RTM_GETPREFIX) && HAVE_DECL_RTM_GETPREFIX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETPREFIX) == (54), "RTM_GETPREFIX != 54");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETPREFIX 54
#endif
-#if !(defined(RTM_GETMULTICAST) || (defined(HAVE_DECL_RTM_GETMULTICAST) && HAVE_DECL_RTM_GETMULTICAST))
+#if defined(RTM_GETMULTICAST) || (defined(HAVE_DECL_RTM_GETMULTICAST) && HAVE_DECL_RTM_GETMULTICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETMULTICAST) == (58), "RTM_GETMULTICAST != 58");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETMULTICAST 58
#endif
-#if !(defined(RTM_GETANYCAST) || (defined(HAVE_DECL_RTM_GETANYCAST) && HAVE_DECL_RTM_GETANYCAST))
+#if defined(RTM_GETANYCAST) || (defined(HAVE_DECL_RTM_GETANYCAST) && HAVE_DECL_RTM_GETANYCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETANYCAST) == (62), "RTM_GETANYCAST != 62");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETANYCAST 62
#endif
-#if !(defined(RTM_NEWNEIGHTBL) || (defined(HAVE_DECL_RTM_NEWNEIGHTBL) && HAVE_DECL_RTM_NEWNEIGHTBL))
+#if defined(RTM_NEWNEIGHTBL) || (defined(HAVE_DECL_RTM_NEWNEIGHTBL) && HAVE_DECL_RTM_NEWNEIGHTBL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWNEIGHTBL) == (64), "RTM_NEWNEIGHTBL != 64");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWNEIGHTBL 64
#endif
-#if !(defined(RTM_GETNEIGHTBL) || (defined(HAVE_DECL_RTM_GETNEIGHTBL) && HAVE_DECL_RTM_GETNEIGHTBL))
+#if defined(RTM_GETNEIGHTBL) || (defined(HAVE_DECL_RTM_GETNEIGHTBL) && HAVE_DECL_RTM_GETNEIGHTBL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETNEIGHTBL) == (66), "RTM_GETNEIGHTBL != 66");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETNEIGHTBL 66
#endif
-#if !(defined(RTM_SETNEIGHTBL) || (defined(HAVE_DECL_RTM_SETNEIGHTBL) && HAVE_DECL_RTM_SETNEIGHTBL))
+#if defined(RTM_SETNEIGHTBL) || (defined(HAVE_DECL_RTM_SETNEIGHTBL) && HAVE_DECL_RTM_SETNEIGHTBL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_SETNEIGHTBL) == (67), "RTM_SETNEIGHTBL != 67");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_SETNEIGHTBL 67
#endif
-#if !(defined(RTM_NEWNDUSEROPT) || (defined(HAVE_DECL_RTM_NEWNDUSEROPT) && HAVE_DECL_RTM_NEWNDUSEROPT))
+#if defined(RTM_NEWNDUSEROPT) || (defined(HAVE_DECL_RTM_NEWNDUSEROPT) && HAVE_DECL_RTM_NEWNDUSEROPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWNDUSEROPT) == (68), "RTM_NEWNDUSEROPT != 68");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWNDUSEROPT 68
#endif
-#if !(defined(RTM_NEWADDRLABEL) || (defined(HAVE_DECL_RTM_NEWADDRLABEL) && HAVE_DECL_RTM_NEWADDRLABEL))
+#if defined(RTM_NEWADDRLABEL) || (defined(HAVE_DECL_RTM_NEWADDRLABEL) && HAVE_DECL_RTM_NEWADDRLABEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWADDRLABEL) == (72), "RTM_NEWADDRLABEL != 72");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWADDRLABEL 72
#endif
-#if !(defined(RTM_DELADDRLABEL) || (defined(HAVE_DECL_RTM_DELADDRLABEL) && HAVE_DECL_RTM_DELADDRLABEL))
+#if defined(RTM_DELADDRLABEL) || (defined(HAVE_DECL_RTM_DELADDRLABEL) && HAVE_DECL_RTM_DELADDRLABEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELADDRLABEL) == (73), "RTM_DELADDRLABEL != 73");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELADDRLABEL 73
#endif
-#if !(defined(RTM_GETADDRLABEL) || (defined(HAVE_DECL_RTM_GETADDRLABEL) && HAVE_DECL_RTM_GETADDRLABEL))
+#if defined(RTM_GETADDRLABEL) || (defined(HAVE_DECL_RTM_GETADDRLABEL) && HAVE_DECL_RTM_GETADDRLABEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETADDRLABEL) == (74), "RTM_GETADDRLABEL != 74");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETADDRLABEL 74
#endif
-#if !(defined(RTM_GETDCB) || (defined(HAVE_DECL_RTM_GETDCB) && HAVE_DECL_RTM_GETDCB))
+#if defined(RTM_GETDCB) || (defined(HAVE_DECL_RTM_GETDCB) && HAVE_DECL_RTM_GETDCB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETDCB) == (78), "RTM_GETDCB != 78");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETDCB 78
#endif
-#if !(defined(RTM_SETDCB) || (defined(HAVE_DECL_RTM_SETDCB) && HAVE_DECL_RTM_SETDCB))
+#if defined(RTM_SETDCB) || (defined(HAVE_DECL_RTM_SETDCB) && HAVE_DECL_RTM_SETDCB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_SETDCB) == (79), "RTM_SETDCB != 79");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_SETDCB 79
#endif
-#if !(defined(RTM_NEWNETCONF) || (defined(HAVE_DECL_RTM_NEWNETCONF) && HAVE_DECL_RTM_NEWNETCONF))
+#if defined(RTM_NEWNETCONF) || (defined(HAVE_DECL_RTM_NEWNETCONF) && HAVE_DECL_RTM_NEWNETCONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWNETCONF) == (80), "RTM_NEWNETCONF != 80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWNETCONF 80
#endif
-#if !(defined(RTM_DELNETCONF) || (defined(HAVE_DECL_RTM_DELNETCONF) && HAVE_DECL_RTM_DELNETCONF))
+#if defined(RTM_DELNETCONF) || (defined(HAVE_DECL_RTM_DELNETCONF) && HAVE_DECL_RTM_DELNETCONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELNETCONF) == (81), "RTM_DELNETCONF != 81");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELNETCONF 81
#endif
-#if !(defined(RTM_GETNETCONF) || (defined(HAVE_DECL_RTM_GETNETCONF) && HAVE_DECL_RTM_GETNETCONF))
+#if defined(RTM_GETNETCONF) || (defined(HAVE_DECL_RTM_GETNETCONF) && HAVE_DECL_RTM_GETNETCONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETNETCONF) == (82), "RTM_GETNETCONF != 82");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETNETCONF 82
#endif
-#if !(defined(RTM_NEWMDB) || (defined(HAVE_DECL_RTM_NEWMDB) && HAVE_DECL_RTM_NEWMDB))
+#if defined(RTM_NEWMDB) || (defined(HAVE_DECL_RTM_NEWMDB) && HAVE_DECL_RTM_NEWMDB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWMDB) == (84), "RTM_NEWMDB != 84");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWMDB 84
#endif
-#if !(defined(RTM_DELMDB) || (defined(HAVE_DECL_RTM_DELMDB) && HAVE_DECL_RTM_DELMDB))
+#if defined(RTM_DELMDB) || (defined(HAVE_DECL_RTM_DELMDB) && HAVE_DECL_RTM_DELMDB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELMDB) == (85), "RTM_DELMDB != 85");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELMDB 85
#endif
-#if !(defined(RTM_GETMDB) || (defined(HAVE_DECL_RTM_GETMDB) && HAVE_DECL_RTM_GETMDB))
+#if defined(RTM_GETMDB) || (defined(HAVE_DECL_RTM_GETMDB) && HAVE_DECL_RTM_GETMDB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETMDB) == (86), "RTM_GETMDB != 86");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETMDB 86
#endif
-#if !(defined(RTM_NEWNSID) || (defined(HAVE_DECL_RTM_NEWNSID) && HAVE_DECL_RTM_NEWNSID))
+#if defined(RTM_NEWNSID) || (defined(HAVE_DECL_RTM_NEWNSID) && HAVE_DECL_RTM_NEWNSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWNSID) == (88), "RTM_NEWNSID != 88");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWNSID 88
#endif
-#if !(defined(RTM_DELNSID) || (defined(HAVE_DECL_RTM_DELNSID) && HAVE_DECL_RTM_DELNSID))
+#if defined(RTM_DELNSID) || (defined(HAVE_DECL_RTM_DELNSID) && HAVE_DECL_RTM_DELNSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_DELNSID) == (89), "RTM_DELNSID != 89");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_DELNSID 89
#endif
-#if !(defined(RTM_GETNSID) || (defined(HAVE_DECL_RTM_GETNSID) && HAVE_DECL_RTM_GETNSID))
+#if defined(RTM_GETNSID) || (defined(HAVE_DECL_RTM_GETNSID) && HAVE_DECL_RTM_GETNSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETNSID) == (90), "RTM_GETNSID != 90");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETNSID 90
#endif
-#if !(defined(RTM_NEWSTATS) || (defined(HAVE_DECL_RTM_NEWSTATS) && HAVE_DECL_RTM_NEWSTATS))
+#if defined(RTM_NEWSTATS) || (defined(HAVE_DECL_RTM_NEWSTATS) && HAVE_DECL_RTM_NEWSTATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_NEWSTATS) == (92), "RTM_NEWSTATS != 92");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_NEWSTATS 92
#endif
-#if !(defined(RTM_GETSTATS) || (defined(HAVE_DECL_RTM_GETSTATS) && HAVE_DECL_RTM_GETSTATS))
+#if defined(RTM_GETSTATS) || (defined(HAVE_DECL_RTM_GETSTATS) && HAVE_DECL_RTM_GETSTATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTM_GETSTATS) == (94), "RTM_GETSTATS != 94");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTM_GETSTATS 94
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat nl_route_types[] = {
XLAT(RTM_NEWLINK),
@@ -233,4 +447,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nl_selinux_types.h b/xlat/nl_selinux_types.h
index 29903bc..95ae3df 100644
--- a/xlat/nl_selinux_types.h
+++ b/xlat/nl_selinux_types.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_selinux_types.in; do not edit. */
-#if !(defined(SELNL_MSG_SETENFORCE) || (defined(HAVE_DECL_SELNL_MSG_SETENFORCE) && HAVE_DECL_SELNL_MSG_SETENFORCE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SELNL_MSG_SETENFORCE) || (defined(HAVE_DECL_SELNL_MSG_SETENFORCE) && HAVE_DECL_SELNL_MSG_SETENFORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SELNL_MSG_SETENFORCE) == (0x10), "SELNL_MSG_SETENFORCE != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SELNL_MSG_SETENFORCE 0x10
#endif
-#if !(defined(SELNL_MSG_POLICYLOAD) || (defined(HAVE_DECL_SELNL_MSG_POLICYLOAD) && HAVE_DECL_SELNL_MSG_POLICYLOAD))
+#if defined(SELNL_MSG_POLICYLOAD) || (defined(HAVE_DECL_SELNL_MSG_POLICYLOAD) && HAVE_DECL_SELNL_MSG_POLICYLOAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SELNL_MSG_POLICYLOAD) == (0x11), "SELNL_MSG_POLICYLOAD != 0x11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SELNL_MSG_POLICYLOAD 0x11
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nl_selinux_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nl_selinux_types in mpers mode
+
+# else
static
const struct xlat nl_selinux_types[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nl_sock_diag_types.h b/xlat/nl_sock_diag_types.h
index 2469702..d0afe44 100644
--- a/xlat/nl_sock_diag_types.h
+++ b/xlat/nl_sock_diag_types.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_sock_diag_types.in; do not edit. */
-#if !(defined(TCPDIAG_GETSOCK) || (defined(HAVE_DECL_TCPDIAG_GETSOCK) && HAVE_DECL_TCPDIAG_GETSOCK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TCPDIAG_GETSOCK) || (defined(HAVE_DECL_TCPDIAG_GETSOCK) && HAVE_DECL_TCPDIAG_GETSOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCPDIAG_GETSOCK) == (18), "TCPDIAG_GETSOCK != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCPDIAG_GETSOCK 18
#endif
-#if !(defined(DCCPDIAG_GETSOCK) || (defined(HAVE_DECL_DCCPDIAG_GETSOCK) && HAVE_DECL_DCCPDIAG_GETSOCK))
+#if defined(DCCPDIAG_GETSOCK) || (defined(HAVE_DECL_DCCPDIAG_GETSOCK) && HAVE_DECL_DCCPDIAG_GETSOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCPDIAG_GETSOCK) == (19), "DCCPDIAG_GETSOCK != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCCPDIAG_GETSOCK 19
#endif
-#if !(defined(SOCK_DIAG_BY_FAMILY) || (defined(HAVE_DECL_SOCK_DIAG_BY_FAMILY) && HAVE_DECL_SOCK_DIAG_BY_FAMILY))
+#if defined(SOCK_DIAG_BY_FAMILY) || (defined(HAVE_DECL_SOCK_DIAG_BY_FAMILY) && HAVE_DECL_SOCK_DIAG_BY_FAMILY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOCK_DIAG_BY_FAMILY) == (20), "SOCK_DIAG_BY_FAMILY != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOCK_DIAG_BY_FAMILY 20
#endif
-#if !(defined(SOCK_DESTROY) || (defined(HAVE_DECL_SOCK_DESTROY) && HAVE_DECL_SOCK_DESTROY))
+#if defined(SOCK_DESTROY) || (defined(HAVE_DECL_SOCK_DESTROY) && HAVE_DECL_SOCK_DESTROY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOCK_DESTROY) == (21), "SOCK_DESTROY != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOCK_DESTROY 21
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nl_sock_diag_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nl_sock_diag_types in mpers mode
+
+# else
static
const struct xlat nl_sock_diag_types[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nl_xfrm_types.h b/xlat/nl_xfrm_types.h
index 28d6d8a..47240fd 100644
--- a/xlat/nl_xfrm_types.h
+++ b/xlat/nl_xfrm_types.h
@@ -1,79 +1,177 @@
/* Generated by ./xlat/gen.sh from ./xlat/nl_xfrm_types.in; do not edit. */
-#if !(defined(XFRM_MSG_NEWSA) || (defined(HAVE_DECL_XFRM_MSG_NEWSA) && HAVE_DECL_XFRM_MSG_NEWSA))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(XFRM_MSG_NEWSA) || (defined(HAVE_DECL_XFRM_MSG_NEWSA) && HAVE_DECL_XFRM_MSG_NEWSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_NEWSA) == (0x10), "XFRM_MSG_NEWSA != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_NEWSA 0x10
#endif
-#if !(defined(XFRM_MSG_DELSA) || (defined(HAVE_DECL_XFRM_MSG_DELSA) && HAVE_DECL_XFRM_MSG_DELSA))
+#if defined(XFRM_MSG_DELSA) || (defined(HAVE_DECL_XFRM_MSG_DELSA) && HAVE_DECL_XFRM_MSG_DELSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_DELSA) == (0x11), "XFRM_MSG_DELSA != 0x11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_DELSA 0x11
#endif
-#if !(defined(XFRM_MSG_GETSA) || (defined(HAVE_DECL_XFRM_MSG_GETSA) && HAVE_DECL_XFRM_MSG_GETSA))
+#if defined(XFRM_MSG_GETSA) || (defined(HAVE_DECL_XFRM_MSG_GETSA) && HAVE_DECL_XFRM_MSG_GETSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_GETSA) == (0x12), "XFRM_MSG_GETSA != 0x12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_GETSA 0x12
#endif
-#if !(defined(XFRM_MSG_NEWPOLICY) || (defined(HAVE_DECL_XFRM_MSG_NEWPOLICY) && HAVE_DECL_XFRM_MSG_NEWPOLICY))
+#if defined(XFRM_MSG_NEWPOLICY) || (defined(HAVE_DECL_XFRM_MSG_NEWPOLICY) && HAVE_DECL_XFRM_MSG_NEWPOLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_NEWPOLICY) == (0x13), "XFRM_MSG_NEWPOLICY != 0x13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_NEWPOLICY 0x13
#endif
-#if !(defined(XFRM_MSG_DELPOLICY) || (defined(HAVE_DECL_XFRM_MSG_DELPOLICY) && HAVE_DECL_XFRM_MSG_DELPOLICY))
+#if defined(XFRM_MSG_DELPOLICY) || (defined(HAVE_DECL_XFRM_MSG_DELPOLICY) && HAVE_DECL_XFRM_MSG_DELPOLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_DELPOLICY) == (0x14), "XFRM_MSG_DELPOLICY != 0x14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_DELPOLICY 0x14
#endif
-#if !(defined(XFRM_MSG_GETPOLICY) || (defined(HAVE_DECL_XFRM_MSG_GETPOLICY) && HAVE_DECL_XFRM_MSG_GETPOLICY))
+#if defined(XFRM_MSG_GETPOLICY) || (defined(HAVE_DECL_XFRM_MSG_GETPOLICY) && HAVE_DECL_XFRM_MSG_GETPOLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_GETPOLICY) == (0x15), "XFRM_MSG_GETPOLICY != 0x15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_GETPOLICY 0x15
#endif
-#if !(defined(XFRM_MSG_ALLOCSPI) || (defined(HAVE_DECL_XFRM_MSG_ALLOCSPI) && HAVE_DECL_XFRM_MSG_ALLOCSPI))
+#if defined(XFRM_MSG_ALLOCSPI) || (defined(HAVE_DECL_XFRM_MSG_ALLOCSPI) && HAVE_DECL_XFRM_MSG_ALLOCSPI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_ALLOCSPI) == (0x16), "XFRM_MSG_ALLOCSPI != 0x16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_ALLOCSPI 0x16
#endif
-#if !(defined(XFRM_MSG_ACQUIRE) || (defined(HAVE_DECL_XFRM_MSG_ACQUIRE) && HAVE_DECL_XFRM_MSG_ACQUIRE))
+#if defined(XFRM_MSG_ACQUIRE) || (defined(HAVE_DECL_XFRM_MSG_ACQUIRE) && HAVE_DECL_XFRM_MSG_ACQUIRE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_ACQUIRE) == (0x17), "XFRM_MSG_ACQUIRE != 0x17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_ACQUIRE 0x17
#endif
-#if !(defined(XFRM_MSG_EXPIRE) || (defined(HAVE_DECL_XFRM_MSG_EXPIRE) && HAVE_DECL_XFRM_MSG_EXPIRE))
+#if defined(XFRM_MSG_EXPIRE) || (defined(HAVE_DECL_XFRM_MSG_EXPIRE) && HAVE_DECL_XFRM_MSG_EXPIRE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_EXPIRE) == (0x18), "XFRM_MSG_EXPIRE != 0x18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_EXPIRE 0x18
#endif
-#if !(defined(XFRM_MSG_UPDPOLICY) || (defined(HAVE_DECL_XFRM_MSG_UPDPOLICY) && HAVE_DECL_XFRM_MSG_UPDPOLICY))
+#if defined(XFRM_MSG_UPDPOLICY) || (defined(HAVE_DECL_XFRM_MSG_UPDPOLICY) && HAVE_DECL_XFRM_MSG_UPDPOLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_UPDPOLICY) == (0x19), "XFRM_MSG_UPDPOLICY != 0x19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_UPDPOLICY 0x19
#endif
-#if !(defined(XFRM_MSG_UPDSA) || (defined(HAVE_DECL_XFRM_MSG_UPDSA) && HAVE_DECL_XFRM_MSG_UPDSA))
+#if defined(XFRM_MSG_UPDSA) || (defined(HAVE_DECL_XFRM_MSG_UPDSA) && HAVE_DECL_XFRM_MSG_UPDSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_UPDSA) == (0x1a), "XFRM_MSG_UPDSA != 0x1a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_UPDSA 0x1a
#endif
-#if !(defined(XFRM_MSG_POLEXPIRE) || (defined(HAVE_DECL_XFRM_MSG_POLEXPIRE) && HAVE_DECL_XFRM_MSG_POLEXPIRE))
+#if defined(XFRM_MSG_POLEXPIRE) || (defined(HAVE_DECL_XFRM_MSG_POLEXPIRE) && HAVE_DECL_XFRM_MSG_POLEXPIRE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_POLEXPIRE) == (0x1b), "XFRM_MSG_POLEXPIRE != 0x1b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_POLEXPIRE 0x1b
#endif
-#if !(defined(XFRM_MSG_FLUSHSA) || (defined(HAVE_DECL_XFRM_MSG_FLUSHSA) && HAVE_DECL_XFRM_MSG_FLUSHSA))
+#if defined(XFRM_MSG_FLUSHSA) || (defined(HAVE_DECL_XFRM_MSG_FLUSHSA) && HAVE_DECL_XFRM_MSG_FLUSHSA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_FLUSHSA) == (0x1c), "XFRM_MSG_FLUSHSA != 0x1c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_FLUSHSA 0x1c
#endif
-#if !(defined(XFRM_MSG_FLUSHPOLICY) || (defined(HAVE_DECL_XFRM_MSG_FLUSHPOLICY) && HAVE_DECL_XFRM_MSG_FLUSHPOLICY))
+#if defined(XFRM_MSG_FLUSHPOLICY) || (defined(HAVE_DECL_XFRM_MSG_FLUSHPOLICY) && HAVE_DECL_XFRM_MSG_FLUSHPOLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_FLUSHPOLICY) == (0x1d), "XFRM_MSG_FLUSHPOLICY != 0x1d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_FLUSHPOLICY 0x1d
#endif
-#if !(defined(XFRM_MSG_NEWAE) || (defined(HAVE_DECL_XFRM_MSG_NEWAE) && HAVE_DECL_XFRM_MSG_NEWAE))
+#if defined(XFRM_MSG_NEWAE) || (defined(HAVE_DECL_XFRM_MSG_NEWAE) && HAVE_DECL_XFRM_MSG_NEWAE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_NEWAE) == (0x1e), "XFRM_MSG_NEWAE != 0x1e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_NEWAE 0x1e
#endif
-#if !(defined(XFRM_MSG_GETAE) || (defined(HAVE_DECL_XFRM_MSG_GETAE) && HAVE_DECL_XFRM_MSG_GETAE))
+#if defined(XFRM_MSG_GETAE) || (defined(HAVE_DECL_XFRM_MSG_GETAE) && HAVE_DECL_XFRM_MSG_GETAE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_GETAE) == (0x1f), "XFRM_MSG_GETAE != 0x1f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_GETAE 0x1f
#endif
-#if !(defined(XFRM_MSG_REPORT) || (defined(HAVE_DECL_XFRM_MSG_REPORT) && HAVE_DECL_XFRM_MSG_REPORT))
+#if defined(XFRM_MSG_REPORT) || (defined(HAVE_DECL_XFRM_MSG_REPORT) && HAVE_DECL_XFRM_MSG_REPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_REPORT) == (0x20), "XFRM_MSG_REPORT != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_REPORT 0x20
#endif
-#if !(defined(XFRM_MSG_MIGRATE) || (defined(HAVE_DECL_XFRM_MSG_MIGRATE) && HAVE_DECL_XFRM_MSG_MIGRATE))
+#if defined(XFRM_MSG_MIGRATE) || (defined(HAVE_DECL_XFRM_MSG_MIGRATE) && HAVE_DECL_XFRM_MSG_MIGRATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_MIGRATE) == (0x21), "XFRM_MSG_MIGRATE != 0x21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_MIGRATE 0x21
#endif
-#if !(defined(XFRM_MSG_NEWSADINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSADINFO) && HAVE_DECL_XFRM_MSG_NEWSADINFO))
+#if defined(XFRM_MSG_NEWSADINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSADINFO) && HAVE_DECL_XFRM_MSG_NEWSADINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_NEWSADINFO) == (0x22), "XFRM_MSG_NEWSADINFO != 0x22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_NEWSADINFO 0x22
#endif
-#if !(defined(XFRM_MSG_GETSADINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSADINFO) && HAVE_DECL_XFRM_MSG_GETSADINFO))
+#if defined(XFRM_MSG_GETSADINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSADINFO) && HAVE_DECL_XFRM_MSG_GETSADINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_GETSADINFO) == (0x23), "XFRM_MSG_GETSADINFO != 0x23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_GETSADINFO 0x23
#endif
-#if !(defined(XFRM_MSG_NEWSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSPDINFO) && HAVE_DECL_XFRM_MSG_NEWSPDINFO))
+#if defined(XFRM_MSG_NEWSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSPDINFO) && HAVE_DECL_XFRM_MSG_NEWSPDINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_NEWSPDINFO) == (0x24), "XFRM_MSG_NEWSPDINFO != 0x24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_NEWSPDINFO 0x24
#endif
-#if !(defined(XFRM_MSG_GETSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSPDINFO) && HAVE_DECL_XFRM_MSG_GETSPDINFO))
+#if defined(XFRM_MSG_GETSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSPDINFO) && HAVE_DECL_XFRM_MSG_GETSPDINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_GETSPDINFO) == (0x25), "XFRM_MSG_GETSPDINFO != 0x25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_GETSPDINFO 0x25
#endif
-#if !(defined(XFRM_MSG_MAPPING) || (defined(HAVE_DECL_XFRM_MSG_MAPPING) && HAVE_DECL_XFRM_MSG_MAPPING))
+#if defined(XFRM_MSG_MAPPING) || (defined(HAVE_DECL_XFRM_MSG_MAPPING) && HAVE_DECL_XFRM_MSG_MAPPING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFRM_MSG_MAPPING) == (0x26), "XFRM_MSG_MAPPING != 0x26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFRM_MSG_MAPPING 0x26
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nl_xfrm_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nl_xfrm_types in mpers mode
+
+# else
static
const struct xlat nl_xfrm_types[] = {
@@ -114,4 +212,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nlmsgerr_attrs.h b/xlat/nlmsgerr_attrs.h
index 3772db9..2d0f46f 100644
--- a/xlat/nlmsgerr_attrs.h
+++ b/xlat/nlmsgerr_attrs.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/nlmsgerr_attrs.in; do not edit. */
-#if !(defined(NLMSGERR_ATTR_UNUSED) || (defined(HAVE_DECL_NLMSGERR_ATTR_UNUSED) && HAVE_DECL_NLMSGERR_ATTR_UNUSED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NLMSGERR_ATTR_UNUSED) || (defined(HAVE_DECL_NLMSGERR_ATTR_UNUSED) && HAVE_DECL_NLMSGERR_ATTR_UNUSED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSGERR_ATTR_UNUSED) == (0), "NLMSGERR_ATTR_UNUSED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSGERR_ATTR_UNUSED 0
#endif
-#if !(defined(NLMSGERR_ATTR_MSG) || (defined(HAVE_DECL_NLMSGERR_ATTR_MSG) && HAVE_DECL_NLMSGERR_ATTR_MSG))
+#if defined(NLMSGERR_ATTR_MSG) || (defined(HAVE_DECL_NLMSGERR_ATTR_MSG) && HAVE_DECL_NLMSGERR_ATTR_MSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSGERR_ATTR_MSG) == (1), "NLMSGERR_ATTR_MSG != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSGERR_ATTR_MSG 1
#endif
-#if !(defined(NLMSGERR_ATTR_OFFS) || (defined(HAVE_DECL_NLMSGERR_ATTR_OFFS) && HAVE_DECL_NLMSGERR_ATTR_OFFS))
+#if defined(NLMSGERR_ATTR_OFFS) || (defined(HAVE_DECL_NLMSGERR_ATTR_OFFS) && HAVE_DECL_NLMSGERR_ATTR_OFFS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSGERR_ATTR_OFFS) == (2), "NLMSGERR_ATTR_OFFS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSGERR_ATTR_OFFS 2
#endif
-#if !(defined(NLMSGERR_ATTR_COOKIE) || (defined(HAVE_DECL_NLMSGERR_ATTR_COOKIE) && HAVE_DECL_NLMSGERR_ATTR_COOKIE))
+#if defined(NLMSGERR_ATTR_COOKIE) || (defined(HAVE_DECL_NLMSGERR_ATTR_COOKIE) && HAVE_DECL_NLMSGERR_ATTR_COOKIE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NLMSGERR_ATTR_COOKIE) == (3), "NLMSGERR_ATTR_COOKIE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NLMSGERR_ATTR_COOKIE 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nlmsgerr_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nlmsgerr_attrs in mpers mode
+
+# else
static
const struct xlat nlmsgerr_attrs[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/notifyflags.h b/xlat/notifyflags.h
index e496e8c..cccc7d1 100644
--- a/xlat/notifyflags.h
+++ b/xlat/notifyflags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/notifyflags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat notifyflags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat notifyflags in mpers mode
+
+# else
static
const struct xlat notifyflags[] = {
@@ -32,4 +38,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/nt_descriptor_types.h b/xlat/nt_descriptor_types.h
index edab7af..7527d79 100644
--- a/xlat/nt_descriptor_types.h
+++ b/xlat/nt_descriptor_types.h
@@ -1,199 +1,457 @@
/* Generated by ./xlat/gen.sh from ./xlat/nt_descriptor_types.in; do not edit. */
-#if !(defined(NT_PRSTATUS) || (defined(HAVE_DECL_NT_PRSTATUS) && HAVE_DECL_NT_PRSTATUS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NT_PRSTATUS) || (defined(HAVE_DECL_NT_PRSTATUS) && HAVE_DECL_NT_PRSTATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PRSTATUS) == (1), "NT_PRSTATUS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PRSTATUS 1
#endif
-#if !(defined(NT_FPREGSET) || (defined(HAVE_DECL_NT_FPREGSET) && HAVE_DECL_NT_FPREGSET))
+#if defined(NT_FPREGSET) || (defined(HAVE_DECL_NT_FPREGSET) && HAVE_DECL_NT_FPREGSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_FPREGSET) == (2), "NT_FPREGSET != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_FPREGSET 2
#endif
-#if !(defined(NT_PRPSINFO) || (defined(HAVE_DECL_NT_PRPSINFO) && HAVE_DECL_NT_PRPSINFO))
+#if defined(NT_PRPSINFO) || (defined(HAVE_DECL_NT_PRPSINFO) && HAVE_DECL_NT_PRPSINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PRPSINFO) == (3), "NT_PRPSINFO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PRPSINFO 3
#endif
-#if !(defined(NT_PRXREG) || (defined(HAVE_DECL_NT_PRXREG) && HAVE_DECL_NT_PRXREG))
+#if defined(NT_PRXREG) || (defined(HAVE_DECL_NT_PRXREG) && HAVE_DECL_NT_PRXREG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PRXREG) == (4), "NT_PRXREG != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PRXREG 4
#endif
-#if !(defined(NT_TASKSTRUCT) || (defined(HAVE_DECL_NT_TASKSTRUCT) && HAVE_DECL_NT_TASKSTRUCT))
+#if defined(NT_TASKSTRUCT) || (defined(HAVE_DECL_NT_TASKSTRUCT) && HAVE_DECL_NT_TASKSTRUCT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_TASKSTRUCT) == (4), "NT_TASKSTRUCT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_TASKSTRUCT 4
#endif
-#if !(defined(NT_PLATFORM) || (defined(HAVE_DECL_NT_PLATFORM) && HAVE_DECL_NT_PLATFORM))
+#if defined(NT_PLATFORM) || (defined(HAVE_DECL_NT_PLATFORM) && HAVE_DECL_NT_PLATFORM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PLATFORM) == (5), "NT_PLATFORM != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PLATFORM 5
#endif
-#if !(defined(NT_AUXV) || (defined(HAVE_DECL_NT_AUXV) && HAVE_DECL_NT_AUXV))
+#if defined(NT_AUXV) || (defined(HAVE_DECL_NT_AUXV) && HAVE_DECL_NT_AUXV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_AUXV) == (6), "NT_AUXV != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_AUXV 6
#endif
-#if !(defined(NT_GWINDOWS) || (defined(HAVE_DECL_NT_GWINDOWS) && HAVE_DECL_NT_GWINDOWS))
+#if defined(NT_GWINDOWS) || (defined(HAVE_DECL_NT_GWINDOWS) && HAVE_DECL_NT_GWINDOWS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_GWINDOWS) == (7), "NT_GWINDOWS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_GWINDOWS 7
#endif
-#if !(defined(NT_ASRS) || (defined(HAVE_DECL_NT_ASRS) && HAVE_DECL_NT_ASRS))
+#if defined(NT_ASRS) || (defined(HAVE_DECL_NT_ASRS) && HAVE_DECL_NT_ASRS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ASRS) == (8), "NT_ASRS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ASRS 8
#endif
-#if !(defined(NT_PSTATUS) || (defined(HAVE_DECL_NT_PSTATUS) && HAVE_DECL_NT_PSTATUS))
+#if defined(NT_PSTATUS) || (defined(HAVE_DECL_NT_PSTATUS) && HAVE_DECL_NT_PSTATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PSTATUS) == (10), "NT_PSTATUS != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PSTATUS 10
#endif
-#if !(defined(NT_PSINFO) || (defined(HAVE_DECL_NT_PSINFO) && HAVE_DECL_NT_PSINFO))
+#if defined(NT_PSINFO) || (defined(HAVE_DECL_NT_PSINFO) && HAVE_DECL_NT_PSINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PSINFO) == (13), "NT_PSINFO != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PSINFO 13
#endif
-#if !(defined(NT_PRCRED) || (defined(HAVE_DECL_NT_PRCRED) && HAVE_DECL_NT_PRCRED))
+#if defined(NT_PRCRED) || (defined(HAVE_DECL_NT_PRCRED) && HAVE_DECL_NT_PRCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PRCRED) == (14), "NT_PRCRED != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PRCRED 14
#endif
-#if !(defined(NT_UTSNAME) || (defined(HAVE_DECL_NT_UTSNAME) && HAVE_DECL_NT_UTSNAME))
+#if defined(NT_UTSNAME) || (defined(HAVE_DECL_NT_UTSNAME) && HAVE_DECL_NT_UTSNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_UTSNAME) == (15), "NT_UTSNAME != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_UTSNAME 15
#endif
-#if !(defined(NT_LWPSTATUS) || (defined(HAVE_DECL_NT_LWPSTATUS) && HAVE_DECL_NT_LWPSTATUS))
+#if defined(NT_LWPSTATUS) || (defined(HAVE_DECL_NT_LWPSTATUS) && HAVE_DECL_NT_LWPSTATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_LWPSTATUS) == (16), "NT_LWPSTATUS != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_LWPSTATUS 16
#endif
-#if !(defined(NT_LWPSINFO) || (defined(HAVE_DECL_NT_LWPSINFO) && HAVE_DECL_NT_LWPSINFO))
+#if defined(NT_LWPSINFO) || (defined(HAVE_DECL_NT_LWPSINFO) && HAVE_DECL_NT_LWPSINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_LWPSINFO) == (17), "NT_LWPSINFO != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_LWPSINFO 17
#endif
-#if !(defined(NT_PRFPXREG) || (defined(HAVE_DECL_NT_PRFPXREG) && HAVE_DECL_NT_PRFPXREG))
+#if defined(NT_PRFPXREG) || (defined(HAVE_DECL_NT_PRFPXREG) && HAVE_DECL_NT_PRFPXREG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PRFPXREG) == (20), "NT_PRFPXREG != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PRFPXREG 20
#endif
-#if !(defined(NT_SIGINFO) || (defined(HAVE_DECL_NT_SIGINFO) && HAVE_DECL_NT_SIGINFO))
+#if defined(NT_SIGINFO) || (defined(HAVE_DECL_NT_SIGINFO) && HAVE_DECL_NT_SIGINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_SIGINFO) == (0x53494749), "NT_SIGINFO != 0x53494749");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_SIGINFO 0x53494749
#endif
-#if !(defined(NT_FILE) || (defined(HAVE_DECL_NT_FILE) && HAVE_DECL_NT_FILE))
+#if defined(NT_FILE) || (defined(HAVE_DECL_NT_FILE) && HAVE_DECL_NT_FILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_FILE) == (0x46494c45), "NT_FILE != 0x46494c45");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_FILE 0x46494c45
#endif
-#if !(defined(NT_PRXFPREG) || (defined(HAVE_DECL_NT_PRXFPREG) && HAVE_DECL_NT_PRXFPREG))
+#if defined(NT_PRXFPREG) || (defined(HAVE_DECL_NT_PRXFPREG) && HAVE_DECL_NT_PRXFPREG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PRXFPREG) == (0x46e62b7f), "NT_PRXFPREG != 0x46e62b7f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PRXFPREG 0x46e62b7f
#endif
-#if !(defined(NT_PPC_VMX) || (defined(HAVE_DECL_NT_PPC_VMX) && HAVE_DECL_NT_PPC_VMX))
+#if defined(NT_PPC_VMX) || (defined(HAVE_DECL_NT_PPC_VMX) && HAVE_DECL_NT_PPC_VMX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_VMX) == (0x100), "NT_PPC_VMX != 0x100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_VMX 0x100
#endif
-#if !(defined(NT_PPC_SPE) || (defined(HAVE_DECL_NT_PPC_SPE) && HAVE_DECL_NT_PPC_SPE))
+#if defined(NT_PPC_SPE) || (defined(HAVE_DECL_NT_PPC_SPE) && HAVE_DECL_NT_PPC_SPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_SPE) == (0x101), "NT_PPC_SPE != 0x101");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_SPE 0x101
#endif
-#if !(defined(NT_PPC_VSX) || (defined(HAVE_DECL_NT_PPC_VSX) && HAVE_DECL_NT_PPC_VSX))
+#if defined(NT_PPC_VSX) || (defined(HAVE_DECL_NT_PPC_VSX) && HAVE_DECL_NT_PPC_VSX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_VSX) == (0x102), "NT_PPC_VSX != 0x102");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_VSX 0x102
#endif
-#if !(defined(NT_PPC_TAR) || (defined(HAVE_DECL_NT_PPC_TAR) && HAVE_DECL_NT_PPC_TAR))
+#if defined(NT_PPC_TAR) || (defined(HAVE_DECL_NT_PPC_TAR) && HAVE_DECL_NT_PPC_TAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TAR) == (0x103), "NT_PPC_TAR != 0x103");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TAR 0x103
#endif
-#if !(defined(NT_PPC_PPR) || (defined(HAVE_DECL_NT_PPC_PPR) && HAVE_DECL_NT_PPC_PPR))
+#if defined(NT_PPC_PPR) || (defined(HAVE_DECL_NT_PPC_PPR) && HAVE_DECL_NT_PPC_PPR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_PPR) == (0x104), "NT_PPC_PPR != 0x104");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_PPR 0x104
#endif
-#if !(defined(NT_PPC_DSCR) || (defined(HAVE_DECL_NT_PPC_DSCR) && HAVE_DECL_NT_PPC_DSCR))
+#if defined(NT_PPC_DSCR) || (defined(HAVE_DECL_NT_PPC_DSCR) && HAVE_DECL_NT_PPC_DSCR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_DSCR) == (0x105), "NT_PPC_DSCR != 0x105");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_DSCR 0x105
#endif
-#if !(defined(NT_PPC_EBB) || (defined(HAVE_DECL_NT_PPC_EBB) && HAVE_DECL_NT_PPC_EBB))
+#if defined(NT_PPC_EBB) || (defined(HAVE_DECL_NT_PPC_EBB) && HAVE_DECL_NT_PPC_EBB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_EBB) == (0x106), "NT_PPC_EBB != 0x106");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_EBB 0x106
#endif
-#if !(defined(NT_PPC_PMU) || (defined(HAVE_DECL_NT_PPC_PMU) && HAVE_DECL_NT_PPC_PMU))
+#if defined(NT_PPC_PMU) || (defined(HAVE_DECL_NT_PPC_PMU) && HAVE_DECL_NT_PPC_PMU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_PMU) == (0x107), "NT_PPC_PMU != 0x107");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_PMU 0x107
#endif
-#if !(defined(NT_PPC_TM_CGPR) || (defined(HAVE_DECL_NT_PPC_TM_CGPR) && HAVE_DECL_NT_PPC_TM_CGPR))
+#if defined(NT_PPC_TM_CGPR) || (defined(HAVE_DECL_NT_PPC_TM_CGPR) && HAVE_DECL_NT_PPC_TM_CGPR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_CGPR) == (0x108), "NT_PPC_TM_CGPR != 0x108");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_CGPR 0x108
#endif
-#if !(defined(NT_PPC_TM_CFPR) || (defined(HAVE_DECL_NT_PPC_TM_CFPR) && HAVE_DECL_NT_PPC_TM_CFPR))
+#if defined(NT_PPC_TM_CFPR) || (defined(HAVE_DECL_NT_PPC_TM_CFPR) && HAVE_DECL_NT_PPC_TM_CFPR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_CFPR) == (0x109), "NT_PPC_TM_CFPR != 0x109");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_CFPR 0x109
#endif
-#if !(defined(NT_PPC_TM_CVMX) || (defined(HAVE_DECL_NT_PPC_TM_CVMX) && HAVE_DECL_NT_PPC_TM_CVMX))
+#if defined(NT_PPC_TM_CVMX) || (defined(HAVE_DECL_NT_PPC_TM_CVMX) && HAVE_DECL_NT_PPC_TM_CVMX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_CVMX) == (0x10a), "NT_PPC_TM_CVMX != 0x10a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_CVMX 0x10a
#endif
-#if !(defined(NT_PPC_TM_CVSX) || (defined(HAVE_DECL_NT_PPC_TM_CVSX) && HAVE_DECL_NT_PPC_TM_CVSX))
+#if defined(NT_PPC_TM_CVSX) || (defined(HAVE_DECL_NT_PPC_TM_CVSX) && HAVE_DECL_NT_PPC_TM_CVSX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_CVSX) == (0x10b), "NT_PPC_TM_CVSX != 0x10b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_CVSX 0x10b
#endif
-#if !(defined(NT_PPC_TM_SPR) || (defined(HAVE_DECL_NT_PPC_TM_SPR) && HAVE_DECL_NT_PPC_TM_SPR))
+#if defined(NT_PPC_TM_SPR) || (defined(HAVE_DECL_NT_PPC_TM_SPR) && HAVE_DECL_NT_PPC_TM_SPR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_SPR) == (0x10c), "NT_PPC_TM_SPR != 0x10c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_SPR 0x10c
#endif
-#if !(defined(NT_PPC_TM_CTAR) || (defined(HAVE_DECL_NT_PPC_TM_CTAR) && HAVE_DECL_NT_PPC_TM_CTAR))
+#if defined(NT_PPC_TM_CTAR) || (defined(HAVE_DECL_NT_PPC_TM_CTAR) && HAVE_DECL_NT_PPC_TM_CTAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_CTAR) == (0x10d), "NT_PPC_TM_CTAR != 0x10d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_CTAR 0x10d
#endif
-#if !(defined(NT_PPC_TM_CPPR) || (defined(HAVE_DECL_NT_PPC_TM_CPPR) && HAVE_DECL_NT_PPC_TM_CPPR))
+#if defined(NT_PPC_TM_CPPR) || (defined(HAVE_DECL_NT_PPC_TM_CPPR) && HAVE_DECL_NT_PPC_TM_CPPR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_CPPR) == (0x10e), "NT_PPC_TM_CPPR != 0x10e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_CPPR 0x10e
#endif
-#if !(defined(NT_PPC_TM_CDSCR) || (defined(HAVE_DECL_NT_PPC_TM_CDSCR) && HAVE_DECL_NT_PPC_TM_CDSCR))
+#if defined(NT_PPC_TM_CDSCR) || (defined(HAVE_DECL_NT_PPC_TM_CDSCR) && HAVE_DECL_NT_PPC_TM_CDSCR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_TM_CDSCR) == (0x10f), "NT_PPC_TM_CDSCR != 0x10f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_TM_CDSCR 0x10f
#endif
-#if !(defined(NT_PPC_PKEY) || (defined(HAVE_DECL_NT_PPC_PKEY) && HAVE_DECL_NT_PPC_PKEY))
+#if defined(NT_PPC_PKEY) || (defined(HAVE_DECL_NT_PPC_PKEY) && HAVE_DECL_NT_PPC_PKEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_PPC_PKEY) == (0x110), "NT_PPC_PKEY != 0x110");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_PPC_PKEY 0x110
#endif
-#if !(defined(NT_386_TLS) || (defined(HAVE_DECL_NT_386_TLS) && HAVE_DECL_NT_386_TLS))
+#if defined(NT_386_TLS) || (defined(HAVE_DECL_NT_386_TLS) && HAVE_DECL_NT_386_TLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_386_TLS) == (0x200), "NT_386_TLS != 0x200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_386_TLS 0x200
#endif
-#if !(defined(NT_386_IOPERM) || (defined(HAVE_DECL_NT_386_IOPERM) && HAVE_DECL_NT_386_IOPERM))
+#if defined(NT_386_IOPERM) || (defined(HAVE_DECL_NT_386_IOPERM) && HAVE_DECL_NT_386_IOPERM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_386_IOPERM) == (0x201), "NT_386_IOPERM != 0x201");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_386_IOPERM 0x201
#endif
-#if !(defined(NT_X86_XSTATE) || (defined(HAVE_DECL_NT_X86_XSTATE) && HAVE_DECL_NT_X86_XSTATE))
+#if defined(NT_X86_XSTATE) || (defined(HAVE_DECL_NT_X86_XSTATE) && HAVE_DECL_NT_X86_XSTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_X86_XSTATE) == (0x202), "NT_X86_XSTATE != 0x202");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_X86_XSTATE 0x202
#endif
-#if !(defined(NT_S390_HIGH_GPRS) || (defined(HAVE_DECL_NT_S390_HIGH_GPRS) && HAVE_DECL_NT_S390_HIGH_GPRS))
+#if defined(NT_S390_HIGH_GPRS) || (defined(HAVE_DECL_NT_S390_HIGH_GPRS) && HAVE_DECL_NT_S390_HIGH_GPRS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_HIGH_GPRS) == (0x300), "NT_S390_HIGH_GPRS != 0x300");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_HIGH_GPRS 0x300
#endif
-#if !(defined(NT_S390_TIMER) || (defined(HAVE_DECL_NT_S390_TIMER) && HAVE_DECL_NT_S390_TIMER))
+#if defined(NT_S390_TIMER) || (defined(HAVE_DECL_NT_S390_TIMER) && HAVE_DECL_NT_S390_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_TIMER) == (0x301), "NT_S390_TIMER != 0x301");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_TIMER 0x301
#endif
-#if !(defined(NT_S390_TODCMP) || (defined(HAVE_DECL_NT_S390_TODCMP) && HAVE_DECL_NT_S390_TODCMP))
+#if defined(NT_S390_TODCMP) || (defined(HAVE_DECL_NT_S390_TODCMP) && HAVE_DECL_NT_S390_TODCMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_TODCMP) == (0x302), "NT_S390_TODCMP != 0x302");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_TODCMP 0x302
#endif
-#if !(defined(NT_S390_TODPREG) || (defined(HAVE_DECL_NT_S390_TODPREG) && HAVE_DECL_NT_S390_TODPREG))
+#if defined(NT_S390_TODPREG) || (defined(HAVE_DECL_NT_S390_TODPREG) && HAVE_DECL_NT_S390_TODPREG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_TODPREG) == (0x303), "NT_S390_TODPREG != 0x303");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_TODPREG 0x303
#endif
-#if !(defined(NT_S390_CTRS) || (defined(HAVE_DECL_NT_S390_CTRS) && HAVE_DECL_NT_S390_CTRS))
+#if defined(NT_S390_CTRS) || (defined(HAVE_DECL_NT_S390_CTRS) && HAVE_DECL_NT_S390_CTRS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_CTRS) == (0x304), "NT_S390_CTRS != 0x304");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_CTRS 0x304
#endif
-#if !(defined(NT_S390_PREFIX) || (defined(HAVE_DECL_NT_S390_PREFIX) && HAVE_DECL_NT_S390_PREFIX))
+#if defined(NT_S390_PREFIX) || (defined(HAVE_DECL_NT_S390_PREFIX) && HAVE_DECL_NT_S390_PREFIX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_PREFIX) == (0x305), "NT_S390_PREFIX != 0x305");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_PREFIX 0x305
#endif
-#if !(defined(NT_S390_LAST_BREAK) || (defined(HAVE_DECL_NT_S390_LAST_BREAK) && HAVE_DECL_NT_S390_LAST_BREAK))
+#if defined(NT_S390_LAST_BREAK) || (defined(HAVE_DECL_NT_S390_LAST_BREAK) && HAVE_DECL_NT_S390_LAST_BREAK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_LAST_BREAK) == (0x306), "NT_S390_LAST_BREAK != 0x306");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_LAST_BREAK 0x306
#endif
-#if !(defined(NT_S390_SYSTEM_CALL) || (defined(HAVE_DECL_NT_S390_SYSTEM_CALL) && HAVE_DECL_NT_S390_SYSTEM_CALL))
+#if defined(NT_S390_SYSTEM_CALL) || (defined(HAVE_DECL_NT_S390_SYSTEM_CALL) && HAVE_DECL_NT_S390_SYSTEM_CALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_SYSTEM_CALL) == (0x307), "NT_S390_SYSTEM_CALL != 0x307");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_SYSTEM_CALL 0x307
#endif
-#if !(defined(NT_S390_TDB) || (defined(HAVE_DECL_NT_S390_TDB) && HAVE_DECL_NT_S390_TDB))
+#if defined(NT_S390_TDB) || (defined(HAVE_DECL_NT_S390_TDB) && HAVE_DECL_NT_S390_TDB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_TDB) == (0x308), "NT_S390_TDB != 0x308");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_TDB 0x308
#endif
-#if !(defined(NT_S390_VXRS_LOW) || (defined(HAVE_DECL_NT_S390_VXRS_LOW) && HAVE_DECL_NT_S390_VXRS_LOW))
+#if defined(NT_S390_VXRS_LOW) || (defined(HAVE_DECL_NT_S390_VXRS_LOW) && HAVE_DECL_NT_S390_VXRS_LOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_VXRS_LOW) == (0x309), "NT_S390_VXRS_LOW != 0x309");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_VXRS_LOW 0x309
#endif
-#if !(defined(NT_S390_VXRS_HIGH) || (defined(HAVE_DECL_NT_S390_VXRS_HIGH) && HAVE_DECL_NT_S390_VXRS_HIGH))
+#if defined(NT_S390_VXRS_HIGH) || (defined(HAVE_DECL_NT_S390_VXRS_HIGH) && HAVE_DECL_NT_S390_VXRS_HIGH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_VXRS_HIGH) == (0x30a), "NT_S390_VXRS_HIGH != 0x30a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_VXRS_HIGH 0x30a
#endif
-#if !(defined(NT_S390_GS_CB) || (defined(HAVE_DECL_NT_S390_GS_CB) && HAVE_DECL_NT_S390_GS_CB))
+#if defined(NT_S390_GS_CB) || (defined(HAVE_DECL_NT_S390_GS_CB) && HAVE_DECL_NT_S390_GS_CB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_GS_CB) == (0x30b), "NT_S390_GS_CB != 0x30b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_GS_CB 0x30b
#endif
-#if !(defined(NT_S390_GS_BC) || (defined(HAVE_DECL_NT_S390_GS_BC) && HAVE_DECL_NT_S390_GS_BC))
+#if defined(NT_S390_GS_BC) || (defined(HAVE_DECL_NT_S390_GS_BC) && HAVE_DECL_NT_S390_GS_BC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_GS_BC) == (0x30c), "NT_S390_GS_BC != 0x30c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_GS_BC 0x30c
#endif
-#if !(defined(NT_S390_RI_CB) || (defined(HAVE_DECL_NT_S390_RI_CB) && HAVE_DECL_NT_S390_RI_CB))
+#if defined(NT_S390_RI_CB) || (defined(HAVE_DECL_NT_S390_RI_CB) && HAVE_DECL_NT_S390_RI_CB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_S390_RI_CB) == (0x30d), "NT_S390_RI_CB != 0x30d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_S390_RI_CB 0x30d
#endif
-#if !(defined(NT_ARM_VFP) || (defined(HAVE_DECL_NT_ARM_VFP) && HAVE_DECL_NT_ARM_VFP))
+#if defined(NT_ARM_VFP) || (defined(HAVE_DECL_NT_ARM_VFP) && HAVE_DECL_NT_ARM_VFP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ARM_VFP) == (0x400), "NT_ARM_VFP != 0x400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ARM_VFP 0x400
#endif
-#if !(defined(NT_ARM_TLS) || (defined(HAVE_DECL_NT_ARM_TLS) && HAVE_DECL_NT_ARM_TLS))
+#if defined(NT_ARM_TLS) || (defined(HAVE_DECL_NT_ARM_TLS) && HAVE_DECL_NT_ARM_TLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ARM_TLS) == (0x401), "NT_ARM_TLS != 0x401");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ARM_TLS 0x401
#endif
-#if !(defined(NT_ARM_HW_BREAK) || (defined(HAVE_DECL_NT_ARM_HW_BREAK) && HAVE_DECL_NT_ARM_HW_BREAK))
+#if defined(NT_ARM_HW_BREAK) || (defined(HAVE_DECL_NT_ARM_HW_BREAK) && HAVE_DECL_NT_ARM_HW_BREAK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ARM_HW_BREAK) == (0x402), "NT_ARM_HW_BREAK != 0x402");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ARM_HW_BREAK 0x402
#endif
-#if !(defined(NT_ARM_HW_WATCH) || (defined(HAVE_DECL_NT_ARM_HW_WATCH) && HAVE_DECL_NT_ARM_HW_WATCH))
+#if defined(NT_ARM_HW_WATCH) || (defined(HAVE_DECL_NT_ARM_HW_WATCH) && HAVE_DECL_NT_ARM_HW_WATCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ARM_HW_WATCH) == (0x403), "NT_ARM_HW_WATCH != 0x403");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ARM_HW_WATCH 0x403
#endif
-#if !(defined(NT_ARM_SYSTEM_CALL) || (defined(HAVE_DECL_NT_ARM_SYSTEM_CALL) && HAVE_DECL_NT_ARM_SYSTEM_CALL))
+#if defined(NT_ARM_SYSTEM_CALL) || (defined(HAVE_DECL_NT_ARM_SYSTEM_CALL) && HAVE_DECL_NT_ARM_SYSTEM_CALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ARM_SYSTEM_CALL) == (0x404), "NT_ARM_SYSTEM_CALL != 0x404");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ARM_SYSTEM_CALL 0x404
#endif
-#if !(defined(NT_ARM_SVE) || (defined(HAVE_DECL_NT_ARM_SVE) && HAVE_DECL_NT_ARM_SVE))
+#if defined(NT_ARM_SVE) || (defined(HAVE_DECL_NT_ARM_SVE) && HAVE_DECL_NT_ARM_SVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ARM_SVE) == (0x405), "NT_ARM_SVE != 0x405");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ARM_SVE 0x405
#endif
-#if !(defined(NT_METAG_CBUF) || (defined(HAVE_DECL_NT_METAG_CBUF) && HAVE_DECL_NT_METAG_CBUF))
+#if defined(NT_METAG_CBUF) || (defined(HAVE_DECL_NT_METAG_CBUF) && HAVE_DECL_NT_METAG_CBUF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_METAG_CBUF) == (0x500), "NT_METAG_CBUF != 0x500");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_METAG_CBUF 0x500
#endif
-#if !(defined(NT_METAG_RPIPE) || (defined(HAVE_DECL_NT_METAG_RPIPE) && HAVE_DECL_NT_METAG_RPIPE))
+#if defined(NT_METAG_RPIPE) || (defined(HAVE_DECL_NT_METAG_RPIPE) && HAVE_DECL_NT_METAG_RPIPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_METAG_RPIPE) == (0x501), "NT_METAG_RPIPE != 0x501");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_METAG_RPIPE 0x501
#endif
-#if !(defined(NT_METAG_TLS) || (defined(HAVE_DECL_NT_METAG_TLS) && HAVE_DECL_NT_METAG_TLS))
+#if defined(NT_METAG_TLS) || (defined(HAVE_DECL_NT_METAG_TLS) && HAVE_DECL_NT_METAG_TLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_METAG_TLS) == (0x502), "NT_METAG_TLS != 0x502");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_METAG_TLS 0x502
#endif
-#if !(defined(NT_ARC_V2) || (defined(HAVE_DECL_NT_ARC_V2) && HAVE_DECL_NT_ARC_V2))
+#if defined(NT_ARC_V2) || (defined(HAVE_DECL_NT_ARC_V2) && HAVE_DECL_NT_ARC_V2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NT_ARC_V2) == (0x600), "NT_ARC_V2 != 0x600");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NT_ARC_V2 0x600
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat nt_descriptor_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat nt_descriptor_types in mpers mode
+
+# else
static
const struct xlat nt_descriptor_types[] = {
@@ -263,4 +521,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/numa_node.h b/xlat/numa_node.h
new file mode 100644
index 0000000..0d16745
--- /dev/null
+++ b/xlat/numa_node.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/numa_node.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NUMA_NO_NODE) || (defined(HAVE_DECL_NUMA_NO_NODE) && HAVE_DECL_NUMA_NO_NODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NUMA_NO_NODE) == (-1U), "NUMA_NO_NODE != -1U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NUMA_NO_NODE -1U
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat numa_node in mpers mode
+
+# else
+
+static
+const struct xlat numa_node[] = {
+ XLAT(NUMA_NO_NODE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/numa_node.in b/xlat/numa_node.in
new file mode 100644
index 0000000..414b35a
--- /dev/null
+++ b/xlat/numa_node.in
@@ -0,0 +1 @@
+NUMA_NO_NODE -1U
diff --git a/xlat/open_access_modes.h b/xlat/open_access_modes.h
index 8b11517..7577851 100644
--- a/xlat/open_access_modes.h
+++ b/xlat/open_access_modes.h
@@ -1,6 +1,12 @@
/* Generated by ./xlat/gen.sh from ./xlat/open_access_modes.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat open_access_modes[] = {
#if defined(O_RDONLY) || (defined(HAVE_DECL_O_RDONLY) && HAVE_DECL_O_RDONLY)
@@ -18,4 +24,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/open_mode_flags.h b/xlat/open_mode_flags.h
index 1dfb186..126ddd7 100644
--- a/xlat/open_mode_flags.h
+++ b/xlat/open_mode_flags.h
@@ -1,8 +1,14 @@
/* Generated by ./xlat/gen.sh from ./xlat/open_mode_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
#if defined(O_NDELAY) && (O_NDELAY != O_NONBLOCK)
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat open_mode_flags[] = {
#if defined(O_CREAT) || (defined(HAVE_DECL_O_CREAT) && HAVE_DECL_O_CREAT)
@@ -123,4 +129,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/packet_diag_attrs.h b/xlat/packet_diag_attrs.h
index 83bf88a..90253b8 100644
--- a/xlat/packet_diag_attrs.h
+++ b/xlat/packet_diag_attrs.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/packet_diag_attrs.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat packet_diag_attrs in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat packet_diag_attrs in mpers mode
+
+# else
static
const struct xlat packet_diag_attrs[] = {
@@ -19,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/packet_diag_info_flags.h b/xlat/packet_diag_info_flags.h
index b7a1a7b..8a083da 100644
--- a/xlat/packet_diag_info_flags.h
+++ b/xlat/packet_diag_info_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/packet_diag_info_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat packet_diag_info_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat packet_diag_info_flags in mpers mode
+
+# else
static
const struct xlat packet_diag_info_flags[] = {
@@ -26,4 +32,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/packet_diag_show.h b/xlat/packet_diag_show.h
index 76d84fa..40df973 100644
--- a/xlat/packet_diag_show.h
+++ b/xlat/packet_diag_show.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/packet_diag_show.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat packet_diag_show in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat packet_diag_show in mpers mode
+
+# else
static
const struct xlat packet_diag_show[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/packet_mreq_type.h b/xlat/packet_mreq_type.h
index 012d3e7..c1448d3 100644
--- a/xlat/packet_mreq_type.h
+++ b/xlat/packet_mreq_type.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/packet_mreq_type.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat packet_mreq_type in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat packet_mreq_type in mpers mode
+
+# else
static
const struct xlat packet_mreq_type[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_attr_size.h b/xlat/perf_attr_size.h
index ecebb4d..fa876d3 100644
--- a/xlat/perf_attr_size.h
+++ b/xlat/perf_attr_size.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_attr_size.in; do not edit. */
-#if !(defined(PERF_ATTR_SIZE_VER0) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER0) && HAVE_DECL_PERF_ATTR_SIZE_VER0))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_ATTR_SIZE_VER0) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER0) && HAVE_DECL_PERF_ATTR_SIZE_VER0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_ATTR_SIZE_VER0) == (64), "PERF_ATTR_SIZE_VER0 != 64");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_ATTR_SIZE_VER0 64
#endif
-#if !(defined(PERF_ATTR_SIZE_VER1) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER1) && HAVE_DECL_PERF_ATTR_SIZE_VER1))
+#if defined(PERF_ATTR_SIZE_VER1) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER1) && HAVE_DECL_PERF_ATTR_SIZE_VER1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_ATTR_SIZE_VER1) == (72), "PERF_ATTR_SIZE_VER1 != 72");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_ATTR_SIZE_VER1 72
#endif
-#if !(defined(PERF_ATTR_SIZE_VER2) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER2) && HAVE_DECL_PERF_ATTR_SIZE_VER2))
+#if defined(PERF_ATTR_SIZE_VER2) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER2) && HAVE_DECL_PERF_ATTR_SIZE_VER2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_ATTR_SIZE_VER2) == (80), "PERF_ATTR_SIZE_VER2 != 80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_ATTR_SIZE_VER2 80
#endif
-#if !(defined(PERF_ATTR_SIZE_VER3) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER3) && HAVE_DECL_PERF_ATTR_SIZE_VER3))
+#if defined(PERF_ATTR_SIZE_VER3) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER3) && HAVE_DECL_PERF_ATTR_SIZE_VER3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_ATTR_SIZE_VER3) == (96), "PERF_ATTR_SIZE_VER3 != 96");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_ATTR_SIZE_VER3 96
#endif
-#if !(defined(PERF_ATTR_SIZE_VER4) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER4) && HAVE_DECL_PERF_ATTR_SIZE_VER4))
+#if defined(PERF_ATTR_SIZE_VER4) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER4) && HAVE_DECL_PERF_ATTR_SIZE_VER4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_ATTR_SIZE_VER4) == (104), "PERF_ATTR_SIZE_VER4 != 104");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_ATTR_SIZE_VER4 104
#endif
-#if !(defined(PERF_ATTR_SIZE_VER5) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER5) && HAVE_DECL_PERF_ATTR_SIZE_VER5))
+#if defined(PERF_ATTR_SIZE_VER5) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER5) && HAVE_DECL_PERF_ATTR_SIZE_VER5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_ATTR_SIZE_VER5) == (112), "PERF_ATTR_SIZE_VER5 != 112");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_ATTR_SIZE_VER5 112
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_attr_size in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_attr_size in mpers mode
+
+# else
static
const struct xlat perf_attr_size[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_branch_sample_type.h b/xlat/perf_branch_sample_type.h
index 7c6a5bf..3632fa8 100644
--- a/xlat/perf_branch_sample_type.h
+++ b/xlat/perf_branch_sample_type.h
@@ -1,61 +1,135 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_branch_sample_type.in; do not edit. */
-#if !(defined(PERF_SAMPLE_BRANCH_USER) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_USER) && HAVE_DECL_PERF_SAMPLE_BRANCH_USER))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_SAMPLE_BRANCH_USER) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_USER) && HAVE_DECL_PERF_SAMPLE_BRANCH_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_USER) == (1 << 0), "PERF_SAMPLE_BRANCH_USER != 1 << 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_USER 1 << 0
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_KERNEL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_KERNEL) && HAVE_DECL_PERF_SAMPLE_BRANCH_KERNEL))
+#if defined(PERF_SAMPLE_BRANCH_KERNEL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_KERNEL) && HAVE_DECL_PERF_SAMPLE_BRANCH_KERNEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_KERNEL) == (1 << 1), "PERF_SAMPLE_BRANCH_KERNEL != 1 << 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_KERNEL 1 << 1
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_HV) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_HV) && HAVE_DECL_PERF_SAMPLE_BRANCH_HV))
+#if defined(PERF_SAMPLE_BRANCH_HV) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_HV) && HAVE_DECL_PERF_SAMPLE_BRANCH_HV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_HV) == (1 << 2), "PERF_SAMPLE_BRANCH_HV != 1 << 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_HV 1 << 2
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_ANY) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ANY) && HAVE_DECL_PERF_SAMPLE_BRANCH_ANY))
+#if defined(PERF_SAMPLE_BRANCH_ANY) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ANY) && HAVE_DECL_PERF_SAMPLE_BRANCH_ANY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_ANY) == (1 << 3), "PERF_SAMPLE_BRANCH_ANY != 1 << 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_ANY 1 << 3
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_ANY_CALL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_CALL) && HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_CALL))
+#if defined(PERF_SAMPLE_BRANCH_ANY_CALL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_CALL) && HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_CALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_ANY_CALL) == (1 << 4), "PERF_SAMPLE_BRANCH_ANY_CALL != 1 << 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_ANY_CALL 1 << 4
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_ANY_RETURN) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_RETURN) && HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_RETURN))
+#if defined(PERF_SAMPLE_BRANCH_ANY_RETURN) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_RETURN) && HAVE_DECL_PERF_SAMPLE_BRANCH_ANY_RETURN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_ANY_RETURN) == (1 << 5), "PERF_SAMPLE_BRANCH_ANY_RETURN != 1 << 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_ANY_RETURN 1 << 5
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_IND_CALL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_IND_CALL) && HAVE_DECL_PERF_SAMPLE_BRANCH_IND_CALL))
+#if defined(PERF_SAMPLE_BRANCH_IND_CALL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_IND_CALL) && HAVE_DECL_PERF_SAMPLE_BRANCH_IND_CALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_IND_CALL) == (1 << 6), "PERF_SAMPLE_BRANCH_IND_CALL != 1 << 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_IND_CALL 1 << 6
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_ABORT_TX) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ABORT_TX) && HAVE_DECL_PERF_SAMPLE_BRANCH_ABORT_TX))
+#if defined(PERF_SAMPLE_BRANCH_ABORT_TX) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_ABORT_TX) && HAVE_DECL_PERF_SAMPLE_BRANCH_ABORT_TX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_ABORT_TX) == (1 << 7), "PERF_SAMPLE_BRANCH_ABORT_TX != 1 << 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_ABORT_TX 1 << 7
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_IN_TX) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_IN_TX) && HAVE_DECL_PERF_SAMPLE_BRANCH_IN_TX))
+#if defined(PERF_SAMPLE_BRANCH_IN_TX) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_IN_TX) && HAVE_DECL_PERF_SAMPLE_BRANCH_IN_TX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_IN_TX) == (1 << 8), "PERF_SAMPLE_BRANCH_IN_TX != 1 << 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_IN_TX 1 << 8
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_NO_TX) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_NO_TX) && HAVE_DECL_PERF_SAMPLE_BRANCH_NO_TX))
+#if defined(PERF_SAMPLE_BRANCH_NO_TX) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_NO_TX) && HAVE_DECL_PERF_SAMPLE_BRANCH_NO_TX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_NO_TX) == (1 << 9), "PERF_SAMPLE_BRANCH_NO_TX != 1 << 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_NO_TX 1 << 9
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_COND) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_COND) && HAVE_DECL_PERF_SAMPLE_BRANCH_COND))
+#if defined(PERF_SAMPLE_BRANCH_COND) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_COND) && HAVE_DECL_PERF_SAMPLE_BRANCH_COND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_COND) == (1 << 10), "PERF_SAMPLE_BRANCH_COND != 1 << 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_COND 1 << 10
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_CALL_STACK) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_CALL_STACK) && HAVE_DECL_PERF_SAMPLE_BRANCH_CALL_STACK))
+#if defined(PERF_SAMPLE_BRANCH_CALL_STACK) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_CALL_STACK) && HAVE_DECL_PERF_SAMPLE_BRANCH_CALL_STACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_CALL_STACK) == (1 << 11), "PERF_SAMPLE_BRANCH_CALL_STACK != 1 << 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_CALL_STACK 1 << 11
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_IND_JUMP) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_IND_JUMP) && HAVE_DECL_PERF_SAMPLE_BRANCH_IND_JUMP))
+#if defined(PERF_SAMPLE_BRANCH_IND_JUMP) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_IND_JUMP) && HAVE_DECL_PERF_SAMPLE_BRANCH_IND_JUMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_IND_JUMP) == (1 << 12), "PERF_SAMPLE_BRANCH_IND_JUMP != 1 << 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_IND_JUMP 1 << 12
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_CALL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_CALL) && HAVE_DECL_PERF_SAMPLE_BRANCH_CALL))
+#if defined(PERF_SAMPLE_BRANCH_CALL) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_CALL) && HAVE_DECL_PERF_SAMPLE_BRANCH_CALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_CALL) == (1 << 13), "PERF_SAMPLE_BRANCH_CALL != 1 << 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_CALL 1 << 13
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_NO_FLAGS) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_NO_FLAGS) && HAVE_DECL_PERF_SAMPLE_BRANCH_NO_FLAGS))
+#if defined(PERF_SAMPLE_BRANCH_NO_FLAGS) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_NO_FLAGS) && HAVE_DECL_PERF_SAMPLE_BRANCH_NO_FLAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_NO_FLAGS) == (1 << 14), "PERF_SAMPLE_BRANCH_NO_FLAGS != 1 << 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_NO_FLAGS 1 << 14
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_NO_CYCLES) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_NO_CYCLES) && HAVE_DECL_PERF_SAMPLE_BRANCH_NO_CYCLES))
+#if defined(PERF_SAMPLE_BRANCH_NO_CYCLES) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_NO_CYCLES) && HAVE_DECL_PERF_SAMPLE_BRANCH_NO_CYCLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_NO_CYCLES) == (1 << 15), "PERF_SAMPLE_BRANCH_NO_CYCLES != 1 << 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_NO_CYCLES 1 << 15
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_TYPE_SAVE) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_TYPE_SAVE) && HAVE_DECL_PERF_SAMPLE_BRANCH_TYPE_SAVE))
+#if defined(PERF_SAMPLE_BRANCH_TYPE_SAVE) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_TYPE_SAVE) && HAVE_DECL_PERF_SAMPLE_BRANCH_TYPE_SAVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_TYPE_SAVE) == (1 << 16), "PERF_SAMPLE_BRANCH_TYPE_SAVE != 1 << 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_TYPE_SAVE 1 << 16
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_branch_sample_type in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_branch_sample_type in mpers mode
+
+# else
static
const struct xlat perf_branch_sample_type[] = {
@@ -79,4 +153,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_event_open_flags.h b/xlat/perf_event_open_flags.h
index 922f9c4..86475b9 100644
--- a/xlat/perf_event_open_flags.h
+++ b/xlat/perf_event_open_flags.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_event_open_flags.in; do not edit. */
-#if !(defined(PERF_FLAG_FD_NO_GROUP) || (defined(HAVE_DECL_PERF_FLAG_FD_NO_GROUP) && HAVE_DECL_PERF_FLAG_FD_NO_GROUP))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_FLAG_FD_NO_GROUP) || (defined(HAVE_DECL_PERF_FLAG_FD_NO_GROUP) && HAVE_DECL_PERF_FLAG_FD_NO_GROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FLAG_FD_NO_GROUP) == (1), "PERF_FLAG_FD_NO_GROUP != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FLAG_FD_NO_GROUP 1
#endif
-#if !(defined(PERF_FLAG_FD_OUTPUT) || (defined(HAVE_DECL_PERF_FLAG_FD_OUTPUT) && HAVE_DECL_PERF_FLAG_FD_OUTPUT))
+#if defined(PERF_FLAG_FD_OUTPUT) || (defined(HAVE_DECL_PERF_FLAG_FD_OUTPUT) && HAVE_DECL_PERF_FLAG_FD_OUTPUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FLAG_FD_OUTPUT) == (2), "PERF_FLAG_FD_OUTPUT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FLAG_FD_OUTPUT 2
#endif
-#if !(defined(PERF_FLAG_PID_CGROUP) || (defined(HAVE_DECL_PERF_FLAG_PID_CGROUP) && HAVE_DECL_PERF_FLAG_PID_CGROUP))
+#if defined(PERF_FLAG_PID_CGROUP) || (defined(HAVE_DECL_PERF_FLAG_PID_CGROUP) && HAVE_DECL_PERF_FLAG_PID_CGROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FLAG_PID_CGROUP) == (4), "PERF_FLAG_PID_CGROUP != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FLAG_PID_CGROUP 4
#endif
-#if !(defined(PERF_FLAG_FD_CLOEXEC) || (defined(HAVE_DECL_PERF_FLAG_FD_CLOEXEC) && HAVE_DECL_PERF_FLAG_FD_CLOEXEC))
+#if defined(PERF_FLAG_FD_CLOEXEC) || (defined(HAVE_DECL_PERF_FLAG_FD_CLOEXEC) && HAVE_DECL_PERF_FLAG_FD_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FLAG_FD_CLOEXEC) == (8), "PERF_FLAG_FD_CLOEXEC != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FLAG_FD_CLOEXEC 8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_event_open_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_event_open_flags in mpers mode
+
+# else
static
const struct xlat perf_event_open_flags[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_event_read_format.h b/xlat/perf_event_read_format.h
index 7b4c71d..0c74308 100644
--- a/xlat/perf_event_read_format.h
+++ b/xlat/perf_event_read_format.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_event_read_format.in; do not edit. */
-#if !(defined(PERF_FORMAT_TOTAL_TIME_ENABLED) || (defined(HAVE_DECL_PERF_FORMAT_TOTAL_TIME_ENABLED) && HAVE_DECL_PERF_FORMAT_TOTAL_TIME_ENABLED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_FORMAT_TOTAL_TIME_ENABLED) || (defined(HAVE_DECL_PERF_FORMAT_TOTAL_TIME_ENABLED) && HAVE_DECL_PERF_FORMAT_TOTAL_TIME_ENABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FORMAT_TOTAL_TIME_ENABLED) == (1 << 0), "PERF_FORMAT_TOTAL_TIME_ENABLED != 1 << 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FORMAT_TOTAL_TIME_ENABLED 1 << 0
#endif
-#if !(defined(PERF_FORMAT_TOTAL_TIME_RUNNING) || (defined(HAVE_DECL_PERF_FORMAT_TOTAL_TIME_RUNNING) && HAVE_DECL_PERF_FORMAT_TOTAL_TIME_RUNNING))
+#if defined(PERF_FORMAT_TOTAL_TIME_RUNNING) || (defined(HAVE_DECL_PERF_FORMAT_TOTAL_TIME_RUNNING) && HAVE_DECL_PERF_FORMAT_TOTAL_TIME_RUNNING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FORMAT_TOTAL_TIME_RUNNING) == (1 << 1), "PERF_FORMAT_TOTAL_TIME_RUNNING != 1 << 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FORMAT_TOTAL_TIME_RUNNING 1 << 1
#endif
-#if !(defined(PERF_FORMAT_ID) || (defined(HAVE_DECL_PERF_FORMAT_ID) && HAVE_DECL_PERF_FORMAT_ID))
+#if defined(PERF_FORMAT_ID) || (defined(HAVE_DECL_PERF_FORMAT_ID) && HAVE_DECL_PERF_FORMAT_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FORMAT_ID) == (1 << 2), "PERF_FORMAT_ID != 1 << 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FORMAT_ID 1 << 2
#endif
-#if !(defined(PERF_FORMAT_GROUP) || (defined(HAVE_DECL_PERF_FORMAT_GROUP) && HAVE_DECL_PERF_FORMAT_GROUP))
+#if defined(PERF_FORMAT_GROUP) || (defined(HAVE_DECL_PERF_FORMAT_GROUP) && HAVE_DECL_PERF_FORMAT_GROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_FORMAT_GROUP) == (1 << 3), "PERF_FORMAT_GROUP != 1 << 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_FORMAT_GROUP 1 << 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_event_read_format in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_event_read_format in mpers mode
+
+# else
static
const struct xlat perf_event_read_format[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_event_sample_format.h b/xlat/perf_event_sample_format.h
index 42094ba..3adda9c 100644
--- a/xlat/perf_event_sample_format.h
+++ b/xlat/perf_event_sample_format.h
@@ -1,70 +1,156 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_event_sample_format.in; do not edit. */
-#if !(defined(PERF_SAMPLE_IP) || (defined(HAVE_DECL_PERF_SAMPLE_IP) && HAVE_DECL_PERF_SAMPLE_IP))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_SAMPLE_IP) || (defined(HAVE_DECL_PERF_SAMPLE_IP) && HAVE_DECL_PERF_SAMPLE_IP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_IP) == (1 << 0), "PERF_SAMPLE_IP != 1 << 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_IP 1 << 0
#endif
-#if !(defined(PERF_SAMPLE_TID) || (defined(HAVE_DECL_PERF_SAMPLE_TID) && HAVE_DECL_PERF_SAMPLE_TID))
+#if defined(PERF_SAMPLE_TID) || (defined(HAVE_DECL_PERF_SAMPLE_TID) && HAVE_DECL_PERF_SAMPLE_TID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_TID) == (1 << 1), "PERF_SAMPLE_TID != 1 << 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_TID 1 << 1
#endif
-#if !(defined(PERF_SAMPLE_TIME) || (defined(HAVE_DECL_PERF_SAMPLE_TIME) && HAVE_DECL_PERF_SAMPLE_TIME))
+#if defined(PERF_SAMPLE_TIME) || (defined(HAVE_DECL_PERF_SAMPLE_TIME) && HAVE_DECL_PERF_SAMPLE_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_TIME) == (1 << 2), "PERF_SAMPLE_TIME != 1 << 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_TIME 1 << 2
#endif
-#if !(defined(PERF_SAMPLE_ADDR) || (defined(HAVE_DECL_PERF_SAMPLE_ADDR) && HAVE_DECL_PERF_SAMPLE_ADDR))
+#if defined(PERF_SAMPLE_ADDR) || (defined(HAVE_DECL_PERF_SAMPLE_ADDR) && HAVE_DECL_PERF_SAMPLE_ADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_ADDR) == (1 << 3), "PERF_SAMPLE_ADDR != 1 << 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_ADDR 1 << 3
#endif
-#if !(defined(PERF_SAMPLE_READ) || (defined(HAVE_DECL_PERF_SAMPLE_READ) && HAVE_DECL_PERF_SAMPLE_READ))
+#if defined(PERF_SAMPLE_READ) || (defined(HAVE_DECL_PERF_SAMPLE_READ) && HAVE_DECL_PERF_SAMPLE_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_READ) == (1 << 4), "PERF_SAMPLE_READ != 1 << 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_READ 1 << 4
#endif
-#if !(defined(PERF_SAMPLE_CALLCHAIN) || (defined(HAVE_DECL_PERF_SAMPLE_CALLCHAIN) && HAVE_DECL_PERF_SAMPLE_CALLCHAIN))
+#if defined(PERF_SAMPLE_CALLCHAIN) || (defined(HAVE_DECL_PERF_SAMPLE_CALLCHAIN) && HAVE_DECL_PERF_SAMPLE_CALLCHAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_CALLCHAIN) == (1 << 5), "PERF_SAMPLE_CALLCHAIN != 1 << 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_CALLCHAIN 1 << 5
#endif
-#if !(defined(PERF_SAMPLE_ID) || (defined(HAVE_DECL_PERF_SAMPLE_ID) && HAVE_DECL_PERF_SAMPLE_ID))
+#if defined(PERF_SAMPLE_ID) || (defined(HAVE_DECL_PERF_SAMPLE_ID) && HAVE_DECL_PERF_SAMPLE_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_ID) == (1 << 6), "PERF_SAMPLE_ID != 1 << 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_ID 1 << 6
#endif
-#if !(defined(PERF_SAMPLE_CPU) || (defined(HAVE_DECL_PERF_SAMPLE_CPU) && HAVE_DECL_PERF_SAMPLE_CPU))
+#if defined(PERF_SAMPLE_CPU) || (defined(HAVE_DECL_PERF_SAMPLE_CPU) && HAVE_DECL_PERF_SAMPLE_CPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_CPU) == (1 << 7), "PERF_SAMPLE_CPU != 1 << 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_CPU 1 << 7
#endif
-#if !(defined(PERF_SAMPLE_PERIOD) || (defined(HAVE_DECL_PERF_SAMPLE_PERIOD) && HAVE_DECL_PERF_SAMPLE_PERIOD))
+#if defined(PERF_SAMPLE_PERIOD) || (defined(HAVE_DECL_PERF_SAMPLE_PERIOD) && HAVE_DECL_PERF_SAMPLE_PERIOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_PERIOD) == (1 << 8), "PERF_SAMPLE_PERIOD != 1 << 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_PERIOD 1 << 8
#endif
-#if !(defined(PERF_SAMPLE_STREAM_ID) || (defined(HAVE_DECL_PERF_SAMPLE_STREAM_ID) && HAVE_DECL_PERF_SAMPLE_STREAM_ID))
+#if defined(PERF_SAMPLE_STREAM_ID) || (defined(HAVE_DECL_PERF_SAMPLE_STREAM_ID) && HAVE_DECL_PERF_SAMPLE_STREAM_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_STREAM_ID) == (1 << 9), "PERF_SAMPLE_STREAM_ID != 1 << 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_STREAM_ID 1 << 9
#endif
-#if !(defined(PERF_SAMPLE_RAW) || (defined(HAVE_DECL_PERF_SAMPLE_RAW) && HAVE_DECL_PERF_SAMPLE_RAW))
+#if defined(PERF_SAMPLE_RAW) || (defined(HAVE_DECL_PERF_SAMPLE_RAW) && HAVE_DECL_PERF_SAMPLE_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_RAW) == (1 << 10), "PERF_SAMPLE_RAW != 1 << 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_RAW 1 << 10
#endif
-#if !(defined(PERF_SAMPLE_BRANCH_STACK) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_STACK) && HAVE_DECL_PERF_SAMPLE_BRANCH_STACK))
+#if defined(PERF_SAMPLE_BRANCH_STACK) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_STACK) && HAVE_DECL_PERF_SAMPLE_BRANCH_STACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_BRANCH_STACK) == (1 << 11), "PERF_SAMPLE_BRANCH_STACK != 1 << 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_BRANCH_STACK 1 << 11
#endif
-#if !(defined(PERF_SAMPLE_REGS_USER) || (defined(HAVE_DECL_PERF_SAMPLE_REGS_USER) && HAVE_DECL_PERF_SAMPLE_REGS_USER))
+#if defined(PERF_SAMPLE_REGS_USER) || (defined(HAVE_DECL_PERF_SAMPLE_REGS_USER) && HAVE_DECL_PERF_SAMPLE_REGS_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_REGS_USER) == (1 << 12), "PERF_SAMPLE_REGS_USER != 1 << 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_REGS_USER 1 << 12
#endif
-#if !(defined(PERF_SAMPLE_STACK_USER) || (defined(HAVE_DECL_PERF_SAMPLE_STACK_USER) && HAVE_DECL_PERF_SAMPLE_STACK_USER))
+#if defined(PERF_SAMPLE_STACK_USER) || (defined(HAVE_DECL_PERF_SAMPLE_STACK_USER) && HAVE_DECL_PERF_SAMPLE_STACK_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_STACK_USER) == (1 << 13), "PERF_SAMPLE_STACK_USER != 1 << 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_STACK_USER 1 << 13
#endif
-#if !(defined(PERF_SAMPLE_WEIGHT) || (defined(HAVE_DECL_PERF_SAMPLE_WEIGHT) && HAVE_DECL_PERF_SAMPLE_WEIGHT))
+#if defined(PERF_SAMPLE_WEIGHT) || (defined(HAVE_DECL_PERF_SAMPLE_WEIGHT) && HAVE_DECL_PERF_SAMPLE_WEIGHT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_WEIGHT) == (1 << 14), "PERF_SAMPLE_WEIGHT != 1 << 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_WEIGHT 1 << 14
#endif
-#if !(defined(PERF_SAMPLE_DATA_SRC) || (defined(HAVE_DECL_PERF_SAMPLE_DATA_SRC) && HAVE_DECL_PERF_SAMPLE_DATA_SRC))
+#if defined(PERF_SAMPLE_DATA_SRC) || (defined(HAVE_DECL_PERF_SAMPLE_DATA_SRC) && HAVE_DECL_PERF_SAMPLE_DATA_SRC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_DATA_SRC) == (1 << 15), "PERF_SAMPLE_DATA_SRC != 1 << 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_DATA_SRC 1 << 15
#endif
-#if !(defined(PERF_SAMPLE_IDENTIFIER) || (defined(HAVE_DECL_PERF_SAMPLE_IDENTIFIER) && HAVE_DECL_PERF_SAMPLE_IDENTIFIER))
+#if defined(PERF_SAMPLE_IDENTIFIER) || (defined(HAVE_DECL_PERF_SAMPLE_IDENTIFIER) && HAVE_DECL_PERF_SAMPLE_IDENTIFIER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_IDENTIFIER) == (1 << 16), "PERF_SAMPLE_IDENTIFIER != 1 << 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_IDENTIFIER 1 << 16
#endif
-#if !(defined(PERF_SAMPLE_TRANSACTION) || (defined(HAVE_DECL_PERF_SAMPLE_TRANSACTION) && HAVE_DECL_PERF_SAMPLE_TRANSACTION))
+#if defined(PERF_SAMPLE_TRANSACTION) || (defined(HAVE_DECL_PERF_SAMPLE_TRANSACTION) && HAVE_DECL_PERF_SAMPLE_TRANSACTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_TRANSACTION) == (1 << 17), "PERF_SAMPLE_TRANSACTION != 1 << 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_TRANSACTION 1 << 17
#endif
-#if !(defined(PERF_SAMPLE_REGS_INTR) || (defined(HAVE_DECL_PERF_SAMPLE_REGS_INTR) && HAVE_DECL_PERF_SAMPLE_REGS_INTR))
+#if defined(PERF_SAMPLE_REGS_INTR) || (defined(HAVE_DECL_PERF_SAMPLE_REGS_INTR) && HAVE_DECL_PERF_SAMPLE_REGS_INTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_REGS_INTR) == (1 << 18), "PERF_SAMPLE_REGS_INTR != 1 << 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_REGS_INTR 1 << 18
#endif
-#if !(defined(PERF_SAMPLE_PHYS_ADDR) || (defined(HAVE_DECL_PERF_SAMPLE_PHYS_ADDR) && HAVE_DECL_PERF_SAMPLE_PHYS_ADDR))
+#if defined(PERF_SAMPLE_PHYS_ADDR) || (defined(HAVE_DECL_PERF_SAMPLE_PHYS_ADDR) && HAVE_DECL_PERF_SAMPLE_PHYS_ADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_SAMPLE_PHYS_ADDR) == (1 << 19), "PERF_SAMPLE_PHYS_ADDR != 1 << 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_SAMPLE_PHYS_ADDR 1 << 19
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_event_sample_format in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_event_sample_format in mpers mode
+
+# else
static
const struct xlat perf_event_sample_format[] = {
@@ -91,4 +177,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_hw_cache_id.h b/xlat/perf_hw_cache_id.h
index 86b9cbc..04ef058 100644
--- a/xlat/perf_hw_cache_id.h
+++ b/xlat/perf_hw_cache_id.h
@@ -1,31 +1,65 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_hw_cache_id.in; do not edit. */
-#if !(defined(PERF_COUNT_HW_CACHE_L1D) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_L1D) && HAVE_DECL_PERF_COUNT_HW_CACHE_L1D))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_COUNT_HW_CACHE_L1D) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_L1D) && HAVE_DECL_PERF_COUNT_HW_CACHE_L1D)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_L1D) == (0), "PERF_COUNT_HW_CACHE_L1D != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_L1D 0
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_L1I) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_L1I) && HAVE_DECL_PERF_COUNT_HW_CACHE_L1I))
+#if defined(PERF_COUNT_HW_CACHE_L1I) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_L1I) && HAVE_DECL_PERF_COUNT_HW_CACHE_L1I)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_L1I) == (1), "PERF_COUNT_HW_CACHE_L1I != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_L1I 1
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_LL) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_LL) && HAVE_DECL_PERF_COUNT_HW_CACHE_LL))
+#if defined(PERF_COUNT_HW_CACHE_LL) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_LL) && HAVE_DECL_PERF_COUNT_HW_CACHE_LL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_LL) == (2), "PERF_COUNT_HW_CACHE_LL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_LL 2
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_DTLB) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_DTLB) && HAVE_DECL_PERF_COUNT_HW_CACHE_DTLB))
+#if defined(PERF_COUNT_HW_CACHE_DTLB) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_DTLB) && HAVE_DECL_PERF_COUNT_HW_CACHE_DTLB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_DTLB) == (3), "PERF_COUNT_HW_CACHE_DTLB != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_DTLB 3
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_ITLB) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_ITLB) && HAVE_DECL_PERF_COUNT_HW_CACHE_ITLB))
+#if defined(PERF_COUNT_HW_CACHE_ITLB) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_ITLB) && HAVE_DECL_PERF_COUNT_HW_CACHE_ITLB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_ITLB) == (4), "PERF_COUNT_HW_CACHE_ITLB != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_ITLB 4
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_BPU) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_BPU) && HAVE_DECL_PERF_COUNT_HW_CACHE_BPU))
+#if defined(PERF_COUNT_HW_CACHE_BPU) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_BPU) && HAVE_DECL_PERF_COUNT_HW_CACHE_BPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_BPU) == (5), "PERF_COUNT_HW_CACHE_BPU != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_BPU 5
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_NODE) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_NODE) && HAVE_DECL_PERF_COUNT_HW_CACHE_NODE))
+#if defined(PERF_COUNT_HW_CACHE_NODE) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_NODE) && HAVE_DECL_PERF_COUNT_HW_CACHE_NODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_NODE) == (6), "PERF_COUNT_HW_CACHE_NODE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_NODE 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_hw_cache_id in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_hw_cache_id in mpers mode
+
+# else
static
const struct xlat perf_hw_cache_id[] = {
@@ -40,4 +74,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_hw_cache_op_id.h b/xlat/perf_hw_cache_op_id.h
index 5705f91..b0cadd3 100644
--- a/xlat/perf_hw_cache_op_id.h
+++ b/xlat/perf_hw_cache_op_id.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_hw_cache_op_id.in; do not edit. */
-#if !(defined(PERF_COUNT_HW_CACHE_OP_READ) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_OP_READ) && HAVE_DECL_PERF_COUNT_HW_CACHE_OP_READ))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_COUNT_HW_CACHE_OP_READ) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_OP_READ) && HAVE_DECL_PERF_COUNT_HW_CACHE_OP_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_OP_READ) == (0), "PERF_COUNT_HW_CACHE_OP_READ != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_OP_READ 0
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_OP_WRITE) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_OP_WRITE) && HAVE_DECL_PERF_COUNT_HW_CACHE_OP_WRITE))
+#if defined(PERF_COUNT_HW_CACHE_OP_WRITE) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_OP_WRITE) && HAVE_DECL_PERF_COUNT_HW_CACHE_OP_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_OP_WRITE) == (1), "PERF_COUNT_HW_CACHE_OP_WRITE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_OP_WRITE 1
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_OP_PREFETCH) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_OP_PREFETCH) && HAVE_DECL_PERF_COUNT_HW_CACHE_OP_PREFETCH))
+#if defined(PERF_COUNT_HW_CACHE_OP_PREFETCH) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_OP_PREFETCH) && HAVE_DECL_PERF_COUNT_HW_CACHE_OP_PREFETCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_OP_PREFETCH) == (2), "PERF_COUNT_HW_CACHE_OP_PREFETCH != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_OP_PREFETCH 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_hw_cache_op_id in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_hw_cache_op_id in mpers mode
+
+# else
static
const struct xlat perf_hw_cache_op_id[] = {
@@ -24,4 +42,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_hw_cache_op_result_id.h b/xlat/perf_hw_cache_op_result_id.h
index 70a9e9a..c026ce8 100644
--- a/xlat/perf_hw_cache_op_result_id.h
+++ b/xlat/perf_hw_cache_op_result_id.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_hw_cache_op_result_id.in; do not edit. */
-#if !(defined(PERF_COUNT_HW_CACHE_RESULT_ACCESS) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_ACCESS) && HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_ACCESS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_COUNT_HW_CACHE_RESULT_ACCESS) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_ACCESS) && HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_ACCESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_RESULT_ACCESS) == (0), "PERF_COUNT_HW_CACHE_RESULT_ACCESS != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_RESULT_ACCESS 0
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_RESULT_MISS) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_MISS) && HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_MISS))
+#if defined(PERF_COUNT_HW_CACHE_RESULT_MISS) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_MISS) && HAVE_DECL_PERF_COUNT_HW_CACHE_RESULT_MISS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_RESULT_MISS) == (1), "PERF_COUNT_HW_CACHE_RESULT_MISS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_RESULT_MISS 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_hw_cache_op_result_id in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_hw_cache_op_result_id in mpers mode
+
+# else
static
const struct xlat perf_hw_cache_op_result_id[] = {
@@ -20,4 +34,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_hw_id.h b/xlat/perf_hw_id.h
index a076eca..8c71a54 100644
--- a/xlat/perf_hw_id.h
+++ b/xlat/perf_hw_id.h
@@ -1,40 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_hw_id.in; do not edit. */
-#if !(defined(PERF_COUNT_HW_CPU_CYCLES) || (defined(HAVE_DECL_PERF_COUNT_HW_CPU_CYCLES) && HAVE_DECL_PERF_COUNT_HW_CPU_CYCLES))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_COUNT_HW_CPU_CYCLES) || (defined(HAVE_DECL_PERF_COUNT_HW_CPU_CYCLES) && HAVE_DECL_PERF_COUNT_HW_CPU_CYCLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CPU_CYCLES) == (0), "PERF_COUNT_HW_CPU_CYCLES != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CPU_CYCLES 0
#endif
-#if !(defined(PERF_COUNT_HW_INSTRUCTIONS) || (defined(HAVE_DECL_PERF_COUNT_HW_INSTRUCTIONS) && HAVE_DECL_PERF_COUNT_HW_INSTRUCTIONS))
+#if defined(PERF_COUNT_HW_INSTRUCTIONS) || (defined(HAVE_DECL_PERF_COUNT_HW_INSTRUCTIONS) && HAVE_DECL_PERF_COUNT_HW_INSTRUCTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_INSTRUCTIONS) == (1), "PERF_COUNT_HW_INSTRUCTIONS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_INSTRUCTIONS 1
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_REFERENCES) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_REFERENCES) && HAVE_DECL_PERF_COUNT_HW_CACHE_REFERENCES))
+#if defined(PERF_COUNT_HW_CACHE_REFERENCES) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_REFERENCES) && HAVE_DECL_PERF_COUNT_HW_CACHE_REFERENCES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_REFERENCES) == (2), "PERF_COUNT_HW_CACHE_REFERENCES != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_REFERENCES 2
#endif
-#if !(defined(PERF_COUNT_HW_CACHE_MISSES) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_MISSES) && HAVE_DECL_PERF_COUNT_HW_CACHE_MISSES))
+#if defined(PERF_COUNT_HW_CACHE_MISSES) || (defined(HAVE_DECL_PERF_COUNT_HW_CACHE_MISSES) && HAVE_DECL_PERF_COUNT_HW_CACHE_MISSES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_CACHE_MISSES) == (3), "PERF_COUNT_HW_CACHE_MISSES != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_CACHE_MISSES 3
#endif
-#if !(defined(PERF_COUNT_HW_BRANCH_INSTRUCTIONS) || (defined(HAVE_DECL_PERF_COUNT_HW_BRANCH_INSTRUCTIONS) && HAVE_DECL_PERF_COUNT_HW_BRANCH_INSTRUCTIONS))
+#if defined(PERF_COUNT_HW_BRANCH_INSTRUCTIONS) || (defined(HAVE_DECL_PERF_COUNT_HW_BRANCH_INSTRUCTIONS) && HAVE_DECL_PERF_COUNT_HW_BRANCH_INSTRUCTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_BRANCH_INSTRUCTIONS) == (4), "PERF_COUNT_HW_BRANCH_INSTRUCTIONS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_BRANCH_INSTRUCTIONS 4
#endif
-#if !(defined(PERF_COUNT_HW_BRANCH_MISSES) || (defined(HAVE_DECL_PERF_COUNT_HW_BRANCH_MISSES) && HAVE_DECL_PERF_COUNT_HW_BRANCH_MISSES))
+#if defined(PERF_COUNT_HW_BRANCH_MISSES) || (defined(HAVE_DECL_PERF_COUNT_HW_BRANCH_MISSES) && HAVE_DECL_PERF_COUNT_HW_BRANCH_MISSES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_BRANCH_MISSES) == (5), "PERF_COUNT_HW_BRANCH_MISSES != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_BRANCH_MISSES 5
#endif
-#if !(defined(PERF_COUNT_HW_BUS_CYCLES) || (defined(HAVE_DECL_PERF_COUNT_HW_BUS_CYCLES) && HAVE_DECL_PERF_COUNT_HW_BUS_CYCLES))
+#if defined(PERF_COUNT_HW_BUS_CYCLES) || (defined(HAVE_DECL_PERF_COUNT_HW_BUS_CYCLES) && HAVE_DECL_PERF_COUNT_HW_BUS_CYCLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_BUS_CYCLES) == (6), "PERF_COUNT_HW_BUS_CYCLES != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_BUS_CYCLES 6
#endif
-#if !(defined(PERF_COUNT_HW_STALLED_CYCLES_FRONTEND) || (defined(HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_FRONTEND) && HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_FRONTEND))
+#if defined(PERF_COUNT_HW_STALLED_CYCLES_FRONTEND) || (defined(HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_FRONTEND) && HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_FRONTEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_STALLED_CYCLES_FRONTEND) == (7), "PERF_COUNT_HW_STALLED_CYCLES_FRONTEND != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_STALLED_CYCLES_FRONTEND 7
#endif
-#if !(defined(PERF_COUNT_HW_STALLED_CYCLES_BACKEND) || (defined(HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_BACKEND) && HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_BACKEND))
+#if defined(PERF_COUNT_HW_STALLED_CYCLES_BACKEND) || (defined(HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_BACKEND) && HAVE_DECL_PERF_COUNT_HW_STALLED_CYCLES_BACKEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_STALLED_CYCLES_BACKEND) == (8), "PERF_COUNT_HW_STALLED_CYCLES_BACKEND != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_STALLED_CYCLES_BACKEND 8
#endif
-#if !(defined(PERF_COUNT_HW_REF_CPU_CYCLES) || (defined(HAVE_DECL_PERF_COUNT_HW_REF_CPU_CYCLES) && HAVE_DECL_PERF_COUNT_HW_REF_CPU_CYCLES))
+#if defined(PERF_COUNT_HW_REF_CPU_CYCLES) || (defined(HAVE_DECL_PERF_COUNT_HW_REF_CPU_CYCLES) && HAVE_DECL_PERF_COUNT_HW_REF_CPU_CYCLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_HW_REF_CPU_CYCLES) == (9), "PERF_COUNT_HW_REF_CPU_CYCLES != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_HW_REF_CPU_CYCLES 9
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_hw_id in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_hw_id in mpers mode
+
+# else
static
const struct xlat perf_hw_id[] = {
@@ -52,4 +98,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_ioctl_cmds.h b/xlat/perf_ioctl_cmds.h
new file mode 100644
index 0000000..d3f2a09
--- /dev/null
+++ b/xlat/perf_ioctl_cmds.h
@@ -0,0 +1,120 @@
+/* Generated by ./xlat/gen.sh from ./xlat/perf_ioctl_cmds.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_EVENT_IOC_ENABLE) || (defined(HAVE_DECL_PERF_EVENT_IOC_ENABLE) && HAVE_DECL_PERF_EVENT_IOC_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_ENABLE) == (_IO ('$', 0)), "PERF_EVENT_IOC_ENABLE != _IO ('$', 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_ENABLE _IO ('$', 0)
+#endif
+#if defined(PERF_EVENT_IOC_DISABLE) || (defined(HAVE_DECL_PERF_EVENT_IOC_DISABLE) && HAVE_DECL_PERF_EVENT_IOC_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_DISABLE) == (_IO ('$', 1)), "PERF_EVENT_IOC_DISABLE != _IO ('$', 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_DISABLE _IO ('$', 1)
+#endif
+#if defined(PERF_EVENT_IOC_REFRESH) || (defined(HAVE_DECL_PERF_EVENT_IOC_REFRESH) && HAVE_DECL_PERF_EVENT_IOC_REFRESH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_REFRESH) == (_IO ('$', 2)), "PERF_EVENT_IOC_REFRESH != _IO ('$', 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_REFRESH _IO ('$', 2)
+#endif
+#if defined(PERF_EVENT_IOC_RESET) || (defined(HAVE_DECL_PERF_EVENT_IOC_RESET) && HAVE_DECL_PERF_EVENT_IOC_RESET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_RESET) == (_IO ('$', 3)), "PERF_EVENT_IOC_RESET != _IO ('$', 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_RESET _IO ('$', 3)
+#endif
+#if defined(PERF_EVENT_IOC_PERIOD) || (defined(HAVE_DECL_PERF_EVENT_IOC_PERIOD) && HAVE_DECL_PERF_EVENT_IOC_PERIOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_PERIOD) == (_IOW('$', 4, uint64_t)), "PERF_EVENT_IOC_PERIOD != _IOW('$', 4, uint64_t)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_PERIOD _IOW('$', 4, uint64_t)
+#endif
+#if defined(PERF_EVENT_IOC_SET_OUTPUT) || (defined(HAVE_DECL_PERF_EVENT_IOC_SET_OUTPUT) && HAVE_DECL_PERF_EVENT_IOC_SET_OUTPUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_SET_OUTPUT) == (_IO ('$', 5)), "PERF_EVENT_IOC_SET_OUTPUT != _IO ('$', 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5)
+#endif
+#if defined(PERF_EVENT_IOC_SET_FILTER) || (defined(HAVE_DECL_PERF_EVENT_IOC_SET_FILTER) && HAVE_DECL_PERF_EVENT_IOC_SET_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_SET_FILTER) == (_IOW('$', 6, char *)), "PERF_EVENT_IOC_SET_FILTER != _IOW('$', 6, char *)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *)
+#endif
+#if defined(PERF_EVENT_IOC_ID) || (defined(HAVE_DECL_PERF_EVENT_IOC_ID) && HAVE_DECL_PERF_EVENT_IOC_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_ID) == (_IOR('$', 7, uint64_t *)), "PERF_EVENT_IOC_ID != _IOR('$', 7, uint64_t *)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_ID _IOR('$', 7, uint64_t *)
+#endif
+#if defined(PERF_EVENT_IOC_SET_BPF) || (defined(HAVE_DECL_PERF_EVENT_IOC_SET_BPF) && HAVE_DECL_PERF_EVENT_IOC_SET_BPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_SET_BPF) == (_IOW('$', 8, uint32_t)), "PERF_EVENT_IOC_SET_BPF != _IOW('$', 8, uint32_t)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, uint32_t)
+#endif
+#if defined(PERF_EVENT_IOC_PAUSE_OUTPUT) || (defined(HAVE_DECL_PERF_EVENT_IOC_PAUSE_OUTPUT) && HAVE_DECL_PERF_EVENT_IOC_PAUSE_OUTPUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_PAUSE_OUTPUT) == (_IOW('$', 9, uint32_t)), "PERF_EVENT_IOC_PAUSE_OUTPUT != _IOW('$', 9, uint32_t)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_PAUSE_OUTPUT _IOW('$', 9, uint32_t)
+#endif
+#if defined(PERF_EVENT_IOC_QUERY_BPF) || (defined(HAVE_DECL_PERF_EVENT_IOC_QUERY_BPF) && HAVE_DECL_PERF_EVENT_IOC_QUERY_BPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_QUERY_BPF) == (_IOWR('$', 10, struct perf_event_query_bpf *)), "PERF_EVENT_IOC_QUERY_BPF != _IOWR('$', 10, struct perf_event_query_bpf *)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, struct perf_event_query_bpf *)
+#endif
+#if defined(PERF_EVENT_IOC_MODIFY_ATTRIBUTES) || (defined(HAVE_DECL_PERF_EVENT_IOC_MODIFY_ATTRIBUTES) && HAVE_DECL_PERF_EVENT_IOC_MODIFY_ATTRIBUTES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_EVENT_IOC_MODIFY_ATTRIBUTES) == (_IOW('$', 11, struct perf_event_attr *)), "PERF_EVENT_IOC_MODIFY_ATTRIBUTES != _IOW('$', 11, struct perf_event_attr *)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_EVENT_IOC_MODIFY_ATTRIBUTES _IOW('$', 11, struct perf_event_attr *)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+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[] = {
+ XLAT(PERF_EVENT_IOC_ENABLE),
+ XLAT(PERF_EVENT_IOC_DISABLE),
+ XLAT(PERF_EVENT_IOC_REFRESH),
+ XLAT(PERF_EVENT_IOC_RESET),
+ XLAT(PERF_EVENT_IOC_PERIOD),
+ XLAT(PERF_EVENT_IOC_SET_OUTPUT),
+ XLAT(PERF_EVENT_IOC_SET_FILTER),
+ XLAT(PERF_EVENT_IOC_ID),
+ XLAT(PERF_EVENT_IOC_SET_BPF),
+ XLAT(PERF_EVENT_IOC_PAUSE_OUTPUT),
+ XLAT(PERF_EVENT_IOC_QUERY_BPF),
+ XLAT(PERF_EVENT_IOC_MODIFY_ATTRIBUTES),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_ioctl_cmds.in b/xlat/perf_ioctl_cmds.in
new file mode 100644
index 0000000..bf7ad78
--- /dev/null
+++ b/xlat/perf_ioctl_cmds.in
@@ -0,0 +1,12 @@
+PERF_EVENT_IOC_ENABLE _IO ('$', 0)
+PERF_EVENT_IOC_DISABLE _IO ('$', 1)
+PERF_EVENT_IOC_REFRESH _IO ('$', 2)
+PERF_EVENT_IOC_RESET _IO ('$', 3)
+PERF_EVENT_IOC_PERIOD _IOW('$', 4, uint64_t)
+PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5)
+PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *)
+PERF_EVENT_IOC_ID _IOR('$', 7, uint64_t *)
+PERF_EVENT_IOC_SET_BPF _IOW('$', 8, uint32_t)
+PERF_EVENT_IOC_PAUSE_OUTPUT _IOW('$', 9, uint32_t)
+PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, struct perf_event_query_bpf *)
+PERF_EVENT_IOC_MODIFY_ATTRIBUTES _IOW('$', 11, struct perf_event_attr *)
diff --git a/xlat/perf_ioctl_flags.h b/xlat/perf_ioctl_flags.h
new file mode 100644
index 0000000..de3883a
--- /dev/null
+++ b/xlat/perf_ioctl_flags.h
@@ -0,0 +1,32 @@
+/* Generated by ./xlat/gen.sh from ./xlat/perf_ioctl_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_IOC_FLAG_GROUP) || (defined(HAVE_DECL_PERF_IOC_FLAG_GROUP) && HAVE_DECL_PERF_IOC_FLAG_GROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_IOC_FLAG_GROUP) == ((1U << 0)), "PERF_IOC_FLAG_GROUP != (1U << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PERF_IOC_FLAG_GROUP (1U << 0)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+extern const struct xlat perf_ioctl_flags[];
+
+# else
+
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+static
+# endif
+const struct xlat perf_ioctl_flags[] = {
+ XLAT(PERF_IOC_FLAG_GROUP),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_ioctl_flags.in b/xlat/perf_ioctl_flags.in
new file mode 100644
index 0000000..502f69a
--- /dev/null
+++ b/xlat/perf_ioctl_flags.in
@@ -0,0 +1 @@
+PERF_IOC_FLAG_GROUP (1U << 0)
diff --git a/xlat/perf_sw_ids.h b/xlat/perf_sw_ids.h
index 96c628d..ecf0f83 100644
--- a/xlat/perf_sw_ids.h
+++ b/xlat/perf_sw_ids.h
@@ -1,43 +1,93 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_sw_ids.in; do not edit. */
-#if !(defined(PERF_COUNT_SW_CPU_CLOCK) || (defined(HAVE_DECL_PERF_COUNT_SW_CPU_CLOCK) && HAVE_DECL_PERF_COUNT_SW_CPU_CLOCK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_COUNT_SW_CPU_CLOCK) || (defined(HAVE_DECL_PERF_COUNT_SW_CPU_CLOCK) && HAVE_DECL_PERF_COUNT_SW_CPU_CLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_CPU_CLOCK) == (0), "PERF_COUNT_SW_CPU_CLOCK != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_CPU_CLOCK 0
#endif
-#if !(defined(PERF_COUNT_SW_TASK_CLOCK) || (defined(HAVE_DECL_PERF_COUNT_SW_TASK_CLOCK) && HAVE_DECL_PERF_COUNT_SW_TASK_CLOCK))
+#if defined(PERF_COUNT_SW_TASK_CLOCK) || (defined(HAVE_DECL_PERF_COUNT_SW_TASK_CLOCK) && HAVE_DECL_PERF_COUNT_SW_TASK_CLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_TASK_CLOCK) == (1), "PERF_COUNT_SW_TASK_CLOCK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_TASK_CLOCK 1
#endif
-#if !(defined(PERF_COUNT_SW_PAGE_FAULTS) || (defined(HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS) && HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS))
+#if defined(PERF_COUNT_SW_PAGE_FAULTS) || (defined(HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS) && HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_PAGE_FAULTS) == (2), "PERF_COUNT_SW_PAGE_FAULTS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_PAGE_FAULTS 2
#endif
-#if !(defined(PERF_COUNT_SW_CONTEXT_SWITCHES) || (defined(HAVE_DECL_PERF_COUNT_SW_CONTEXT_SWITCHES) && HAVE_DECL_PERF_COUNT_SW_CONTEXT_SWITCHES))
+#if defined(PERF_COUNT_SW_CONTEXT_SWITCHES) || (defined(HAVE_DECL_PERF_COUNT_SW_CONTEXT_SWITCHES) && HAVE_DECL_PERF_COUNT_SW_CONTEXT_SWITCHES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_CONTEXT_SWITCHES) == (3), "PERF_COUNT_SW_CONTEXT_SWITCHES != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_CONTEXT_SWITCHES 3
#endif
-#if !(defined(PERF_COUNT_SW_CPU_MIGRATIONS) || (defined(HAVE_DECL_PERF_COUNT_SW_CPU_MIGRATIONS) && HAVE_DECL_PERF_COUNT_SW_CPU_MIGRATIONS))
+#if defined(PERF_COUNT_SW_CPU_MIGRATIONS) || (defined(HAVE_DECL_PERF_COUNT_SW_CPU_MIGRATIONS) && HAVE_DECL_PERF_COUNT_SW_CPU_MIGRATIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_CPU_MIGRATIONS) == (4), "PERF_COUNT_SW_CPU_MIGRATIONS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_CPU_MIGRATIONS 4
#endif
-#if !(defined(PERF_COUNT_SW_PAGE_FAULTS_MIN) || (defined(HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MIN) && HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MIN))
+#if defined(PERF_COUNT_SW_PAGE_FAULTS_MIN) || (defined(HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MIN) && HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_PAGE_FAULTS_MIN) == (5), "PERF_COUNT_SW_PAGE_FAULTS_MIN != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_PAGE_FAULTS_MIN 5
#endif
-#if !(defined(PERF_COUNT_SW_PAGE_FAULTS_MAJ) || (defined(HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MAJ) && HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MAJ))
+#if defined(PERF_COUNT_SW_PAGE_FAULTS_MAJ) || (defined(HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MAJ) && HAVE_DECL_PERF_COUNT_SW_PAGE_FAULTS_MAJ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_PAGE_FAULTS_MAJ) == (6), "PERF_COUNT_SW_PAGE_FAULTS_MAJ != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_PAGE_FAULTS_MAJ 6
#endif
-#if !(defined(PERF_COUNT_SW_ALIGNMENT_FAULTS) || (defined(HAVE_DECL_PERF_COUNT_SW_ALIGNMENT_FAULTS) && HAVE_DECL_PERF_COUNT_SW_ALIGNMENT_FAULTS))
+#if defined(PERF_COUNT_SW_ALIGNMENT_FAULTS) || (defined(HAVE_DECL_PERF_COUNT_SW_ALIGNMENT_FAULTS) && HAVE_DECL_PERF_COUNT_SW_ALIGNMENT_FAULTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_ALIGNMENT_FAULTS) == (7), "PERF_COUNT_SW_ALIGNMENT_FAULTS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_ALIGNMENT_FAULTS 7
#endif
-#if !(defined(PERF_COUNT_SW_EMULATION_FAULTS) || (defined(HAVE_DECL_PERF_COUNT_SW_EMULATION_FAULTS) && HAVE_DECL_PERF_COUNT_SW_EMULATION_FAULTS))
+#if defined(PERF_COUNT_SW_EMULATION_FAULTS) || (defined(HAVE_DECL_PERF_COUNT_SW_EMULATION_FAULTS) && HAVE_DECL_PERF_COUNT_SW_EMULATION_FAULTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_EMULATION_FAULTS) == (8), "PERF_COUNT_SW_EMULATION_FAULTS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_EMULATION_FAULTS 8
#endif
-#if !(defined(PERF_COUNT_SW_DUMMY) || (defined(HAVE_DECL_PERF_COUNT_SW_DUMMY) && HAVE_DECL_PERF_COUNT_SW_DUMMY))
+#if defined(PERF_COUNT_SW_DUMMY) || (defined(HAVE_DECL_PERF_COUNT_SW_DUMMY) && HAVE_DECL_PERF_COUNT_SW_DUMMY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_DUMMY) == (9), "PERF_COUNT_SW_DUMMY != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_DUMMY 9
#endif
-#if !(defined(PERF_COUNT_SW_BPF_OUTPUT) || (defined(HAVE_DECL_PERF_COUNT_SW_BPF_OUTPUT) && HAVE_DECL_PERF_COUNT_SW_BPF_OUTPUT))
+#if defined(PERF_COUNT_SW_BPF_OUTPUT) || (defined(HAVE_DECL_PERF_COUNT_SW_BPF_OUTPUT) && HAVE_DECL_PERF_COUNT_SW_BPF_OUTPUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_COUNT_SW_BPF_OUTPUT) == (10), "PERF_COUNT_SW_BPF_OUTPUT != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_COUNT_SW_BPF_OUTPUT 10
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_sw_ids in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_sw_ids in mpers mode
+
+# else
static
const struct xlat perf_sw_ids[] = {
@@ -56,4 +106,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/perf_type_id.h b/xlat/perf_type_id.h
index f83fc59..bbe5c58 100644
--- a/xlat/perf_type_id.h
+++ b/xlat/perf_type_id.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/perf_type_id.in; do not edit. */
-#if !(defined(PERF_TYPE_HARDWARE) || (defined(HAVE_DECL_PERF_TYPE_HARDWARE) && HAVE_DECL_PERF_TYPE_HARDWARE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PERF_TYPE_HARDWARE) || (defined(HAVE_DECL_PERF_TYPE_HARDWARE) && HAVE_DECL_PERF_TYPE_HARDWARE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_TYPE_HARDWARE) == (0), "PERF_TYPE_HARDWARE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_TYPE_HARDWARE 0
#endif
-#if !(defined(PERF_TYPE_SOFTWARE) || (defined(HAVE_DECL_PERF_TYPE_SOFTWARE) && HAVE_DECL_PERF_TYPE_SOFTWARE))
+#if defined(PERF_TYPE_SOFTWARE) || (defined(HAVE_DECL_PERF_TYPE_SOFTWARE) && HAVE_DECL_PERF_TYPE_SOFTWARE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_TYPE_SOFTWARE) == (1), "PERF_TYPE_SOFTWARE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_TYPE_SOFTWARE 1
#endif
-#if !(defined(PERF_TYPE_TRACEPOINT) || (defined(HAVE_DECL_PERF_TYPE_TRACEPOINT) && HAVE_DECL_PERF_TYPE_TRACEPOINT))
+#if defined(PERF_TYPE_TRACEPOINT) || (defined(HAVE_DECL_PERF_TYPE_TRACEPOINT) && HAVE_DECL_PERF_TYPE_TRACEPOINT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_TYPE_TRACEPOINT) == (2), "PERF_TYPE_TRACEPOINT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_TYPE_TRACEPOINT 2
#endif
-#if !(defined(PERF_TYPE_HW_CACHE) || (defined(HAVE_DECL_PERF_TYPE_HW_CACHE) && HAVE_DECL_PERF_TYPE_HW_CACHE))
+#if defined(PERF_TYPE_HW_CACHE) || (defined(HAVE_DECL_PERF_TYPE_HW_CACHE) && HAVE_DECL_PERF_TYPE_HW_CACHE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_TYPE_HW_CACHE) == (3), "PERF_TYPE_HW_CACHE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_TYPE_HW_CACHE 3
#endif
-#if !(defined(PERF_TYPE_RAW) || (defined(HAVE_DECL_PERF_TYPE_RAW) && HAVE_DECL_PERF_TYPE_RAW))
+#if defined(PERF_TYPE_RAW) || (defined(HAVE_DECL_PERF_TYPE_RAW) && HAVE_DECL_PERF_TYPE_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_TYPE_RAW) == (4), "PERF_TYPE_RAW != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_TYPE_RAW 4
#endif
-#if !(defined(PERF_TYPE_BREAKPOINT) || (defined(HAVE_DECL_PERF_TYPE_BREAKPOINT) && HAVE_DECL_PERF_TYPE_BREAKPOINT))
+#if defined(PERF_TYPE_BREAKPOINT) || (defined(HAVE_DECL_PERF_TYPE_BREAKPOINT) && HAVE_DECL_PERF_TYPE_BREAKPOINT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PERF_TYPE_BREAKPOINT) == (5), "PERF_TYPE_BREAKPOINT != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PERF_TYPE_BREAKPOINT 5
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat perf_type_id in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat perf_type_id in mpers mode
+
+# else
static
const struct xlat perf_type_id[] = {
@@ -36,4 +66,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/personality_flags.h b/xlat/personality_flags.h
index 6c32b73..4b2a369 100644
--- a/xlat/personality_flags.h
+++ b/xlat/personality_flags.h
@@ -1,43 +1,93 @@
/* Generated by ./xlat/gen.sh from ./xlat/personality_flags.in; do not edit. */
-#if !(defined(UNAME26) || (defined(HAVE_DECL_UNAME26) && HAVE_DECL_UNAME26))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(UNAME26) || (defined(HAVE_DECL_UNAME26) && HAVE_DECL_UNAME26)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UNAME26) == (0x0020000), "UNAME26 != 0x0020000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define UNAME26 0x0020000
#endif
-#if !(defined(ADDR_NO_RANDOMIZE) || (defined(HAVE_DECL_ADDR_NO_RANDOMIZE) && HAVE_DECL_ADDR_NO_RANDOMIZE))
+#if defined(ADDR_NO_RANDOMIZE) || (defined(HAVE_DECL_ADDR_NO_RANDOMIZE) && HAVE_DECL_ADDR_NO_RANDOMIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADDR_NO_RANDOMIZE) == (0x0040000), "ADDR_NO_RANDOMIZE != 0x0040000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ADDR_NO_RANDOMIZE 0x0040000
#endif
-#if !(defined(FDPIC_FUNCPTRS) || (defined(HAVE_DECL_FDPIC_FUNCPTRS) && HAVE_DECL_FDPIC_FUNCPTRS))
+#if defined(FDPIC_FUNCPTRS) || (defined(HAVE_DECL_FDPIC_FUNCPTRS) && HAVE_DECL_FDPIC_FUNCPTRS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FDPIC_FUNCPTRS) == (0x0080000), "FDPIC_FUNCPTRS != 0x0080000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FDPIC_FUNCPTRS 0x0080000
#endif
-#if !(defined(MMAP_PAGE_ZERO) || (defined(HAVE_DECL_MMAP_PAGE_ZERO) && HAVE_DECL_MMAP_PAGE_ZERO))
+#if defined(MMAP_PAGE_ZERO) || (defined(HAVE_DECL_MMAP_PAGE_ZERO) && HAVE_DECL_MMAP_PAGE_ZERO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MMAP_PAGE_ZERO) == (0x0100000), "MMAP_PAGE_ZERO != 0x0100000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MMAP_PAGE_ZERO 0x0100000
#endif
-#if !(defined(ADDR_COMPAT_LAYOUT) || (defined(HAVE_DECL_ADDR_COMPAT_LAYOUT) && HAVE_DECL_ADDR_COMPAT_LAYOUT))
+#if defined(ADDR_COMPAT_LAYOUT) || (defined(HAVE_DECL_ADDR_COMPAT_LAYOUT) && HAVE_DECL_ADDR_COMPAT_LAYOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADDR_COMPAT_LAYOUT) == (0x0200000), "ADDR_COMPAT_LAYOUT != 0x0200000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ADDR_COMPAT_LAYOUT 0x0200000
#endif
-#if !(defined(READ_IMPLIES_EXEC) || (defined(HAVE_DECL_READ_IMPLIES_EXEC) && HAVE_DECL_READ_IMPLIES_EXEC))
+#if defined(READ_IMPLIES_EXEC) || (defined(HAVE_DECL_READ_IMPLIES_EXEC) && HAVE_DECL_READ_IMPLIES_EXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((READ_IMPLIES_EXEC) == (0x0400000), "READ_IMPLIES_EXEC != 0x0400000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define READ_IMPLIES_EXEC 0x0400000
#endif
-#if !(defined(ADDR_LIMIT_32BIT) || (defined(HAVE_DECL_ADDR_LIMIT_32BIT) && HAVE_DECL_ADDR_LIMIT_32BIT))
+#if defined(ADDR_LIMIT_32BIT) || (defined(HAVE_DECL_ADDR_LIMIT_32BIT) && HAVE_DECL_ADDR_LIMIT_32BIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADDR_LIMIT_32BIT) == (0x0800000), "ADDR_LIMIT_32BIT != 0x0800000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ADDR_LIMIT_32BIT 0x0800000
#endif
-#if !(defined(SHORT_INODE) || (defined(HAVE_DECL_SHORT_INODE) && HAVE_DECL_SHORT_INODE))
+#if defined(SHORT_INODE) || (defined(HAVE_DECL_SHORT_INODE) && HAVE_DECL_SHORT_INODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHORT_INODE) == (0x1000000), "SHORT_INODE != 0x1000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHORT_INODE 0x1000000
#endif
-#if !(defined(WHOLE_SECONDS) || (defined(HAVE_DECL_WHOLE_SECONDS) && HAVE_DECL_WHOLE_SECONDS))
+#if defined(WHOLE_SECONDS) || (defined(HAVE_DECL_WHOLE_SECONDS) && HAVE_DECL_WHOLE_SECONDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((WHOLE_SECONDS) == (0x2000000), "WHOLE_SECONDS != 0x2000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define WHOLE_SECONDS 0x2000000
#endif
-#if !(defined(STICKY_TIMEOUTS) || (defined(HAVE_DECL_STICKY_TIMEOUTS) && HAVE_DECL_STICKY_TIMEOUTS))
+#if defined(STICKY_TIMEOUTS) || (defined(HAVE_DECL_STICKY_TIMEOUTS) && HAVE_DECL_STICKY_TIMEOUTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STICKY_TIMEOUTS) == (0x4000000), "STICKY_TIMEOUTS != 0x4000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STICKY_TIMEOUTS 0x4000000
#endif
-#if !(defined(ADDR_LIMIT_3GB) || (defined(HAVE_DECL_ADDR_LIMIT_3GB) && HAVE_DECL_ADDR_LIMIT_3GB))
+#if defined(ADDR_LIMIT_3GB) || (defined(HAVE_DECL_ADDR_LIMIT_3GB) && HAVE_DECL_ADDR_LIMIT_3GB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ADDR_LIMIT_3GB) == (0x8000000), "ADDR_LIMIT_3GB != 0x8000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ADDR_LIMIT_3GB 0x8000000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat personality_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat personality_flags in mpers mode
+
+# else
static
const struct xlat personality_flags[] = {
@@ -55,4 +105,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/personality_types.h b/xlat/personality_types.h
index 8e1e1e2..7560b88 100644
--- a/xlat/personality_types.h
+++ b/xlat/personality_types.h
@@ -1,79 +1,177 @@
/* Generated by ./xlat/gen.sh from ./xlat/personality_types.in; do not edit. */
-#if !(defined(PER_LINUX) || (defined(HAVE_DECL_PER_LINUX) && HAVE_DECL_PER_LINUX))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PER_LINUX) || (defined(HAVE_DECL_PER_LINUX) && HAVE_DECL_PER_LINUX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_LINUX) == (0), "PER_LINUX != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_LINUX 0
#endif
-#if !(defined(PER_LINUX_32BIT) || (defined(HAVE_DECL_PER_LINUX_32BIT) && HAVE_DECL_PER_LINUX_32BIT))
+#if defined(PER_LINUX_32BIT) || (defined(HAVE_DECL_PER_LINUX_32BIT) && HAVE_DECL_PER_LINUX_32BIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_LINUX_32BIT) == (ADDR_LIMIT_32BIT), "PER_LINUX_32BIT != ADDR_LIMIT_32BIT");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_LINUX_32BIT ADDR_LIMIT_32BIT
#endif
-#if !(defined(PER_LINUX_FDPIC) || (defined(HAVE_DECL_PER_LINUX_FDPIC) && HAVE_DECL_PER_LINUX_FDPIC))
+#if defined(PER_LINUX_FDPIC) || (defined(HAVE_DECL_PER_LINUX_FDPIC) && HAVE_DECL_PER_LINUX_FDPIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_LINUX_FDPIC) == (FDPIC_FUNCPTRS), "PER_LINUX_FDPIC != FDPIC_FUNCPTRS");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_LINUX_FDPIC FDPIC_FUNCPTRS
#endif
-#if !(defined(PER_SVR4) || (defined(HAVE_DECL_PER_SVR4) && HAVE_DECL_PER_SVR4))
+#if defined(PER_SVR4) || (defined(HAVE_DECL_PER_SVR4) && HAVE_DECL_PER_SVR4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_SVR4) == ((0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)), "PER_SVR4 != (0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_SVR4 (0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)
#endif
-#if !(defined(PER_SVR3) || (defined(HAVE_DECL_PER_SVR3) && HAVE_DECL_PER_SVR3))
+#if defined(PER_SVR3) || (defined(HAVE_DECL_PER_SVR3) && HAVE_DECL_PER_SVR3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_SVR3) == ((0x0002 | STICKY_TIMEOUTS | SHORT_INODE)), "PER_SVR3 != (0x0002 | STICKY_TIMEOUTS | SHORT_INODE)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_SVR3 (0x0002 | STICKY_TIMEOUTS | SHORT_INODE)
#endif
-#if !(defined(PER_SCOSVR3) || (defined(HAVE_DECL_PER_SCOSVR3) && HAVE_DECL_PER_SCOSVR3))
+#if defined(PER_SCOSVR3) || (defined(HAVE_DECL_PER_SCOSVR3) && HAVE_DECL_PER_SCOSVR3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_SCOSVR3) == ((0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS | SHORT_INODE)), "PER_SCOSVR3 != (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS | SHORT_INODE)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_SCOSVR3 (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS | SHORT_INODE)
#endif
-#if !(defined(PER_OSR5) || (defined(HAVE_DECL_PER_OSR5) && HAVE_DECL_PER_OSR5))
+#if defined(PER_OSR5) || (defined(HAVE_DECL_PER_OSR5) && HAVE_DECL_PER_OSR5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_OSR5) == ((0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS)), "PER_OSR5 != (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_OSR5 (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS)
#endif
-#if !(defined(PER_WYSEV386) || (defined(HAVE_DECL_PER_WYSEV386) && HAVE_DECL_PER_WYSEV386))
+#if defined(PER_WYSEV386) || (defined(HAVE_DECL_PER_WYSEV386) && HAVE_DECL_PER_WYSEV386)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_WYSEV386) == ((0x0004 | STICKY_TIMEOUTS | SHORT_INODE)), "PER_WYSEV386 != (0x0004 | STICKY_TIMEOUTS | SHORT_INODE)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_WYSEV386 (0x0004 | STICKY_TIMEOUTS | SHORT_INODE)
#endif
-#if !(defined(PER_ISCR4) || (defined(HAVE_DECL_PER_ISCR4) && HAVE_DECL_PER_ISCR4))
+#if defined(PER_ISCR4) || (defined(HAVE_DECL_PER_ISCR4) && HAVE_DECL_PER_ISCR4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_ISCR4) == ((0x0005 | STICKY_TIMEOUTS)), "PER_ISCR4 != (0x0005 | STICKY_TIMEOUTS)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_ISCR4 (0x0005 | STICKY_TIMEOUTS)
#endif
-#if !(defined(PER_BSD) || (defined(HAVE_DECL_PER_BSD) && HAVE_DECL_PER_BSD))
+#if defined(PER_BSD) || (defined(HAVE_DECL_PER_BSD) && HAVE_DECL_PER_BSD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_BSD) == (0x0006), "PER_BSD != 0x0006");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_BSD 0x0006
#endif
-#if !(defined(PER_SUNOS) || (defined(HAVE_DECL_PER_SUNOS) && HAVE_DECL_PER_SUNOS))
+#if defined(PER_SUNOS) || (defined(HAVE_DECL_PER_SUNOS) && HAVE_DECL_PER_SUNOS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_SUNOS) == ((0x0006 | STICKY_TIMEOUTS)), "PER_SUNOS != (0x0006 | STICKY_TIMEOUTS)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_SUNOS (0x0006 | STICKY_TIMEOUTS)
#endif
-#if !(defined(PER_XENIX) || (defined(HAVE_DECL_PER_XENIX) && HAVE_DECL_PER_XENIX))
+#if defined(PER_XENIX) || (defined(HAVE_DECL_PER_XENIX) && HAVE_DECL_PER_XENIX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_XENIX) == ((0x0007 | STICKY_TIMEOUTS | SHORT_INODE)), "PER_XENIX != (0x0007 | STICKY_TIMEOUTS | SHORT_INODE)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_XENIX (0x0007 | STICKY_TIMEOUTS | SHORT_INODE)
#endif
-#if !(defined(PER_LINUX32) || (defined(HAVE_DECL_PER_LINUX32) && HAVE_DECL_PER_LINUX32))
+#if defined(PER_LINUX32) || (defined(HAVE_DECL_PER_LINUX32) && HAVE_DECL_PER_LINUX32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_LINUX32) == (0x0008), "PER_LINUX32 != 0x0008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_LINUX32 0x0008
#endif
-#if !(defined(PER_LINUX32_3GB) || (defined(HAVE_DECL_PER_LINUX32_3GB) && HAVE_DECL_PER_LINUX32_3GB))
+#if defined(PER_LINUX32_3GB) || (defined(HAVE_DECL_PER_LINUX32_3GB) && HAVE_DECL_PER_LINUX32_3GB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_LINUX32_3GB) == ((0x0008 | ADDR_LIMIT_3GB)), "PER_LINUX32_3GB != (0x0008 | ADDR_LIMIT_3GB)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_LINUX32_3GB (0x0008 | ADDR_LIMIT_3GB)
#endif
-#if !(defined(PER_IRIX32) || (defined(HAVE_DECL_PER_IRIX32) && HAVE_DECL_PER_IRIX32))
+#if defined(PER_IRIX32) || (defined(HAVE_DECL_PER_IRIX32) && HAVE_DECL_PER_IRIX32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_IRIX32) == ((0x0009 | STICKY_TIMEOUTS)), "PER_IRIX32 != (0x0009 | STICKY_TIMEOUTS)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_IRIX32 (0x0009 | STICKY_TIMEOUTS)
#endif
-#if !(defined(PER_IRIXN32) || (defined(HAVE_DECL_PER_IRIXN32) && HAVE_DECL_PER_IRIXN32))
+#if defined(PER_IRIXN32) || (defined(HAVE_DECL_PER_IRIXN32) && HAVE_DECL_PER_IRIXN32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_IRIXN32) == ((0x000a | STICKY_TIMEOUTS)), "PER_IRIXN32 != (0x000a | STICKY_TIMEOUTS)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_IRIXN32 (0x000a | STICKY_TIMEOUTS)
#endif
-#if !(defined(PER_IRIX64) || (defined(HAVE_DECL_PER_IRIX64) && HAVE_DECL_PER_IRIX64))
+#if defined(PER_IRIX64) || (defined(HAVE_DECL_PER_IRIX64) && HAVE_DECL_PER_IRIX64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_IRIX64) == ((0x000b | STICKY_TIMEOUTS)), "PER_IRIX64 != (0x000b | STICKY_TIMEOUTS)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_IRIX64 (0x000b | STICKY_TIMEOUTS)
#endif
-#if !(defined(PER_RISCOS) || (defined(HAVE_DECL_PER_RISCOS) && HAVE_DECL_PER_RISCOS))
+#if defined(PER_RISCOS) || (defined(HAVE_DECL_PER_RISCOS) && HAVE_DECL_PER_RISCOS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_RISCOS) == (0x000c), "PER_RISCOS != 0x000c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_RISCOS 0x000c
#endif
-#if !(defined(PER_SOLARIS) || (defined(HAVE_DECL_PER_SOLARIS) && HAVE_DECL_PER_SOLARIS))
+#if defined(PER_SOLARIS) || (defined(HAVE_DECL_PER_SOLARIS) && HAVE_DECL_PER_SOLARIS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_SOLARIS) == ((0x000d | STICKY_TIMEOUTS)), "PER_SOLARIS != (0x000d | STICKY_TIMEOUTS)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_SOLARIS (0x000d | STICKY_TIMEOUTS)
#endif
-#if !(defined(PER_UW7) || (defined(HAVE_DECL_PER_UW7) && HAVE_DECL_PER_UW7))
+#if defined(PER_UW7) || (defined(HAVE_DECL_PER_UW7) && HAVE_DECL_PER_UW7)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_UW7) == ((0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)), "PER_UW7 != (0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_UW7 (0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO)
#endif
-#if !(defined(PER_OSF4) || (defined(HAVE_DECL_PER_OSF4) && HAVE_DECL_PER_OSF4))
+#if defined(PER_OSF4) || (defined(HAVE_DECL_PER_OSF4) && HAVE_DECL_PER_OSF4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_OSF4) == (0x000f), "PER_OSF4 != 0x000f");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_OSF4 0x000f
#endif
-#if !(defined(PER_HPUX) || (defined(HAVE_DECL_PER_HPUX) && HAVE_DECL_PER_HPUX))
+#if defined(PER_HPUX) || (defined(HAVE_DECL_PER_HPUX) && HAVE_DECL_PER_HPUX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_HPUX) == (0x0010), "PER_HPUX != 0x0010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_HPUX 0x0010
#endif
-#if !(defined(PER_MASK) || (defined(HAVE_DECL_PER_MASK) && HAVE_DECL_PER_MASK))
+#if defined(PER_MASK) || (defined(HAVE_DECL_PER_MASK) && HAVE_DECL_PER_MASK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PER_MASK) == (0x00ff), "PER_MASK != 0x00ff");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PER_MASK 0x00ff
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat personality_types in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat personality_types in mpers mode
+
+# else
static
const struct xlat personality_types[] = {
@@ -103,4 +201,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/phonet_protocols.h b/xlat/phonet_protocols.h
new file mode 100644
index 0000000..811672c
--- /dev/null
+++ b/xlat/phonet_protocols.h
@@ -0,0 +1,46 @@
+/* Generated by ./xlat/gen.sh from ./xlat/phonet_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PN_PROTO_TRANSPORT) || (defined(HAVE_DECL_PN_PROTO_TRANSPORT) && HAVE_DECL_PN_PROTO_TRANSPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PN_PROTO_TRANSPORT) == (0), "PN_PROTO_TRANSPORT != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PN_PROTO_TRANSPORT 0
+#endif
+#if defined(PN_PROTO_PHONET) || (defined(HAVE_DECL_PN_PROTO_PHONET) && HAVE_DECL_PN_PROTO_PHONET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PN_PROTO_PHONET) == (1), "PN_PROTO_PHONET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PN_PROTO_PHONET 1
+#endif
+#if defined(PN_PROTO_PIPE) || (defined(HAVE_DECL_PN_PROTO_PIPE) && HAVE_DECL_PN_PROTO_PIPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PN_PROTO_PIPE) == (2), "PN_PROTO_PIPE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PN_PROTO_PIPE 2
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat phonet_protocols in mpers mode
+
+# else
+
+static
+const struct xlat phonet_protocols[] = {
+ [PN_PROTO_TRANSPORT] = XLAT(PN_PROTO_TRANSPORT),
+ [PN_PROTO_PHONET] = XLAT(PN_PROTO_PHONET),
+ [PN_PROTO_PIPE] = XLAT(PN_PROTO_PIPE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/phonet_protocols.in b/xlat/phonet_protocols.in
new file mode 100644
index 0000000..5245ed7
--- /dev/null
+++ b/xlat/phonet_protocols.in
@@ -0,0 +1,4 @@
+#value_indexed
+PN_PROTO_TRANSPORT 0
+PN_PROTO_PHONET 1
+PN_PROTO_PIPE 2
diff --git a/xlat/pkey_access.h b/xlat/pkey_access.h
index f9f31e0..cc32932 100644
--- a/xlat/pkey_access.h
+++ b/xlat/pkey_access.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/pkey_access.in; do not edit. */
-#if !(defined(PKEY_DISABLE_ACCESS) || (defined(HAVE_DECL_PKEY_DISABLE_ACCESS) && HAVE_DECL_PKEY_DISABLE_ACCESS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PKEY_DISABLE_ACCESS) || (defined(HAVE_DECL_PKEY_DISABLE_ACCESS) && HAVE_DECL_PKEY_DISABLE_ACCESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PKEY_DISABLE_ACCESS) == (0x1), "PKEY_DISABLE_ACCESS != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PKEY_DISABLE_ACCESS 0x1
#endif
-#if !(defined(PKEY_DISABLE_WRITE) || (defined(HAVE_DECL_PKEY_DISABLE_WRITE) && HAVE_DECL_PKEY_DISABLE_WRITE))
+#if defined(PKEY_DISABLE_WRITE) || (defined(HAVE_DECL_PKEY_DISABLE_WRITE) && HAVE_DECL_PKEY_DISABLE_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PKEY_DISABLE_WRITE) == (0x2), "PKEY_DISABLE_WRITE != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PKEY_DISABLE_WRITE 0x2
#endif
-#if !(defined(PKEY_DISABLE_EXECUTE) || (defined(HAVE_DECL_PKEY_DISABLE_EXECUTE) && HAVE_DECL_PKEY_DISABLE_EXECUTE))
+#if defined(PKEY_DISABLE_EXECUTE) || (defined(HAVE_DECL_PKEY_DISABLE_EXECUTE) && HAVE_DECL_PKEY_DISABLE_EXECUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PKEY_DISABLE_EXECUTE) == (0x4), "PKEY_DISABLE_EXECUTE != 0x4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PKEY_DISABLE_EXECUTE 0x4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pkey_access in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pkey_access in mpers mode
+
+# else
static
const struct xlat pkey_access[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/policies.h b/xlat/policies.h
index 8b44db6..9e4f4cf 100644
--- a/xlat/policies.h
+++ b/xlat/policies.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/policies.in; do not edit. */
-#if !(defined(MPOL_DEFAULT) || (defined(HAVE_DECL_MPOL_DEFAULT) && HAVE_DECL_MPOL_DEFAULT))
+
+#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))
+#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))
+#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))
+#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
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat policies in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat policies in mpers mode
+
+# else
static
const struct xlat policies[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pollflags.h b/xlat/pollflags.h
index 6fd03a9..00645f6 100644
--- a/xlat/pollflags.h
+++ b/xlat/pollflags.h
@@ -1,37 +1,79 @@
/* Generated by ./xlat/gen.sh from ./xlat/pollflags.in; do not edit. */
-#if !(defined(POLLIN) || (defined(HAVE_DECL_POLLIN) && HAVE_DECL_POLLIN))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(POLLIN) || (defined(HAVE_DECL_POLLIN) && HAVE_DECL_POLLIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLIN) == (0x0001), "POLLIN != 0x0001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLIN 0x0001
#endif
-#if !(defined(POLLPRI) || (defined(HAVE_DECL_POLLPRI) && HAVE_DECL_POLLPRI))
+#if defined(POLLPRI) || (defined(HAVE_DECL_POLLPRI) && HAVE_DECL_POLLPRI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLPRI) == (0x0002), "POLLPRI != 0x0002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLPRI 0x0002
#endif
-#if !(defined(POLLOUT) || (defined(HAVE_DECL_POLLOUT) && HAVE_DECL_POLLOUT))
+#if defined(POLLOUT) || (defined(HAVE_DECL_POLLOUT) && HAVE_DECL_POLLOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLOUT) == (0x0004), "POLLOUT != 0x0004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLOUT 0x0004
#endif
-#if !(defined(POLLRDNORM) || (defined(HAVE_DECL_POLLRDNORM) && HAVE_DECL_POLLRDNORM))
+#if defined(POLLRDNORM) || (defined(HAVE_DECL_POLLRDNORM) && HAVE_DECL_POLLRDNORM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLRDNORM) == (0x0040), "POLLRDNORM != 0x0040");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLRDNORM 0x0040
#endif
-#if !(defined(POLLRDBAND) || (defined(HAVE_DECL_POLLRDBAND) && HAVE_DECL_POLLRDBAND))
+#if defined(POLLRDBAND) || (defined(HAVE_DECL_POLLRDBAND) && HAVE_DECL_POLLRDBAND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLRDBAND) == (0x0080), "POLLRDBAND != 0x0080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLRDBAND 0x0080
#endif
-#if !(defined(POLLERR) || (defined(HAVE_DECL_POLLERR) && HAVE_DECL_POLLERR))
+#if defined(POLLERR) || (defined(HAVE_DECL_POLLERR) && HAVE_DECL_POLLERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLERR) == (0x0008), "POLLERR != 0x0008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLERR 0x0008
#endif
-#if !(defined(POLLHUP) || (defined(HAVE_DECL_POLLHUP) && HAVE_DECL_POLLHUP))
+#if defined(POLLHUP) || (defined(HAVE_DECL_POLLHUP) && HAVE_DECL_POLLHUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLHUP) == (0x0010), "POLLHUP != 0x0010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLHUP 0x0010
#endif
-#if !(defined(POLLNVAL) || (defined(HAVE_DECL_POLLNVAL) && HAVE_DECL_POLLNVAL))
+#if defined(POLLNVAL) || (defined(HAVE_DECL_POLLNVAL) && HAVE_DECL_POLLNVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLLNVAL) == (0x0020), "POLLNVAL != 0x0020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLLNVAL 0x0020
#endif
-#if !(defined(POLL_BUSY_LOOP) || (defined(HAVE_DECL_POLL_BUSY_LOOP) && HAVE_DECL_POLL_BUSY_LOOP))
+#if defined(POLL_BUSY_LOOP) || (defined(HAVE_DECL_POLL_BUSY_LOOP) && HAVE_DECL_POLL_BUSY_LOOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLL_BUSY_LOOP) == (0x8000), "POLL_BUSY_LOOP != 0x8000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLL_BUSY_LOOP 0x8000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pollflags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pollflags in mpers mode
+
+# else
static
const struct xlat pollflags[] = {
@@ -62,4 +104,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_cap_ambient.h b/xlat/pr_cap_ambient.h
index 83fa882..2a89eba 100644
--- a/xlat/pr_cap_ambient.h
+++ b/xlat/pr_cap_ambient.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_cap_ambient.in; do not edit. */
-#if !(defined(PR_CAP_AMBIENT_IS_SET) || (defined(HAVE_DECL_PR_CAP_AMBIENT_IS_SET) && HAVE_DECL_PR_CAP_AMBIENT_IS_SET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_CAP_AMBIENT_IS_SET) || (defined(HAVE_DECL_PR_CAP_AMBIENT_IS_SET) && HAVE_DECL_PR_CAP_AMBIENT_IS_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_CAP_AMBIENT_IS_SET) == (1), "PR_CAP_AMBIENT_IS_SET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_CAP_AMBIENT_IS_SET 1
#endif
-#if !(defined(PR_CAP_AMBIENT_RAISE) || (defined(HAVE_DECL_PR_CAP_AMBIENT_RAISE) && HAVE_DECL_PR_CAP_AMBIENT_RAISE))
+#if defined(PR_CAP_AMBIENT_RAISE) || (defined(HAVE_DECL_PR_CAP_AMBIENT_RAISE) && HAVE_DECL_PR_CAP_AMBIENT_RAISE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_CAP_AMBIENT_RAISE) == (2), "PR_CAP_AMBIENT_RAISE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_CAP_AMBIENT_RAISE 2
#endif
-#if !(defined(PR_CAP_AMBIENT_LOWER) || (defined(HAVE_DECL_PR_CAP_AMBIENT_LOWER) && HAVE_DECL_PR_CAP_AMBIENT_LOWER))
+#if defined(PR_CAP_AMBIENT_LOWER) || (defined(HAVE_DECL_PR_CAP_AMBIENT_LOWER) && HAVE_DECL_PR_CAP_AMBIENT_LOWER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_CAP_AMBIENT_LOWER) == (3), "PR_CAP_AMBIENT_LOWER != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_CAP_AMBIENT_LOWER 3
#endif
-#if !(defined(PR_CAP_AMBIENT_CLEAR_ALL) || (defined(HAVE_DECL_PR_CAP_AMBIENT_CLEAR_ALL) && HAVE_DECL_PR_CAP_AMBIENT_CLEAR_ALL))
+#if defined(PR_CAP_AMBIENT_CLEAR_ALL) || (defined(HAVE_DECL_PR_CAP_AMBIENT_CLEAR_ALL) && HAVE_DECL_PR_CAP_AMBIENT_CLEAR_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_CAP_AMBIENT_CLEAR_ALL) == (4), "PR_CAP_AMBIENT_CLEAR_ALL != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_CAP_AMBIENT_CLEAR_ALL 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_cap_ambient in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_cap_ambient in mpers mode
+
+# else
static
const struct xlat pr_cap_ambient[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_dumpable.h b/xlat/pr_dumpable.h
index 4e625bc..0a9404a 100644
--- a/xlat/pr_dumpable.h
+++ b/xlat/pr_dumpable.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_dumpable.in; do not edit. */
-#if !(defined(SUID_DUMP_DISABLE) || (defined(HAVE_DECL_SUID_DUMP_DISABLE) && HAVE_DECL_SUID_DUMP_DISABLE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SUID_DUMP_DISABLE) || (defined(HAVE_DECL_SUID_DUMP_DISABLE) && HAVE_DECL_SUID_DUMP_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SUID_DUMP_DISABLE) == (0), "SUID_DUMP_DISABLE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SUID_DUMP_DISABLE 0
#endif
-#if !(defined(SUID_DUMP_USER) || (defined(HAVE_DECL_SUID_DUMP_USER) && HAVE_DECL_SUID_DUMP_USER))
+#if defined(SUID_DUMP_USER) || (defined(HAVE_DECL_SUID_DUMP_USER) && HAVE_DECL_SUID_DUMP_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SUID_DUMP_USER) == (1), "SUID_DUMP_USER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SUID_DUMP_USER 1
#endif
-#if !(defined(SUID_DUMP_ROOT) || (defined(HAVE_DECL_SUID_DUMP_ROOT) && HAVE_DECL_SUID_DUMP_ROOT))
+#if defined(SUID_DUMP_ROOT) || (defined(HAVE_DECL_SUID_DUMP_ROOT) && HAVE_DECL_SUID_DUMP_ROOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SUID_DUMP_ROOT) == (2), "SUID_DUMP_ROOT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SUID_DUMP_ROOT 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_dumpable in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_dumpable in mpers mode
+
+# else
static
const struct xlat pr_dumpable[] = {
@@ -24,4 +42,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_fp_mode.h b/xlat/pr_fp_mode.h
index 4620c48..40a59db 100644
--- a/xlat/pr_fp_mode.h
+++ b/xlat/pr_fp_mode.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_fp_mode.in; do not edit. */
-#if !(defined(PR_FP_MODE_FR) || (defined(HAVE_DECL_PR_FP_MODE_FR) && HAVE_DECL_PR_FP_MODE_FR))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_FP_MODE_FR) || (defined(HAVE_DECL_PR_FP_MODE_FR) && HAVE_DECL_PR_FP_MODE_FR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_FP_MODE_FR) == ((1 << 0)), "PR_FP_MODE_FR != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_FP_MODE_FR (1 << 0)
#endif
-#if !(defined(PR_FP_MODE_FRE) || (defined(HAVE_DECL_PR_FP_MODE_FRE) && HAVE_DECL_PR_FP_MODE_FRE))
+#if defined(PR_FP_MODE_FRE) || (defined(HAVE_DECL_PR_FP_MODE_FRE) && HAVE_DECL_PR_FP_MODE_FRE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_FP_MODE_FRE) == ((1 << 1)), "PR_FP_MODE_FRE != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_FP_MODE_FRE (1 << 1)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_fp_mode in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_fp_mode in mpers mode
+
+# else
static
const struct xlat pr_fp_mode[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_mce_kill.h b/xlat/pr_mce_kill.h
index d2839db..1c490fe 100644
--- a/xlat/pr_mce_kill.h
+++ b/xlat/pr_mce_kill.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_mce_kill.in; do not edit. */
-#if !(defined(PR_MCE_KILL_CLEAR) || (defined(HAVE_DECL_PR_MCE_KILL_CLEAR) && HAVE_DECL_PR_MCE_KILL_CLEAR))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_MCE_KILL_CLEAR) || (defined(HAVE_DECL_PR_MCE_KILL_CLEAR) && HAVE_DECL_PR_MCE_KILL_CLEAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MCE_KILL_CLEAR) == (0), "PR_MCE_KILL_CLEAR != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MCE_KILL_CLEAR 0
#endif
-#if !(defined(PR_MCE_KILL_SET) || (defined(HAVE_DECL_PR_MCE_KILL_SET) && HAVE_DECL_PR_MCE_KILL_SET))
+#if defined(PR_MCE_KILL_SET) || (defined(HAVE_DECL_PR_MCE_KILL_SET) && HAVE_DECL_PR_MCE_KILL_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MCE_KILL_SET) == (1), "PR_MCE_KILL_SET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MCE_KILL_SET 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_mce_kill in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_mce_kill in mpers mode
+
+# else
static
const struct xlat pr_mce_kill[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_mce_kill_policy.h b/xlat/pr_mce_kill_policy.h
index aee9568..d60e2ca 100644
--- a/xlat/pr_mce_kill_policy.h
+++ b/xlat/pr_mce_kill_policy.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_mce_kill_policy.in; do not edit. */
-#if !(defined(PR_MCE_KILL_LATE) || (defined(HAVE_DECL_PR_MCE_KILL_LATE) && HAVE_DECL_PR_MCE_KILL_LATE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_MCE_KILL_LATE) || (defined(HAVE_DECL_PR_MCE_KILL_LATE) && HAVE_DECL_PR_MCE_KILL_LATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MCE_KILL_LATE) == (0), "PR_MCE_KILL_LATE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MCE_KILL_LATE 0
#endif
-#if !(defined(PR_MCE_KILL_EARLY) || (defined(HAVE_DECL_PR_MCE_KILL_EARLY) && HAVE_DECL_PR_MCE_KILL_EARLY))
+#if defined(PR_MCE_KILL_EARLY) || (defined(HAVE_DECL_PR_MCE_KILL_EARLY) && HAVE_DECL_PR_MCE_KILL_EARLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MCE_KILL_EARLY) == (1), "PR_MCE_KILL_EARLY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MCE_KILL_EARLY 1
#endif
-#if !(defined(PR_MCE_KILL_DEFAULT) || (defined(HAVE_DECL_PR_MCE_KILL_DEFAULT) && HAVE_DECL_PR_MCE_KILL_DEFAULT))
+#if defined(PR_MCE_KILL_DEFAULT) || (defined(HAVE_DECL_PR_MCE_KILL_DEFAULT) && HAVE_DECL_PR_MCE_KILL_DEFAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MCE_KILL_DEFAULT) == (2), "PR_MCE_KILL_DEFAULT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MCE_KILL_DEFAULT 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_mce_kill_policy in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_mce_kill_policy in mpers mode
+
+# else
static
const struct xlat pr_mce_kill_policy[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_set_mm.h b/xlat/pr_set_mm.h
index bc07483..e70ffc2 100644
--- a/xlat/pr_set_mm.h
+++ b/xlat/pr_set_mm.h
@@ -1,55 +1,121 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_set_mm.in; do not edit. */
-#if !(defined(PR_SET_MM_START_CODE) || (defined(HAVE_DECL_PR_SET_MM_START_CODE) && HAVE_DECL_PR_SET_MM_START_CODE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_SET_MM_START_CODE) || (defined(HAVE_DECL_PR_SET_MM_START_CODE) && HAVE_DECL_PR_SET_MM_START_CODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_START_CODE) == (1), "PR_SET_MM_START_CODE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_START_CODE 1
#endif
-#if !(defined(PR_SET_MM_END_CODE) || (defined(HAVE_DECL_PR_SET_MM_END_CODE) && HAVE_DECL_PR_SET_MM_END_CODE))
+#if defined(PR_SET_MM_END_CODE) || (defined(HAVE_DECL_PR_SET_MM_END_CODE) && HAVE_DECL_PR_SET_MM_END_CODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_END_CODE) == (2), "PR_SET_MM_END_CODE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_END_CODE 2
#endif
-#if !(defined(PR_SET_MM_START_DATA) || (defined(HAVE_DECL_PR_SET_MM_START_DATA) && HAVE_DECL_PR_SET_MM_START_DATA))
+#if defined(PR_SET_MM_START_DATA) || (defined(HAVE_DECL_PR_SET_MM_START_DATA) && HAVE_DECL_PR_SET_MM_START_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_START_DATA) == (3), "PR_SET_MM_START_DATA != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_START_DATA 3
#endif
-#if !(defined(PR_SET_MM_END_DATA) || (defined(HAVE_DECL_PR_SET_MM_END_DATA) && HAVE_DECL_PR_SET_MM_END_DATA))
+#if defined(PR_SET_MM_END_DATA) || (defined(HAVE_DECL_PR_SET_MM_END_DATA) && HAVE_DECL_PR_SET_MM_END_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_END_DATA) == (4), "PR_SET_MM_END_DATA != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_END_DATA 4
#endif
-#if !(defined(PR_SET_MM_START_STACK) || (defined(HAVE_DECL_PR_SET_MM_START_STACK) && HAVE_DECL_PR_SET_MM_START_STACK))
+#if defined(PR_SET_MM_START_STACK) || (defined(HAVE_DECL_PR_SET_MM_START_STACK) && HAVE_DECL_PR_SET_MM_START_STACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_START_STACK) == (5), "PR_SET_MM_START_STACK != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_START_STACK 5
#endif
-#if !(defined(PR_SET_MM_START_BRK) || (defined(HAVE_DECL_PR_SET_MM_START_BRK) && HAVE_DECL_PR_SET_MM_START_BRK))
+#if defined(PR_SET_MM_START_BRK) || (defined(HAVE_DECL_PR_SET_MM_START_BRK) && HAVE_DECL_PR_SET_MM_START_BRK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_START_BRK) == (6), "PR_SET_MM_START_BRK != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_START_BRK 6
#endif
-#if !(defined(PR_SET_MM_BRK) || (defined(HAVE_DECL_PR_SET_MM_BRK) && HAVE_DECL_PR_SET_MM_BRK))
+#if defined(PR_SET_MM_BRK) || (defined(HAVE_DECL_PR_SET_MM_BRK) && HAVE_DECL_PR_SET_MM_BRK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_BRK) == (7), "PR_SET_MM_BRK != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_BRK 7
#endif
-#if !(defined(PR_SET_MM_ARG_START) || (defined(HAVE_DECL_PR_SET_MM_ARG_START) && HAVE_DECL_PR_SET_MM_ARG_START))
+#if defined(PR_SET_MM_ARG_START) || (defined(HAVE_DECL_PR_SET_MM_ARG_START) && HAVE_DECL_PR_SET_MM_ARG_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_ARG_START) == (8), "PR_SET_MM_ARG_START != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_ARG_START 8
#endif
-#if !(defined(PR_SET_MM_ARG_END) || (defined(HAVE_DECL_PR_SET_MM_ARG_END) && HAVE_DECL_PR_SET_MM_ARG_END))
+#if defined(PR_SET_MM_ARG_END) || (defined(HAVE_DECL_PR_SET_MM_ARG_END) && HAVE_DECL_PR_SET_MM_ARG_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_ARG_END) == (9), "PR_SET_MM_ARG_END != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_ARG_END 9
#endif
-#if !(defined(PR_SET_MM_ENV_START) || (defined(HAVE_DECL_PR_SET_MM_ENV_START) && HAVE_DECL_PR_SET_MM_ENV_START))
+#if defined(PR_SET_MM_ENV_START) || (defined(HAVE_DECL_PR_SET_MM_ENV_START) && HAVE_DECL_PR_SET_MM_ENV_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_ENV_START) == (10), "PR_SET_MM_ENV_START != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_ENV_START 10
#endif
-#if !(defined(PR_SET_MM_ENV_END) || (defined(HAVE_DECL_PR_SET_MM_ENV_END) && HAVE_DECL_PR_SET_MM_ENV_END))
+#if defined(PR_SET_MM_ENV_END) || (defined(HAVE_DECL_PR_SET_MM_ENV_END) && HAVE_DECL_PR_SET_MM_ENV_END)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_ENV_END) == (11), "PR_SET_MM_ENV_END != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_ENV_END 11
#endif
-#if !(defined(PR_SET_MM_AUXV) || (defined(HAVE_DECL_PR_SET_MM_AUXV) && HAVE_DECL_PR_SET_MM_AUXV))
+#if defined(PR_SET_MM_AUXV) || (defined(HAVE_DECL_PR_SET_MM_AUXV) && HAVE_DECL_PR_SET_MM_AUXV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_AUXV) == (12), "PR_SET_MM_AUXV != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_AUXV 12
#endif
-#if !(defined(PR_SET_MM_EXE_FILE) || (defined(HAVE_DECL_PR_SET_MM_EXE_FILE) && HAVE_DECL_PR_SET_MM_EXE_FILE))
+#if defined(PR_SET_MM_EXE_FILE) || (defined(HAVE_DECL_PR_SET_MM_EXE_FILE) && HAVE_DECL_PR_SET_MM_EXE_FILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_EXE_FILE) == (13), "PR_SET_MM_EXE_FILE != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_EXE_FILE 13
#endif
-#if !(defined(PR_SET_MM_MAP) || (defined(HAVE_DECL_PR_SET_MM_MAP) && HAVE_DECL_PR_SET_MM_MAP))
+#if defined(PR_SET_MM_MAP) || (defined(HAVE_DECL_PR_SET_MM_MAP) && HAVE_DECL_PR_SET_MM_MAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_MAP) == (14), "PR_SET_MM_MAP != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_MAP 14
#endif
-#if !(defined(PR_SET_MM_MAP_SIZE) || (defined(HAVE_DECL_PR_SET_MM_MAP_SIZE) && HAVE_DECL_PR_SET_MM_MAP_SIZE))
+#if defined(PR_SET_MM_MAP_SIZE) || (defined(HAVE_DECL_PR_SET_MM_MAP_SIZE) && HAVE_DECL_PR_SET_MM_MAP_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM_MAP_SIZE) == (15), "PR_SET_MM_MAP_SIZE != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_MM_MAP_SIZE 15
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_set_mm in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_set_mm in mpers mode
+
+# else
static
const struct xlat pr_set_mm[] = {
@@ -71,4 +137,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_spec_cmds.h b/xlat/pr_spec_cmds.h
new file mode 100644
index 0000000..7724d24
--- /dev/null
+++ b/xlat/pr_spec_cmds.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/pr_spec_cmds.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_SPEC_STORE_BYPASS) || (defined(HAVE_DECL_PR_SPEC_STORE_BYPASS) && HAVE_DECL_PR_SPEC_STORE_BYPASS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_STORE_BYPASS) == (0), "PR_SPEC_STORE_BYPASS != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_STORE_BYPASS 0
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat pr_spec_cmds in mpers mode
+
+# else
+
+static
+const struct xlat pr_spec_cmds[] = {
+ XLAT(PR_SPEC_STORE_BYPASS),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_spec_cmds.in b/xlat/pr_spec_cmds.in
new file mode 100644
index 0000000..e006923
--- /dev/null
+++ b/xlat/pr_spec_cmds.in
@@ -0,0 +1 @@
+PR_SPEC_STORE_BYPASS 0
diff --git a/xlat/pr_spec_get_store_bypass_flags.h b/xlat/pr_spec_get_store_bypass_flags.h
new file mode 100644
index 0000000..6985caa
--- /dev/null
+++ b/xlat/pr_spec_get_store_bypass_flags.h
@@ -0,0 +1,62 @@
+/* Generated by ./xlat/gen.sh from ./xlat/pr_spec_get_store_bypass_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_SPEC_NOT_AFFECTED) || (defined(HAVE_DECL_PR_SPEC_NOT_AFFECTED) && HAVE_DECL_PR_SPEC_NOT_AFFECTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_NOT_AFFECTED) == (0), "PR_SPEC_NOT_AFFECTED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_NOT_AFFECTED 0
+#endif
+#if defined(PR_SPEC_PRCTL) || (defined(HAVE_DECL_PR_SPEC_PRCTL) && HAVE_DECL_PR_SPEC_PRCTL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_PRCTL) == ((1 << 0)), "PR_SPEC_PRCTL != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_PRCTL (1 << 0)
+#endif
+#if defined(PR_SPEC_ENABLE) || (defined(HAVE_DECL_PR_SPEC_ENABLE) && HAVE_DECL_PR_SPEC_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_ENABLE) == ((1 << 1)), "PR_SPEC_ENABLE != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_ENABLE (1 << 1)
+#endif
+#if defined(PR_SPEC_DISABLE) || (defined(HAVE_DECL_PR_SPEC_DISABLE) && HAVE_DECL_PR_SPEC_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_DISABLE) == ((1 << 2)), "PR_SPEC_DISABLE != (1 << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_DISABLE (1 << 2)
+#endif
+#if defined(PR_SPEC_FORCE_DISABLE) || (defined(HAVE_DECL_PR_SPEC_FORCE_DISABLE) && HAVE_DECL_PR_SPEC_FORCE_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_FORCE_DISABLE) == ((1 << 3)), "PR_SPEC_FORCE_DISABLE != (1 << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_FORCE_DISABLE (1 << 3)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat pr_spec_get_store_bypass_flags in mpers mode
+
+# else
+
+static
+const struct xlat pr_spec_get_store_bypass_flags[] = {
+ XLAT(PR_SPEC_NOT_AFFECTED),
+ XLAT(PR_SPEC_PRCTL),
+ XLAT(PR_SPEC_ENABLE),
+ XLAT(PR_SPEC_DISABLE),
+ XLAT(PR_SPEC_FORCE_DISABLE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_spec_get_store_bypass_flags.in b/xlat/pr_spec_get_store_bypass_flags.in
new file mode 100644
index 0000000..81f3674
--- /dev/null
+++ b/xlat/pr_spec_get_store_bypass_flags.in
@@ -0,0 +1,5 @@
+PR_SPEC_NOT_AFFECTED 0
+PR_SPEC_PRCTL (1 << 0)
+PR_SPEC_ENABLE (1 << 1)
+PR_SPEC_DISABLE (1 << 2)
+PR_SPEC_FORCE_DISABLE (1 << 3)
diff --git a/xlat/pr_spec_set_store_bypass_flags.h b/xlat/pr_spec_set_store_bypass_flags.h
new file mode 100644
index 0000000..1ff205b
--- /dev/null
+++ b/xlat/pr_spec_set_store_bypass_flags.h
@@ -0,0 +1,46 @@
+/* Generated by ./xlat/gen.sh from ./xlat/pr_spec_set_store_bypass_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_SPEC_ENABLE) || (defined(HAVE_DECL_PR_SPEC_ENABLE) && HAVE_DECL_PR_SPEC_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_ENABLE) == ((1 << 1)), "PR_SPEC_ENABLE != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_ENABLE (1 << 1)
+#endif
+#if defined(PR_SPEC_DISABLE) || (defined(HAVE_DECL_PR_SPEC_DISABLE) && HAVE_DECL_PR_SPEC_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_DISABLE) == ((1 << 2)), "PR_SPEC_DISABLE != (1 << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_DISABLE (1 << 2)
+#endif
+#if defined(PR_SPEC_FORCE_DISABLE) || (defined(HAVE_DECL_PR_SPEC_FORCE_DISABLE) && HAVE_DECL_PR_SPEC_FORCE_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SPEC_FORCE_DISABLE) == ((1 << 3)), "PR_SPEC_FORCE_DISABLE != (1 << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SPEC_FORCE_DISABLE (1 << 3)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat pr_spec_set_store_bypass_flags in mpers mode
+
+# else
+
+static
+const struct xlat pr_spec_set_store_bypass_flags[] = {
+ XLAT(PR_SPEC_ENABLE),
+ XLAT(PR_SPEC_DISABLE),
+ XLAT(PR_SPEC_FORCE_DISABLE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_spec_set_store_bypass_flags.in b/xlat/pr_spec_set_store_bypass_flags.in
new file mode 100644
index 0000000..04f3a03
--- /dev/null
+++ b/xlat/pr_spec_set_store_bypass_flags.in
@@ -0,0 +1,3 @@
+PR_SPEC_ENABLE (1 << 1)
+PR_SPEC_DISABLE (1 << 2)
+PR_SPEC_FORCE_DISABLE (1 << 3)
diff --git a/xlat/pr_sve_vl_flags.h b/xlat/pr_sve_vl_flags.h
index 3dcbb06..9a524b0 100644
--- a/xlat/pr_sve_vl_flags.h
+++ b/xlat/pr_sve_vl_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_sve_vl_flags.in; do not edit. */
-#if !(defined(PR_SVE_SET_VL_ONEXEC) || (defined(HAVE_DECL_PR_SVE_SET_VL_ONEXEC) && HAVE_DECL_PR_SVE_SET_VL_ONEXEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_SVE_SET_VL_ONEXEC) || (defined(HAVE_DECL_PR_SVE_SET_VL_ONEXEC) && HAVE_DECL_PR_SVE_SET_VL_ONEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SVE_SET_VL_ONEXEC) == ((1 << 18)), "PR_SVE_SET_VL_ONEXEC != (1 << 18)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SVE_SET_VL_ONEXEC (1 << 18)
#endif
-#if !(defined(PR_SVE_VL_INHERIT) || (defined(HAVE_DECL_PR_SVE_VL_INHERIT) && HAVE_DECL_PR_SVE_VL_INHERIT))
+#if defined(PR_SVE_VL_INHERIT) || (defined(HAVE_DECL_PR_SVE_VL_INHERIT) && HAVE_DECL_PR_SVE_VL_INHERIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SVE_VL_INHERIT) == ((1 << 17)), "PR_SVE_VL_INHERIT != (1 << 17)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SVE_VL_INHERIT (1 << 17)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_sve_vl_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_sve_vl_flags in mpers mode
+
+# else
static
const struct xlat pr_sve_vl_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_tsc.h b/xlat/pr_tsc.h
index daec871..52b8caf 100644
--- a/xlat/pr_tsc.h
+++ b/xlat/pr_tsc.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_tsc.in; do not edit. */
-#if !(defined(PR_TSC_ENABLE) || (defined(HAVE_DECL_PR_TSC_ENABLE) && HAVE_DECL_PR_TSC_ENABLE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_TSC_ENABLE) || (defined(HAVE_DECL_PR_TSC_ENABLE) && HAVE_DECL_PR_TSC_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_TSC_ENABLE) == (1), "PR_TSC_ENABLE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_TSC_ENABLE 1
#endif
-#if !(defined(PR_TSC_SIGSEGV) || (defined(HAVE_DECL_PR_TSC_SIGSEGV) && HAVE_DECL_PR_TSC_SIGSEGV))
+#if defined(PR_TSC_SIGSEGV) || (defined(HAVE_DECL_PR_TSC_SIGSEGV) && HAVE_DECL_PR_TSC_SIGSEGV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_TSC_SIGSEGV) == (2), "PR_TSC_SIGSEGV != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_TSC_SIGSEGV 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_tsc in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_tsc in mpers mode
+
+# else
static
const struct xlat pr_tsc[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/pr_unalign_flags.h b/xlat/pr_unalign_flags.h
index 5a92686..e80c130 100644
--- a/xlat/pr_unalign_flags.h
+++ b/xlat/pr_unalign_flags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/pr_unalign_flags.in; do not edit. */
-#if !(defined(PR_UNALIGN_NOPRINT) || (defined(HAVE_DECL_PR_UNALIGN_NOPRINT) && HAVE_DECL_PR_UNALIGN_NOPRINT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_UNALIGN_NOPRINT) || (defined(HAVE_DECL_PR_UNALIGN_NOPRINT) && HAVE_DECL_PR_UNALIGN_NOPRINT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_UNALIGN_NOPRINT) == (1), "PR_UNALIGN_NOPRINT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_UNALIGN_NOPRINT 1
#endif
-#if !(defined(PR_UNALIGN_SIGBUS) || (defined(HAVE_DECL_PR_UNALIGN_SIGBUS) && HAVE_DECL_PR_UNALIGN_SIGBUS))
+#if defined(PR_UNALIGN_SIGBUS) || (defined(HAVE_DECL_PR_UNALIGN_SIGBUS) && HAVE_DECL_PR_UNALIGN_SIGBUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_UNALIGN_SIGBUS) == (2), "PR_UNALIGN_SIGBUS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_UNALIGN_SIGBUS 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat pr_unalign_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat pr_unalign_flags in mpers mode
+
+# else
static
const struct xlat pr_unalign_flags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/prctl_options.h b/xlat/prctl_options.h
index e1a470f..b018dfc 100644
--- a/xlat/prctl_options.h
+++ b/xlat/prctl_options.h
@@ -1,157 +1,373 @@
/* Generated by ./xlat/gen.sh from ./xlat/prctl_options.in; do not edit. */
-#if !(defined(PR_SET_PDEATHSIG) || (defined(HAVE_DECL_PR_SET_PDEATHSIG) && HAVE_DECL_PR_SET_PDEATHSIG))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PR_SET_PDEATHSIG) || (defined(HAVE_DECL_PR_SET_PDEATHSIG) && HAVE_DECL_PR_SET_PDEATHSIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_PDEATHSIG) == (1), "PR_SET_PDEATHSIG != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_PDEATHSIG 1
#endif
-#if !(defined(PR_GET_PDEATHSIG) || (defined(HAVE_DECL_PR_GET_PDEATHSIG) && HAVE_DECL_PR_GET_PDEATHSIG))
+#if defined(PR_GET_PDEATHSIG) || (defined(HAVE_DECL_PR_GET_PDEATHSIG) && HAVE_DECL_PR_GET_PDEATHSIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_PDEATHSIG) == (2), "PR_GET_PDEATHSIG != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_PDEATHSIG 2
#endif
-#if !(defined(PR_GET_DUMPABLE) || (defined(HAVE_DECL_PR_GET_DUMPABLE) && HAVE_DECL_PR_GET_DUMPABLE))
+#if defined(PR_GET_DUMPABLE) || (defined(HAVE_DECL_PR_GET_DUMPABLE) && HAVE_DECL_PR_GET_DUMPABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_DUMPABLE) == (3), "PR_GET_DUMPABLE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_DUMPABLE 3
#endif
-#if !(defined(PR_SET_DUMPABLE) || (defined(HAVE_DECL_PR_SET_DUMPABLE) && HAVE_DECL_PR_SET_DUMPABLE))
+#if defined(PR_SET_DUMPABLE) || (defined(HAVE_DECL_PR_SET_DUMPABLE) && HAVE_DECL_PR_SET_DUMPABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_DUMPABLE) == (4), "PR_SET_DUMPABLE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_DUMPABLE 4
#endif
-#if !(defined(PR_GET_UNALIGN) || (defined(HAVE_DECL_PR_GET_UNALIGN) && HAVE_DECL_PR_GET_UNALIGN))
+#if defined(PR_GET_UNALIGN) || (defined(HAVE_DECL_PR_GET_UNALIGN) && HAVE_DECL_PR_GET_UNALIGN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_UNALIGN) == (5), "PR_GET_UNALIGN != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_UNALIGN 5
#endif
-#if !(defined(PR_SET_UNALIGN) || (defined(HAVE_DECL_PR_SET_UNALIGN) && HAVE_DECL_PR_SET_UNALIGN))
+#if defined(PR_SET_UNALIGN) || (defined(HAVE_DECL_PR_SET_UNALIGN) && HAVE_DECL_PR_SET_UNALIGN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_UNALIGN) == (6), "PR_SET_UNALIGN != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_UNALIGN 6
#endif
-#if !(defined(PR_GET_KEEPCAPS) || (defined(HAVE_DECL_PR_GET_KEEPCAPS) && HAVE_DECL_PR_GET_KEEPCAPS))
+#if defined(PR_GET_KEEPCAPS) || (defined(HAVE_DECL_PR_GET_KEEPCAPS) && HAVE_DECL_PR_GET_KEEPCAPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_KEEPCAPS) == (7), "PR_GET_KEEPCAPS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_KEEPCAPS 7
#endif
-#if !(defined(PR_SET_KEEPCAPS) || (defined(HAVE_DECL_PR_SET_KEEPCAPS) && HAVE_DECL_PR_SET_KEEPCAPS))
+#if defined(PR_SET_KEEPCAPS) || (defined(HAVE_DECL_PR_SET_KEEPCAPS) && HAVE_DECL_PR_SET_KEEPCAPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_KEEPCAPS) == (8), "PR_SET_KEEPCAPS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_KEEPCAPS 8
#endif
-#if !(defined(PR_GET_FPEMU) || (defined(HAVE_DECL_PR_GET_FPEMU) && HAVE_DECL_PR_GET_FPEMU))
+#if defined(PR_GET_FPEMU) || (defined(HAVE_DECL_PR_GET_FPEMU) && HAVE_DECL_PR_GET_FPEMU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_FPEMU) == (9), "PR_GET_FPEMU != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_FPEMU 9
#endif
-#if !(defined(PR_SET_FPEMU) || (defined(HAVE_DECL_PR_SET_FPEMU) && HAVE_DECL_PR_SET_FPEMU))
+#if defined(PR_SET_FPEMU) || (defined(HAVE_DECL_PR_SET_FPEMU) && HAVE_DECL_PR_SET_FPEMU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_FPEMU) == (10), "PR_SET_FPEMU != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_FPEMU 10
#endif
-#if !(defined(PR_GET_FPEXC) || (defined(HAVE_DECL_PR_GET_FPEXC) && HAVE_DECL_PR_GET_FPEXC))
+#if defined(PR_GET_FPEXC) || (defined(HAVE_DECL_PR_GET_FPEXC) && HAVE_DECL_PR_GET_FPEXC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_FPEXC) == (11), "PR_GET_FPEXC != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_FPEXC 11
#endif
-#if !(defined(PR_SET_FPEXC) || (defined(HAVE_DECL_PR_SET_FPEXC) && HAVE_DECL_PR_SET_FPEXC))
+#if defined(PR_SET_FPEXC) || (defined(HAVE_DECL_PR_SET_FPEXC) && HAVE_DECL_PR_SET_FPEXC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_FPEXC) == (12), "PR_SET_FPEXC != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_FPEXC 12
#endif
-#if !(defined(PR_GET_TIMING) || (defined(HAVE_DECL_PR_GET_TIMING) && HAVE_DECL_PR_GET_TIMING))
+#if defined(PR_GET_TIMING) || (defined(HAVE_DECL_PR_GET_TIMING) && HAVE_DECL_PR_GET_TIMING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_TIMING) == (13), "PR_GET_TIMING != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_TIMING 13
#endif
-#if !(defined(PR_SET_TIMING) || (defined(HAVE_DECL_PR_SET_TIMING) && HAVE_DECL_PR_SET_TIMING))
+#if defined(PR_SET_TIMING) || (defined(HAVE_DECL_PR_SET_TIMING) && HAVE_DECL_PR_SET_TIMING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_TIMING) == (14), "PR_SET_TIMING != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_TIMING 14
#endif
-#if !(defined(PR_SET_NAME) || (defined(HAVE_DECL_PR_SET_NAME) && HAVE_DECL_PR_SET_NAME))
+#if defined(PR_SET_NAME) || (defined(HAVE_DECL_PR_SET_NAME) && HAVE_DECL_PR_SET_NAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_NAME) == (15), "PR_SET_NAME != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_NAME 15
#endif
-#if !(defined(PR_GET_NAME) || (defined(HAVE_DECL_PR_GET_NAME) && HAVE_DECL_PR_GET_NAME))
+#if defined(PR_GET_NAME) || (defined(HAVE_DECL_PR_GET_NAME) && HAVE_DECL_PR_GET_NAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_NAME) == (16), "PR_GET_NAME != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_NAME 16
#endif
-#if !(defined(PR_GET_ENDIAN) || (defined(HAVE_DECL_PR_GET_ENDIAN) && HAVE_DECL_PR_GET_ENDIAN))
+#if defined(PR_GET_ENDIAN) || (defined(HAVE_DECL_PR_GET_ENDIAN) && HAVE_DECL_PR_GET_ENDIAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_ENDIAN) == (19), "PR_GET_ENDIAN != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_ENDIAN 19
#endif
-#if !(defined(PR_SET_ENDIAN) || (defined(HAVE_DECL_PR_SET_ENDIAN) && HAVE_DECL_PR_SET_ENDIAN))
+#if defined(PR_SET_ENDIAN) || (defined(HAVE_DECL_PR_SET_ENDIAN) && HAVE_DECL_PR_SET_ENDIAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_ENDIAN) == (20), "PR_SET_ENDIAN != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_ENDIAN 20
#endif
-#if !(defined(PR_GET_SECCOMP) || (defined(HAVE_DECL_PR_GET_SECCOMP) && HAVE_DECL_PR_GET_SECCOMP))
+#if defined(PR_GET_SECCOMP) || (defined(HAVE_DECL_PR_GET_SECCOMP) && HAVE_DECL_PR_GET_SECCOMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_SECCOMP) == (21), "PR_GET_SECCOMP != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_SECCOMP 21
#endif
-#if !(defined(PR_SET_SECCOMP) || (defined(HAVE_DECL_PR_SET_SECCOMP) && HAVE_DECL_PR_SET_SECCOMP))
+#if defined(PR_SET_SECCOMP) || (defined(HAVE_DECL_PR_SET_SECCOMP) && HAVE_DECL_PR_SET_SECCOMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_SECCOMP) == (22), "PR_SET_SECCOMP != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_SECCOMP 22
#endif
-#if !(defined(PR_CAPBSET_READ) || (defined(HAVE_DECL_PR_CAPBSET_READ) && HAVE_DECL_PR_CAPBSET_READ))
+#if defined(PR_CAPBSET_READ) || (defined(HAVE_DECL_PR_CAPBSET_READ) && HAVE_DECL_PR_CAPBSET_READ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_CAPBSET_READ) == (23), "PR_CAPBSET_READ != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_CAPBSET_READ 23
#endif
-#if !(defined(PR_CAPBSET_DROP) || (defined(HAVE_DECL_PR_CAPBSET_DROP) && HAVE_DECL_PR_CAPBSET_DROP))
+#if defined(PR_CAPBSET_DROP) || (defined(HAVE_DECL_PR_CAPBSET_DROP) && HAVE_DECL_PR_CAPBSET_DROP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_CAPBSET_DROP) == (24), "PR_CAPBSET_DROP != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_CAPBSET_DROP 24
#endif
-#if !(defined(PR_GET_TSC) || (defined(HAVE_DECL_PR_GET_TSC) && HAVE_DECL_PR_GET_TSC))
+#if defined(PR_GET_TSC) || (defined(HAVE_DECL_PR_GET_TSC) && HAVE_DECL_PR_GET_TSC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_TSC) == (25), "PR_GET_TSC != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_TSC 25
#endif
-#if !(defined(PR_SET_TSC) || (defined(HAVE_DECL_PR_SET_TSC) && HAVE_DECL_PR_SET_TSC))
+#if defined(PR_SET_TSC) || (defined(HAVE_DECL_PR_SET_TSC) && HAVE_DECL_PR_SET_TSC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_TSC) == (26), "PR_SET_TSC != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_TSC 26
#endif
-#if !(defined(PR_GET_SECUREBITS) || (defined(HAVE_DECL_PR_GET_SECUREBITS) && HAVE_DECL_PR_GET_SECUREBITS))
+#if defined(PR_GET_SECUREBITS) || (defined(HAVE_DECL_PR_GET_SECUREBITS) && HAVE_DECL_PR_GET_SECUREBITS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_SECUREBITS) == (27), "PR_GET_SECUREBITS != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_SECUREBITS 27
#endif
-#if !(defined(PR_SET_SECUREBITS) || (defined(HAVE_DECL_PR_SET_SECUREBITS) && HAVE_DECL_PR_SET_SECUREBITS))
+#if defined(PR_SET_SECUREBITS) || (defined(HAVE_DECL_PR_SET_SECUREBITS) && HAVE_DECL_PR_SET_SECUREBITS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_SECUREBITS) == (28), "PR_SET_SECUREBITS != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_SECUREBITS 28
#endif
-#if !(defined(PR_SET_TIMERSLACK) || (defined(HAVE_DECL_PR_SET_TIMERSLACK) && HAVE_DECL_PR_SET_TIMERSLACK))
+#if defined(PR_SET_TIMERSLACK) || (defined(HAVE_DECL_PR_SET_TIMERSLACK) && HAVE_DECL_PR_SET_TIMERSLACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_TIMERSLACK) == (29), "PR_SET_TIMERSLACK != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_TIMERSLACK 29
#endif
-#if !(defined(PR_GET_TIMERSLACK) || (defined(HAVE_DECL_PR_GET_TIMERSLACK) && HAVE_DECL_PR_GET_TIMERSLACK))
+#if defined(PR_GET_TIMERSLACK) || (defined(HAVE_DECL_PR_GET_TIMERSLACK) && HAVE_DECL_PR_GET_TIMERSLACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_TIMERSLACK) == (30), "PR_GET_TIMERSLACK != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_TIMERSLACK 30
#endif
-#if !(defined(PR_TASK_PERF_EVENTS_DISABLE) || (defined(HAVE_DECL_PR_TASK_PERF_EVENTS_DISABLE) && HAVE_DECL_PR_TASK_PERF_EVENTS_DISABLE))
+#if defined(PR_TASK_PERF_EVENTS_DISABLE) || (defined(HAVE_DECL_PR_TASK_PERF_EVENTS_DISABLE) && HAVE_DECL_PR_TASK_PERF_EVENTS_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_TASK_PERF_EVENTS_DISABLE) == (31), "PR_TASK_PERF_EVENTS_DISABLE != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_TASK_PERF_EVENTS_DISABLE 31
#endif
-#if !(defined(PR_TASK_PERF_EVENTS_ENABLE) || (defined(HAVE_DECL_PR_TASK_PERF_EVENTS_ENABLE) && HAVE_DECL_PR_TASK_PERF_EVENTS_ENABLE))
+#if defined(PR_TASK_PERF_EVENTS_ENABLE) || (defined(HAVE_DECL_PR_TASK_PERF_EVENTS_ENABLE) && HAVE_DECL_PR_TASK_PERF_EVENTS_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_TASK_PERF_EVENTS_ENABLE) == (32), "PR_TASK_PERF_EVENTS_ENABLE != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_TASK_PERF_EVENTS_ENABLE 32
#endif
-#if !(defined(PR_MCE_KILL) || (defined(HAVE_DECL_PR_MCE_KILL) && HAVE_DECL_PR_MCE_KILL))
+#if defined(PR_MCE_KILL) || (defined(HAVE_DECL_PR_MCE_KILL) && HAVE_DECL_PR_MCE_KILL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MCE_KILL) == (33), "PR_MCE_KILL != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MCE_KILL 33
#endif
-#if !(defined(PR_MCE_KILL_GET) || (defined(HAVE_DECL_PR_MCE_KILL_GET) && HAVE_DECL_PR_MCE_KILL_GET))
+#if defined(PR_MCE_KILL_GET) || (defined(HAVE_DECL_PR_MCE_KILL_GET) && HAVE_DECL_PR_MCE_KILL_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MCE_KILL_GET) == (34), "PR_MCE_KILL_GET != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MCE_KILL_GET 34
#endif
-#if !(defined(PR_SET_MM) || (defined(HAVE_DECL_PR_SET_MM) && HAVE_DECL_PR_SET_MM))
+#if defined(PR_SET_MM) || (defined(HAVE_DECL_PR_SET_MM) && HAVE_DECL_PR_SET_MM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_MM) == (35), "PR_SET_MM != 35");
+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))
+#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))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_CHILD_SUBREAPER 36
#endif
-#if !(defined(PR_GET_CHILD_SUBREAPER) || (defined(HAVE_DECL_PR_GET_CHILD_SUBREAPER) && HAVE_DECL_PR_GET_CHILD_SUBREAPER))
+#if defined(PR_GET_CHILD_SUBREAPER) || (defined(HAVE_DECL_PR_GET_CHILD_SUBREAPER) && HAVE_DECL_PR_GET_CHILD_SUBREAPER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_CHILD_SUBREAPER) == (37), "PR_GET_CHILD_SUBREAPER != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_CHILD_SUBREAPER 37
#endif
-#if !(defined(PR_SET_NO_NEW_PRIVS) || (defined(HAVE_DECL_PR_SET_NO_NEW_PRIVS) && HAVE_DECL_PR_SET_NO_NEW_PRIVS))
+#if defined(PR_SET_NO_NEW_PRIVS) || (defined(HAVE_DECL_PR_SET_NO_NEW_PRIVS) && HAVE_DECL_PR_SET_NO_NEW_PRIVS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_NO_NEW_PRIVS) == (38), "PR_SET_NO_NEW_PRIVS != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_NO_NEW_PRIVS 38
#endif
-#if !(defined(PR_GET_NO_NEW_PRIVS) || (defined(HAVE_DECL_PR_GET_NO_NEW_PRIVS) && HAVE_DECL_PR_GET_NO_NEW_PRIVS))
+#if defined(PR_GET_NO_NEW_PRIVS) || (defined(HAVE_DECL_PR_GET_NO_NEW_PRIVS) && HAVE_DECL_PR_GET_NO_NEW_PRIVS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_NO_NEW_PRIVS) == (39), "PR_GET_NO_NEW_PRIVS != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_NO_NEW_PRIVS 39
#endif
-#if !(defined(PR_GET_TID_ADDRESS) || (defined(HAVE_DECL_PR_GET_TID_ADDRESS) && HAVE_DECL_PR_GET_TID_ADDRESS))
+#if defined(PR_GET_TID_ADDRESS) || (defined(HAVE_DECL_PR_GET_TID_ADDRESS) && HAVE_DECL_PR_GET_TID_ADDRESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_TID_ADDRESS) == (40), "PR_GET_TID_ADDRESS != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_TID_ADDRESS 40
#endif
-#if !(defined(PR_SET_THP_DISABLE) || (defined(HAVE_DECL_PR_SET_THP_DISABLE) && HAVE_DECL_PR_SET_THP_DISABLE))
+#if defined(PR_SET_THP_DISABLE) || (defined(HAVE_DECL_PR_SET_THP_DISABLE) && HAVE_DECL_PR_SET_THP_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_THP_DISABLE) == (41), "PR_SET_THP_DISABLE != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_THP_DISABLE 41
#endif
-#if !(defined(PR_GET_THP_DISABLE) || (defined(HAVE_DECL_PR_GET_THP_DISABLE) && HAVE_DECL_PR_GET_THP_DISABLE))
+#if defined(PR_GET_THP_DISABLE) || (defined(HAVE_DECL_PR_GET_THP_DISABLE) && HAVE_DECL_PR_GET_THP_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_THP_DISABLE) == (42), "PR_GET_THP_DISABLE != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_THP_DISABLE 42
#endif
-#if !(defined(PR_MPX_ENABLE_MANAGEMENT) || (defined(HAVE_DECL_PR_MPX_ENABLE_MANAGEMENT) && HAVE_DECL_PR_MPX_ENABLE_MANAGEMENT))
+#if defined(PR_MPX_ENABLE_MANAGEMENT) || (defined(HAVE_DECL_PR_MPX_ENABLE_MANAGEMENT) && HAVE_DECL_PR_MPX_ENABLE_MANAGEMENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MPX_ENABLE_MANAGEMENT) == (43), "PR_MPX_ENABLE_MANAGEMENT != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MPX_ENABLE_MANAGEMENT 43
#endif
-#if !(defined(PR_MPX_DISABLE_MANAGEMENT) || (defined(HAVE_DECL_PR_MPX_DISABLE_MANAGEMENT) && HAVE_DECL_PR_MPX_DISABLE_MANAGEMENT))
+#if defined(PR_MPX_DISABLE_MANAGEMENT) || (defined(HAVE_DECL_PR_MPX_DISABLE_MANAGEMENT) && HAVE_DECL_PR_MPX_DISABLE_MANAGEMENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_MPX_DISABLE_MANAGEMENT) == (44), "PR_MPX_DISABLE_MANAGEMENT != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_MPX_DISABLE_MANAGEMENT 44
#endif
-#if !(defined(PR_SET_FP_MODE) || (defined(HAVE_DECL_PR_SET_FP_MODE) && HAVE_DECL_PR_SET_FP_MODE))
+#if defined(PR_SET_FP_MODE) || (defined(HAVE_DECL_PR_SET_FP_MODE) && HAVE_DECL_PR_SET_FP_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_FP_MODE) == (45), "PR_SET_FP_MODE != 45");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_FP_MODE 45
#endif
-#if !(defined(PR_GET_FP_MODE) || (defined(HAVE_DECL_PR_GET_FP_MODE) && HAVE_DECL_PR_GET_FP_MODE))
+#if defined(PR_GET_FP_MODE) || (defined(HAVE_DECL_PR_GET_FP_MODE) && HAVE_DECL_PR_GET_FP_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_FP_MODE) == (46), "PR_GET_FP_MODE != 46");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_GET_FP_MODE 46
#endif
-#if !(defined(PR_CAP_AMBIENT) || (defined(HAVE_DECL_PR_CAP_AMBIENT) && HAVE_DECL_PR_CAP_AMBIENT))
+#if defined(PR_CAP_AMBIENT) || (defined(HAVE_DECL_PR_CAP_AMBIENT) && HAVE_DECL_PR_CAP_AMBIENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_CAP_AMBIENT) == (47), "PR_CAP_AMBIENT != 47");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_CAP_AMBIENT 47
#endif
-#if !(defined(PR_SVE_SET_VL) || (defined(HAVE_DECL_PR_SVE_SET_VL) && HAVE_DECL_PR_SVE_SET_VL))
+#if defined(PR_SVE_SET_VL) || (defined(HAVE_DECL_PR_SVE_SET_VL) && HAVE_DECL_PR_SVE_SET_VL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SVE_SET_VL) == (50), "PR_SVE_SET_VL != 50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SVE_SET_VL 50
#endif
-#if !(defined(PR_SVE_GET_VL) || (defined(HAVE_DECL_PR_SVE_GET_VL) && HAVE_DECL_PR_SVE_GET_VL))
+#if defined(PR_SVE_GET_VL) || (defined(HAVE_DECL_PR_SVE_GET_VL) && HAVE_DECL_PR_SVE_GET_VL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SVE_GET_VL) == (51), "PR_SVE_GET_VL != 51");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SVE_GET_VL 51
#endif
-#if !(defined(PR_SET_VMA) || (defined(HAVE_DECL_PR_SET_VMA) && HAVE_DECL_PR_SET_VMA))
+#if defined(PR_GET_SPECULATION_CTRL) || (defined(HAVE_DECL_PR_GET_SPECULATION_CTRL) && HAVE_DECL_PR_GET_SPECULATION_CTRL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_GET_SPECULATION_CTRL) == (52), "PR_GET_SPECULATION_CTRL != 52");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_GET_SPECULATION_CTRL 52
+#endif
+#if defined(PR_SET_SPECULATION_CTRL) || (defined(HAVE_DECL_PR_SET_SPECULATION_CTRL) && HAVE_DECL_PR_SET_SPECULATION_CTRL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PR_SET_SPECULATION_CTRL) == (53), "PR_SET_SPECULATION_CTRL != 53");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PR_SET_SPECULATION_CTRL 53
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PR_SET_VMA 0x53564d41
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat prctl_options in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat prctl_options in mpers mode
+
+# else
static
const struct xlat prctl_options[] = {
@@ -203,8 +419,12 @@
XLAT(PR_CAP_AMBIENT),
XLAT(PR_SVE_SET_VL),
XLAT(PR_SVE_GET_VL),
+ XLAT(PR_GET_SPECULATION_CTRL),
+ XLAT(PR_SET_SPECULATION_CTRL),
XLAT(PR_SET_VMA),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/prctl_options.in b/xlat/prctl_options.in
index 86fcd2c..82787e3 100644
--- a/xlat/prctl_options.in
+++ b/xlat/prctl_options.in
@@ -46,4 +46,6 @@
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_SET_VMA 0x53564d41
diff --git a/xlat/priorities.h b/xlat/priorities.h
index 72c1a44..0163ee7 100644
--- a/xlat/priorities.h
+++ b/xlat/priorities.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/priorities.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat priorities in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat priorities in mpers mode
+
+# else
static
const struct xlat priorities[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ptp_flags_options.h b/xlat/ptp_flags_options.h
index 4ceffa6..df4e2d3 100644
--- a/xlat/ptp_flags_options.h
+++ b/xlat/ptp_flags_options.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ptp_flags_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ptp_flags_options in mpers mode
-#else
+#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[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ptrace_cmds.h b/xlat/ptrace_cmds.h
index 4125bfa..36b4eae 100644
--- a/xlat/ptrace_cmds.h
+++ b/xlat/ptrace_cmds.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ptrace_cmds.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ptrace_cmds in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ptrace_cmds in mpers mode
+
+# else
static
const struct xlat ptrace_cmds[] = {
@@ -312,4 +318,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ptrace_events.h b/xlat/ptrace_events.h
index a94c100..d0085bc 100644
--- a/xlat/ptrace_events.h
+++ b/xlat/ptrace_events.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ptrace_events.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ptrace_events in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ptrace_events in mpers mode
+
+# else
static
const struct xlat ptrace_events[] = {
@@ -39,4 +45,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ptrace_peeksiginfo_flags.h b/xlat/ptrace_peeksiginfo_flags.h
index c6152b7..c2a946c 100644
--- a/xlat/ptrace_peeksiginfo_flags.h
+++ b/xlat/ptrace_peeksiginfo_flags.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/ptrace_peeksiginfo_flags.in; do not edit. */
-#if !(defined(PTRACE_PEEKSIGINFO_SHARED) || (defined(HAVE_DECL_PTRACE_PEEKSIGINFO_SHARED) && HAVE_DECL_PTRACE_PEEKSIGINFO_SHARED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PTRACE_PEEKSIGINFO_SHARED) || (defined(HAVE_DECL_PTRACE_PEEKSIGINFO_SHARED) && HAVE_DECL_PTRACE_PEEKSIGINFO_SHARED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PTRACE_PEEKSIGINFO_SHARED) == (1), "PTRACE_PEEKSIGINFO_SHARED != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PTRACE_PEEKSIGINFO_SHARED 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat ptrace_peeksiginfo_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat ptrace_peeksiginfo_flags in mpers mode
+
+# else
static
const struct xlat ptrace_peeksiginfo_flags[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ptrace_setoptions_flags.h b/xlat/ptrace_setoptions_flags.h
index d9d14cb..622354c 100644
--- a/xlat/ptrace_setoptions_flags.h
+++ b/xlat/ptrace_setoptions_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ptrace_setoptions_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ptrace_setoptions_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ptrace_setoptions_flags in mpers mode
+
+# else
static
const struct xlat ptrace_setoptions_flags[] = {
@@ -45,4 +51,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/quota_formats.h b/xlat/quota_formats.h
index 37f4027..9a24084 100644
--- a/xlat/quota_formats.h
+++ b/xlat/quota_formats.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/quota_formats.in; do not edit. */
-#if !(defined(QFMT_VFS_OLD) || (defined(HAVE_DECL_QFMT_VFS_OLD) && HAVE_DECL_QFMT_VFS_OLD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(QFMT_VFS_OLD) || (defined(HAVE_DECL_QFMT_VFS_OLD) && HAVE_DECL_QFMT_VFS_OLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QFMT_VFS_OLD) == (1), "QFMT_VFS_OLD != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QFMT_VFS_OLD 1
#endif
-#if !(defined(QFMT_VFS_V0) || (defined(HAVE_DECL_QFMT_VFS_V0) && HAVE_DECL_QFMT_VFS_V0))
+#if defined(QFMT_VFS_V0) || (defined(HAVE_DECL_QFMT_VFS_V0) && HAVE_DECL_QFMT_VFS_V0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QFMT_VFS_V0) == (2), "QFMT_VFS_V0 != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QFMT_VFS_V0 2
#endif
-#if !(defined(QFMT_OCFS2) || (defined(HAVE_DECL_QFMT_OCFS2) && HAVE_DECL_QFMT_OCFS2))
+#if defined(QFMT_OCFS2) || (defined(HAVE_DECL_QFMT_OCFS2) && HAVE_DECL_QFMT_OCFS2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QFMT_OCFS2) == (3), "QFMT_OCFS2 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QFMT_OCFS2 3
#endif
-#if !(defined(QFMT_VFS_V1) || (defined(HAVE_DECL_QFMT_VFS_V1) && HAVE_DECL_QFMT_VFS_V1))
+#if defined(QFMT_VFS_V1) || (defined(HAVE_DECL_QFMT_VFS_V1) && HAVE_DECL_QFMT_VFS_V1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((QFMT_VFS_V1) == (4), "QFMT_VFS_V1 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define QFMT_VFS_V1 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat quota_formats in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat quota_formats in mpers mode
+
+# else
static
const struct xlat quota_formats[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/quotacmds.h b/xlat/quotacmds.h
index 675cde9..54dfbad 100644
--- a/xlat/quotacmds.h
+++ b/xlat/quotacmds.h
@@ -1,115 +1,261 @@
/* Generated by ./xlat/gen.sh from ./xlat/quotacmds.in; do not edit. */
-#if !(defined(Q_V1_QUOTAON) || (defined(HAVE_DECL_Q_V1_QUOTAON) && HAVE_DECL_Q_V1_QUOTAON))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(Q_V1_QUOTAON) || (defined(HAVE_DECL_Q_V1_QUOTAON) && HAVE_DECL_Q_V1_QUOTAON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_QUOTAON) == (OLD_CMD(0x1)), "Q_V1_QUOTAON != OLD_CMD(0x1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_QUOTAON OLD_CMD(0x1)
#endif
-#if !(defined(Q_V1_QUOTAOFF) || (defined(HAVE_DECL_Q_V1_QUOTAOFF) && HAVE_DECL_Q_V1_QUOTAOFF))
+#if defined(Q_V1_QUOTAOFF) || (defined(HAVE_DECL_Q_V1_QUOTAOFF) && HAVE_DECL_Q_V1_QUOTAOFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_QUOTAOFF) == (OLD_CMD(0x2)), "Q_V1_QUOTAOFF != OLD_CMD(0x2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_QUOTAOFF OLD_CMD(0x2)
#endif
-#if !(defined(Q_V1_GETQUOTA) || (defined(HAVE_DECL_Q_V1_GETQUOTA) && HAVE_DECL_Q_V1_GETQUOTA))
+#if defined(Q_V1_GETQUOTA) || (defined(HAVE_DECL_Q_V1_GETQUOTA) && HAVE_DECL_Q_V1_GETQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_GETQUOTA) == (OLD_CMD(0x3)), "Q_V1_GETQUOTA != OLD_CMD(0x3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_GETQUOTA OLD_CMD(0x3)
#endif
-#if !(defined(Q_V1_SETQUOTA) || (defined(HAVE_DECL_Q_V1_SETQUOTA) && HAVE_DECL_Q_V1_SETQUOTA))
+#if defined(Q_V1_SETQUOTA) || (defined(HAVE_DECL_Q_V1_SETQUOTA) && HAVE_DECL_Q_V1_SETQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_SETQUOTA) == (OLD_CMD(0x4)), "Q_V1_SETQUOTA != OLD_CMD(0x4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_SETQUOTA OLD_CMD(0x4)
#endif
-#if !(defined(Q_V1_SETUSE) || (defined(HAVE_DECL_Q_V1_SETUSE) && HAVE_DECL_Q_V1_SETUSE))
+#if defined(Q_V1_SETUSE) || (defined(HAVE_DECL_Q_V1_SETUSE) && HAVE_DECL_Q_V1_SETUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_SETUSE) == (OLD_CMD(0x5)), "Q_V1_SETUSE != OLD_CMD(0x5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_SETUSE OLD_CMD(0x5)
#endif
-#if !(defined(Q_V1_SYNC) || (defined(HAVE_DECL_Q_V1_SYNC) && HAVE_DECL_Q_V1_SYNC))
+#if defined(Q_V1_SYNC) || (defined(HAVE_DECL_Q_V1_SYNC) && HAVE_DECL_Q_V1_SYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_SYNC) == (OLD_CMD(0x6)), "Q_V1_SYNC != OLD_CMD(0x6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_SYNC OLD_CMD(0x6)
#endif
-#if !(defined(Q_SETQLIM) || (defined(HAVE_DECL_Q_SETQLIM) && HAVE_DECL_Q_SETQLIM))
+#if defined(Q_SETQLIM) || (defined(HAVE_DECL_Q_SETQLIM) && HAVE_DECL_Q_SETQLIM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_SETQLIM) == (OLD_CMD(0x7)), "Q_SETQLIM != OLD_CMD(0x7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_SETQLIM OLD_CMD(0x7)
#endif
-#if !(defined(Q_V1_GETSTATS) || (defined(HAVE_DECL_Q_V1_GETSTATS) && HAVE_DECL_Q_V1_GETSTATS))
+#if defined(Q_V1_GETSTATS) || (defined(HAVE_DECL_Q_V1_GETSTATS) && HAVE_DECL_Q_V1_GETSTATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_GETSTATS) == (OLD_CMD(0x8)), "Q_V1_GETSTATS != OLD_CMD(0x8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_GETSTATS OLD_CMD(0x8)
#endif
-#if !(defined(Q_V1_RSQUASH) || (defined(HAVE_DECL_Q_V1_RSQUASH) && HAVE_DECL_Q_V1_RSQUASH))
+#if defined(Q_V1_RSQUASH) || (defined(HAVE_DECL_Q_V1_RSQUASH) && HAVE_DECL_Q_V1_RSQUASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V1_RSQUASH) == (OLD_CMD(0x10)), "Q_V1_RSQUASH != OLD_CMD(0x10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V1_RSQUASH OLD_CMD(0x10)
#endif
-#if !(defined(Q_V2_GETQUOTA) || (defined(HAVE_DECL_Q_V2_GETQUOTA) && HAVE_DECL_Q_V2_GETQUOTA))
+#if defined(Q_V2_GETQUOTA) || (defined(HAVE_DECL_Q_V2_GETQUOTA) && HAVE_DECL_Q_V2_GETQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_GETQUOTA) == (OLD_CMD(0xD)), "Q_V2_GETQUOTA != OLD_CMD(0xD)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_GETQUOTA OLD_CMD(0xD)
#endif
-#if !(defined(Q_V2_SETQUOTA) || (defined(HAVE_DECL_Q_V2_SETQUOTA) && HAVE_DECL_Q_V2_SETQUOTA))
+#if defined(Q_V2_SETQUOTA) || (defined(HAVE_DECL_Q_V2_SETQUOTA) && HAVE_DECL_Q_V2_SETQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_SETQUOTA) == (OLD_CMD(0xE)), "Q_V2_SETQUOTA != OLD_CMD(0xE)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_SETQUOTA OLD_CMD(0xE)
#endif
-#if !(defined(Q_V2_SETUSE) || (defined(HAVE_DECL_Q_V2_SETUSE) && HAVE_DECL_Q_V2_SETUSE))
+#if defined(Q_V2_SETUSE) || (defined(HAVE_DECL_Q_V2_SETUSE) && HAVE_DECL_Q_V2_SETUSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_SETUSE) == (OLD_CMD(0xF)), "Q_V2_SETUSE != OLD_CMD(0xF)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_SETUSE OLD_CMD(0xF)
#endif
-#if !(defined(Q_V2_GETINFO) || (defined(HAVE_DECL_Q_V2_GETINFO) && HAVE_DECL_Q_V2_GETINFO))
+#if defined(Q_V2_GETINFO) || (defined(HAVE_DECL_Q_V2_GETINFO) && HAVE_DECL_Q_V2_GETINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_GETINFO) == (OLD_CMD(0x9)), "Q_V2_GETINFO != OLD_CMD(0x9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_GETINFO OLD_CMD(0x9)
#endif
-#if !(defined(Q_V2_SETINFO) || (defined(HAVE_DECL_Q_V2_SETINFO) && HAVE_DECL_Q_V2_SETINFO))
+#if defined(Q_V2_SETINFO) || (defined(HAVE_DECL_Q_V2_SETINFO) && HAVE_DECL_Q_V2_SETINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_SETINFO) == (OLD_CMD(0xA)), "Q_V2_SETINFO != OLD_CMD(0xA)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_SETINFO OLD_CMD(0xA)
#endif
-#if !(defined(Q_V2_SETGRACE) || (defined(HAVE_DECL_Q_V2_SETGRACE) && HAVE_DECL_Q_V2_SETGRACE))
+#if defined(Q_V2_SETGRACE) || (defined(HAVE_DECL_Q_V2_SETGRACE) && HAVE_DECL_Q_V2_SETGRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_SETGRACE) == (OLD_CMD(0xB)), "Q_V2_SETGRACE != OLD_CMD(0xB)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_SETGRACE OLD_CMD(0xB)
#endif
-#if !(defined(Q_V2_SETFLAGS) || (defined(HAVE_DECL_Q_V2_SETFLAGS) && HAVE_DECL_Q_V2_SETFLAGS))
+#if defined(Q_V2_SETFLAGS) || (defined(HAVE_DECL_Q_V2_SETFLAGS) && HAVE_DECL_Q_V2_SETFLAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_SETFLAGS) == (OLD_CMD(0xC)), "Q_V2_SETFLAGS != OLD_CMD(0xC)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_SETFLAGS OLD_CMD(0xC)
#endif
-#if !(defined(Q_V2_GETSTATS) || (defined(HAVE_DECL_Q_V2_GETSTATS) && HAVE_DECL_Q_V2_GETSTATS))
+#if defined(Q_V2_GETSTATS) || (defined(HAVE_DECL_Q_V2_GETSTATS) && HAVE_DECL_Q_V2_GETSTATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_V2_GETSTATS) == (OLD_CMD(0x11)), "Q_V2_GETSTATS != OLD_CMD(0x11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_V2_GETSTATS OLD_CMD(0x11)
#endif
-#if !(defined(Q_SYNC) || (defined(HAVE_DECL_Q_SYNC) && HAVE_DECL_Q_SYNC))
+#if defined(Q_SYNC) || (defined(HAVE_DECL_Q_SYNC) && HAVE_DECL_Q_SYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_SYNC) == (NEW_CMD(0x1)), "Q_SYNC != NEW_CMD(0x1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_SYNC NEW_CMD(0x1)
#endif
-#if !(defined(Q_QUOTAON) || (defined(HAVE_DECL_Q_QUOTAON) && HAVE_DECL_Q_QUOTAON))
+#if defined(Q_QUOTAON) || (defined(HAVE_DECL_Q_QUOTAON) && HAVE_DECL_Q_QUOTAON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_QUOTAON) == (NEW_CMD(0x2)), "Q_QUOTAON != NEW_CMD(0x2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_QUOTAON NEW_CMD(0x2)
#endif
-#if !(defined(Q_QUOTAOFF) || (defined(HAVE_DECL_Q_QUOTAOFF) && HAVE_DECL_Q_QUOTAOFF))
+#if defined(Q_QUOTAOFF) || (defined(HAVE_DECL_Q_QUOTAOFF) && HAVE_DECL_Q_QUOTAOFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_QUOTAOFF) == (NEW_CMD(0x3)), "Q_QUOTAOFF != NEW_CMD(0x3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_QUOTAOFF NEW_CMD(0x3)
#endif
-#if !(defined(Q_GETFMT) || (defined(HAVE_DECL_Q_GETFMT) && HAVE_DECL_Q_GETFMT))
+#if defined(Q_GETFMT) || (defined(HAVE_DECL_Q_GETFMT) && HAVE_DECL_Q_GETFMT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_GETFMT) == (NEW_CMD(0x4)), "Q_GETFMT != NEW_CMD(0x4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_GETFMT NEW_CMD(0x4)
#endif
-#if !(defined(Q_GETINFO) || (defined(HAVE_DECL_Q_GETINFO) && HAVE_DECL_Q_GETINFO))
+#if defined(Q_GETINFO) || (defined(HAVE_DECL_Q_GETINFO) && HAVE_DECL_Q_GETINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_GETINFO) == (NEW_CMD(0x5)), "Q_GETINFO != NEW_CMD(0x5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_GETINFO NEW_CMD(0x5)
#endif
-#if !(defined(Q_SETINFO) || (defined(HAVE_DECL_Q_SETINFO) && HAVE_DECL_Q_SETINFO))
+#if defined(Q_SETINFO) || (defined(HAVE_DECL_Q_SETINFO) && HAVE_DECL_Q_SETINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_SETINFO) == (NEW_CMD(0x6)), "Q_SETINFO != NEW_CMD(0x6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_SETINFO NEW_CMD(0x6)
#endif
-#if !(defined(Q_GETQUOTA) || (defined(HAVE_DECL_Q_GETQUOTA) && HAVE_DECL_Q_GETQUOTA))
+#if defined(Q_GETQUOTA) || (defined(HAVE_DECL_Q_GETQUOTA) && HAVE_DECL_Q_GETQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_GETQUOTA) == (NEW_CMD(0x7)), "Q_GETQUOTA != NEW_CMD(0x7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_GETQUOTA NEW_CMD(0x7)
#endif
-#if !(defined(Q_SETQUOTA) || (defined(HAVE_DECL_Q_SETQUOTA) && HAVE_DECL_Q_SETQUOTA))
+#if defined(Q_SETQUOTA) || (defined(HAVE_DECL_Q_SETQUOTA) && HAVE_DECL_Q_SETQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_SETQUOTA) == (NEW_CMD(0x8)), "Q_SETQUOTA != NEW_CMD(0x8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_SETQUOTA NEW_CMD(0x8)
#endif
-#if !(defined(Q_GETNEXTQUOTA) || (defined(HAVE_DECL_Q_GETNEXTQUOTA) && HAVE_DECL_Q_GETNEXTQUOTA))
+#if defined(Q_GETNEXTQUOTA) || (defined(HAVE_DECL_Q_GETNEXTQUOTA) && HAVE_DECL_Q_GETNEXTQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_GETNEXTQUOTA) == (NEW_CMD(0x9)), "Q_GETNEXTQUOTA != NEW_CMD(0x9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_GETNEXTQUOTA NEW_CMD(0x9)
#endif
-#if !(defined(Q_XQUOTAON) || (defined(HAVE_DECL_Q_XQUOTAON) && HAVE_DECL_Q_XQUOTAON))
+#if defined(Q_XQUOTAON) || (defined(HAVE_DECL_Q_XQUOTAON) && HAVE_DECL_Q_XQUOTAON)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XQUOTAON) == (XQM_CMD(0x1)), "Q_XQUOTAON != XQM_CMD(0x1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XQUOTAON XQM_CMD(0x1)
#endif
-#if !(defined(Q_XQUOTAOFF) || (defined(HAVE_DECL_Q_XQUOTAOFF) && HAVE_DECL_Q_XQUOTAOFF))
+#if defined(Q_XQUOTAOFF) || (defined(HAVE_DECL_Q_XQUOTAOFF) && HAVE_DECL_Q_XQUOTAOFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XQUOTAOFF) == (XQM_CMD(0x2)), "Q_XQUOTAOFF != XQM_CMD(0x2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XQUOTAOFF XQM_CMD(0x2)
#endif
-#if !(defined(Q_XGETQUOTA) || (defined(HAVE_DECL_Q_XGETQUOTA) && HAVE_DECL_Q_XGETQUOTA))
+#if defined(Q_XGETQUOTA) || (defined(HAVE_DECL_Q_XGETQUOTA) && HAVE_DECL_Q_XGETQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XGETQUOTA) == (XQM_CMD(0x3)), "Q_XGETQUOTA != XQM_CMD(0x3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XGETQUOTA XQM_CMD(0x3)
#endif
-#if !(defined(Q_XSETQLIM) || (defined(HAVE_DECL_Q_XSETQLIM) && HAVE_DECL_Q_XSETQLIM))
+#if defined(Q_XSETQLIM) || (defined(HAVE_DECL_Q_XSETQLIM) && HAVE_DECL_Q_XSETQLIM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XSETQLIM) == (XQM_CMD(0x4)), "Q_XSETQLIM != XQM_CMD(0x4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XSETQLIM XQM_CMD(0x4)
#endif
-#if !(defined(Q_XGETQSTAT) || (defined(HAVE_DECL_Q_XGETQSTAT) && HAVE_DECL_Q_XGETQSTAT))
+#if defined(Q_XGETQSTAT) || (defined(HAVE_DECL_Q_XGETQSTAT) && HAVE_DECL_Q_XGETQSTAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XGETQSTAT) == (XQM_CMD(0x5)), "Q_XGETQSTAT != XQM_CMD(0x5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XGETQSTAT XQM_CMD(0x5)
#endif
-#if !(defined(Q_XQUOTARM) || (defined(HAVE_DECL_Q_XQUOTARM) && HAVE_DECL_Q_XQUOTARM))
+#if defined(Q_XQUOTARM) || (defined(HAVE_DECL_Q_XQUOTARM) && HAVE_DECL_Q_XQUOTARM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XQUOTARM) == (XQM_CMD(0x6)), "Q_XQUOTARM != XQM_CMD(0x6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XQUOTARM XQM_CMD(0x6)
#endif
-#if !(defined(Q_XQUOTASYNC) || (defined(HAVE_DECL_Q_XQUOTASYNC) && HAVE_DECL_Q_XQUOTASYNC))
+#if defined(Q_XQUOTASYNC) || (defined(HAVE_DECL_Q_XQUOTASYNC) && HAVE_DECL_Q_XQUOTASYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XQUOTASYNC) == (XQM_CMD(0x7)), "Q_XQUOTASYNC != XQM_CMD(0x7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XQUOTASYNC XQM_CMD(0x7)
#endif
-#if !(defined(Q_XGETQSTATV) || (defined(HAVE_DECL_Q_XGETQSTATV) && HAVE_DECL_Q_XGETQSTATV))
+#if defined(Q_XGETQSTATV) || (defined(HAVE_DECL_Q_XGETQSTATV) && HAVE_DECL_Q_XGETQSTATV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XGETQSTATV) == (XQM_CMD(0x8)), "Q_XGETQSTATV != XQM_CMD(0x8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XGETQSTATV XQM_CMD(0x8)
#endif
-#if !(defined(Q_XGETNEXTQUOTA) || (defined(HAVE_DECL_Q_XGETNEXTQUOTA) && HAVE_DECL_Q_XGETNEXTQUOTA))
+#if defined(Q_XGETNEXTQUOTA) || (defined(HAVE_DECL_Q_XGETNEXTQUOTA) && HAVE_DECL_Q_XGETNEXTQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((Q_XGETNEXTQUOTA) == (XQM_CMD(0x9)), "Q_XGETNEXTQUOTA != XQM_CMD(0x9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define Q_XGETNEXTQUOTA XQM_CMD(0x9)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat quotacmds in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat quotacmds in mpers mode
+
+# else
static
const struct xlat quotacmds[] = {
@@ -154,4 +300,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/quotatypes.h b/xlat/quotatypes.h
index d223144..bbc9567 100644
--- a/xlat/quotatypes.h
+++ b/xlat/quotatypes.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/quotatypes.in; do not edit. */
-#if !(defined(USRQUOTA) || (defined(HAVE_DECL_USRQUOTA) && HAVE_DECL_USRQUOTA))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(USRQUOTA) || (defined(HAVE_DECL_USRQUOTA) && HAVE_DECL_USRQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((USRQUOTA) == (0), "USRQUOTA != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define USRQUOTA 0
#endif
-#if !(defined(GRPQUOTA) || (defined(HAVE_DECL_GRPQUOTA) && HAVE_DECL_GRPQUOTA))
+#if defined(GRPQUOTA) || (defined(HAVE_DECL_GRPQUOTA) && HAVE_DECL_GRPQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GRPQUOTA) == (1), "GRPQUOTA != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GRPQUOTA 1
#endif
-#if !(defined(PRJQUOTA) || (defined(HAVE_DECL_PRJQUOTA) && HAVE_DECL_PRJQUOTA))
+#if defined(PRJQUOTA) || (defined(HAVE_DECL_PRJQUOTA) && HAVE_DECL_PRJQUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PRJQUOTA) == (2), "PRJQUOTA != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define PRJQUOTA 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat quotatypes in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat quotatypes in mpers mode
+
+# else
static
const struct xlat quotatypes[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rename_flags.h b/xlat/rename_flags.h
index 2fc0a76..5eb07aa 100644
--- a/xlat/rename_flags.h
+++ b/xlat/rename_flags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/rename_flags.in; do not edit. */
-#if !(defined(RENAME_NOREPLACE) || (defined(HAVE_DECL_RENAME_NOREPLACE) && HAVE_DECL_RENAME_NOREPLACE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RENAME_NOREPLACE) || (defined(HAVE_DECL_RENAME_NOREPLACE) && HAVE_DECL_RENAME_NOREPLACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RENAME_NOREPLACE) == (1), "RENAME_NOREPLACE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RENAME_NOREPLACE 1
#endif
-#if !(defined(RENAME_EXCHANGE) || (defined(HAVE_DECL_RENAME_EXCHANGE) && HAVE_DECL_RENAME_EXCHANGE))
+#if defined(RENAME_EXCHANGE) || (defined(HAVE_DECL_RENAME_EXCHANGE) && HAVE_DECL_RENAME_EXCHANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RENAME_EXCHANGE) == (2), "RENAME_EXCHANGE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RENAME_EXCHANGE 2
#endif
-#if !(defined(RENAME_WHITEOUT) || (defined(HAVE_DECL_RENAME_WHITEOUT) && HAVE_DECL_RENAME_WHITEOUT))
+#if defined(RENAME_WHITEOUT) || (defined(HAVE_DECL_RENAME_WHITEOUT) && HAVE_DECL_RENAME_WHITEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RENAME_WHITEOUT) == (4), "RENAME_WHITEOUT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RENAME_WHITEOUT 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rename_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rename_flags in mpers mode
+
+# else
static
const struct xlat rename_flags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/resource_flags.h b/xlat/resource_flags.h
index 7761ca2..67bed2d 100644
--- a/xlat/resource_flags.h
+++ b/xlat/resource_flags.h
@@ -1,6 +1,12 @@
/* Generated by ./xlat/gen.sh from ./xlat/resource_flags.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat resource_flags[] = {
#if defined(IPC_CREAT) || (defined(HAVE_DECL_IPC_CREAT) && HAVE_DECL_IPC_CREAT)
@@ -15,4 +21,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/resources.h b/xlat/resources.h
index 4493b08..e4c11d1 100644
--- a/xlat/resources.h
+++ b/xlat/resources.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/resources.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat resources in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat resources in mpers mode
+
+# else
static
const struct xlat resources[] = {
@@ -62,4 +68,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/riscv_flush_icache_flags.h b/xlat/riscv_flush_icache_flags.h
index b9a031c..4b9a812 100644
--- a/xlat/riscv_flush_icache_flags.h
+++ b/xlat/riscv_flush_icache_flags.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/riscv_flush_icache_flags.in; do not edit. */
-#if !(defined(SYS_RISCV_FLUSH_ICACHE_LOCAL) || (defined(HAVE_DECL_SYS_RISCV_FLUSH_ICACHE_LOCAL) && HAVE_DECL_SYS_RISCV_FLUSH_ICACHE_LOCAL))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SYS_RISCV_FLUSH_ICACHE_LOCAL) || (defined(HAVE_DECL_SYS_RISCV_FLUSH_ICACHE_LOCAL) && HAVE_DECL_SYS_RISCV_FLUSH_ICACHE_LOCAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_RISCV_FLUSH_ICACHE_LOCAL) == (1), "SYS_RISCV_FLUSH_ICACHE_LOCAL != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_RISCV_FLUSH_ICACHE_LOCAL 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat riscv_flush_icache_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat riscv_flush_icache_flags in mpers mode
+
+# else
static
const struct xlat riscv_flush_icache_flags[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/route_nexthop_flags.h b/xlat/route_nexthop_flags.h
index 8939416..2463b33 100644
--- a/xlat/route_nexthop_flags.h
+++ b/xlat/route_nexthop_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/route_nexthop_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat route_nexthop_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat route_nexthop_flags in mpers mode
+
+# else
static
const struct xlat route_nexthop_flags[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/routing_flags.h b/xlat/routing_flags.h
index 51cc689..fa6a212 100644
--- a/xlat/routing_flags.h
+++ b/xlat/routing_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/routing_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat routing_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat routing_flags in mpers mode
+
+# else
static
const struct xlat routing_flags[] = {
@@ -26,4 +32,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/routing_protocols.h b/xlat/routing_protocols.h
index 97f1b2b..46d76b8 100644
--- a/xlat/routing_protocols.h
+++ b/xlat/routing_protocols.h
@@ -1,62 +1,151 @@
/* Generated by ./xlat/gen.sh from ./xlat/routing_protocols.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat routing_protocols in mpers mode
-
+#if defined(RTPROT_UNSPEC) || (defined(HAVE_DECL_RTPROT_UNSPEC) && HAVE_DECL_RTPROT_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_UNSPEC) == (0), "RTPROT_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define RTPROT_UNSPEC 0
+#endif
+#if defined(RTPROT_REDIRECT) || (defined(HAVE_DECL_RTPROT_REDIRECT) && HAVE_DECL_RTPROT_REDIRECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_REDIRECT) == (1), "RTPROT_REDIRECT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_REDIRECT 1
+#endif
+#if defined(RTPROT_KERNEL) || (defined(HAVE_DECL_RTPROT_KERNEL) && HAVE_DECL_RTPROT_KERNEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_KERNEL) == (2), "RTPROT_KERNEL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_KERNEL 2
+#endif
+#if defined(RTPROT_BOOT) || (defined(HAVE_DECL_RTPROT_BOOT) && HAVE_DECL_RTPROT_BOOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_BOOT) == (3), "RTPROT_BOOT != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_BOOT 3
+#endif
+#if defined(RTPROT_STATIC) || (defined(HAVE_DECL_RTPROT_STATIC) && HAVE_DECL_RTPROT_STATIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_STATIC) == (4), "RTPROT_STATIC != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_STATIC 4
+#endif
+#if defined(RTPROT_GATED) || (defined(HAVE_DECL_RTPROT_GATED) && HAVE_DECL_RTPROT_GATED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_GATED) == (8), "RTPROT_GATED != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_GATED 8
+#endif
+#if defined(RTPROT_RA) || (defined(HAVE_DECL_RTPROT_RA) && HAVE_DECL_RTPROT_RA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_RA) == (9), "RTPROT_RA != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_RA 9
+#endif
+#if defined(RTPROT_MRT) || (defined(HAVE_DECL_RTPROT_MRT) && HAVE_DECL_RTPROT_MRT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_MRT) == (10), "RTPROT_MRT != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_MRT 10
+#endif
+#if defined(RTPROT_ZEBRA) || (defined(HAVE_DECL_RTPROT_ZEBRA) && HAVE_DECL_RTPROT_ZEBRA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_ZEBRA) == (11), "RTPROT_ZEBRA != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_ZEBRA 11
+#endif
+#if defined(RTPROT_BIRD) || (defined(HAVE_DECL_RTPROT_BIRD) && HAVE_DECL_RTPROT_BIRD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_BIRD) == (12), "RTPROT_BIRD != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_BIRD 12
+#endif
+#if defined(RTPROT_DNROUTED) || (defined(HAVE_DECL_RTPROT_DNROUTED) && HAVE_DECL_RTPROT_DNROUTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_DNROUTED) == (13), "RTPROT_DNROUTED != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_DNROUTED 13
+#endif
+#if defined(RTPROT_XORP) || (defined(HAVE_DECL_RTPROT_XORP) && HAVE_DECL_RTPROT_XORP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_XORP) == (14), "RTPROT_XORP != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_XORP 14
+#endif
+#if defined(RTPROT_NTK) || (defined(HAVE_DECL_RTPROT_NTK) && HAVE_DECL_RTPROT_NTK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_NTK) == (15), "RTPROT_NTK != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_NTK 15
+#endif
+#if defined(RTPROT_DHCP) || (defined(HAVE_DECL_RTPROT_DHCP) && HAVE_DECL_RTPROT_DHCP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_DHCP) == (16), "RTPROT_DHCP != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_DHCP 16
+#endif
+#if defined(RTPROT_MROUTED) || (defined(HAVE_DECL_RTPROT_MROUTED) && HAVE_DECL_RTPROT_MROUTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTPROT_MROUTED) == (17), "RTPROT_MROUTED != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_MROUTED 17
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RTPROT_BABEL 42
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat routing_protocols in mpers mode
+
+# else
static
const struct xlat routing_protocols[] = {
-#if defined(RTPROT_UNSPEC) || (defined(HAVE_DECL_RTPROT_UNSPEC) && HAVE_DECL_RTPROT_UNSPEC)
- XLAT(RTPROT_UNSPEC),
-#endif
-#if defined(RTPROT_REDIRECT) || (defined(HAVE_DECL_RTPROT_REDIRECT) && HAVE_DECL_RTPROT_REDIRECT)
- XLAT(RTPROT_REDIRECT),
-#endif
-#if defined(RTPROT_KERNEL) || (defined(HAVE_DECL_RTPROT_KERNEL) && HAVE_DECL_RTPROT_KERNEL)
- XLAT(RTPROT_KERNEL),
-#endif
-#if defined(RTPROT_BOOT) || (defined(HAVE_DECL_RTPROT_BOOT) && HAVE_DECL_RTPROT_BOOT)
- XLAT(RTPROT_BOOT),
-#endif
-#if defined(RTPROT_STATIC) || (defined(HAVE_DECL_RTPROT_STATIC) && HAVE_DECL_RTPROT_STATIC)
- XLAT(RTPROT_STATIC),
-#endif
-#if defined(RTPROT_GATED) || (defined(HAVE_DECL_RTPROT_GATED) && HAVE_DECL_RTPROT_GATED)
- XLAT(RTPROT_GATED),
-#endif
-#if defined(RTPROT_RA) || (defined(HAVE_DECL_RTPROT_RA) && HAVE_DECL_RTPROT_RA)
- XLAT(RTPROT_RA),
-#endif
-#if defined(RTPROT_MRT) || (defined(HAVE_DECL_RTPROT_MRT) && HAVE_DECL_RTPROT_MRT)
- XLAT(RTPROT_MRT),
-#endif
-#if defined(RTPROT_ZEBRA) || (defined(HAVE_DECL_RTPROT_ZEBRA) && HAVE_DECL_RTPROT_ZEBRA)
- XLAT(RTPROT_ZEBRA),
-#endif
-#if defined(RTPROT_BIRD) || (defined(HAVE_DECL_RTPROT_BIRD) && HAVE_DECL_RTPROT_BIRD)
- XLAT(RTPROT_BIRD),
-#endif
-#if defined(RTPROT_DNROUTED) || (defined(HAVE_DECL_RTPROT_DNROUTED) && HAVE_DECL_RTPROT_DNROUTED)
- XLAT(RTPROT_DNROUTED),
-#endif
-#if defined(RTPROT_XORP) || (defined(HAVE_DECL_RTPROT_XORP) && HAVE_DECL_RTPROT_XORP)
- XLAT(RTPROT_XORP),
-#endif
-#if defined(RTPROT_NTK) || (defined(HAVE_DECL_RTPROT_NTK) && HAVE_DECL_RTPROT_NTK)
- XLAT(RTPROT_NTK),
-#endif
-#if defined(RTPROT_DHCP) || (defined(HAVE_DECL_RTPROT_DHCP) && HAVE_DECL_RTPROT_DHCP)
- XLAT(RTPROT_DHCP),
-#endif
-#if defined(RTPROT_MROUTED) || (defined(HAVE_DECL_RTPROT_MROUTED) && HAVE_DECL_RTPROT_MROUTED)
- XLAT(RTPROT_MROUTED),
-#endif
-#if defined(RTPROT_BABEL) || (defined(HAVE_DECL_RTPROT_BABEL) && HAVE_DECL_RTPROT_BABEL)
- XLAT(RTPROT_BABEL),
-#endif
+
+ XLAT(RTPROT_UNSPEC),
+ XLAT(RTPROT_REDIRECT),
+ XLAT(RTPROT_KERNEL),
+ XLAT(RTPROT_BOOT),
+ XLAT(RTPROT_STATIC),
+ XLAT(RTPROT_GATED),
+ XLAT(RTPROT_RA),
+ XLAT(RTPROT_MRT),
+ XLAT(RTPROT_ZEBRA),
+ XLAT(RTPROT_BIRD),
+ XLAT(RTPROT_DNROUTED),
+ XLAT(RTPROT_XORP),
+ XLAT(RTPROT_NTK),
+ XLAT(RTPROT_DHCP),
+ XLAT(RTPROT_MROUTED),
+ XLAT(RTPROT_BABEL),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/routing_protocols.in b/xlat/routing_protocols.in
index d366b67..004b099 100644
--- a/xlat/routing_protocols.in
+++ b/xlat/routing_protocols.in
@@ -1,16 +1,17 @@
-RTPROT_UNSPEC
-RTPROT_REDIRECT
-RTPROT_KERNEL
-RTPROT_BOOT
-RTPROT_STATIC
-RTPROT_GATED
-RTPROT_RA
-RTPROT_MRT
-RTPROT_ZEBRA
-RTPROT_BIRD
-RTPROT_DNROUTED
-RTPROT_XORP
-RTPROT_NTK
-RTPROT_DHCP
-RTPROT_MROUTED
-RTPROT_BABEL
+/* sort -k2,2n */
+RTPROT_UNSPEC 0
+RTPROT_REDIRECT 1
+RTPROT_KERNEL 2
+RTPROT_BOOT 3
+RTPROT_STATIC 4
+RTPROT_GATED 8
+RTPROT_RA 9
+RTPROT_MRT 10
+RTPROT_ZEBRA 11
+RTPROT_BIRD 12
+RTPROT_DNROUTED 13
+RTPROT_XORP 14
+RTPROT_NTK 15
+RTPROT_DHCP 16
+RTPROT_MROUTED 17
+RTPROT_BABEL 42
diff --git a/xlat/routing_scopes.h b/xlat/routing_scopes.h
index 51fb1a2..f718f3b 100644
--- a/xlat/routing_scopes.h
+++ b/xlat/routing_scopes.h
@@ -1,21 +1,47 @@
/* Generated by ./xlat/gen.sh from ./xlat/routing_scopes.in; do not edit. */
-#if !(defined(RT_SCOPE_UNIVERSE) || (defined(HAVE_DECL_RT_SCOPE_UNIVERSE) && HAVE_DECL_RT_SCOPE_UNIVERSE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RT_SCOPE_UNIVERSE) || (defined(HAVE_DECL_RT_SCOPE_UNIVERSE) && HAVE_DECL_RT_SCOPE_UNIVERSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_SCOPE_UNIVERSE) == (0), "RT_SCOPE_UNIVERSE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_SCOPE_UNIVERSE 0
#endif
-#if !(defined(RT_SCOPE_SITE) || (defined(HAVE_DECL_RT_SCOPE_SITE) && HAVE_DECL_RT_SCOPE_SITE))
+#if defined(RT_SCOPE_SITE) || (defined(HAVE_DECL_RT_SCOPE_SITE) && HAVE_DECL_RT_SCOPE_SITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_SCOPE_SITE) == (200), "RT_SCOPE_SITE != 200");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_SCOPE_SITE 200
#endif
-#if !(defined(RT_SCOPE_LINK) || (defined(HAVE_DECL_RT_SCOPE_LINK) && HAVE_DECL_RT_SCOPE_LINK))
+#if defined(RT_SCOPE_LINK) || (defined(HAVE_DECL_RT_SCOPE_LINK) && HAVE_DECL_RT_SCOPE_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_SCOPE_LINK) == (253), "RT_SCOPE_LINK != 253");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_SCOPE_LINK 253
#endif
-#if !(defined(RT_SCOPE_HOST) || (defined(HAVE_DECL_RT_SCOPE_HOST) && HAVE_DECL_RT_SCOPE_HOST))
+#if defined(RT_SCOPE_HOST) || (defined(HAVE_DECL_RT_SCOPE_HOST) && HAVE_DECL_RT_SCOPE_HOST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_SCOPE_HOST) == (254), "RT_SCOPE_HOST != 254");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_SCOPE_HOST 254
#endif
-#if !(defined(RT_SCOPE_NOWHERE) || (defined(HAVE_DECL_RT_SCOPE_NOWHERE) && HAVE_DECL_RT_SCOPE_NOWHERE))
+#if defined(RT_SCOPE_NOWHERE) || (defined(HAVE_DECL_RT_SCOPE_NOWHERE) && HAVE_DECL_RT_SCOPE_NOWHERE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_SCOPE_NOWHERE) == (255), "RT_SCOPE_NOWHERE != 255");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_SCOPE_NOWHERE 255
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat routing_scopes[] = {
XLAT(RT_SCOPE_UNIVERSE),
@@ -26,4 +52,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/routing_table_ids.h b/xlat/routing_table_ids.h
index a3b6164..9bab802 100644
--- a/xlat/routing_table_ids.h
+++ b/xlat/routing_table_ids.h
@@ -1,21 +1,47 @@
/* Generated by ./xlat/gen.sh from ./xlat/routing_table_ids.in; do not edit. */
-#if !(defined(RT_TABLE_UNSPEC) || (defined(HAVE_DECL_RT_TABLE_UNSPEC) && HAVE_DECL_RT_TABLE_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RT_TABLE_UNSPEC) || (defined(HAVE_DECL_RT_TABLE_UNSPEC) && HAVE_DECL_RT_TABLE_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_TABLE_UNSPEC) == (0), "RT_TABLE_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_TABLE_UNSPEC 0
#endif
-#if !(defined(RT_TABLE_COMPAT) || (defined(HAVE_DECL_RT_TABLE_COMPAT) && HAVE_DECL_RT_TABLE_COMPAT))
+#if defined(RT_TABLE_COMPAT) || (defined(HAVE_DECL_RT_TABLE_COMPAT) && HAVE_DECL_RT_TABLE_COMPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_TABLE_COMPAT) == (252), "RT_TABLE_COMPAT != 252");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_TABLE_COMPAT 252
#endif
-#if !(defined(RT_TABLE_DEFAULT) || (defined(HAVE_DECL_RT_TABLE_DEFAULT) && HAVE_DECL_RT_TABLE_DEFAULT))
+#if defined(RT_TABLE_DEFAULT) || (defined(HAVE_DECL_RT_TABLE_DEFAULT) && HAVE_DECL_RT_TABLE_DEFAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_TABLE_DEFAULT) == (253), "RT_TABLE_DEFAULT != 253");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_TABLE_DEFAULT 253
#endif
-#if !(defined(RT_TABLE_MAIN) || (defined(HAVE_DECL_RT_TABLE_MAIN) && HAVE_DECL_RT_TABLE_MAIN))
+#if defined(RT_TABLE_MAIN) || (defined(HAVE_DECL_RT_TABLE_MAIN) && HAVE_DECL_RT_TABLE_MAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_TABLE_MAIN) == (254), "RT_TABLE_MAIN != 254");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_TABLE_MAIN 254
#endif
-#if !(defined(RT_TABLE_LOCAL) || (defined(HAVE_DECL_RT_TABLE_LOCAL) && HAVE_DECL_RT_TABLE_LOCAL))
+#if defined(RT_TABLE_LOCAL) || (defined(HAVE_DECL_RT_TABLE_LOCAL) && HAVE_DECL_RT_TABLE_LOCAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RT_TABLE_LOCAL) == (255), "RT_TABLE_LOCAL != 255");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RT_TABLE_LOCAL 255
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat routing_table_ids[] = {
XLAT(RT_TABLE_UNSPEC),
@@ -26,4 +52,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/routing_types.h b/xlat/routing_types.h
index 5e96373..e5b76fc 100644
--- a/xlat/routing_types.h
+++ b/xlat/routing_types.h
@@ -1,42 +1,96 @@
/* Generated by ./xlat/gen.sh from ./xlat/routing_types.in; do not edit. */
-#if !(defined(RTN_UNSPEC) || (defined(HAVE_DECL_RTN_UNSPEC) && HAVE_DECL_RTN_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RTN_UNSPEC) || (defined(HAVE_DECL_RTN_UNSPEC) && HAVE_DECL_RTN_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_UNSPEC) == (0), "RTN_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_UNSPEC 0
#endif
-#if !(defined(RTN_UNICAST) || (defined(HAVE_DECL_RTN_UNICAST) && HAVE_DECL_RTN_UNICAST))
+#if defined(RTN_UNICAST) || (defined(HAVE_DECL_RTN_UNICAST) && HAVE_DECL_RTN_UNICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_UNICAST) == (1), "RTN_UNICAST != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_UNICAST 1
#endif
-#if !(defined(RTN_LOCAL) || (defined(HAVE_DECL_RTN_LOCAL) && HAVE_DECL_RTN_LOCAL))
+#if defined(RTN_LOCAL) || (defined(HAVE_DECL_RTN_LOCAL) && HAVE_DECL_RTN_LOCAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_LOCAL) == (2), "RTN_LOCAL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_LOCAL 2
#endif
-#if !(defined(RTN_BROADCAST) || (defined(HAVE_DECL_RTN_BROADCAST) && HAVE_DECL_RTN_BROADCAST))
+#if defined(RTN_BROADCAST) || (defined(HAVE_DECL_RTN_BROADCAST) && HAVE_DECL_RTN_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_BROADCAST) == (3), "RTN_BROADCAST != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_BROADCAST 3
#endif
-#if !(defined(RTN_ANYCAST) || (defined(HAVE_DECL_RTN_ANYCAST) && HAVE_DECL_RTN_ANYCAST))
+#if defined(RTN_ANYCAST) || (defined(HAVE_DECL_RTN_ANYCAST) && HAVE_DECL_RTN_ANYCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_ANYCAST) == (4), "RTN_ANYCAST != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_ANYCAST 4
#endif
-#if !(defined(RTN_MULTICAST) || (defined(HAVE_DECL_RTN_MULTICAST) && HAVE_DECL_RTN_MULTICAST))
+#if defined(RTN_MULTICAST) || (defined(HAVE_DECL_RTN_MULTICAST) && HAVE_DECL_RTN_MULTICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_MULTICAST) == (5), "RTN_MULTICAST != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_MULTICAST 5
#endif
-#if !(defined(RTN_BLACKHOLE) || (defined(HAVE_DECL_RTN_BLACKHOLE) && HAVE_DECL_RTN_BLACKHOLE))
+#if defined(RTN_BLACKHOLE) || (defined(HAVE_DECL_RTN_BLACKHOLE) && HAVE_DECL_RTN_BLACKHOLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_BLACKHOLE) == (6), "RTN_BLACKHOLE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_BLACKHOLE 6
#endif
-#if !(defined(RTN_UNREACHABLE) || (defined(HAVE_DECL_RTN_UNREACHABLE) && HAVE_DECL_RTN_UNREACHABLE))
+#if defined(RTN_UNREACHABLE) || (defined(HAVE_DECL_RTN_UNREACHABLE) && HAVE_DECL_RTN_UNREACHABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_UNREACHABLE) == (7), "RTN_UNREACHABLE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_UNREACHABLE 7
#endif
-#if !(defined(RTN_PROHIBIT) || (defined(HAVE_DECL_RTN_PROHIBIT) && HAVE_DECL_RTN_PROHIBIT))
+#if defined(RTN_PROHIBIT) || (defined(HAVE_DECL_RTN_PROHIBIT) && HAVE_DECL_RTN_PROHIBIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_PROHIBIT) == (8), "RTN_PROHIBIT != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_PROHIBIT 8
#endif
-#if !(defined(RTN_THROW) || (defined(HAVE_DECL_RTN_THROW) && HAVE_DECL_RTN_THROW))
+#if defined(RTN_THROW) || (defined(HAVE_DECL_RTN_THROW) && HAVE_DECL_RTN_THROW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_THROW) == (9), "RTN_THROW != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_THROW 9
#endif
-#if !(defined(RTN_NAT) || (defined(HAVE_DECL_RTN_NAT) && HAVE_DECL_RTN_NAT))
+#if defined(RTN_NAT) || (defined(HAVE_DECL_RTN_NAT) && HAVE_DECL_RTN_NAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_NAT) == (10), "RTN_NAT != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_NAT 10
#endif
-#if !(defined(RTN_XRESOLVE) || (defined(HAVE_DECL_RTN_XRESOLVE) && HAVE_DECL_RTN_XRESOLVE))
+#if defined(RTN_XRESOLVE) || (defined(HAVE_DECL_RTN_XRESOLVE) && HAVE_DECL_RTN_XRESOLVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTN_XRESOLVE) == (11), "RTN_XRESOLVE != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTN_XRESOLVE 11
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat routing_types[] = {
XLAT(RTN_UNSPEC),
@@ -54,4 +108,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_addr_attrs.h b/xlat/rtnl_addr_attrs.h
index b9579b0..ac9d9c6 100644
--- a/xlat/rtnl_addr_attrs.h
+++ b/xlat/rtnl_addr_attrs.h
@@ -1,37 +1,79 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_addr_attrs.in; do not edit. */
-#if !(defined(IFA_UNSPEC) || (defined(HAVE_DECL_IFA_UNSPEC) && HAVE_DECL_IFA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFA_UNSPEC) || (defined(HAVE_DECL_IFA_UNSPEC) && HAVE_DECL_IFA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_UNSPEC) == (0), "IFA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_UNSPEC 0
#endif
-#if !(defined(IFA_ADDRESS) || (defined(HAVE_DECL_IFA_ADDRESS) && HAVE_DECL_IFA_ADDRESS))
+#if defined(IFA_ADDRESS) || (defined(HAVE_DECL_IFA_ADDRESS) && HAVE_DECL_IFA_ADDRESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_ADDRESS) == (1), "IFA_ADDRESS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_ADDRESS 1
#endif
-#if !(defined(IFA_LOCAL) || (defined(HAVE_DECL_IFA_LOCAL) && HAVE_DECL_IFA_LOCAL))
+#if defined(IFA_LOCAL) || (defined(HAVE_DECL_IFA_LOCAL) && HAVE_DECL_IFA_LOCAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_LOCAL) == (2), "IFA_LOCAL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_LOCAL 2
#endif
-#if !(defined(IFA_LABEL) || (defined(HAVE_DECL_IFA_LABEL) && HAVE_DECL_IFA_LABEL))
+#if defined(IFA_LABEL) || (defined(HAVE_DECL_IFA_LABEL) && HAVE_DECL_IFA_LABEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_LABEL) == (3), "IFA_LABEL != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_LABEL 3
#endif
-#if !(defined(IFA_BROADCAST) || (defined(HAVE_DECL_IFA_BROADCAST) && HAVE_DECL_IFA_BROADCAST))
+#if defined(IFA_BROADCAST) || (defined(HAVE_DECL_IFA_BROADCAST) && HAVE_DECL_IFA_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_BROADCAST) == (4), "IFA_BROADCAST != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_BROADCAST 4
#endif
-#if !(defined(IFA_ANYCAST) || (defined(HAVE_DECL_IFA_ANYCAST) && HAVE_DECL_IFA_ANYCAST))
+#if defined(IFA_ANYCAST) || (defined(HAVE_DECL_IFA_ANYCAST) && HAVE_DECL_IFA_ANYCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_ANYCAST) == (5), "IFA_ANYCAST != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_ANYCAST 5
#endif
-#if !(defined(IFA_CACHEINFO) || (defined(HAVE_DECL_IFA_CACHEINFO) && HAVE_DECL_IFA_CACHEINFO))
+#if defined(IFA_CACHEINFO) || (defined(HAVE_DECL_IFA_CACHEINFO) && HAVE_DECL_IFA_CACHEINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_CACHEINFO) == (6), "IFA_CACHEINFO != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_CACHEINFO 6
#endif
-#if !(defined(IFA_MULTICAST) || (defined(HAVE_DECL_IFA_MULTICAST) && HAVE_DECL_IFA_MULTICAST))
+#if defined(IFA_MULTICAST) || (defined(HAVE_DECL_IFA_MULTICAST) && HAVE_DECL_IFA_MULTICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_MULTICAST) == (7), "IFA_MULTICAST != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_MULTICAST 7
#endif
-#if !(defined(IFA_FLAGS) || (defined(HAVE_DECL_IFA_FLAGS) && HAVE_DECL_IFA_FLAGS))
+#if defined(IFA_FLAGS) || (defined(HAVE_DECL_IFA_FLAGS) && HAVE_DECL_IFA_FLAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFA_FLAGS) == (8), "IFA_FLAGS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFA_FLAGS 8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_addr_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_addr_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_addr_attrs[] = {
@@ -47,4 +89,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_addrlabel_attrs.h b/xlat/rtnl_addrlabel_attrs.h
index eab9b6c..f4b7e7f 100644
--- a/xlat/rtnl_addrlabel_attrs.h
+++ b/xlat/rtnl_addrlabel_attrs.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_addrlabel_attrs.in; do not edit. */
-#if !(defined(IFAL_ADDRESS) || (defined(HAVE_DECL_IFAL_ADDRESS) && HAVE_DECL_IFAL_ADDRESS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFAL_ADDRESS) || (defined(HAVE_DECL_IFAL_ADDRESS) && HAVE_DECL_IFAL_ADDRESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFAL_ADDRESS) == (1), "IFAL_ADDRESS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFAL_ADDRESS 1
#endif
-#if !(defined(IFAL_LABEL) || (defined(HAVE_DECL_IFAL_LABEL) && HAVE_DECL_IFAL_LABEL))
+#if defined(IFAL_LABEL) || (defined(HAVE_DECL_IFAL_LABEL) && HAVE_DECL_IFAL_LABEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFAL_LABEL) == (2), "IFAL_LABEL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFAL_LABEL 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_addrlabel_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_addrlabel_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_addrlabel_attrs[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_dcb_attrs.h b/xlat/rtnl_dcb_attrs.h
index e91bdf4..9f2b675 100644
--- a/xlat/rtnl_dcb_attrs.h
+++ b/xlat/rtnl_dcb_attrs.h
@@ -1,61 +1,135 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_dcb_attrs.in; do not edit. */
-#if !(defined(DCB_ATTR_UNDEFINED) || (defined(HAVE_DECL_DCB_ATTR_UNDEFINED) && HAVE_DECL_DCB_ATTR_UNDEFINED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(DCB_ATTR_UNDEFINED) || (defined(HAVE_DECL_DCB_ATTR_UNDEFINED) && HAVE_DECL_DCB_ATTR_UNDEFINED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_UNDEFINED) == (0), "DCB_ATTR_UNDEFINED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_UNDEFINED 0
#endif
-#if !(defined(DCB_ATTR_IFNAME) || (defined(HAVE_DECL_DCB_ATTR_IFNAME) && HAVE_DECL_DCB_ATTR_IFNAME))
+#if defined(DCB_ATTR_IFNAME) || (defined(HAVE_DECL_DCB_ATTR_IFNAME) && HAVE_DECL_DCB_ATTR_IFNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_IFNAME) == (1), "DCB_ATTR_IFNAME != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_IFNAME 1
#endif
-#if !(defined(DCB_ATTR_STATE) || (defined(HAVE_DECL_DCB_ATTR_STATE) && HAVE_DECL_DCB_ATTR_STATE))
+#if defined(DCB_ATTR_STATE) || (defined(HAVE_DECL_DCB_ATTR_STATE) && HAVE_DECL_DCB_ATTR_STATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_STATE) == (2), "DCB_ATTR_STATE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_STATE 2
#endif
-#if !(defined(DCB_ATTR_PFC_STATE) || (defined(HAVE_DECL_DCB_ATTR_PFC_STATE) && HAVE_DECL_DCB_ATTR_PFC_STATE))
+#if defined(DCB_ATTR_PFC_STATE) || (defined(HAVE_DECL_DCB_ATTR_PFC_STATE) && HAVE_DECL_DCB_ATTR_PFC_STATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_PFC_STATE) == (3), "DCB_ATTR_PFC_STATE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_PFC_STATE 3
#endif
-#if !(defined(DCB_ATTR_PFC_CFG) || (defined(HAVE_DECL_DCB_ATTR_PFC_CFG) && HAVE_DECL_DCB_ATTR_PFC_CFG))
+#if defined(DCB_ATTR_PFC_CFG) || (defined(HAVE_DECL_DCB_ATTR_PFC_CFG) && HAVE_DECL_DCB_ATTR_PFC_CFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_PFC_CFG) == (4), "DCB_ATTR_PFC_CFG != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_PFC_CFG 4
#endif
-#if !(defined(DCB_ATTR_NUM_TC) || (defined(HAVE_DECL_DCB_ATTR_NUM_TC) && HAVE_DECL_DCB_ATTR_NUM_TC))
+#if defined(DCB_ATTR_NUM_TC) || (defined(HAVE_DECL_DCB_ATTR_NUM_TC) && HAVE_DECL_DCB_ATTR_NUM_TC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_NUM_TC) == (5), "DCB_ATTR_NUM_TC != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_NUM_TC 5
#endif
-#if !(defined(DCB_ATTR_PG_CFG) || (defined(HAVE_DECL_DCB_ATTR_PG_CFG) && HAVE_DECL_DCB_ATTR_PG_CFG))
+#if defined(DCB_ATTR_PG_CFG) || (defined(HAVE_DECL_DCB_ATTR_PG_CFG) && HAVE_DECL_DCB_ATTR_PG_CFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_PG_CFG) == (6), "DCB_ATTR_PG_CFG != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_PG_CFG 6
#endif
-#if !(defined(DCB_ATTR_SET_ALL) || (defined(HAVE_DECL_DCB_ATTR_SET_ALL) && HAVE_DECL_DCB_ATTR_SET_ALL))
+#if defined(DCB_ATTR_SET_ALL) || (defined(HAVE_DECL_DCB_ATTR_SET_ALL) && HAVE_DECL_DCB_ATTR_SET_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_SET_ALL) == (7), "DCB_ATTR_SET_ALL != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_SET_ALL 7
#endif
-#if !(defined(DCB_ATTR_PERM_HWADDR) || (defined(HAVE_DECL_DCB_ATTR_PERM_HWADDR) && HAVE_DECL_DCB_ATTR_PERM_HWADDR))
+#if defined(DCB_ATTR_PERM_HWADDR) || (defined(HAVE_DECL_DCB_ATTR_PERM_HWADDR) && HAVE_DECL_DCB_ATTR_PERM_HWADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_PERM_HWADDR) == (8), "DCB_ATTR_PERM_HWADDR != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_PERM_HWADDR 8
#endif
-#if !(defined(DCB_ATTR_CAP) || (defined(HAVE_DECL_DCB_ATTR_CAP) && HAVE_DECL_DCB_ATTR_CAP))
+#if defined(DCB_ATTR_CAP) || (defined(HAVE_DECL_DCB_ATTR_CAP) && HAVE_DECL_DCB_ATTR_CAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_CAP) == (9), "DCB_ATTR_CAP != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_CAP 9
#endif
-#if !(defined(DCB_ATTR_NUMTCS) || (defined(HAVE_DECL_DCB_ATTR_NUMTCS) && HAVE_DECL_DCB_ATTR_NUMTCS))
+#if defined(DCB_ATTR_NUMTCS) || (defined(HAVE_DECL_DCB_ATTR_NUMTCS) && HAVE_DECL_DCB_ATTR_NUMTCS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_NUMTCS) == (10), "DCB_ATTR_NUMTCS != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_NUMTCS 10
#endif
-#if !(defined(DCB_ATTR_BCN) || (defined(HAVE_DECL_DCB_ATTR_BCN) && HAVE_DECL_DCB_ATTR_BCN))
+#if defined(DCB_ATTR_BCN) || (defined(HAVE_DECL_DCB_ATTR_BCN) && HAVE_DECL_DCB_ATTR_BCN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_BCN) == (11), "DCB_ATTR_BCN != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_BCN 11
#endif
-#if !(defined(DCB_ATTR_APP) || (defined(HAVE_DECL_DCB_ATTR_APP) && HAVE_DECL_DCB_ATTR_APP))
+#if defined(DCB_ATTR_APP) || (defined(HAVE_DECL_DCB_ATTR_APP) && HAVE_DECL_DCB_ATTR_APP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_APP) == (12), "DCB_ATTR_APP != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_APP 12
#endif
-#if !(defined(DCB_ATTR_IEEE) || (defined(HAVE_DECL_DCB_ATTR_IEEE) && HAVE_DECL_DCB_ATTR_IEEE))
+#if defined(DCB_ATTR_IEEE) || (defined(HAVE_DECL_DCB_ATTR_IEEE) && HAVE_DECL_DCB_ATTR_IEEE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_IEEE) == (13), "DCB_ATTR_IEEE != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_IEEE 13
#endif
-#if !(defined(DCB_ATTR_DCBX) || (defined(HAVE_DECL_DCB_ATTR_DCBX) && HAVE_DECL_DCB_ATTR_DCBX))
+#if defined(DCB_ATTR_DCBX) || (defined(HAVE_DECL_DCB_ATTR_DCBX) && HAVE_DECL_DCB_ATTR_DCBX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_DCBX) == (14), "DCB_ATTR_DCBX != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_DCBX 14
#endif
-#if !(defined(DCB_ATTR_FEATCFG) || (defined(HAVE_DECL_DCB_ATTR_FEATCFG) && HAVE_DECL_DCB_ATTR_FEATCFG))
+#if defined(DCB_ATTR_FEATCFG) || (defined(HAVE_DECL_DCB_ATTR_FEATCFG) && HAVE_DECL_DCB_ATTR_FEATCFG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_FEATCFG) == (15), "DCB_ATTR_FEATCFG != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_FEATCFG 15
#endif
-#if !(defined(DCB_ATTR_CEE) || (defined(HAVE_DECL_DCB_ATTR_CEE) && HAVE_DECL_DCB_ATTR_CEE))
+#if defined(DCB_ATTR_CEE) || (defined(HAVE_DECL_DCB_ATTR_CEE) && HAVE_DECL_DCB_ATTR_CEE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCB_ATTR_CEE) == (16), "DCB_ATTR_CEE != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define DCB_ATTR_CEE 16
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_dcb_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_dcb_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_dcb_attrs[] = {
@@ -79,4 +153,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_af_spec_inet6_attrs.h b/xlat/rtnl_ifla_af_spec_inet6_attrs.h
new file mode 100644
index 0000000..7a2e18b
--- /dev/null
+++ b/xlat/rtnl_ifla_af_spec_inet6_attrs.h
@@ -0,0 +1,94 @@
+/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_af_spec_inet6_attrs.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_INET6_UNSPEC) || (defined(HAVE_DECL_IFLA_INET6_UNSPEC) && HAVE_DECL_IFLA_INET6_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_UNSPEC) == (0), "IFLA_INET6_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_UNSPEC 0
+#endif
+#if defined(IFLA_INET6_FLAGS) || (defined(HAVE_DECL_IFLA_INET6_FLAGS) && HAVE_DECL_IFLA_INET6_FLAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_FLAGS) == (1), "IFLA_INET6_FLAGS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_FLAGS 1
+#endif
+#if defined(IFLA_INET6_CONF) || (defined(HAVE_DECL_IFLA_INET6_CONF) && HAVE_DECL_IFLA_INET6_CONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_CONF) == (2), "IFLA_INET6_CONF != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_CONF 2
+#endif
+#if defined(IFLA_INET6_STATS) || (defined(HAVE_DECL_IFLA_INET6_STATS) && HAVE_DECL_IFLA_INET6_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_STATS) == (3), "IFLA_INET6_STATS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_STATS 3
+#endif
+#if defined(IFLA_INET6_MCAST) || (defined(HAVE_DECL_IFLA_INET6_MCAST) && HAVE_DECL_IFLA_INET6_MCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_MCAST) == (4), "IFLA_INET6_MCAST != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_MCAST 4
+#endif
+#if defined(IFLA_INET6_CACHEINFO) || (defined(HAVE_DECL_IFLA_INET6_CACHEINFO) && HAVE_DECL_IFLA_INET6_CACHEINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_CACHEINFO) == (5), "IFLA_INET6_CACHEINFO != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_CACHEINFO 5
+#endif
+#if defined(IFLA_INET6_ICMP6STATS) || (defined(HAVE_DECL_IFLA_INET6_ICMP6STATS) && HAVE_DECL_IFLA_INET6_ICMP6STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_ICMP6STATS) == (6), "IFLA_INET6_ICMP6STATS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_ICMP6STATS 6
+#endif
+#if defined(IFLA_INET6_TOKEN) || (defined(HAVE_DECL_IFLA_INET6_TOKEN) && HAVE_DECL_IFLA_INET6_TOKEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_TOKEN) == (7), "IFLA_INET6_TOKEN != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_TOKEN 7
+#endif
+#if defined(IFLA_INET6_ADDR_GEN_MODE) || (defined(HAVE_DECL_IFLA_INET6_ADDR_GEN_MODE) && HAVE_DECL_IFLA_INET6_ADDR_GEN_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET6_ADDR_GEN_MODE) == (8), "IFLA_INET6_ADDR_GEN_MODE != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET6_ADDR_GEN_MODE 8
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat rtnl_ifla_af_spec_inet6_attrs in mpers mode
+
+# else
+
+static
+const struct xlat rtnl_ifla_af_spec_inet6_attrs[] = {
+ [IFLA_INET6_UNSPEC] = XLAT(IFLA_INET6_UNSPEC),
+ [IFLA_INET6_FLAGS] = XLAT(IFLA_INET6_FLAGS),
+ [IFLA_INET6_CONF] = XLAT(IFLA_INET6_CONF),
+ [IFLA_INET6_STATS] = XLAT(IFLA_INET6_STATS),
+ [IFLA_INET6_MCAST] = XLAT(IFLA_INET6_MCAST),
+ [IFLA_INET6_CACHEINFO] = XLAT(IFLA_INET6_CACHEINFO),
+ [IFLA_INET6_ICMP6STATS] = XLAT(IFLA_INET6_ICMP6STATS),
+ [IFLA_INET6_TOKEN] = XLAT(IFLA_INET6_TOKEN),
+ [IFLA_INET6_ADDR_GEN_MODE] = XLAT(IFLA_INET6_ADDR_GEN_MODE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_af_spec_inet6_attrs.in b/xlat/rtnl_ifla_af_spec_inet6_attrs.in
new file mode 100644
index 0000000..9717d5a
--- /dev/null
+++ b/xlat/rtnl_ifla_af_spec_inet6_attrs.in
@@ -0,0 +1,10 @@
+#value_indexed
+IFLA_INET6_UNSPEC 0
+IFLA_INET6_FLAGS 1
+IFLA_INET6_CONF 2
+IFLA_INET6_STATS 3
+IFLA_INET6_MCAST 4
+IFLA_INET6_CACHEINFO 5
+IFLA_INET6_ICMP6STATS 6
+IFLA_INET6_TOKEN 7
+IFLA_INET6_ADDR_GEN_MODE 8
diff --git a/xlat/rtnl_ifla_af_spec_inet_attrs.h b/xlat/rtnl_ifla_af_spec_inet_attrs.h
new file mode 100644
index 0000000..8dd1220
--- /dev/null
+++ b/xlat/rtnl_ifla_af_spec_inet_attrs.h
@@ -0,0 +1,38 @@
+/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_af_spec_inet_attrs.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_INET_UNSPEC) || (defined(HAVE_DECL_IFLA_INET_UNSPEC) && HAVE_DECL_IFLA_INET_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET_UNSPEC) == (0), "IFLA_INET_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET_UNSPEC 0
+#endif
+#if defined(IFLA_INET_CONF) || (defined(HAVE_DECL_IFLA_INET_CONF) && HAVE_DECL_IFLA_INET_CONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INET_CONF) == (1), "IFLA_INET_CONF != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_INET_CONF 1
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat rtnl_ifla_af_spec_inet_attrs in mpers mode
+
+# else
+
+static
+const struct xlat rtnl_ifla_af_spec_inet_attrs[] = {
+ [IFLA_INET_UNSPEC] = XLAT(IFLA_INET_UNSPEC),
+ [IFLA_INET_CONF] = XLAT(IFLA_INET_CONF),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_af_spec_inet_attrs.in b/xlat/rtnl_ifla_af_spec_inet_attrs.in
new file mode 100644
index 0000000..7979975
--- /dev/null
+++ b/xlat/rtnl_ifla_af_spec_inet_attrs.in
@@ -0,0 +1,3 @@
+#value_indexed
+IFLA_INET_UNSPEC 0
+IFLA_INET_CONF 1
diff --git a/xlat/rtnl_ifla_brport_attrs.h b/xlat/rtnl_ifla_brport_attrs.h
index 8b4bd1d..0fb749c 100644
--- a/xlat/rtnl_ifla_brport_attrs.h
+++ b/xlat/rtnl_ifla_brport_attrs.h
@@ -1,103 +1,233 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_brport_attrs.in; do not edit. */
-#if !(defined(IFLA_BRPORT_UNSPEC) || (defined(HAVE_DECL_IFLA_BRPORT_UNSPEC) && HAVE_DECL_IFLA_BRPORT_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_BRPORT_UNSPEC) || (defined(HAVE_DECL_IFLA_BRPORT_UNSPEC) && HAVE_DECL_IFLA_BRPORT_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_UNSPEC) == (0), "IFLA_BRPORT_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_UNSPEC 0
#endif
-#if !(defined(IFLA_BRPORT_STATE) || (defined(HAVE_DECL_IFLA_BRPORT_STATE) && HAVE_DECL_IFLA_BRPORT_STATE))
+#if defined(IFLA_BRPORT_STATE) || (defined(HAVE_DECL_IFLA_BRPORT_STATE) && HAVE_DECL_IFLA_BRPORT_STATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_STATE) == (1), "IFLA_BRPORT_STATE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_STATE 1
#endif
-#if !(defined(IFLA_BRPORT_PRIORITY) || (defined(HAVE_DECL_IFLA_BRPORT_PRIORITY) && HAVE_DECL_IFLA_BRPORT_PRIORITY))
+#if defined(IFLA_BRPORT_PRIORITY) || (defined(HAVE_DECL_IFLA_BRPORT_PRIORITY) && HAVE_DECL_IFLA_BRPORT_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_PRIORITY) == (2), "IFLA_BRPORT_PRIORITY != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_PRIORITY 2
#endif
-#if !(defined(IFLA_BRPORT_COST) || (defined(HAVE_DECL_IFLA_BRPORT_COST) && HAVE_DECL_IFLA_BRPORT_COST))
+#if defined(IFLA_BRPORT_COST) || (defined(HAVE_DECL_IFLA_BRPORT_COST) && HAVE_DECL_IFLA_BRPORT_COST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_COST) == (3), "IFLA_BRPORT_COST != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_COST 3
#endif
-#if !(defined(IFLA_BRPORT_MODE) || (defined(HAVE_DECL_IFLA_BRPORT_MODE) && HAVE_DECL_IFLA_BRPORT_MODE))
+#if defined(IFLA_BRPORT_MODE) || (defined(HAVE_DECL_IFLA_BRPORT_MODE) && HAVE_DECL_IFLA_BRPORT_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_MODE) == (4), "IFLA_BRPORT_MODE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_MODE 4
#endif
-#if !(defined(IFLA_BRPORT_GUARD) || (defined(HAVE_DECL_IFLA_BRPORT_GUARD) && HAVE_DECL_IFLA_BRPORT_GUARD))
+#if defined(IFLA_BRPORT_GUARD) || (defined(HAVE_DECL_IFLA_BRPORT_GUARD) && HAVE_DECL_IFLA_BRPORT_GUARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_GUARD) == (5), "IFLA_BRPORT_GUARD != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_GUARD 5
#endif
-#if !(defined(IFLA_BRPORT_PROTECT) || (defined(HAVE_DECL_IFLA_BRPORT_PROTECT) && HAVE_DECL_IFLA_BRPORT_PROTECT))
+#if defined(IFLA_BRPORT_PROTECT) || (defined(HAVE_DECL_IFLA_BRPORT_PROTECT) && HAVE_DECL_IFLA_BRPORT_PROTECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_PROTECT) == (6), "IFLA_BRPORT_PROTECT != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_PROTECT 6
#endif
-#if !(defined(IFLA_BRPORT_FAST_LEAVE) || (defined(HAVE_DECL_IFLA_BRPORT_FAST_LEAVE) && HAVE_DECL_IFLA_BRPORT_FAST_LEAVE))
+#if defined(IFLA_BRPORT_FAST_LEAVE) || (defined(HAVE_DECL_IFLA_BRPORT_FAST_LEAVE) && HAVE_DECL_IFLA_BRPORT_FAST_LEAVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_FAST_LEAVE) == (7), "IFLA_BRPORT_FAST_LEAVE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_FAST_LEAVE 7
#endif
-#if !(defined(IFLA_BRPORT_LEARNING) || (defined(HAVE_DECL_IFLA_BRPORT_LEARNING) && HAVE_DECL_IFLA_BRPORT_LEARNING))
+#if defined(IFLA_BRPORT_LEARNING) || (defined(HAVE_DECL_IFLA_BRPORT_LEARNING) && HAVE_DECL_IFLA_BRPORT_LEARNING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_LEARNING) == (8), "IFLA_BRPORT_LEARNING != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_LEARNING 8
#endif
-#if !(defined(IFLA_BRPORT_UNICAST_FLOOD) || (defined(HAVE_DECL_IFLA_BRPORT_UNICAST_FLOOD) && HAVE_DECL_IFLA_BRPORT_UNICAST_FLOOD))
+#if defined(IFLA_BRPORT_UNICAST_FLOOD) || (defined(HAVE_DECL_IFLA_BRPORT_UNICAST_FLOOD) && HAVE_DECL_IFLA_BRPORT_UNICAST_FLOOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_UNICAST_FLOOD) == (9), "IFLA_BRPORT_UNICAST_FLOOD != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_UNICAST_FLOOD 9
#endif
-#if !(defined(IFLA_BRPORT_PROXYARP) || (defined(HAVE_DECL_IFLA_BRPORT_PROXYARP) && HAVE_DECL_IFLA_BRPORT_PROXYARP))
+#if defined(IFLA_BRPORT_PROXYARP) || (defined(HAVE_DECL_IFLA_BRPORT_PROXYARP) && HAVE_DECL_IFLA_BRPORT_PROXYARP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_PROXYARP) == (10), "IFLA_BRPORT_PROXYARP != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_PROXYARP 10
#endif
-#if !(defined(IFLA_BRPORT_LEARNING_SYNC) || (defined(HAVE_DECL_IFLA_BRPORT_LEARNING_SYNC) && HAVE_DECL_IFLA_BRPORT_LEARNING_SYNC))
+#if defined(IFLA_BRPORT_LEARNING_SYNC) || (defined(HAVE_DECL_IFLA_BRPORT_LEARNING_SYNC) && HAVE_DECL_IFLA_BRPORT_LEARNING_SYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_LEARNING_SYNC) == (11), "IFLA_BRPORT_LEARNING_SYNC != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_LEARNING_SYNC 11
#endif
-#if !(defined(IFLA_BRPORT_PROXYARP_WIFI) || (defined(HAVE_DECL_IFLA_BRPORT_PROXYARP_WIFI) && HAVE_DECL_IFLA_BRPORT_PROXYARP_WIFI))
+#if defined(IFLA_BRPORT_PROXYARP_WIFI) || (defined(HAVE_DECL_IFLA_BRPORT_PROXYARP_WIFI) && HAVE_DECL_IFLA_BRPORT_PROXYARP_WIFI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_PROXYARP_WIFI) == (12), "IFLA_BRPORT_PROXYARP_WIFI != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_PROXYARP_WIFI 12
#endif
-#if !(defined(IFLA_BRPORT_ROOT_ID) || (defined(HAVE_DECL_IFLA_BRPORT_ROOT_ID) && HAVE_DECL_IFLA_BRPORT_ROOT_ID))
+#if defined(IFLA_BRPORT_ROOT_ID) || (defined(HAVE_DECL_IFLA_BRPORT_ROOT_ID) && HAVE_DECL_IFLA_BRPORT_ROOT_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_ROOT_ID) == (13), "IFLA_BRPORT_ROOT_ID != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_ROOT_ID 13
#endif
-#if !(defined(IFLA_BRPORT_BRIDGE_ID) || (defined(HAVE_DECL_IFLA_BRPORT_BRIDGE_ID) && HAVE_DECL_IFLA_BRPORT_BRIDGE_ID))
+#if defined(IFLA_BRPORT_BRIDGE_ID) || (defined(HAVE_DECL_IFLA_BRPORT_BRIDGE_ID) && HAVE_DECL_IFLA_BRPORT_BRIDGE_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_BRIDGE_ID) == (14), "IFLA_BRPORT_BRIDGE_ID != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_BRIDGE_ID 14
#endif
-#if !(defined(IFLA_BRPORT_DESIGNATED_PORT) || (defined(HAVE_DECL_IFLA_BRPORT_DESIGNATED_PORT) && HAVE_DECL_IFLA_BRPORT_DESIGNATED_PORT))
+#if defined(IFLA_BRPORT_DESIGNATED_PORT) || (defined(HAVE_DECL_IFLA_BRPORT_DESIGNATED_PORT) && HAVE_DECL_IFLA_BRPORT_DESIGNATED_PORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_DESIGNATED_PORT) == (15), "IFLA_BRPORT_DESIGNATED_PORT != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_DESIGNATED_PORT 15
#endif
-#if !(defined(IFLA_BRPORT_DESIGNATED_COST) || (defined(HAVE_DECL_IFLA_BRPORT_DESIGNATED_COST) && HAVE_DECL_IFLA_BRPORT_DESIGNATED_COST))
+#if defined(IFLA_BRPORT_DESIGNATED_COST) || (defined(HAVE_DECL_IFLA_BRPORT_DESIGNATED_COST) && HAVE_DECL_IFLA_BRPORT_DESIGNATED_COST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_DESIGNATED_COST) == (16), "IFLA_BRPORT_DESIGNATED_COST != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_DESIGNATED_COST 16
#endif
-#if !(defined(IFLA_BRPORT_ID) || (defined(HAVE_DECL_IFLA_BRPORT_ID) && HAVE_DECL_IFLA_BRPORT_ID))
+#if defined(IFLA_BRPORT_ID) || (defined(HAVE_DECL_IFLA_BRPORT_ID) && HAVE_DECL_IFLA_BRPORT_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_ID) == (17), "IFLA_BRPORT_ID != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_ID 17
#endif
-#if !(defined(IFLA_BRPORT_NO) || (defined(HAVE_DECL_IFLA_BRPORT_NO) && HAVE_DECL_IFLA_BRPORT_NO))
+#if defined(IFLA_BRPORT_NO) || (defined(HAVE_DECL_IFLA_BRPORT_NO) && HAVE_DECL_IFLA_BRPORT_NO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_NO) == (18), "IFLA_BRPORT_NO != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_NO 18
#endif
-#if !(defined(IFLA_BRPORT_TOPOLOGY_CHANGE_ACK) || (defined(HAVE_DECL_IFLA_BRPORT_TOPOLOGY_CHANGE_ACK) && HAVE_DECL_IFLA_BRPORT_TOPOLOGY_CHANGE_ACK))
+#if defined(IFLA_BRPORT_TOPOLOGY_CHANGE_ACK) || (defined(HAVE_DECL_IFLA_BRPORT_TOPOLOGY_CHANGE_ACK) && HAVE_DECL_IFLA_BRPORT_TOPOLOGY_CHANGE_ACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_TOPOLOGY_CHANGE_ACK) == (19), "IFLA_BRPORT_TOPOLOGY_CHANGE_ACK != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_TOPOLOGY_CHANGE_ACK 19
#endif
-#if !(defined(IFLA_BRPORT_CONFIG_PENDING) || (defined(HAVE_DECL_IFLA_BRPORT_CONFIG_PENDING) && HAVE_DECL_IFLA_BRPORT_CONFIG_PENDING))
+#if defined(IFLA_BRPORT_CONFIG_PENDING) || (defined(HAVE_DECL_IFLA_BRPORT_CONFIG_PENDING) && HAVE_DECL_IFLA_BRPORT_CONFIG_PENDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_CONFIG_PENDING) == (20), "IFLA_BRPORT_CONFIG_PENDING != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_CONFIG_PENDING 20
#endif
-#if !(defined(IFLA_BRPORT_MESSAGE_AGE_TIMER) || (defined(HAVE_DECL_IFLA_BRPORT_MESSAGE_AGE_TIMER) && HAVE_DECL_IFLA_BRPORT_MESSAGE_AGE_TIMER))
+#if defined(IFLA_BRPORT_MESSAGE_AGE_TIMER) || (defined(HAVE_DECL_IFLA_BRPORT_MESSAGE_AGE_TIMER) && HAVE_DECL_IFLA_BRPORT_MESSAGE_AGE_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_MESSAGE_AGE_TIMER) == (21), "IFLA_BRPORT_MESSAGE_AGE_TIMER != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_MESSAGE_AGE_TIMER 21
#endif
-#if !(defined(IFLA_BRPORT_FORWARD_DELAY_TIMER) || (defined(HAVE_DECL_IFLA_BRPORT_FORWARD_DELAY_TIMER) && HAVE_DECL_IFLA_BRPORT_FORWARD_DELAY_TIMER))
+#if defined(IFLA_BRPORT_FORWARD_DELAY_TIMER) || (defined(HAVE_DECL_IFLA_BRPORT_FORWARD_DELAY_TIMER) && HAVE_DECL_IFLA_BRPORT_FORWARD_DELAY_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_FORWARD_DELAY_TIMER) == (22), "IFLA_BRPORT_FORWARD_DELAY_TIMER != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_FORWARD_DELAY_TIMER 22
#endif
-#if !(defined(IFLA_BRPORT_HOLD_TIMER) || (defined(HAVE_DECL_IFLA_BRPORT_HOLD_TIMER) && HAVE_DECL_IFLA_BRPORT_HOLD_TIMER))
+#if defined(IFLA_BRPORT_HOLD_TIMER) || (defined(HAVE_DECL_IFLA_BRPORT_HOLD_TIMER) && HAVE_DECL_IFLA_BRPORT_HOLD_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_HOLD_TIMER) == (23), "IFLA_BRPORT_HOLD_TIMER != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_HOLD_TIMER 23
#endif
-#if !(defined(IFLA_BRPORT_FLUSH) || (defined(HAVE_DECL_IFLA_BRPORT_FLUSH) && HAVE_DECL_IFLA_BRPORT_FLUSH))
+#if defined(IFLA_BRPORT_FLUSH) || (defined(HAVE_DECL_IFLA_BRPORT_FLUSH) && HAVE_DECL_IFLA_BRPORT_FLUSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_FLUSH) == (24), "IFLA_BRPORT_FLUSH != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_FLUSH 24
#endif
-#if !(defined(IFLA_BRPORT_MULTICAST_ROUTER) || (defined(HAVE_DECL_IFLA_BRPORT_MULTICAST_ROUTER) && HAVE_DECL_IFLA_BRPORT_MULTICAST_ROUTER))
+#if defined(IFLA_BRPORT_MULTICAST_ROUTER) || (defined(HAVE_DECL_IFLA_BRPORT_MULTICAST_ROUTER) && HAVE_DECL_IFLA_BRPORT_MULTICAST_ROUTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_MULTICAST_ROUTER) == (25), "IFLA_BRPORT_MULTICAST_ROUTER != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_MULTICAST_ROUTER 25
#endif
-#if !(defined(IFLA_BRPORT_PAD) || (defined(HAVE_DECL_IFLA_BRPORT_PAD) && HAVE_DECL_IFLA_BRPORT_PAD))
+#if defined(IFLA_BRPORT_PAD) || (defined(HAVE_DECL_IFLA_BRPORT_PAD) && HAVE_DECL_IFLA_BRPORT_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_PAD) == (26), "IFLA_BRPORT_PAD != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_PAD 26
#endif
-#if !(defined(IFLA_BRPORT_MCAST_FLOOD) || (defined(HAVE_DECL_IFLA_BRPORT_MCAST_FLOOD) && HAVE_DECL_IFLA_BRPORT_MCAST_FLOOD))
+#if defined(IFLA_BRPORT_MCAST_FLOOD) || (defined(HAVE_DECL_IFLA_BRPORT_MCAST_FLOOD) && HAVE_DECL_IFLA_BRPORT_MCAST_FLOOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_MCAST_FLOOD) == (27), "IFLA_BRPORT_MCAST_FLOOD != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_MCAST_FLOOD 27
#endif
-#if !(defined(IFLA_BRPORT_MCAST_TO_UCAST) || (defined(HAVE_DECL_IFLA_BRPORT_MCAST_TO_UCAST) && HAVE_DECL_IFLA_BRPORT_MCAST_TO_UCAST))
+#if defined(IFLA_BRPORT_MCAST_TO_UCAST) || (defined(HAVE_DECL_IFLA_BRPORT_MCAST_TO_UCAST) && HAVE_DECL_IFLA_BRPORT_MCAST_TO_UCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_MCAST_TO_UCAST) == (28), "IFLA_BRPORT_MCAST_TO_UCAST != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_MCAST_TO_UCAST 28
#endif
-#if !(defined(IFLA_BRPORT_VLAN_TUNNEL) || (defined(HAVE_DECL_IFLA_BRPORT_VLAN_TUNNEL) && HAVE_DECL_IFLA_BRPORT_VLAN_TUNNEL))
+#if defined(IFLA_BRPORT_VLAN_TUNNEL) || (defined(HAVE_DECL_IFLA_BRPORT_VLAN_TUNNEL) && HAVE_DECL_IFLA_BRPORT_VLAN_TUNNEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_VLAN_TUNNEL) == (29), "IFLA_BRPORT_VLAN_TUNNEL != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_VLAN_TUNNEL 29
#endif
-#if !(defined(IFLA_BRPORT_BCAST_FLOOD) || (defined(HAVE_DECL_IFLA_BRPORT_BCAST_FLOOD) && HAVE_DECL_IFLA_BRPORT_BCAST_FLOOD))
+#if defined(IFLA_BRPORT_BCAST_FLOOD) || (defined(HAVE_DECL_IFLA_BRPORT_BCAST_FLOOD) && HAVE_DECL_IFLA_BRPORT_BCAST_FLOOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BRPORT_BCAST_FLOOD) == (30), "IFLA_BRPORT_BCAST_FLOOD != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BRPORT_BCAST_FLOOD 30
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_ifla_brport_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_ifla_brport_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_ifla_brport_attrs[] = {
@@ -135,4 +265,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_events.h b/xlat/rtnl_ifla_events.h
index 50aee84..0f214d6 100644
--- a/xlat/rtnl_ifla_events.h
+++ b/xlat/rtnl_ifla_events.h
@@ -1,31 +1,65 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_events.in; do not edit. */
-#if !(defined(IFLA_EVENT_NONE) || (defined(HAVE_DECL_IFLA_EVENT_NONE) && HAVE_DECL_IFLA_EVENT_NONE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_EVENT_NONE) || (defined(HAVE_DECL_IFLA_EVENT_NONE) && HAVE_DECL_IFLA_EVENT_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT_NONE) == (0), "IFLA_EVENT_NONE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT_NONE 0
#endif
-#if !(defined(IFLA_EVENT_REBOOT) || (defined(HAVE_DECL_IFLA_EVENT_REBOOT) && HAVE_DECL_IFLA_EVENT_REBOOT))
+#if defined(IFLA_EVENT_REBOOT) || (defined(HAVE_DECL_IFLA_EVENT_REBOOT) && HAVE_DECL_IFLA_EVENT_REBOOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT_REBOOT) == (1), "IFLA_EVENT_REBOOT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT_REBOOT 1
#endif
-#if !(defined(IFLA_EVENT_FEATURES) || (defined(HAVE_DECL_IFLA_EVENT_FEATURES) && HAVE_DECL_IFLA_EVENT_FEATURES))
+#if defined(IFLA_EVENT_FEATURES) || (defined(HAVE_DECL_IFLA_EVENT_FEATURES) && HAVE_DECL_IFLA_EVENT_FEATURES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT_FEATURES) == (2), "IFLA_EVENT_FEATURES != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT_FEATURES 2
#endif
-#if !(defined(IFLA_EVENT_BONDING_FAILOVER) || (defined(HAVE_DECL_IFLA_EVENT_BONDING_FAILOVER) && HAVE_DECL_IFLA_EVENT_BONDING_FAILOVER))
+#if defined(IFLA_EVENT_BONDING_FAILOVER) || (defined(HAVE_DECL_IFLA_EVENT_BONDING_FAILOVER) && HAVE_DECL_IFLA_EVENT_BONDING_FAILOVER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT_BONDING_FAILOVER) == (3), "IFLA_EVENT_BONDING_FAILOVER != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT_BONDING_FAILOVER 3
#endif
-#if !(defined(IFLA_EVENT_NOTIFY_PEERS) || (defined(HAVE_DECL_IFLA_EVENT_NOTIFY_PEERS) && HAVE_DECL_IFLA_EVENT_NOTIFY_PEERS))
+#if defined(IFLA_EVENT_NOTIFY_PEERS) || (defined(HAVE_DECL_IFLA_EVENT_NOTIFY_PEERS) && HAVE_DECL_IFLA_EVENT_NOTIFY_PEERS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT_NOTIFY_PEERS) == (4), "IFLA_EVENT_NOTIFY_PEERS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT_NOTIFY_PEERS 4
#endif
-#if !(defined(IFLA_EVENT_IGMP_RESEND) || (defined(HAVE_DECL_IFLA_EVENT_IGMP_RESEND) && HAVE_DECL_IFLA_EVENT_IGMP_RESEND))
+#if defined(IFLA_EVENT_IGMP_RESEND) || (defined(HAVE_DECL_IFLA_EVENT_IGMP_RESEND) && HAVE_DECL_IFLA_EVENT_IGMP_RESEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT_IGMP_RESEND) == (5), "IFLA_EVENT_IGMP_RESEND != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT_IGMP_RESEND 5
#endif
-#if !(defined(IFLA_EVENT_BONDING_OPTIONS) || (defined(HAVE_DECL_IFLA_EVENT_BONDING_OPTIONS) && HAVE_DECL_IFLA_EVENT_BONDING_OPTIONS))
+#if defined(IFLA_EVENT_BONDING_OPTIONS) || (defined(HAVE_DECL_IFLA_EVENT_BONDING_OPTIONS) && HAVE_DECL_IFLA_EVENT_BONDING_OPTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT_BONDING_OPTIONS) == (6), "IFLA_EVENT_BONDING_OPTIONS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT_BONDING_OPTIONS 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_ifla_events in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_ifla_events in mpers mode
+
+# else
static
const struct xlat rtnl_ifla_events[] = {
@@ -39,4 +73,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_info_attrs.h b/xlat/rtnl_ifla_info_attrs.h
index 66ed9c4..dd3124b 100644
--- a/xlat/rtnl_ifla_info_attrs.h
+++ b/xlat/rtnl_ifla_info_attrs.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_info_attrs.in; do not edit. */
-#if !(defined(IFLA_INFO_UNSPEC) || (defined(HAVE_DECL_IFLA_INFO_UNSPEC) && HAVE_DECL_IFLA_INFO_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_INFO_UNSPEC) || (defined(HAVE_DECL_IFLA_INFO_UNSPEC) && HAVE_DECL_IFLA_INFO_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INFO_UNSPEC) == (0), "IFLA_INFO_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_INFO_UNSPEC 0
#endif
-#if !(defined(IFLA_INFO_KIND) || (defined(HAVE_DECL_IFLA_INFO_KIND) && HAVE_DECL_IFLA_INFO_KIND))
+#if defined(IFLA_INFO_KIND) || (defined(HAVE_DECL_IFLA_INFO_KIND) && HAVE_DECL_IFLA_INFO_KIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INFO_KIND) == (1), "IFLA_INFO_KIND != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_INFO_KIND 1
#endif
-#if !(defined(IFLA_INFO_DATA) || (defined(HAVE_DECL_IFLA_INFO_DATA) && HAVE_DECL_IFLA_INFO_DATA))
+#if defined(IFLA_INFO_DATA) || (defined(HAVE_DECL_IFLA_INFO_DATA) && HAVE_DECL_IFLA_INFO_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INFO_DATA) == (2), "IFLA_INFO_DATA != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_INFO_DATA 2
#endif
-#if !(defined(IFLA_INFO_XSTATS) || (defined(HAVE_DECL_IFLA_INFO_XSTATS) && HAVE_DECL_IFLA_INFO_XSTATS))
+#if defined(IFLA_INFO_XSTATS) || (defined(HAVE_DECL_IFLA_INFO_XSTATS) && HAVE_DECL_IFLA_INFO_XSTATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INFO_XSTATS) == (3), "IFLA_INFO_XSTATS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_INFO_XSTATS 3
#endif
-#if !(defined(IFLA_INFO_SLAVE_KIND) || (defined(HAVE_DECL_IFLA_INFO_SLAVE_KIND) && HAVE_DECL_IFLA_INFO_SLAVE_KIND))
+#if defined(IFLA_INFO_SLAVE_KIND) || (defined(HAVE_DECL_IFLA_INFO_SLAVE_KIND) && HAVE_DECL_IFLA_INFO_SLAVE_KIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INFO_SLAVE_KIND) == (4), "IFLA_INFO_SLAVE_KIND != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_INFO_SLAVE_KIND 4
#endif
-#if !(defined(IFLA_INFO_SLAVE_DATA) || (defined(HAVE_DECL_IFLA_INFO_SLAVE_DATA) && HAVE_DECL_IFLA_INFO_SLAVE_DATA))
+#if defined(IFLA_INFO_SLAVE_DATA) || (defined(HAVE_DECL_IFLA_INFO_SLAVE_DATA) && HAVE_DECL_IFLA_INFO_SLAVE_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_INFO_SLAVE_DATA) == (5), "IFLA_INFO_SLAVE_DATA != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_INFO_SLAVE_DATA 5
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_ifla_info_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_ifla_info_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_ifla_info_attrs[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_info_data_bridge_attrs.h b/xlat/rtnl_ifla_info_data_bridge_attrs.h
new file mode 100644
index 0000000..7436ddf
--- /dev/null
+++ b/xlat/rtnl_ifla_info_data_bridge_attrs.h
@@ -0,0 +1,382 @@
+/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_info_data_bridge_attrs.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_BR_UNSPEC) || (defined(HAVE_DECL_IFLA_BR_UNSPEC) && HAVE_DECL_IFLA_BR_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_UNSPEC) == (0), "IFLA_BR_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_UNSPEC 0
+#endif
+#if defined(IFLA_BR_FORWARD_DELAY) || (defined(HAVE_DECL_IFLA_BR_FORWARD_DELAY) && HAVE_DECL_IFLA_BR_FORWARD_DELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_FORWARD_DELAY) == (1), "IFLA_BR_FORWARD_DELAY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_FORWARD_DELAY 1
+#endif
+#if defined(IFLA_BR_HELLO_TIME) || (defined(HAVE_DECL_IFLA_BR_HELLO_TIME) && HAVE_DECL_IFLA_BR_HELLO_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_HELLO_TIME) == (2), "IFLA_BR_HELLO_TIME != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_HELLO_TIME 2
+#endif
+#if defined(IFLA_BR_MAX_AGE) || (defined(HAVE_DECL_IFLA_BR_MAX_AGE) && HAVE_DECL_IFLA_BR_MAX_AGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MAX_AGE) == (3), "IFLA_BR_MAX_AGE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MAX_AGE 3
+#endif
+#if defined(IFLA_BR_AGEING_TIME) || (defined(HAVE_DECL_IFLA_BR_AGEING_TIME) && HAVE_DECL_IFLA_BR_AGEING_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_AGEING_TIME) == (4), "IFLA_BR_AGEING_TIME != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_AGEING_TIME 4
+#endif
+#if defined(IFLA_BR_STP_STATE) || (defined(HAVE_DECL_IFLA_BR_STP_STATE) && HAVE_DECL_IFLA_BR_STP_STATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_STP_STATE) == (5), "IFLA_BR_STP_STATE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_STP_STATE 5
+#endif
+#if defined(IFLA_BR_PRIORITY) || (defined(HAVE_DECL_IFLA_BR_PRIORITY) && HAVE_DECL_IFLA_BR_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_PRIORITY) == (6), "IFLA_BR_PRIORITY != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_PRIORITY 6
+#endif
+#if defined(IFLA_BR_VLAN_FILTERING) || (defined(HAVE_DECL_IFLA_BR_VLAN_FILTERING) && HAVE_DECL_IFLA_BR_VLAN_FILTERING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_VLAN_FILTERING) == (7), "IFLA_BR_VLAN_FILTERING != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_VLAN_FILTERING 7
+#endif
+#if defined(IFLA_BR_VLAN_PROTOCOL) || (defined(HAVE_DECL_IFLA_BR_VLAN_PROTOCOL) && HAVE_DECL_IFLA_BR_VLAN_PROTOCOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_VLAN_PROTOCOL) == (8), "IFLA_BR_VLAN_PROTOCOL != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_VLAN_PROTOCOL 8
+#endif
+#if defined(IFLA_BR_GROUP_FWD_MASK) || (defined(HAVE_DECL_IFLA_BR_GROUP_FWD_MASK) && HAVE_DECL_IFLA_BR_GROUP_FWD_MASK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_GROUP_FWD_MASK) == (9), "IFLA_BR_GROUP_FWD_MASK != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_GROUP_FWD_MASK 9
+#endif
+#if defined(IFLA_BR_ROOT_ID) || (defined(HAVE_DECL_IFLA_BR_ROOT_ID) && HAVE_DECL_IFLA_BR_ROOT_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_ROOT_ID) == (10), "IFLA_BR_ROOT_ID != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_ROOT_ID 10
+#endif
+#if defined(IFLA_BR_BRIDGE_ID) || (defined(HAVE_DECL_IFLA_BR_BRIDGE_ID) && HAVE_DECL_IFLA_BR_BRIDGE_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_BRIDGE_ID) == (11), "IFLA_BR_BRIDGE_ID != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_BRIDGE_ID 11
+#endif
+#if defined(IFLA_BR_ROOT_PORT) || (defined(HAVE_DECL_IFLA_BR_ROOT_PORT) && HAVE_DECL_IFLA_BR_ROOT_PORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_ROOT_PORT) == (12), "IFLA_BR_ROOT_PORT != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_ROOT_PORT 12
+#endif
+#if defined(IFLA_BR_ROOT_PATH_COST) || (defined(HAVE_DECL_IFLA_BR_ROOT_PATH_COST) && HAVE_DECL_IFLA_BR_ROOT_PATH_COST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_ROOT_PATH_COST) == (13), "IFLA_BR_ROOT_PATH_COST != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_ROOT_PATH_COST 13
+#endif
+#if defined(IFLA_BR_TOPOLOGY_CHANGE) || (defined(HAVE_DECL_IFLA_BR_TOPOLOGY_CHANGE) && HAVE_DECL_IFLA_BR_TOPOLOGY_CHANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_TOPOLOGY_CHANGE) == (14), "IFLA_BR_TOPOLOGY_CHANGE != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_TOPOLOGY_CHANGE 14
+#endif
+#if defined(IFLA_BR_TOPOLOGY_CHANGE_DETECTED) || (defined(HAVE_DECL_IFLA_BR_TOPOLOGY_CHANGE_DETECTED) && HAVE_DECL_IFLA_BR_TOPOLOGY_CHANGE_DETECTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_TOPOLOGY_CHANGE_DETECTED) == (15), "IFLA_BR_TOPOLOGY_CHANGE_DETECTED != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_TOPOLOGY_CHANGE_DETECTED 15
+#endif
+#if defined(IFLA_BR_HELLO_TIMER) || (defined(HAVE_DECL_IFLA_BR_HELLO_TIMER) && HAVE_DECL_IFLA_BR_HELLO_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_HELLO_TIMER) == (16), "IFLA_BR_HELLO_TIMER != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_HELLO_TIMER 16
+#endif
+#if defined(IFLA_BR_TCN_TIMER) || (defined(HAVE_DECL_IFLA_BR_TCN_TIMER) && HAVE_DECL_IFLA_BR_TCN_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_TCN_TIMER) == (17), "IFLA_BR_TCN_TIMER != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_TCN_TIMER 17
+#endif
+#if defined(IFLA_BR_TOPOLOGY_CHANGE_TIMER) || (defined(HAVE_DECL_IFLA_BR_TOPOLOGY_CHANGE_TIMER) && HAVE_DECL_IFLA_BR_TOPOLOGY_CHANGE_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_TOPOLOGY_CHANGE_TIMER) == (18), "IFLA_BR_TOPOLOGY_CHANGE_TIMER != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_TOPOLOGY_CHANGE_TIMER 18
+#endif
+#if defined(IFLA_BR_GC_TIMER) || (defined(HAVE_DECL_IFLA_BR_GC_TIMER) && HAVE_DECL_IFLA_BR_GC_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_GC_TIMER) == (19), "IFLA_BR_GC_TIMER != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_GC_TIMER 19
+#endif
+#if defined(IFLA_BR_GROUP_ADDR) || (defined(HAVE_DECL_IFLA_BR_GROUP_ADDR) && HAVE_DECL_IFLA_BR_GROUP_ADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_GROUP_ADDR) == (20), "IFLA_BR_GROUP_ADDR != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_GROUP_ADDR 20
+#endif
+#if defined(IFLA_BR_FDB_FLUSH) || (defined(HAVE_DECL_IFLA_BR_FDB_FLUSH) && HAVE_DECL_IFLA_BR_FDB_FLUSH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_FDB_FLUSH) == (21), "IFLA_BR_FDB_FLUSH != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_FDB_FLUSH 21
+#endif
+#if defined(IFLA_BR_MCAST_ROUTER) || (defined(HAVE_DECL_IFLA_BR_MCAST_ROUTER) && HAVE_DECL_IFLA_BR_MCAST_ROUTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_ROUTER) == (22), "IFLA_BR_MCAST_ROUTER != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_ROUTER 22
+#endif
+#if defined(IFLA_BR_MCAST_SNOOPING) || (defined(HAVE_DECL_IFLA_BR_MCAST_SNOOPING) && HAVE_DECL_IFLA_BR_MCAST_SNOOPING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_SNOOPING) == (23), "IFLA_BR_MCAST_SNOOPING != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_SNOOPING 23
+#endif
+#if defined(IFLA_BR_MCAST_QUERY_USE_IFADDR) || (defined(HAVE_DECL_IFLA_BR_MCAST_QUERY_USE_IFADDR) && HAVE_DECL_IFLA_BR_MCAST_QUERY_USE_IFADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_QUERY_USE_IFADDR) == (24), "IFLA_BR_MCAST_QUERY_USE_IFADDR != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_QUERY_USE_IFADDR 24
+#endif
+#if defined(IFLA_BR_MCAST_QUERIER) || (defined(HAVE_DECL_IFLA_BR_MCAST_QUERIER) && HAVE_DECL_IFLA_BR_MCAST_QUERIER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_QUERIER) == (25), "IFLA_BR_MCAST_QUERIER != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_QUERIER 25
+#endif
+#if defined(IFLA_BR_MCAST_HASH_ELASTICITY) || (defined(HAVE_DECL_IFLA_BR_MCAST_HASH_ELASTICITY) && HAVE_DECL_IFLA_BR_MCAST_HASH_ELASTICITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_HASH_ELASTICITY) == (26), "IFLA_BR_MCAST_HASH_ELASTICITY != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_HASH_ELASTICITY 26
+#endif
+#if defined(IFLA_BR_MCAST_HASH_MAX) || (defined(HAVE_DECL_IFLA_BR_MCAST_HASH_MAX) && HAVE_DECL_IFLA_BR_MCAST_HASH_MAX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_HASH_MAX) == (27), "IFLA_BR_MCAST_HASH_MAX != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_HASH_MAX 27
+#endif
+#if defined(IFLA_BR_MCAST_LAST_MEMBER_CNT) || (defined(HAVE_DECL_IFLA_BR_MCAST_LAST_MEMBER_CNT) && HAVE_DECL_IFLA_BR_MCAST_LAST_MEMBER_CNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_LAST_MEMBER_CNT) == (28), "IFLA_BR_MCAST_LAST_MEMBER_CNT != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_LAST_MEMBER_CNT 28
+#endif
+#if defined(IFLA_BR_MCAST_STARTUP_QUERY_CNT) || (defined(HAVE_DECL_IFLA_BR_MCAST_STARTUP_QUERY_CNT) && HAVE_DECL_IFLA_BR_MCAST_STARTUP_QUERY_CNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_STARTUP_QUERY_CNT) == (29), "IFLA_BR_MCAST_STARTUP_QUERY_CNT != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_STARTUP_QUERY_CNT 29
+#endif
+#if defined(IFLA_BR_MCAST_LAST_MEMBER_INTVL) || (defined(HAVE_DECL_IFLA_BR_MCAST_LAST_MEMBER_INTVL) && HAVE_DECL_IFLA_BR_MCAST_LAST_MEMBER_INTVL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_LAST_MEMBER_INTVL) == (30), "IFLA_BR_MCAST_LAST_MEMBER_INTVL != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_LAST_MEMBER_INTVL 30
+#endif
+#if defined(IFLA_BR_MCAST_MEMBERSHIP_INTVL) || (defined(HAVE_DECL_IFLA_BR_MCAST_MEMBERSHIP_INTVL) && HAVE_DECL_IFLA_BR_MCAST_MEMBERSHIP_INTVL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_MEMBERSHIP_INTVL) == (31), "IFLA_BR_MCAST_MEMBERSHIP_INTVL != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_MEMBERSHIP_INTVL 31
+#endif
+#if defined(IFLA_BR_MCAST_QUERIER_INTVL) || (defined(HAVE_DECL_IFLA_BR_MCAST_QUERIER_INTVL) && HAVE_DECL_IFLA_BR_MCAST_QUERIER_INTVL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_QUERIER_INTVL) == (32), "IFLA_BR_MCAST_QUERIER_INTVL != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_QUERIER_INTVL 32
+#endif
+#if defined(IFLA_BR_MCAST_QUERY_INTVL) || (defined(HAVE_DECL_IFLA_BR_MCAST_QUERY_INTVL) && HAVE_DECL_IFLA_BR_MCAST_QUERY_INTVL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_QUERY_INTVL) == (33), "IFLA_BR_MCAST_QUERY_INTVL != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_QUERY_INTVL 33
+#endif
+#if defined(IFLA_BR_MCAST_QUERY_RESPONSE_INTVL) || (defined(HAVE_DECL_IFLA_BR_MCAST_QUERY_RESPONSE_INTVL) && HAVE_DECL_IFLA_BR_MCAST_QUERY_RESPONSE_INTVL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_QUERY_RESPONSE_INTVL) == (34), "IFLA_BR_MCAST_QUERY_RESPONSE_INTVL != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_QUERY_RESPONSE_INTVL 34
+#endif
+#if defined(IFLA_BR_MCAST_STARTUP_QUERY_INTVL) || (defined(HAVE_DECL_IFLA_BR_MCAST_STARTUP_QUERY_INTVL) && HAVE_DECL_IFLA_BR_MCAST_STARTUP_QUERY_INTVL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_STARTUP_QUERY_INTVL) == (35), "IFLA_BR_MCAST_STARTUP_QUERY_INTVL != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_STARTUP_QUERY_INTVL 35
+#endif
+#if defined(IFLA_BR_NF_CALL_IPTABLES) || (defined(HAVE_DECL_IFLA_BR_NF_CALL_IPTABLES) && HAVE_DECL_IFLA_BR_NF_CALL_IPTABLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_NF_CALL_IPTABLES) == (36), "IFLA_BR_NF_CALL_IPTABLES != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_NF_CALL_IPTABLES 36
+#endif
+#if defined(IFLA_BR_NF_CALL_IP6TABLES) || (defined(HAVE_DECL_IFLA_BR_NF_CALL_IP6TABLES) && HAVE_DECL_IFLA_BR_NF_CALL_IP6TABLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_NF_CALL_IP6TABLES) == (37), "IFLA_BR_NF_CALL_IP6TABLES != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_NF_CALL_IP6TABLES 37
+#endif
+#if defined(IFLA_BR_NF_CALL_ARPTABLES) || (defined(HAVE_DECL_IFLA_BR_NF_CALL_ARPTABLES) && HAVE_DECL_IFLA_BR_NF_CALL_ARPTABLES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_NF_CALL_ARPTABLES) == (38), "IFLA_BR_NF_CALL_ARPTABLES != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_NF_CALL_ARPTABLES 38
+#endif
+#if defined(IFLA_BR_VLAN_DEFAULT_PVID) || (defined(HAVE_DECL_IFLA_BR_VLAN_DEFAULT_PVID) && HAVE_DECL_IFLA_BR_VLAN_DEFAULT_PVID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_VLAN_DEFAULT_PVID) == (39), "IFLA_BR_VLAN_DEFAULT_PVID != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_VLAN_DEFAULT_PVID 39
+#endif
+#if defined(IFLA_BR_PAD) || (defined(HAVE_DECL_IFLA_BR_PAD) && HAVE_DECL_IFLA_BR_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_PAD) == (40), "IFLA_BR_PAD != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_PAD 40
+#endif
+#if defined(IFLA_BR_VLAN_STATS_ENABLED) || (defined(HAVE_DECL_IFLA_BR_VLAN_STATS_ENABLED) && HAVE_DECL_IFLA_BR_VLAN_STATS_ENABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_VLAN_STATS_ENABLED) == (41), "IFLA_BR_VLAN_STATS_ENABLED != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_VLAN_STATS_ENABLED 41
+#endif
+#if defined(IFLA_BR_MCAST_STATS_ENABLED) || (defined(HAVE_DECL_IFLA_BR_MCAST_STATS_ENABLED) && HAVE_DECL_IFLA_BR_MCAST_STATS_ENABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_STATS_ENABLED) == (42), "IFLA_BR_MCAST_STATS_ENABLED != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_STATS_ENABLED 42
+#endif
+#if defined(IFLA_BR_MCAST_IGMP_VERSION) || (defined(HAVE_DECL_IFLA_BR_MCAST_IGMP_VERSION) && HAVE_DECL_IFLA_BR_MCAST_IGMP_VERSION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_IGMP_VERSION) == (43), "IFLA_BR_MCAST_IGMP_VERSION != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_IGMP_VERSION 43
+#endif
+#if defined(IFLA_BR_MCAST_MLD_VERSION) || (defined(HAVE_DECL_IFLA_BR_MCAST_MLD_VERSION) && HAVE_DECL_IFLA_BR_MCAST_MLD_VERSION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BR_MCAST_MLD_VERSION) == (44), "IFLA_BR_MCAST_MLD_VERSION != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_BR_MCAST_MLD_VERSION 44
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat rtnl_ifla_info_data_bridge_attrs in mpers mode
+
+# else
+
+static
+const struct xlat rtnl_ifla_info_data_bridge_attrs[] = {
+ [IFLA_BR_UNSPEC] = XLAT(IFLA_BR_UNSPEC),
+ [IFLA_BR_FORWARD_DELAY] = XLAT(IFLA_BR_FORWARD_DELAY),
+ [IFLA_BR_HELLO_TIME] = XLAT(IFLA_BR_HELLO_TIME),
+ [IFLA_BR_MAX_AGE] = XLAT(IFLA_BR_MAX_AGE),
+ [IFLA_BR_AGEING_TIME] = XLAT(IFLA_BR_AGEING_TIME),
+ [IFLA_BR_STP_STATE] = XLAT(IFLA_BR_STP_STATE),
+ [IFLA_BR_PRIORITY] = XLAT(IFLA_BR_PRIORITY),
+ [IFLA_BR_VLAN_FILTERING] = XLAT(IFLA_BR_VLAN_FILTERING),
+ [IFLA_BR_VLAN_PROTOCOL] = XLAT(IFLA_BR_VLAN_PROTOCOL),
+ [IFLA_BR_GROUP_FWD_MASK] = XLAT(IFLA_BR_GROUP_FWD_MASK),
+ [IFLA_BR_ROOT_ID] = XLAT(IFLA_BR_ROOT_ID),
+ [IFLA_BR_BRIDGE_ID] = XLAT(IFLA_BR_BRIDGE_ID),
+ [IFLA_BR_ROOT_PORT] = XLAT(IFLA_BR_ROOT_PORT),
+ [IFLA_BR_ROOT_PATH_COST] = XLAT(IFLA_BR_ROOT_PATH_COST),
+ [IFLA_BR_TOPOLOGY_CHANGE] = XLAT(IFLA_BR_TOPOLOGY_CHANGE),
+ [IFLA_BR_TOPOLOGY_CHANGE_DETECTED] = XLAT(IFLA_BR_TOPOLOGY_CHANGE_DETECTED),
+ [IFLA_BR_HELLO_TIMER] = XLAT(IFLA_BR_HELLO_TIMER),
+ [IFLA_BR_TCN_TIMER] = XLAT(IFLA_BR_TCN_TIMER),
+ [IFLA_BR_TOPOLOGY_CHANGE_TIMER] = XLAT(IFLA_BR_TOPOLOGY_CHANGE_TIMER),
+ [IFLA_BR_GC_TIMER] = XLAT(IFLA_BR_GC_TIMER),
+ [IFLA_BR_GROUP_ADDR] = XLAT(IFLA_BR_GROUP_ADDR),
+ [IFLA_BR_FDB_FLUSH] = XLAT(IFLA_BR_FDB_FLUSH),
+ [IFLA_BR_MCAST_ROUTER] = XLAT(IFLA_BR_MCAST_ROUTER),
+ [IFLA_BR_MCAST_SNOOPING] = XLAT(IFLA_BR_MCAST_SNOOPING),
+ [IFLA_BR_MCAST_QUERY_USE_IFADDR] = XLAT(IFLA_BR_MCAST_QUERY_USE_IFADDR),
+ [IFLA_BR_MCAST_QUERIER] = XLAT(IFLA_BR_MCAST_QUERIER),
+ [IFLA_BR_MCAST_HASH_ELASTICITY] = XLAT(IFLA_BR_MCAST_HASH_ELASTICITY),
+ [IFLA_BR_MCAST_HASH_MAX] = XLAT(IFLA_BR_MCAST_HASH_MAX),
+ [IFLA_BR_MCAST_LAST_MEMBER_CNT] = XLAT(IFLA_BR_MCAST_LAST_MEMBER_CNT),
+ [IFLA_BR_MCAST_STARTUP_QUERY_CNT] = XLAT(IFLA_BR_MCAST_STARTUP_QUERY_CNT),
+ [IFLA_BR_MCAST_LAST_MEMBER_INTVL] = XLAT(IFLA_BR_MCAST_LAST_MEMBER_INTVL),
+ [IFLA_BR_MCAST_MEMBERSHIP_INTVL] = XLAT(IFLA_BR_MCAST_MEMBERSHIP_INTVL),
+ [IFLA_BR_MCAST_QUERIER_INTVL] = XLAT(IFLA_BR_MCAST_QUERIER_INTVL),
+ [IFLA_BR_MCAST_QUERY_INTVL] = XLAT(IFLA_BR_MCAST_QUERY_INTVL),
+ [IFLA_BR_MCAST_QUERY_RESPONSE_INTVL] = XLAT(IFLA_BR_MCAST_QUERY_RESPONSE_INTVL),
+ [IFLA_BR_MCAST_STARTUP_QUERY_INTVL] = XLAT(IFLA_BR_MCAST_STARTUP_QUERY_INTVL),
+ [IFLA_BR_NF_CALL_IPTABLES] = XLAT(IFLA_BR_NF_CALL_IPTABLES),
+ [IFLA_BR_NF_CALL_IP6TABLES] = XLAT(IFLA_BR_NF_CALL_IP6TABLES),
+ [IFLA_BR_NF_CALL_ARPTABLES] = XLAT(IFLA_BR_NF_CALL_ARPTABLES),
+ [IFLA_BR_VLAN_DEFAULT_PVID] = XLAT(IFLA_BR_VLAN_DEFAULT_PVID),
+ [IFLA_BR_PAD] = XLAT(IFLA_BR_PAD),
+ [IFLA_BR_VLAN_STATS_ENABLED] = XLAT(IFLA_BR_VLAN_STATS_ENABLED),
+ [IFLA_BR_MCAST_STATS_ENABLED] = XLAT(IFLA_BR_MCAST_STATS_ENABLED),
+ [IFLA_BR_MCAST_IGMP_VERSION] = XLAT(IFLA_BR_MCAST_IGMP_VERSION),
+ [IFLA_BR_MCAST_MLD_VERSION] = XLAT(IFLA_BR_MCAST_MLD_VERSION),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_info_data_bridge_attrs.in b/xlat/rtnl_ifla_info_data_bridge_attrs.in
new file mode 100644
index 0000000..524dc8b
--- /dev/null
+++ b/xlat/rtnl_ifla_info_data_bridge_attrs.in
@@ -0,0 +1,46 @@
+#value_indexed
+IFLA_BR_UNSPEC 0
+IFLA_BR_FORWARD_DELAY 1
+IFLA_BR_HELLO_TIME 2
+IFLA_BR_MAX_AGE 3
+IFLA_BR_AGEING_TIME 4
+IFLA_BR_STP_STATE 5
+IFLA_BR_PRIORITY 6
+IFLA_BR_VLAN_FILTERING 7
+IFLA_BR_VLAN_PROTOCOL 8
+IFLA_BR_GROUP_FWD_MASK 9
+IFLA_BR_ROOT_ID 10
+IFLA_BR_BRIDGE_ID 11
+IFLA_BR_ROOT_PORT 12
+IFLA_BR_ROOT_PATH_COST 13
+IFLA_BR_TOPOLOGY_CHANGE 14
+IFLA_BR_TOPOLOGY_CHANGE_DETECTED 15
+IFLA_BR_HELLO_TIMER 16
+IFLA_BR_TCN_TIMER 17
+IFLA_BR_TOPOLOGY_CHANGE_TIMER 18
+IFLA_BR_GC_TIMER 19
+IFLA_BR_GROUP_ADDR 20
+IFLA_BR_FDB_FLUSH 21
+IFLA_BR_MCAST_ROUTER 22
+IFLA_BR_MCAST_SNOOPING 23
+IFLA_BR_MCAST_QUERY_USE_IFADDR 24
+IFLA_BR_MCAST_QUERIER 25
+IFLA_BR_MCAST_HASH_ELASTICITY 26
+IFLA_BR_MCAST_HASH_MAX 27
+IFLA_BR_MCAST_LAST_MEMBER_CNT 28
+IFLA_BR_MCAST_STARTUP_QUERY_CNT 29
+IFLA_BR_MCAST_LAST_MEMBER_INTVL 30
+IFLA_BR_MCAST_MEMBERSHIP_INTVL 31
+IFLA_BR_MCAST_QUERIER_INTVL 32
+IFLA_BR_MCAST_QUERY_INTVL 33
+IFLA_BR_MCAST_QUERY_RESPONSE_INTVL 34
+IFLA_BR_MCAST_STARTUP_QUERY_INTVL 35
+IFLA_BR_NF_CALL_IPTABLES 36
+IFLA_BR_NF_CALL_IP6TABLES 37
+IFLA_BR_NF_CALL_ARPTABLES 38
+IFLA_BR_VLAN_DEFAULT_PVID 39
+IFLA_BR_PAD 40
+IFLA_BR_VLAN_STATS_ENABLED 41
+IFLA_BR_MCAST_STATS_ENABLED 42
+IFLA_BR_MCAST_IGMP_VERSION 43
+IFLA_BR_MCAST_MLD_VERSION 44
diff --git a/xlat/rtnl_ifla_info_data_tun_attrs.h b/xlat/rtnl_ifla_info_data_tun_attrs.h
new file mode 100644
index 0000000..ee9ad58
--- /dev/null
+++ b/xlat/rtnl_ifla_info_data_tun_attrs.h
@@ -0,0 +1,102 @@
+/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_info_data_tun_attrs.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_TUN_UNSPEC) || (defined(HAVE_DECL_IFLA_TUN_UNSPEC) && HAVE_DECL_IFLA_TUN_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_UNSPEC) == (0), "IFLA_TUN_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_UNSPEC 0
+#endif
+#if defined(IFLA_TUN_OWNER) || (defined(HAVE_DECL_IFLA_TUN_OWNER) && HAVE_DECL_IFLA_TUN_OWNER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_OWNER) == (1), "IFLA_TUN_OWNER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_OWNER 1
+#endif
+#if defined(IFLA_TUN_GROUP) || (defined(HAVE_DECL_IFLA_TUN_GROUP) && HAVE_DECL_IFLA_TUN_GROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_GROUP) == (2), "IFLA_TUN_GROUP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_GROUP 2
+#endif
+#if defined(IFLA_TUN_TYPE) || (defined(HAVE_DECL_IFLA_TUN_TYPE) && HAVE_DECL_IFLA_TUN_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_TYPE) == (3), "IFLA_TUN_TYPE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_TYPE 3
+#endif
+#if defined(IFLA_TUN_PI) || (defined(HAVE_DECL_IFLA_TUN_PI) && HAVE_DECL_IFLA_TUN_PI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_PI) == (4), "IFLA_TUN_PI != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_PI 4
+#endif
+#if defined(IFLA_TUN_VNET_HDR) || (defined(HAVE_DECL_IFLA_TUN_VNET_HDR) && HAVE_DECL_IFLA_TUN_VNET_HDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_VNET_HDR) == (5), "IFLA_TUN_VNET_HDR != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_VNET_HDR 5
+#endif
+#if defined(IFLA_TUN_PERSIST) || (defined(HAVE_DECL_IFLA_TUN_PERSIST) && HAVE_DECL_IFLA_TUN_PERSIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_PERSIST) == (6), "IFLA_TUN_PERSIST != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_PERSIST 6
+#endif
+#if defined(IFLA_TUN_MULTI_QUEUE) || (defined(HAVE_DECL_IFLA_TUN_MULTI_QUEUE) && HAVE_DECL_IFLA_TUN_MULTI_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_MULTI_QUEUE) == (7), "IFLA_TUN_MULTI_QUEUE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_MULTI_QUEUE 7
+#endif
+#if defined(IFLA_TUN_NUM_QUEUES) || (defined(HAVE_DECL_IFLA_TUN_NUM_QUEUES) && HAVE_DECL_IFLA_TUN_NUM_QUEUES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_NUM_QUEUES) == (8), "IFLA_TUN_NUM_QUEUES != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_NUM_QUEUES 8
+#endif
+#if defined(IFLA_TUN_NUM_DISABLED_QUEUES) || (defined(HAVE_DECL_IFLA_TUN_NUM_DISABLED_QUEUES) && HAVE_DECL_IFLA_TUN_NUM_DISABLED_QUEUES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TUN_NUM_DISABLED_QUEUES) == (9), "IFLA_TUN_NUM_DISABLED_QUEUES != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFLA_TUN_NUM_DISABLED_QUEUES 9
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat rtnl_ifla_info_data_tun_attrs in mpers mode
+
+# else
+
+static
+const struct xlat rtnl_ifla_info_data_tun_attrs[] = {
+ [IFLA_TUN_UNSPEC] = XLAT(IFLA_TUN_UNSPEC),
+ [IFLA_TUN_OWNER] = XLAT(IFLA_TUN_OWNER),
+ [IFLA_TUN_GROUP] = XLAT(IFLA_TUN_GROUP),
+ [IFLA_TUN_TYPE] = XLAT(IFLA_TUN_TYPE),
+ [IFLA_TUN_PI] = XLAT(IFLA_TUN_PI),
+ [IFLA_TUN_VNET_HDR] = XLAT(IFLA_TUN_VNET_HDR),
+ [IFLA_TUN_PERSIST] = XLAT(IFLA_TUN_PERSIST),
+ [IFLA_TUN_MULTI_QUEUE] = XLAT(IFLA_TUN_MULTI_QUEUE),
+ [IFLA_TUN_NUM_QUEUES] = XLAT(IFLA_TUN_NUM_QUEUES),
+ [IFLA_TUN_NUM_DISABLED_QUEUES] = XLAT(IFLA_TUN_NUM_DISABLED_QUEUES),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_info_data_tun_attrs.in b/xlat/rtnl_ifla_info_data_tun_attrs.in
new file mode 100644
index 0000000..2ac187e
--- /dev/null
+++ b/xlat/rtnl_ifla_info_data_tun_attrs.in
@@ -0,0 +1,11 @@
+#value_indexed
+IFLA_TUN_UNSPEC 0
+IFLA_TUN_OWNER 1
+IFLA_TUN_GROUP 2
+IFLA_TUN_TYPE 3
+IFLA_TUN_PI 4
+IFLA_TUN_VNET_HDR 5
+IFLA_TUN_PERSIST 6
+IFLA_TUN_MULTI_QUEUE 7
+IFLA_TUN_NUM_QUEUES 8
+IFLA_TUN_NUM_DISABLED_QUEUES 9
diff --git a/xlat/rtnl_ifla_port_attrs.h b/xlat/rtnl_ifla_port_attrs.h
index 88cf635..ce6af73 100644
--- a/xlat/rtnl_ifla_port_attrs.h
+++ b/xlat/rtnl_ifla_port_attrs.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_port_attrs.in; do not edit. */
-#if !(defined(IFLA_PORT_UNSPEC) || (defined(HAVE_DECL_IFLA_PORT_UNSPEC) && HAVE_DECL_IFLA_PORT_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_PORT_UNSPEC) || (defined(HAVE_DECL_IFLA_PORT_UNSPEC) && HAVE_DECL_IFLA_PORT_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_UNSPEC) == (0), "IFLA_PORT_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_UNSPEC 0
#endif
-#if !(defined(IFLA_PORT_VF) || (defined(HAVE_DECL_IFLA_PORT_VF) && HAVE_DECL_IFLA_PORT_VF))
+#if defined(IFLA_PORT_VF) || (defined(HAVE_DECL_IFLA_PORT_VF) && HAVE_DECL_IFLA_PORT_VF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_VF) == (1), "IFLA_PORT_VF != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_VF 1
#endif
-#if !(defined(IFLA_PORT_PROFILE) || (defined(HAVE_DECL_IFLA_PORT_PROFILE) && HAVE_DECL_IFLA_PORT_PROFILE))
+#if defined(IFLA_PORT_PROFILE) || (defined(HAVE_DECL_IFLA_PORT_PROFILE) && HAVE_DECL_IFLA_PORT_PROFILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_PROFILE) == (2), "IFLA_PORT_PROFILE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_PROFILE 2
#endif
-#if !(defined(IFLA_PORT_VSI_TYPE) || (defined(HAVE_DECL_IFLA_PORT_VSI_TYPE) && HAVE_DECL_IFLA_PORT_VSI_TYPE))
+#if defined(IFLA_PORT_VSI_TYPE) || (defined(HAVE_DECL_IFLA_PORT_VSI_TYPE) && HAVE_DECL_IFLA_PORT_VSI_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_VSI_TYPE) == (3), "IFLA_PORT_VSI_TYPE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_VSI_TYPE 3
#endif
-#if !(defined(IFLA_PORT_INSTANCE_UUID) || (defined(HAVE_DECL_IFLA_PORT_INSTANCE_UUID) && HAVE_DECL_IFLA_PORT_INSTANCE_UUID))
+#if defined(IFLA_PORT_INSTANCE_UUID) || (defined(HAVE_DECL_IFLA_PORT_INSTANCE_UUID) && HAVE_DECL_IFLA_PORT_INSTANCE_UUID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_INSTANCE_UUID) == (4), "IFLA_PORT_INSTANCE_UUID != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_INSTANCE_UUID 4
#endif
-#if !(defined(IFLA_PORT_HOST_UUID) || (defined(HAVE_DECL_IFLA_PORT_HOST_UUID) && HAVE_DECL_IFLA_PORT_HOST_UUID))
+#if defined(IFLA_PORT_HOST_UUID) || (defined(HAVE_DECL_IFLA_PORT_HOST_UUID) && HAVE_DECL_IFLA_PORT_HOST_UUID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_HOST_UUID) == (5), "IFLA_PORT_HOST_UUID != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_HOST_UUID 5
#endif
-#if !(defined(IFLA_PORT_REQUEST) || (defined(HAVE_DECL_IFLA_PORT_REQUEST) && HAVE_DECL_IFLA_PORT_REQUEST))
+#if defined(IFLA_PORT_REQUEST) || (defined(HAVE_DECL_IFLA_PORT_REQUEST) && HAVE_DECL_IFLA_PORT_REQUEST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_REQUEST) == (6), "IFLA_PORT_REQUEST != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_REQUEST 6
#endif
-#if !(defined(IFLA_PORT_RESPONSE) || (defined(HAVE_DECL_IFLA_PORT_RESPONSE) && HAVE_DECL_IFLA_PORT_RESPONSE))
+#if defined(IFLA_PORT_RESPONSE) || (defined(HAVE_DECL_IFLA_PORT_RESPONSE) && HAVE_DECL_IFLA_PORT_RESPONSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_RESPONSE) == (7), "IFLA_PORT_RESPONSE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_RESPONSE 7
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_ifla_port_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_ifla_port_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_ifla_port_attrs[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_vf_port_attrs.h b/xlat/rtnl_ifla_vf_port_attrs.h
index c4b9b42..6227bc3 100644
--- a/xlat/rtnl_ifla_vf_port_attrs.h
+++ b/xlat/rtnl_ifla_vf_port_attrs.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_vf_port_attrs.in; do not edit. */
-#if !(defined(IFLA_VF_PORT_UNSPEC) || (defined(HAVE_DECL_IFLA_VF_PORT_UNSPEC) && HAVE_DECL_IFLA_VF_PORT_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_VF_PORT_UNSPEC) || (defined(HAVE_DECL_IFLA_VF_PORT_UNSPEC) && HAVE_DECL_IFLA_VF_PORT_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_VF_PORT_UNSPEC) == (0), "IFLA_VF_PORT_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_VF_PORT_UNSPEC 0
#endif
-#if !(defined(IFLA_VF_PORT) || (defined(HAVE_DECL_IFLA_VF_PORT) && HAVE_DECL_IFLA_VF_PORT))
+#if defined(IFLA_VF_PORT) || (defined(HAVE_DECL_IFLA_VF_PORT) && HAVE_DECL_IFLA_VF_PORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_VF_PORT) == (1), "IFLA_VF_PORT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_VF_PORT 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_ifla_vf_port_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_ifla_vf_port_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_ifla_vf_port_attrs[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_ifla_xdp_attrs.h b/xlat/rtnl_ifla_xdp_attrs.h
index 708f8ea..3972d8e 100644
--- a/xlat/rtnl_ifla_xdp_attrs.h
+++ b/xlat/rtnl_ifla_xdp_attrs.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_xdp_attrs.in; do not edit. */
-#if !(defined(IFLA_XDP_UNSPEC) || (defined(HAVE_DECL_IFLA_XDP_UNSPEC) && HAVE_DECL_IFLA_XDP_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_XDP_UNSPEC) || (defined(HAVE_DECL_IFLA_XDP_UNSPEC) && HAVE_DECL_IFLA_XDP_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_XDP_UNSPEC) == (0), "IFLA_XDP_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_XDP_UNSPEC 0
#endif
-#if !(defined(IFLA_XDP_FD) || (defined(HAVE_DECL_IFLA_XDP_FD) && HAVE_DECL_IFLA_XDP_FD))
+#if defined(IFLA_XDP_FD) || (defined(HAVE_DECL_IFLA_XDP_FD) && HAVE_DECL_IFLA_XDP_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_XDP_FD) == (1), "IFLA_XDP_FD != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_XDP_FD 1
#endif
-#if !(defined(IFLA_XDP_ATTACHED) || (defined(HAVE_DECL_IFLA_XDP_ATTACHED) && HAVE_DECL_IFLA_XDP_ATTACHED))
+#if defined(IFLA_XDP_ATTACHED) || (defined(HAVE_DECL_IFLA_XDP_ATTACHED) && HAVE_DECL_IFLA_XDP_ATTACHED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_XDP_ATTACHED) == (2), "IFLA_XDP_ATTACHED != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_XDP_ATTACHED 2
#endif
-#if !(defined(IFLA_XDP_FLAGS) || (defined(HAVE_DECL_IFLA_XDP_FLAGS) && HAVE_DECL_IFLA_XDP_FLAGS))
+#if defined(IFLA_XDP_FLAGS) || (defined(HAVE_DECL_IFLA_XDP_FLAGS) && HAVE_DECL_IFLA_XDP_FLAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_XDP_FLAGS) == (3), "IFLA_XDP_FLAGS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_XDP_FLAGS 3
#endif
-#if !(defined(IFLA_XDP_PROG_ID) || (defined(HAVE_DECL_IFLA_XDP_PROG_ID) && HAVE_DECL_IFLA_XDP_PROG_ID))
+#if defined(IFLA_XDP_PROG_ID) || (defined(HAVE_DECL_IFLA_XDP_PROG_ID) && HAVE_DECL_IFLA_XDP_PROG_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_XDP_PROG_ID) == (4), "IFLA_XDP_PROG_ID != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_XDP_PROG_ID 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_ifla_xdp_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_ifla_xdp_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_ifla_xdp_attrs[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_link_attrs.h b/xlat/rtnl_link_attrs.h
index e212eaf..2ce3ee4 100644
--- a/xlat/rtnl_link_attrs.h
+++ b/xlat/rtnl_link_attrs.h
@@ -1,160 +1,366 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_link_attrs.in; do not edit. */
-#if !(defined(IFLA_UNSPEC) || (defined(HAVE_DECL_IFLA_UNSPEC) && HAVE_DECL_IFLA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFLA_UNSPEC) || (defined(HAVE_DECL_IFLA_UNSPEC) && HAVE_DECL_IFLA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_UNSPEC) == (0), "IFLA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_UNSPEC 0
#endif
-#if !(defined(IFLA_ADDRESS) || (defined(HAVE_DECL_IFLA_ADDRESS) && HAVE_DECL_IFLA_ADDRESS))
+#if defined(IFLA_ADDRESS) || (defined(HAVE_DECL_IFLA_ADDRESS) && HAVE_DECL_IFLA_ADDRESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_ADDRESS) == (1), "IFLA_ADDRESS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_ADDRESS 1
#endif
-#if !(defined(IFLA_BROADCAST) || (defined(HAVE_DECL_IFLA_BROADCAST) && HAVE_DECL_IFLA_BROADCAST))
+#if defined(IFLA_BROADCAST) || (defined(HAVE_DECL_IFLA_BROADCAST) && HAVE_DECL_IFLA_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_BROADCAST) == (2), "IFLA_BROADCAST != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_BROADCAST 2
#endif
-#if !(defined(IFLA_IFNAME) || (defined(HAVE_DECL_IFLA_IFNAME) && HAVE_DECL_IFLA_IFNAME))
+#if defined(IFLA_IFNAME) || (defined(HAVE_DECL_IFLA_IFNAME) && HAVE_DECL_IFLA_IFNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_IFNAME) == (3), "IFLA_IFNAME != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_IFNAME 3
#endif
-#if !(defined(IFLA_MTU) || (defined(HAVE_DECL_IFLA_MTU) && HAVE_DECL_IFLA_MTU))
+#if defined(IFLA_MTU) || (defined(HAVE_DECL_IFLA_MTU) && HAVE_DECL_IFLA_MTU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_MTU) == (4), "IFLA_MTU != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_MTU 4
#endif
-#if !(defined(IFLA_LINK) || (defined(HAVE_DECL_IFLA_LINK) && HAVE_DECL_IFLA_LINK))
+#if defined(IFLA_LINK) || (defined(HAVE_DECL_IFLA_LINK) && HAVE_DECL_IFLA_LINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_LINK) == (5), "IFLA_LINK != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_LINK 5
#endif
-#if !(defined(IFLA_QDISC) || (defined(HAVE_DECL_IFLA_QDISC) && HAVE_DECL_IFLA_QDISC))
+#if defined(IFLA_QDISC) || (defined(HAVE_DECL_IFLA_QDISC) && HAVE_DECL_IFLA_QDISC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_QDISC) == (6), "IFLA_QDISC != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_QDISC 6
#endif
-#if !(defined(IFLA_STATS) || (defined(HAVE_DECL_IFLA_STATS) && HAVE_DECL_IFLA_STATS))
+#if defined(IFLA_STATS) || (defined(HAVE_DECL_IFLA_STATS) && HAVE_DECL_IFLA_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_STATS) == (7), "IFLA_STATS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_STATS 7
#endif
-#if !(defined(IFLA_COST) || (defined(HAVE_DECL_IFLA_COST) && HAVE_DECL_IFLA_COST))
+#if defined(IFLA_COST) || (defined(HAVE_DECL_IFLA_COST) && HAVE_DECL_IFLA_COST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_COST) == (8), "IFLA_COST != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_COST 8
#endif
-#if !(defined(IFLA_PRIORITY) || (defined(HAVE_DECL_IFLA_PRIORITY) && HAVE_DECL_IFLA_PRIORITY))
+#if defined(IFLA_PRIORITY) || (defined(HAVE_DECL_IFLA_PRIORITY) && HAVE_DECL_IFLA_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PRIORITY) == (9), "IFLA_PRIORITY != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PRIORITY 9
#endif
-#if !(defined(IFLA_MASTER) || (defined(HAVE_DECL_IFLA_MASTER) && HAVE_DECL_IFLA_MASTER))
+#if defined(IFLA_MASTER) || (defined(HAVE_DECL_IFLA_MASTER) && HAVE_DECL_IFLA_MASTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_MASTER) == (10), "IFLA_MASTER != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_MASTER 10
#endif
-#if !(defined(IFLA_WIRELESS) || (defined(HAVE_DECL_IFLA_WIRELESS) && HAVE_DECL_IFLA_WIRELESS))
+#if defined(IFLA_WIRELESS) || (defined(HAVE_DECL_IFLA_WIRELESS) && HAVE_DECL_IFLA_WIRELESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_WIRELESS) == (11), "IFLA_WIRELESS != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_WIRELESS 11
#endif
-#if !(defined(IFLA_PROTINFO) || (defined(HAVE_DECL_IFLA_PROTINFO) && HAVE_DECL_IFLA_PROTINFO))
+#if defined(IFLA_PROTINFO) || (defined(HAVE_DECL_IFLA_PROTINFO) && HAVE_DECL_IFLA_PROTINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PROTINFO) == (12), "IFLA_PROTINFO != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PROTINFO 12
#endif
-#if !(defined(IFLA_TXQLEN) || (defined(HAVE_DECL_IFLA_TXQLEN) && HAVE_DECL_IFLA_TXQLEN))
+#if defined(IFLA_TXQLEN) || (defined(HAVE_DECL_IFLA_TXQLEN) && HAVE_DECL_IFLA_TXQLEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_TXQLEN) == (13), "IFLA_TXQLEN != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_TXQLEN 13
#endif
-#if !(defined(IFLA_MAP) || (defined(HAVE_DECL_IFLA_MAP) && HAVE_DECL_IFLA_MAP))
+#if defined(IFLA_MAP) || (defined(HAVE_DECL_IFLA_MAP) && HAVE_DECL_IFLA_MAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_MAP) == (14), "IFLA_MAP != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_MAP 14
#endif
-#if !(defined(IFLA_WEIGHT) || (defined(HAVE_DECL_IFLA_WEIGHT) && HAVE_DECL_IFLA_WEIGHT))
+#if defined(IFLA_WEIGHT) || (defined(HAVE_DECL_IFLA_WEIGHT) && HAVE_DECL_IFLA_WEIGHT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_WEIGHT) == (15), "IFLA_WEIGHT != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_WEIGHT 15
#endif
-#if !(defined(IFLA_OPERSTATE) || (defined(HAVE_DECL_IFLA_OPERSTATE) && HAVE_DECL_IFLA_OPERSTATE))
+#if defined(IFLA_OPERSTATE) || (defined(HAVE_DECL_IFLA_OPERSTATE) && HAVE_DECL_IFLA_OPERSTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_OPERSTATE) == (16), "IFLA_OPERSTATE != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_OPERSTATE 16
#endif
-#if !(defined(IFLA_LINKMODE) || (defined(HAVE_DECL_IFLA_LINKMODE) && HAVE_DECL_IFLA_LINKMODE))
+#if defined(IFLA_LINKMODE) || (defined(HAVE_DECL_IFLA_LINKMODE) && HAVE_DECL_IFLA_LINKMODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_LINKMODE) == (17), "IFLA_LINKMODE != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_LINKMODE 17
#endif
-#if !(defined(IFLA_LINKINFO) || (defined(HAVE_DECL_IFLA_LINKINFO) && HAVE_DECL_IFLA_LINKINFO))
+#if defined(IFLA_LINKINFO) || (defined(HAVE_DECL_IFLA_LINKINFO) && HAVE_DECL_IFLA_LINKINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_LINKINFO) == (18), "IFLA_LINKINFO != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_LINKINFO 18
#endif
-#if !(defined(IFLA_NET_NS_PID) || (defined(HAVE_DECL_IFLA_NET_NS_PID) && HAVE_DECL_IFLA_NET_NS_PID))
+#if defined(IFLA_NET_NS_PID) || (defined(HAVE_DECL_IFLA_NET_NS_PID) && HAVE_DECL_IFLA_NET_NS_PID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_NET_NS_PID) == (19), "IFLA_NET_NS_PID != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_NET_NS_PID 19
#endif
-#if !(defined(IFLA_IFALIAS) || (defined(HAVE_DECL_IFLA_IFALIAS) && HAVE_DECL_IFLA_IFALIAS))
+#if defined(IFLA_IFALIAS) || (defined(HAVE_DECL_IFLA_IFALIAS) && HAVE_DECL_IFLA_IFALIAS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_IFALIAS) == (20), "IFLA_IFALIAS != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_IFALIAS 20
#endif
-#if !(defined(IFLA_NUM_VF) || (defined(HAVE_DECL_IFLA_NUM_VF) && HAVE_DECL_IFLA_NUM_VF))
+#if defined(IFLA_NUM_VF) || (defined(HAVE_DECL_IFLA_NUM_VF) && HAVE_DECL_IFLA_NUM_VF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_NUM_VF) == (21), "IFLA_NUM_VF != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_NUM_VF 21
#endif
-#if !(defined(IFLA_VFINFO_LIST) || (defined(HAVE_DECL_IFLA_VFINFO_LIST) && HAVE_DECL_IFLA_VFINFO_LIST))
+#if defined(IFLA_VFINFO_LIST) || (defined(HAVE_DECL_IFLA_VFINFO_LIST) && HAVE_DECL_IFLA_VFINFO_LIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_VFINFO_LIST) == (22), "IFLA_VFINFO_LIST != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_VFINFO_LIST 22
#endif
-#if !(defined(IFLA_STATS64) || (defined(HAVE_DECL_IFLA_STATS64) && HAVE_DECL_IFLA_STATS64))
+#if defined(IFLA_STATS64) || (defined(HAVE_DECL_IFLA_STATS64) && HAVE_DECL_IFLA_STATS64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_STATS64) == (23), "IFLA_STATS64 != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_STATS64 23
#endif
-#if !(defined(IFLA_VF_PORTS) || (defined(HAVE_DECL_IFLA_VF_PORTS) && HAVE_DECL_IFLA_VF_PORTS))
+#if defined(IFLA_VF_PORTS) || (defined(HAVE_DECL_IFLA_VF_PORTS) && HAVE_DECL_IFLA_VF_PORTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_VF_PORTS) == (24), "IFLA_VF_PORTS != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_VF_PORTS 24
#endif
-#if !(defined(IFLA_PORT_SELF) || (defined(HAVE_DECL_IFLA_PORT_SELF) && HAVE_DECL_IFLA_PORT_SELF))
+#if defined(IFLA_PORT_SELF) || (defined(HAVE_DECL_IFLA_PORT_SELF) && HAVE_DECL_IFLA_PORT_SELF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PORT_SELF) == (25), "IFLA_PORT_SELF != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PORT_SELF 25
#endif
-#if !(defined(IFLA_AF_SPEC) || (defined(HAVE_DECL_IFLA_AF_SPEC) && HAVE_DECL_IFLA_AF_SPEC))
+#if defined(IFLA_AF_SPEC) || (defined(HAVE_DECL_IFLA_AF_SPEC) && HAVE_DECL_IFLA_AF_SPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_AF_SPEC) == (26), "IFLA_AF_SPEC != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_AF_SPEC 26
#endif
-#if !(defined(IFLA_GROUP) || (defined(HAVE_DECL_IFLA_GROUP) && HAVE_DECL_IFLA_GROUP))
+#if defined(IFLA_GROUP) || (defined(HAVE_DECL_IFLA_GROUP) && HAVE_DECL_IFLA_GROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_GROUP) == (27), "IFLA_GROUP != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_GROUP 27
#endif
-#if !(defined(IFLA_NET_NS_FD) || (defined(HAVE_DECL_IFLA_NET_NS_FD) && HAVE_DECL_IFLA_NET_NS_FD))
+#if defined(IFLA_NET_NS_FD) || (defined(HAVE_DECL_IFLA_NET_NS_FD) && HAVE_DECL_IFLA_NET_NS_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_NET_NS_FD) == (28), "IFLA_NET_NS_FD != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_NET_NS_FD 28
#endif
-#if !(defined(IFLA_EXT_MASK) || (defined(HAVE_DECL_IFLA_EXT_MASK) && HAVE_DECL_IFLA_EXT_MASK))
+#if defined(IFLA_EXT_MASK) || (defined(HAVE_DECL_IFLA_EXT_MASK) && HAVE_DECL_IFLA_EXT_MASK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EXT_MASK) == (29), "IFLA_EXT_MASK != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EXT_MASK 29
#endif
-#if !(defined(IFLA_PROMISCUITY) || (defined(HAVE_DECL_IFLA_PROMISCUITY) && HAVE_DECL_IFLA_PROMISCUITY))
+#if defined(IFLA_PROMISCUITY) || (defined(HAVE_DECL_IFLA_PROMISCUITY) && HAVE_DECL_IFLA_PROMISCUITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PROMISCUITY) == (30), "IFLA_PROMISCUITY != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PROMISCUITY 30
#endif
-#if !(defined(IFLA_NUM_TX_QUEUES) || (defined(HAVE_DECL_IFLA_NUM_TX_QUEUES) && HAVE_DECL_IFLA_NUM_TX_QUEUES))
+#if defined(IFLA_NUM_TX_QUEUES) || (defined(HAVE_DECL_IFLA_NUM_TX_QUEUES) && HAVE_DECL_IFLA_NUM_TX_QUEUES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_NUM_TX_QUEUES) == (31), "IFLA_NUM_TX_QUEUES != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_NUM_TX_QUEUES 31
#endif
-#if !(defined(IFLA_NUM_RX_QUEUES) || (defined(HAVE_DECL_IFLA_NUM_RX_QUEUES) && HAVE_DECL_IFLA_NUM_RX_QUEUES))
+#if defined(IFLA_NUM_RX_QUEUES) || (defined(HAVE_DECL_IFLA_NUM_RX_QUEUES) && HAVE_DECL_IFLA_NUM_RX_QUEUES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_NUM_RX_QUEUES) == (32), "IFLA_NUM_RX_QUEUES != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_NUM_RX_QUEUES 32
#endif
-#if !(defined(IFLA_CARRIER) || (defined(HAVE_DECL_IFLA_CARRIER) && HAVE_DECL_IFLA_CARRIER))
+#if defined(IFLA_CARRIER) || (defined(HAVE_DECL_IFLA_CARRIER) && HAVE_DECL_IFLA_CARRIER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_CARRIER) == (33), "IFLA_CARRIER != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_CARRIER 33
#endif
-#if !(defined(IFLA_PHYS_PORT_ID) || (defined(HAVE_DECL_IFLA_PHYS_PORT_ID) && HAVE_DECL_IFLA_PHYS_PORT_ID))
+#if defined(IFLA_PHYS_PORT_ID) || (defined(HAVE_DECL_IFLA_PHYS_PORT_ID) && HAVE_DECL_IFLA_PHYS_PORT_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PHYS_PORT_ID) == (34), "IFLA_PHYS_PORT_ID != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PHYS_PORT_ID 34
#endif
-#if !(defined(IFLA_CARRIER_CHANGES) || (defined(HAVE_DECL_IFLA_CARRIER_CHANGES) && HAVE_DECL_IFLA_CARRIER_CHANGES))
+#if defined(IFLA_CARRIER_CHANGES) || (defined(HAVE_DECL_IFLA_CARRIER_CHANGES) && HAVE_DECL_IFLA_CARRIER_CHANGES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_CARRIER_CHANGES) == (35), "IFLA_CARRIER_CHANGES != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_CARRIER_CHANGES 35
#endif
-#if !(defined(IFLA_PHYS_SWITCH_ID) || (defined(HAVE_DECL_IFLA_PHYS_SWITCH_ID) && HAVE_DECL_IFLA_PHYS_SWITCH_ID))
+#if defined(IFLA_PHYS_SWITCH_ID) || (defined(HAVE_DECL_IFLA_PHYS_SWITCH_ID) && HAVE_DECL_IFLA_PHYS_SWITCH_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PHYS_SWITCH_ID) == (36), "IFLA_PHYS_SWITCH_ID != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PHYS_SWITCH_ID 36
#endif
-#if !(defined(IFLA_LINK_NETNSID) || (defined(HAVE_DECL_IFLA_LINK_NETNSID) && HAVE_DECL_IFLA_LINK_NETNSID))
+#if defined(IFLA_LINK_NETNSID) || (defined(HAVE_DECL_IFLA_LINK_NETNSID) && HAVE_DECL_IFLA_LINK_NETNSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_LINK_NETNSID) == (37), "IFLA_LINK_NETNSID != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_LINK_NETNSID 37
#endif
-#if !(defined(IFLA_PHYS_PORT_NAME) || (defined(HAVE_DECL_IFLA_PHYS_PORT_NAME) && HAVE_DECL_IFLA_PHYS_PORT_NAME))
+#if defined(IFLA_PHYS_PORT_NAME) || (defined(HAVE_DECL_IFLA_PHYS_PORT_NAME) && HAVE_DECL_IFLA_PHYS_PORT_NAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PHYS_PORT_NAME) == (38), "IFLA_PHYS_PORT_NAME != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PHYS_PORT_NAME 38
#endif
-#if !(defined(IFLA_PROTO_DOWN) || (defined(HAVE_DECL_IFLA_PROTO_DOWN) && HAVE_DECL_IFLA_PROTO_DOWN))
+#if defined(IFLA_PROTO_DOWN) || (defined(HAVE_DECL_IFLA_PROTO_DOWN) && HAVE_DECL_IFLA_PROTO_DOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PROTO_DOWN) == (39), "IFLA_PROTO_DOWN != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PROTO_DOWN 39
#endif
-#if !(defined(IFLA_GSO_MAX_SEGS) || (defined(HAVE_DECL_IFLA_GSO_MAX_SEGS) && HAVE_DECL_IFLA_GSO_MAX_SEGS))
+#if defined(IFLA_GSO_MAX_SEGS) || (defined(HAVE_DECL_IFLA_GSO_MAX_SEGS) && HAVE_DECL_IFLA_GSO_MAX_SEGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_GSO_MAX_SEGS) == (40), "IFLA_GSO_MAX_SEGS != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_GSO_MAX_SEGS 40
#endif
-#if !(defined(IFLA_GSO_MAX_SIZE) || (defined(HAVE_DECL_IFLA_GSO_MAX_SIZE) && HAVE_DECL_IFLA_GSO_MAX_SIZE))
+#if defined(IFLA_GSO_MAX_SIZE) || (defined(HAVE_DECL_IFLA_GSO_MAX_SIZE) && HAVE_DECL_IFLA_GSO_MAX_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_GSO_MAX_SIZE) == (41), "IFLA_GSO_MAX_SIZE != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_GSO_MAX_SIZE 41
#endif
-#if !(defined(IFLA_PAD) || (defined(HAVE_DECL_IFLA_PAD) && HAVE_DECL_IFLA_PAD))
+#if defined(IFLA_PAD) || (defined(HAVE_DECL_IFLA_PAD) && HAVE_DECL_IFLA_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_PAD) == (42), "IFLA_PAD != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_PAD 42
#endif
-#if !(defined(IFLA_XDP) || (defined(HAVE_DECL_IFLA_XDP) && HAVE_DECL_IFLA_XDP))
+#if defined(IFLA_XDP) || (defined(HAVE_DECL_IFLA_XDP) && HAVE_DECL_IFLA_XDP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_XDP) == (43), "IFLA_XDP != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_XDP 43
#endif
-#if !(defined(IFLA_EVENT) || (defined(HAVE_DECL_IFLA_EVENT) && HAVE_DECL_IFLA_EVENT))
+#if defined(IFLA_EVENT) || (defined(HAVE_DECL_IFLA_EVENT) && HAVE_DECL_IFLA_EVENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_EVENT) == (44), "IFLA_EVENT != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_EVENT 44
#endif
-#if !(defined(IFLA_NEW_NETNSID) || (defined(HAVE_DECL_IFLA_NEW_NETNSID) && HAVE_DECL_IFLA_NEW_NETNSID))
+#if defined(IFLA_NEW_NETNSID) || (defined(HAVE_DECL_IFLA_NEW_NETNSID) && HAVE_DECL_IFLA_NEW_NETNSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_NEW_NETNSID) == (45), "IFLA_NEW_NETNSID != 45");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_NEW_NETNSID 45
#endif
-#if !(defined(IFLA_IF_NETNSID) || (defined(HAVE_DECL_IFLA_IF_NETNSID) && HAVE_DECL_IFLA_IF_NETNSID))
+#if defined(IFLA_IF_NETNSID) || (defined(HAVE_DECL_IFLA_IF_NETNSID) && HAVE_DECL_IFLA_IF_NETNSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_IF_NETNSID) == (46), "IFLA_IF_NETNSID != 46");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_IF_NETNSID 46
#endif
-#if !(defined(IFLA_CARRIER_UP_COUNT) || (defined(HAVE_DECL_IFLA_CARRIER_UP_COUNT) && HAVE_DECL_IFLA_CARRIER_UP_COUNT))
+#if defined(IFLA_CARRIER_UP_COUNT) || (defined(HAVE_DECL_IFLA_CARRIER_UP_COUNT) && HAVE_DECL_IFLA_CARRIER_UP_COUNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_CARRIER_UP_COUNT) == (47), "IFLA_CARRIER_UP_COUNT != 47");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_CARRIER_UP_COUNT 47
#endif
-#if !(defined(IFLA_CARRIER_DOWN_COUNT) || (defined(HAVE_DECL_IFLA_CARRIER_DOWN_COUNT) && HAVE_DECL_IFLA_CARRIER_DOWN_COUNT))
+#if defined(IFLA_CARRIER_DOWN_COUNT) || (defined(HAVE_DECL_IFLA_CARRIER_DOWN_COUNT) && HAVE_DECL_IFLA_CARRIER_DOWN_COUNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_CARRIER_DOWN_COUNT) == (48), "IFLA_CARRIER_DOWN_COUNT != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_CARRIER_DOWN_COUNT 48
#endif
-#if !(defined(IFLA_NEW_IFINDEX) || (defined(HAVE_DECL_IFLA_NEW_IFINDEX) && HAVE_DECL_IFLA_NEW_IFINDEX))
+#if defined(IFLA_NEW_IFINDEX) || (defined(HAVE_DECL_IFLA_NEW_IFINDEX) && HAVE_DECL_IFLA_NEW_IFINDEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFLA_NEW_IFINDEX) == (49), "IFLA_NEW_IFINDEX != 49");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define IFLA_NEW_IFINDEX 49
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_link_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_link_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_link_attrs[] = {
@@ -211,4 +417,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_mdb_attrs.h b/xlat/rtnl_mdb_attrs.h
index 6b56dee..8dc0308 100644
--- a/xlat/rtnl_mdb_attrs.h
+++ b/xlat/rtnl_mdb_attrs.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_mdb_attrs.in; do not edit. */
-#if !(defined(MDBA_UNSPEC) || (defined(HAVE_DECL_MDBA_UNSPEC) && HAVE_DECL_MDBA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MDBA_UNSPEC) || (defined(HAVE_DECL_MDBA_UNSPEC) && HAVE_DECL_MDBA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_UNSPEC) == (0), "MDBA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_UNSPEC 0
#endif
-#if !(defined(MDBA_MDB) || (defined(HAVE_DECL_MDBA_MDB) && HAVE_DECL_MDBA_MDB))
+#if defined(MDBA_MDB) || (defined(HAVE_DECL_MDBA_MDB) && HAVE_DECL_MDBA_MDB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_MDB) == (1), "MDBA_MDB != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_MDB 1
#endif
-#if !(defined(MDBA_ROUTER) || (defined(HAVE_DECL_MDBA_ROUTER) && HAVE_DECL_MDBA_ROUTER))
+#if defined(MDBA_ROUTER) || (defined(HAVE_DECL_MDBA_ROUTER) && HAVE_DECL_MDBA_ROUTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_ROUTER) == (2), "MDBA_ROUTER != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_ROUTER 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_mdb_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_mdb_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_mdb_attrs[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_mdba_mdb_attrs.h b/xlat/rtnl_mdba_mdb_attrs.h
index f714dbd..ff9c4ab 100644
--- a/xlat/rtnl_mdba_mdb_attrs.h
+++ b/xlat/rtnl_mdba_mdb_attrs.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_mdba_mdb_attrs.in; do not edit. */
-#if !(defined(MDBA_MDB_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_UNSPEC) && HAVE_DECL_MDBA_MDB_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MDBA_MDB_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_UNSPEC) && HAVE_DECL_MDBA_MDB_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_MDB_UNSPEC) == (0), "MDBA_MDB_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_MDB_UNSPEC 0
#endif
-#if !(defined(MDBA_MDB_ENTRY) || (defined(HAVE_DECL_MDBA_MDB_ENTRY) && HAVE_DECL_MDBA_MDB_ENTRY))
+#if defined(MDBA_MDB_ENTRY) || (defined(HAVE_DECL_MDBA_MDB_ENTRY) && HAVE_DECL_MDBA_MDB_ENTRY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_MDB_ENTRY) == (1), "MDBA_MDB_ENTRY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_MDB_ENTRY 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_mdba_mdb_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_mdba_mdb_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_mdba_mdb_attrs[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_mdba_mdb_eattr_attrs.h b/xlat/rtnl_mdba_mdb_eattr_attrs.h
index ce3b3bc..47aa3bd 100644
--- a/xlat/rtnl_mdba_mdb_eattr_attrs.h
+++ b/xlat/rtnl_mdba_mdb_eattr_attrs.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_mdba_mdb_eattr_attrs.in; do not edit. */
-#if !(defined(MDBA_MDB_EATTR_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_EATTR_UNSPEC) && HAVE_DECL_MDBA_MDB_EATTR_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MDBA_MDB_EATTR_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_EATTR_UNSPEC) && HAVE_DECL_MDBA_MDB_EATTR_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_MDB_EATTR_UNSPEC) == (0), "MDBA_MDB_EATTR_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_MDB_EATTR_UNSPEC 0
#endif
-#if !(defined(MDBA_MDB_EATTR_TIMER) || (defined(HAVE_DECL_MDBA_MDB_EATTR_TIMER) && HAVE_DECL_MDBA_MDB_EATTR_TIMER))
+#if defined(MDBA_MDB_EATTR_TIMER) || (defined(HAVE_DECL_MDBA_MDB_EATTR_TIMER) && HAVE_DECL_MDBA_MDB_EATTR_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_MDB_EATTR_TIMER) == (1), "MDBA_MDB_EATTR_TIMER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_MDB_EATTR_TIMER 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_mdba_mdb_eattr_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_mdba_mdb_eattr_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_mdba_mdb_eattr_attrs[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_mdba_mdb_entry_attrs.h b/xlat/rtnl_mdba_mdb_entry_attrs.h
index 198374a..8c38518 100644
--- a/xlat/rtnl_mdba_mdb_entry_attrs.h
+++ b/xlat/rtnl_mdba_mdb_entry_attrs.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_mdba_mdb_entry_attrs.in; do not edit. */
-#if !(defined(MDBA_MDB_ENTRY_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_ENTRY_UNSPEC) && HAVE_DECL_MDBA_MDB_ENTRY_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MDBA_MDB_ENTRY_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_ENTRY_UNSPEC) && HAVE_DECL_MDBA_MDB_ENTRY_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_MDB_ENTRY_UNSPEC) == (0), "MDBA_MDB_ENTRY_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_MDB_ENTRY_UNSPEC 0
#endif
-#if !(defined(MDBA_MDB_ENTRY_INFO) || (defined(HAVE_DECL_MDBA_MDB_ENTRY_INFO) && HAVE_DECL_MDBA_MDB_ENTRY_INFO))
+#if defined(MDBA_MDB_ENTRY_INFO) || (defined(HAVE_DECL_MDBA_MDB_ENTRY_INFO) && HAVE_DECL_MDBA_MDB_ENTRY_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_MDB_ENTRY_INFO) == (1), "MDBA_MDB_ENTRY_INFO != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_MDB_ENTRY_INFO 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_mdba_mdb_entry_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_mdba_mdb_entry_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_mdba_mdb_entry_attrs[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_mdba_router_attrs.h b/xlat/rtnl_mdba_router_attrs.h
index 2efe5e3..cd50e54 100644
--- a/xlat/rtnl_mdba_router_attrs.h
+++ b/xlat/rtnl_mdba_router_attrs.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_mdba_router_attrs.in; do not edit. */
-#if !(defined(MDBA_ROUTER_UNSPEC) || (defined(HAVE_DECL_MDBA_ROUTER_UNSPEC) && HAVE_DECL_MDBA_ROUTER_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MDBA_ROUTER_UNSPEC) || (defined(HAVE_DECL_MDBA_ROUTER_UNSPEC) && HAVE_DECL_MDBA_ROUTER_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_ROUTER_UNSPEC) == (0), "MDBA_ROUTER_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_ROUTER_UNSPEC 0
#endif
-#if !(defined(MDBA_ROUTER_PORT) || (defined(HAVE_DECL_MDBA_ROUTER_PORT) && HAVE_DECL_MDBA_ROUTER_PORT))
+#if defined(MDBA_ROUTER_PORT) || (defined(HAVE_DECL_MDBA_ROUTER_PORT) && HAVE_DECL_MDBA_ROUTER_PORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_ROUTER_PORT) == (1), "MDBA_ROUTER_PORT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_ROUTER_PORT 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_mdba_router_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_mdba_router_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_mdba_router_attrs[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_mdba_router_pattr_attrs.h b/xlat/rtnl_mdba_router_pattr_attrs.h
index b364d31..7081d57 100644
--- a/xlat/rtnl_mdba_router_pattr_attrs.h
+++ b/xlat/rtnl_mdba_router_pattr_attrs.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_mdba_router_pattr_attrs.in; do not edit. */
-#if !(defined(MDBA_ROUTER_PATTR_UNSPEC) || (defined(HAVE_DECL_MDBA_ROUTER_PATTR_UNSPEC) && HAVE_DECL_MDBA_ROUTER_PATTR_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MDBA_ROUTER_PATTR_UNSPEC) || (defined(HAVE_DECL_MDBA_ROUTER_PATTR_UNSPEC) && HAVE_DECL_MDBA_ROUTER_PATTR_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_ROUTER_PATTR_UNSPEC) == (0), "MDBA_ROUTER_PATTR_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_ROUTER_PATTR_UNSPEC 0
#endif
-#if !(defined(MDBA_ROUTER_PATTR_TIMER) || (defined(HAVE_DECL_MDBA_ROUTER_PATTR_TIMER) && HAVE_DECL_MDBA_ROUTER_PATTR_TIMER))
+#if defined(MDBA_ROUTER_PATTR_TIMER) || (defined(HAVE_DECL_MDBA_ROUTER_PATTR_TIMER) && HAVE_DECL_MDBA_ROUTER_PATTR_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_ROUTER_PATTR_TIMER) == (1), "MDBA_ROUTER_PATTR_TIMER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_ROUTER_PATTR_TIMER 1
#endif
-#if !(defined(MDBA_ROUTER_PATTR_TYPE) || (defined(HAVE_DECL_MDBA_ROUTER_PATTR_TYPE) && HAVE_DECL_MDBA_ROUTER_PATTR_TYPE))
+#if defined(MDBA_ROUTER_PATTR_TYPE) || (defined(HAVE_DECL_MDBA_ROUTER_PATTR_TYPE) && HAVE_DECL_MDBA_ROUTER_PATTR_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MDBA_ROUTER_PATTR_TYPE) == (2), "MDBA_ROUTER_PATTR_TYPE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MDBA_ROUTER_PATTR_TYPE 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_mdba_router_pattr_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_mdba_router_pattr_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_mdba_router_pattr_attrs[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_neigh_attrs.h b/xlat/rtnl_neigh_attrs.h
index 492ea42..e1287fe 100644
--- a/xlat/rtnl_neigh_attrs.h
+++ b/xlat/rtnl_neigh_attrs.h
@@ -1,46 +1,100 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_neigh_attrs.in; do not edit. */
-#if !(defined(NDA_UNSPEC) || (defined(HAVE_DECL_NDA_UNSPEC) && HAVE_DECL_NDA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NDA_UNSPEC) || (defined(HAVE_DECL_NDA_UNSPEC) && HAVE_DECL_NDA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_UNSPEC) == (0), "NDA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_UNSPEC 0
#endif
-#if !(defined(NDA_DST) || (defined(HAVE_DECL_NDA_DST) && HAVE_DECL_NDA_DST))
+#if defined(NDA_DST) || (defined(HAVE_DECL_NDA_DST) && HAVE_DECL_NDA_DST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_DST) == (1), "NDA_DST != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_DST 1
#endif
-#if !(defined(NDA_LLADDR) || (defined(HAVE_DECL_NDA_LLADDR) && HAVE_DECL_NDA_LLADDR))
+#if defined(NDA_LLADDR) || (defined(HAVE_DECL_NDA_LLADDR) && HAVE_DECL_NDA_LLADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_LLADDR) == (2), "NDA_LLADDR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_LLADDR 2
#endif
-#if !(defined(NDA_CACHEINFO) || (defined(HAVE_DECL_NDA_CACHEINFO) && HAVE_DECL_NDA_CACHEINFO))
+#if defined(NDA_CACHEINFO) || (defined(HAVE_DECL_NDA_CACHEINFO) && HAVE_DECL_NDA_CACHEINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_CACHEINFO) == (3), "NDA_CACHEINFO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_CACHEINFO 3
#endif
-#if !(defined(NDA_PROBES) || (defined(HAVE_DECL_NDA_PROBES) && HAVE_DECL_NDA_PROBES))
+#if defined(NDA_PROBES) || (defined(HAVE_DECL_NDA_PROBES) && HAVE_DECL_NDA_PROBES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_PROBES) == (4), "NDA_PROBES != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_PROBES 4
#endif
-#if !(defined(NDA_VLAN) || (defined(HAVE_DECL_NDA_VLAN) && HAVE_DECL_NDA_VLAN))
+#if defined(NDA_VLAN) || (defined(HAVE_DECL_NDA_VLAN) && HAVE_DECL_NDA_VLAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_VLAN) == (5), "NDA_VLAN != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_VLAN 5
#endif
-#if !(defined(NDA_PORT) || (defined(HAVE_DECL_NDA_PORT) && HAVE_DECL_NDA_PORT))
+#if defined(NDA_PORT) || (defined(HAVE_DECL_NDA_PORT) && HAVE_DECL_NDA_PORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_PORT) == (6), "NDA_PORT != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_PORT 6
#endif
-#if !(defined(NDA_VNI) || (defined(HAVE_DECL_NDA_VNI) && HAVE_DECL_NDA_VNI))
+#if defined(NDA_VNI) || (defined(HAVE_DECL_NDA_VNI) && HAVE_DECL_NDA_VNI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_VNI) == (7), "NDA_VNI != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_VNI 7
#endif
-#if !(defined(NDA_IFINDEX) || (defined(HAVE_DECL_NDA_IFINDEX) && HAVE_DECL_NDA_IFINDEX))
+#if defined(NDA_IFINDEX) || (defined(HAVE_DECL_NDA_IFINDEX) && HAVE_DECL_NDA_IFINDEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_IFINDEX) == (8), "NDA_IFINDEX != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_IFINDEX 8
#endif
-#if !(defined(NDA_MASTER) || (defined(HAVE_DECL_NDA_MASTER) && HAVE_DECL_NDA_MASTER))
+#if defined(NDA_MASTER) || (defined(HAVE_DECL_NDA_MASTER) && HAVE_DECL_NDA_MASTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_MASTER) == (9), "NDA_MASTER != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_MASTER 9
#endif
-#if !(defined(NDA_LINK_NETNSID) || (defined(HAVE_DECL_NDA_LINK_NETNSID) && HAVE_DECL_NDA_LINK_NETNSID))
+#if defined(NDA_LINK_NETNSID) || (defined(HAVE_DECL_NDA_LINK_NETNSID) && HAVE_DECL_NDA_LINK_NETNSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_LINK_NETNSID) == (10), "NDA_LINK_NETNSID != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_LINK_NETNSID 10
#endif
-#if !(defined(NDA_SRC_VNI) || (defined(HAVE_DECL_NDA_SRC_VNI) && HAVE_DECL_NDA_SRC_VNI))
+#if defined(NDA_SRC_VNI) || (defined(HAVE_DECL_NDA_SRC_VNI) && HAVE_DECL_NDA_SRC_VNI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDA_SRC_VNI) == (11), "NDA_SRC_VNI != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDA_SRC_VNI 11
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_neigh_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_neigh_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_neigh_attrs[] = {
@@ -59,4 +113,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_neightbl_attrs.h b/xlat/rtnl_neightbl_attrs.h
index 748d8b7..8768bab 100644
--- a/xlat/rtnl_neightbl_attrs.h
+++ b/xlat/rtnl_neightbl_attrs.h
@@ -1,40 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_neightbl_attrs.in; do not edit. */
-#if !(defined(NDTA_UNSPEC) || (defined(HAVE_DECL_NDTA_UNSPEC) && HAVE_DECL_NDTA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NDTA_UNSPEC) || (defined(HAVE_DECL_NDTA_UNSPEC) && HAVE_DECL_NDTA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_UNSPEC) == (0), "NDTA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_UNSPEC 0
#endif
-#if !(defined(NDTA_NAME) || (defined(HAVE_DECL_NDTA_NAME) && HAVE_DECL_NDTA_NAME))
+#if defined(NDTA_NAME) || (defined(HAVE_DECL_NDTA_NAME) && HAVE_DECL_NDTA_NAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_NAME) == (1), "NDTA_NAME != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_NAME 1
#endif
-#if !(defined(NDTA_THRESH1) || (defined(HAVE_DECL_NDTA_THRESH1) && HAVE_DECL_NDTA_THRESH1))
+#if defined(NDTA_THRESH1) || (defined(HAVE_DECL_NDTA_THRESH1) && HAVE_DECL_NDTA_THRESH1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_THRESH1) == (2), "NDTA_THRESH1 != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_THRESH1 2
#endif
-#if !(defined(NDTA_THRESH2) || (defined(HAVE_DECL_NDTA_THRESH2) && HAVE_DECL_NDTA_THRESH2))
+#if defined(NDTA_THRESH2) || (defined(HAVE_DECL_NDTA_THRESH2) && HAVE_DECL_NDTA_THRESH2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_THRESH2) == (3), "NDTA_THRESH2 != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_THRESH2 3
#endif
-#if !(defined(NDTA_THRESH3) || (defined(HAVE_DECL_NDTA_THRESH3) && HAVE_DECL_NDTA_THRESH3))
+#if defined(NDTA_THRESH3) || (defined(HAVE_DECL_NDTA_THRESH3) && HAVE_DECL_NDTA_THRESH3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_THRESH3) == (4), "NDTA_THRESH3 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_THRESH3 4
#endif
-#if !(defined(NDTA_CONFIG) || (defined(HAVE_DECL_NDTA_CONFIG) && HAVE_DECL_NDTA_CONFIG))
+#if defined(NDTA_CONFIG) || (defined(HAVE_DECL_NDTA_CONFIG) && HAVE_DECL_NDTA_CONFIG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_CONFIG) == (5), "NDTA_CONFIG != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_CONFIG 5
#endif
-#if !(defined(NDTA_PARMS) || (defined(HAVE_DECL_NDTA_PARMS) && HAVE_DECL_NDTA_PARMS))
+#if defined(NDTA_PARMS) || (defined(HAVE_DECL_NDTA_PARMS) && HAVE_DECL_NDTA_PARMS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_PARMS) == (6), "NDTA_PARMS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_PARMS 6
#endif
-#if !(defined(NDTA_STATS) || (defined(HAVE_DECL_NDTA_STATS) && HAVE_DECL_NDTA_STATS))
+#if defined(NDTA_STATS) || (defined(HAVE_DECL_NDTA_STATS) && HAVE_DECL_NDTA_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_STATS) == (7), "NDTA_STATS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_STATS 7
#endif
-#if !(defined(NDTA_GC_INTERVAL) || (defined(HAVE_DECL_NDTA_GC_INTERVAL) && HAVE_DECL_NDTA_GC_INTERVAL))
+#if defined(NDTA_GC_INTERVAL) || (defined(HAVE_DECL_NDTA_GC_INTERVAL) && HAVE_DECL_NDTA_GC_INTERVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_GC_INTERVAL) == (8), "NDTA_GC_INTERVAL != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_GC_INTERVAL 8
#endif
-#if !(defined(NDTA_PAD) || (defined(HAVE_DECL_NDTA_PAD) && HAVE_DECL_NDTA_PAD))
+#if defined(NDTA_PAD) || (defined(HAVE_DECL_NDTA_PAD) && HAVE_DECL_NDTA_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTA_PAD) == (9), "NDTA_PAD != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTA_PAD 9
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_neightbl_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_neightbl_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_neightbl_attrs[] = {
@@ -51,4 +97,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_neightbl_parms_attrs.h b/xlat/rtnl_neightbl_parms_attrs.h
index f86166e..75bbdec 100644
--- a/xlat/rtnl_neightbl_parms_attrs.h
+++ b/xlat/rtnl_neightbl_parms_attrs.h
@@ -1,67 +1,149 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_neightbl_parms_attrs.in; do not edit. */
-#if !(defined(NDTPA_UNSPEC) || (defined(HAVE_DECL_NDTPA_UNSPEC) && HAVE_DECL_NDTPA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NDTPA_UNSPEC) || (defined(HAVE_DECL_NDTPA_UNSPEC) && HAVE_DECL_NDTPA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_UNSPEC) == (0), "NDTPA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_UNSPEC 0
#endif
-#if !(defined(NDTPA_IFINDEX) || (defined(HAVE_DECL_NDTPA_IFINDEX) && HAVE_DECL_NDTPA_IFINDEX))
+#if defined(NDTPA_IFINDEX) || (defined(HAVE_DECL_NDTPA_IFINDEX) && HAVE_DECL_NDTPA_IFINDEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_IFINDEX) == (1), "NDTPA_IFINDEX != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_IFINDEX 1
#endif
-#if !(defined(NDTPA_REFCNT) || (defined(HAVE_DECL_NDTPA_REFCNT) && HAVE_DECL_NDTPA_REFCNT))
+#if defined(NDTPA_REFCNT) || (defined(HAVE_DECL_NDTPA_REFCNT) && HAVE_DECL_NDTPA_REFCNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_REFCNT) == (2), "NDTPA_REFCNT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_REFCNT 2
#endif
-#if !(defined(NDTPA_REACHABLE_TIME) || (defined(HAVE_DECL_NDTPA_REACHABLE_TIME) && HAVE_DECL_NDTPA_REACHABLE_TIME))
+#if defined(NDTPA_REACHABLE_TIME) || (defined(HAVE_DECL_NDTPA_REACHABLE_TIME) && HAVE_DECL_NDTPA_REACHABLE_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_REACHABLE_TIME) == (3), "NDTPA_REACHABLE_TIME != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_REACHABLE_TIME 3
#endif
-#if !(defined(NDTPA_BASE_REACHABLE_TIME) || (defined(HAVE_DECL_NDTPA_BASE_REACHABLE_TIME) && HAVE_DECL_NDTPA_BASE_REACHABLE_TIME))
+#if defined(NDTPA_BASE_REACHABLE_TIME) || (defined(HAVE_DECL_NDTPA_BASE_REACHABLE_TIME) && HAVE_DECL_NDTPA_BASE_REACHABLE_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_BASE_REACHABLE_TIME) == (4), "NDTPA_BASE_REACHABLE_TIME != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_BASE_REACHABLE_TIME 4
#endif
-#if !(defined(NDTPA_RETRANS_TIME) || (defined(HAVE_DECL_NDTPA_RETRANS_TIME) && HAVE_DECL_NDTPA_RETRANS_TIME))
+#if defined(NDTPA_RETRANS_TIME) || (defined(HAVE_DECL_NDTPA_RETRANS_TIME) && HAVE_DECL_NDTPA_RETRANS_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_RETRANS_TIME) == (5), "NDTPA_RETRANS_TIME != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_RETRANS_TIME 5
#endif
-#if !(defined(NDTPA_GC_STALETIME) || (defined(HAVE_DECL_NDTPA_GC_STALETIME) && HAVE_DECL_NDTPA_GC_STALETIME))
+#if defined(NDTPA_GC_STALETIME) || (defined(HAVE_DECL_NDTPA_GC_STALETIME) && HAVE_DECL_NDTPA_GC_STALETIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_GC_STALETIME) == (6), "NDTPA_GC_STALETIME != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_GC_STALETIME 6
#endif
-#if !(defined(NDTPA_DELAY_PROBE_TIME) || (defined(HAVE_DECL_NDTPA_DELAY_PROBE_TIME) && HAVE_DECL_NDTPA_DELAY_PROBE_TIME))
+#if defined(NDTPA_DELAY_PROBE_TIME) || (defined(HAVE_DECL_NDTPA_DELAY_PROBE_TIME) && HAVE_DECL_NDTPA_DELAY_PROBE_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_DELAY_PROBE_TIME) == (7), "NDTPA_DELAY_PROBE_TIME != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_DELAY_PROBE_TIME 7
#endif
-#if !(defined(NDTPA_QUEUE_LEN) || (defined(HAVE_DECL_NDTPA_QUEUE_LEN) && HAVE_DECL_NDTPA_QUEUE_LEN))
+#if defined(NDTPA_QUEUE_LEN) || (defined(HAVE_DECL_NDTPA_QUEUE_LEN) && HAVE_DECL_NDTPA_QUEUE_LEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_QUEUE_LEN) == (8), "NDTPA_QUEUE_LEN != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_QUEUE_LEN 8
#endif
-#if !(defined(NDTPA_APP_PROBES) || (defined(HAVE_DECL_NDTPA_APP_PROBES) && HAVE_DECL_NDTPA_APP_PROBES))
+#if defined(NDTPA_APP_PROBES) || (defined(HAVE_DECL_NDTPA_APP_PROBES) && HAVE_DECL_NDTPA_APP_PROBES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_APP_PROBES) == (9), "NDTPA_APP_PROBES != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_APP_PROBES 9
#endif
-#if !(defined(NDTPA_UCAST_PROBES) || (defined(HAVE_DECL_NDTPA_UCAST_PROBES) && HAVE_DECL_NDTPA_UCAST_PROBES))
+#if defined(NDTPA_UCAST_PROBES) || (defined(HAVE_DECL_NDTPA_UCAST_PROBES) && HAVE_DECL_NDTPA_UCAST_PROBES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_UCAST_PROBES) == (10), "NDTPA_UCAST_PROBES != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_UCAST_PROBES 10
#endif
-#if !(defined(NDTPA_MCAST_PROBES) || (defined(HAVE_DECL_NDTPA_MCAST_PROBES) && HAVE_DECL_NDTPA_MCAST_PROBES))
+#if defined(NDTPA_MCAST_PROBES) || (defined(HAVE_DECL_NDTPA_MCAST_PROBES) && HAVE_DECL_NDTPA_MCAST_PROBES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_MCAST_PROBES) == (11), "NDTPA_MCAST_PROBES != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_MCAST_PROBES 11
#endif
-#if !(defined(NDTPA_ANYCAST_DELAY) || (defined(HAVE_DECL_NDTPA_ANYCAST_DELAY) && HAVE_DECL_NDTPA_ANYCAST_DELAY))
+#if defined(NDTPA_ANYCAST_DELAY) || (defined(HAVE_DECL_NDTPA_ANYCAST_DELAY) && HAVE_DECL_NDTPA_ANYCAST_DELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_ANYCAST_DELAY) == (12), "NDTPA_ANYCAST_DELAY != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_ANYCAST_DELAY 12
#endif
-#if !(defined(NDTPA_PROXY_DELAY) || (defined(HAVE_DECL_NDTPA_PROXY_DELAY) && HAVE_DECL_NDTPA_PROXY_DELAY))
+#if defined(NDTPA_PROXY_DELAY) || (defined(HAVE_DECL_NDTPA_PROXY_DELAY) && HAVE_DECL_NDTPA_PROXY_DELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_PROXY_DELAY) == (13), "NDTPA_PROXY_DELAY != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_PROXY_DELAY 13
#endif
-#if !(defined(NDTPA_PROXY_QLEN) || (defined(HAVE_DECL_NDTPA_PROXY_QLEN) && HAVE_DECL_NDTPA_PROXY_QLEN))
+#if defined(NDTPA_PROXY_QLEN) || (defined(HAVE_DECL_NDTPA_PROXY_QLEN) && HAVE_DECL_NDTPA_PROXY_QLEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_PROXY_QLEN) == (14), "NDTPA_PROXY_QLEN != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_PROXY_QLEN 14
#endif
-#if !(defined(NDTPA_LOCKTIME) || (defined(HAVE_DECL_NDTPA_LOCKTIME) && HAVE_DECL_NDTPA_LOCKTIME))
+#if defined(NDTPA_LOCKTIME) || (defined(HAVE_DECL_NDTPA_LOCKTIME) && HAVE_DECL_NDTPA_LOCKTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_LOCKTIME) == (15), "NDTPA_LOCKTIME != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_LOCKTIME 15
#endif
-#if !(defined(NDTPA_QUEUE_LENBYTES) || (defined(HAVE_DECL_NDTPA_QUEUE_LENBYTES) && HAVE_DECL_NDTPA_QUEUE_LENBYTES))
+#if defined(NDTPA_QUEUE_LENBYTES) || (defined(HAVE_DECL_NDTPA_QUEUE_LENBYTES) && HAVE_DECL_NDTPA_QUEUE_LENBYTES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_QUEUE_LENBYTES) == (16), "NDTPA_QUEUE_LENBYTES != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_QUEUE_LENBYTES 16
#endif
-#if !(defined(NDTPA_MCAST_REPROBES) || (defined(HAVE_DECL_NDTPA_MCAST_REPROBES) && HAVE_DECL_NDTPA_MCAST_REPROBES))
+#if defined(NDTPA_MCAST_REPROBES) || (defined(HAVE_DECL_NDTPA_MCAST_REPROBES) && HAVE_DECL_NDTPA_MCAST_REPROBES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_MCAST_REPROBES) == (17), "NDTPA_MCAST_REPROBES != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_MCAST_REPROBES 17
#endif
-#if !(defined(NDTPA_PAD) || (defined(HAVE_DECL_NDTPA_PAD) && HAVE_DECL_NDTPA_PAD))
+#if defined(NDTPA_PAD) || (defined(HAVE_DECL_NDTPA_PAD) && HAVE_DECL_NDTPA_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NDTPA_PAD) == (18), "NDTPA_PAD != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NDTPA_PAD 18
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_neightbl_parms_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_neightbl_parms_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_neightbl_parms_attrs[] = {
@@ -87,4 +169,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_netconf_attrs.h b/xlat/rtnl_netconf_attrs.h
index 3115d7a..194aa58 100644
--- a/xlat/rtnl_netconf_attrs.h
+++ b/xlat/rtnl_netconf_attrs.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_netconf_attrs.in; do not edit. */
-#if !(defined(NETCONFA_UNSPEC) || (defined(HAVE_DECL_NETCONFA_UNSPEC) && HAVE_DECL_NETCONFA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NETCONFA_UNSPEC) || (defined(HAVE_DECL_NETCONFA_UNSPEC) && HAVE_DECL_NETCONFA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_UNSPEC) == (0), "NETCONFA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_UNSPEC 0
#endif
-#if !(defined(NETCONFA_IFINDEX) || (defined(HAVE_DECL_NETCONFA_IFINDEX) && HAVE_DECL_NETCONFA_IFINDEX))
+#if defined(NETCONFA_IFINDEX) || (defined(HAVE_DECL_NETCONFA_IFINDEX) && HAVE_DECL_NETCONFA_IFINDEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_IFINDEX) == (1), "NETCONFA_IFINDEX != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_IFINDEX 1
#endif
-#if !(defined(NETCONFA_FORWARDING) || (defined(HAVE_DECL_NETCONFA_FORWARDING) && HAVE_DECL_NETCONFA_FORWARDING))
+#if defined(NETCONFA_FORWARDING) || (defined(HAVE_DECL_NETCONFA_FORWARDING) && HAVE_DECL_NETCONFA_FORWARDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_FORWARDING) == (2), "NETCONFA_FORWARDING != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_FORWARDING 2
#endif
-#if !(defined(NETCONFA_RP_FILTER) || (defined(HAVE_DECL_NETCONFA_RP_FILTER) && HAVE_DECL_NETCONFA_RP_FILTER))
+#if defined(NETCONFA_RP_FILTER) || (defined(HAVE_DECL_NETCONFA_RP_FILTER) && HAVE_DECL_NETCONFA_RP_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_RP_FILTER) == (3), "NETCONFA_RP_FILTER != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_RP_FILTER 3
#endif
-#if !(defined(NETCONFA_MC_FORWARDING) || (defined(HAVE_DECL_NETCONFA_MC_FORWARDING) && HAVE_DECL_NETCONFA_MC_FORWARDING))
+#if defined(NETCONFA_MC_FORWARDING) || (defined(HAVE_DECL_NETCONFA_MC_FORWARDING) && HAVE_DECL_NETCONFA_MC_FORWARDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_MC_FORWARDING) == (4), "NETCONFA_MC_FORWARDING != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_MC_FORWARDING 4
#endif
-#if !(defined(NETCONFA_PROXY_NEIGH) || (defined(HAVE_DECL_NETCONFA_PROXY_NEIGH) && HAVE_DECL_NETCONFA_PROXY_NEIGH))
+#if defined(NETCONFA_PROXY_NEIGH) || (defined(HAVE_DECL_NETCONFA_PROXY_NEIGH) && HAVE_DECL_NETCONFA_PROXY_NEIGH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_PROXY_NEIGH) == (5), "NETCONFA_PROXY_NEIGH != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_PROXY_NEIGH 5
#endif
-#if !(defined(NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) || (defined(HAVE_DECL_NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) && HAVE_DECL_NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN))
+#if defined(NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) || (defined(HAVE_DECL_NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) && HAVE_DECL_NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) == (6), "NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN 6
#endif
-#if !(defined(NETCONFA_INPUT) || (defined(HAVE_DECL_NETCONFA_INPUT) && HAVE_DECL_NETCONFA_INPUT))
+#if defined(NETCONFA_INPUT) || (defined(HAVE_DECL_NETCONFA_INPUT) && HAVE_DECL_NETCONFA_INPUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETCONFA_INPUT) == (7), "NETCONFA_INPUT != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETCONFA_INPUT 7
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_netconf_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_netconf_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_netconf_attrs[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_nsid_attrs.h b/xlat/rtnl_nsid_attrs.h
index 8b1486a..7d6afd2 100644
--- a/xlat/rtnl_nsid_attrs.h
+++ b/xlat/rtnl_nsid_attrs.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_nsid_attrs.in; do not edit. */
-#if !(defined(NETNSA_NSID_NOT_ASSIGNED) || (defined(HAVE_DECL_NETNSA_NSID_NOT_ASSIGNED) && HAVE_DECL_NETNSA_NSID_NOT_ASSIGNED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NETNSA_NSID_NOT_ASSIGNED) || (defined(HAVE_DECL_NETNSA_NSID_NOT_ASSIGNED) && HAVE_DECL_NETNSA_NSID_NOT_ASSIGNED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETNSA_NSID_NOT_ASSIGNED) == (-1), "NETNSA_NSID_NOT_ASSIGNED != -1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETNSA_NSID_NOT_ASSIGNED -1
#endif
-#if !(defined(NETNSA_NONE) || (defined(HAVE_DECL_NETNSA_NONE) && HAVE_DECL_NETNSA_NONE))
+#if defined(NETNSA_NONE) || (defined(HAVE_DECL_NETNSA_NONE) && HAVE_DECL_NETNSA_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETNSA_NONE) == (0), "NETNSA_NONE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETNSA_NONE 0
#endif
-#if !(defined(NETNSA_NSID) || (defined(HAVE_DECL_NETNSA_NSID) && HAVE_DECL_NETNSA_NSID))
+#if defined(NETNSA_NSID) || (defined(HAVE_DECL_NETNSA_NSID) && HAVE_DECL_NETNSA_NSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETNSA_NSID) == (1), "NETNSA_NSID != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETNSA_NSID 1
#endif
-#if !(defined(NETNSA_PID) || (defined(HAVE_DECL_NETNSA_PID) && HAVE_DECL_NETNSA_PID))
+#if defined(NETNSA_PID) || (defined(HAVE_DECL_NETNSA_PID) && HAVE_DECL_NETNSA_PID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETNSA_PID) == (2), "NETNSA_PID != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETNSA_PID 2
#endif
-#if !(defined(NETNSA_FD) || (defined(HAVE_DECL_NETNSA_FD) && HAVE_DECL_NETNSA_FD))
+#if defined(NETNSA_FD) || (defined(HAVE_DECL_NETNSA_FD) && HAVE_DECL_NETNSA_FD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETNSA_FD) == (3), "NETNSA_FD != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define NETNSA_FD 3
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_nsid_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_nsid_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_nsid_attrs[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_route_attrs.h b/xlat/rtnl_route_attrs.h
index 82b5e1f..7cb51fc 100644
--- a/xlat/rtnl_route_attrs.h
+++ b/xlat/rtnl_route_attrs.h
@@ -1,91 +1,205 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_route_attrs.in; do not edit. */
-#if !(defined(RTA_UNSPEC) || (defined(HAVE_DECL_RTA_UNSPEC) && HAVE_DECL_RTA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RTA_UNSPEC) || (defined(HAVE_DECL_RTA_UNSPEC) && HAVE_DECL_RTA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_UNSPEC) == (0), "RTA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_UNSPEC 0
#endif
-#if !(defined(RTA_DST) || (defined(HAVE_DECL_RTA_DST) && HAVE_DECL_RTA_DST))
+#if defined(RTA_DST) || (defined(HAVE_DECL_RTA_DST) && HAVE_DECL_RTA_DST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_DST) == (1), "RTA_DST != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_DST 1
#endif
-#if !(defined(RTA_SRC) || (defined(HAVE_DECL_RTA_SRC) && HAVE_DECL_RTA_SRC))
+#if defined(RTA_SRC) || (defined(HAVE_DECL_RTA_SRC) && HAVE_DECL_RTA_SRC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_SRC) == (2), "RTA_SRC != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_SRC 2
#endif
-#if !(defined(RTA_IIF) || (defined(HAVE_DECL_RTA_IIF) && HAVE_DECL_RTA_IIF))
+#if defined(RTA_IIF) || (defined(HAVE_DECL_RTA_IIF) && HAVE_DECL_RTA_IIF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_IIF) == (3), "RTA_IIF != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_IIF 3
#endif
-#if !(defined(RTA_OIF) || (defined(HAVE_DECL_RTA_OIF) && HAVE_DECL_RTA_OIF))
+#if defined(RTA_OIF) || (defined(HAVE_DECL_RTA_OIF) && HAVE_DECL_RTA_OIF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_OIF) == (4), "RTA_OIF != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_OIF 4
#endif
-#if !(defined(RTA_GATEWAY) || (defined(HAVE_DECL_RTA_GATEWAY) && HAVE_DECL_RTA_GATEWAY))
+#if defined(RTA_GATEWAY) || (defined(HAVE_DECL_RTA_GATEWAY) && HAVE_DECL_RTA_GATEWAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_GATEWAY) == (5), "RTA_GATEWAY != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_GATEWAY 5
#endif
-#if !(defined(RTA_PRIORITY) || (defined(HAVE_DECL_RTA_PRIORITY) && HAVE_DECL_RTA_PRIORITY))
+#if defined(RTA_PRIORITY) || (defined(HAVE_DECL_RTA_PRIORITY) && HAVE_DECL_RTA_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_PRIORITY) == (6), "RTA_PRIORITY != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_PRIORITY 6
#endif
-#if !(defined(RTA_PREFSRC) || (defined(HAVE_DECL_RTA_PREFSRC) && HAVE_DECL_RTA_PREFSRC))
+#if defined(RTA_PREFSRC) || (defined(HAVE_DECL_RTA_PREFSRC) && HAVE_DECL_RTA_PREFSRC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_PREFSRC) == (7), "RTA_PREFSRC != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_PREFSRC 7
#endif
-#if !(defined(RTA_METRICS) || (defined(HAVE_DECL_RTA_METRICS) && HAVE_DECL_RTA_METRICS))
+#if defined(RTA_METRICS) || (defined(HAVE_DECL_RTA_METRICS) && HAVE_DECL_RTA_METRICS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_METRICS) == (8), "RTA_METRICS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_METRICS 8
#endif
-#if !(defined(RTA_MULTIPATH) || (defined(HAVE_DECL_RTA_MULTIPATH) && HAVE_DECL_RTA_MULTIPATH))
+#if defined(RTA_MULTIPATH) || (defined(HAVE_DECL_RTA_MULTIPATH) && HAVE_DECL_RTA_MULTIPATH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_MULTIPATH) == (9), "RTA_MULTIPATH != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_MULTIPATH 9
#endif
-#if !(defined(RTA_PROTOINFO) || (defined(HAVE_DECL_RTA_PROTOINFO) && HAVE_DECL_RTA_PROTOINFO))
+#if defined(RTA_PROTOINFO) || (defined(HAVE_DECL_RTA_PROTOINFO) && HAVE_DECL_RTA_PROTOINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_PROTOINFO) == (10), "RTA_PROTOINFO != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_PROTOINFO 10
#endif
-#if !(defined(RTA_FLOW) || (defined(HAVE_DECL_RTA_FLOW) && HAVE_DECL_RTA_FLOW))
+#if defined(RTA_FLOW) || (defined(HAVE_DECL_RTA_FLOW) && HAVE_DECL_RTA_FLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_FLOW) == (11), "RTA_FLOW != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_FLOW 11
#endif
-#if !(defined(RTA_CACHEINFO) || (defined(HAVE_DECL_RTA_CACHEINFO) && HAVE_DECL_RTA_CACHEINFO))
+#if defined(RTA_CACHEINFO) || (defined(HAVE_DECL_RTA_CACHEINFO) && HAVE_DECL_RTA_CACHEINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_CACHEINFO) == (12), "RTA_CACHEINFO != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_CACHEINFO 12
#endif
-#if !(defined(RTA_SESSION) || (defined(HAVE_DECL_RTA_SESSION) && HAVE_DECL_RTA_SESSION))
+#if defined(RTA_SESSION) || (defined(HAVE_DECL_RTA_SESSION) && HAVE_DECL_RTA_SESSION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_SESSION) == (13), "RTA_SESSION != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_SESSION 13
#endif
-#if !(defined(RTA_MP_ALGO) || (defined(HAVE_DECL_RTA_MP_ALGO) && HAVE_DECL_RTA_MP_ALGO))
+#if defined(RTA_MP_ALGO) || (defined(HAVE_DECL_RTA_MP_ALGO) && HAVE_DECL_RTA_MP_ALGO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_MP_ALGO) == (14), "RTA_MP_ALGO != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_MP_ALGO 14
#endif
-#if !(defined(RTA_TABLE) || (defined(HAVE_DECL_RTA_TABLE) && HAVE_DECL_RTA_TABLE))
+#if defined(RTA_TABLE) || (defined(HAVE_DECL_RTA_TABLE) && HAVE_DECL_RTA_TABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_TABLE) == (15), "RTA_TABLE != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_TABLE 15
#endif
-#if !(defined(RTA_MARK) || (defined(HAVE_DECL_RTA_MARK) && HAVE_DECL_RTA_MARK))
+#if defined(RTA_MARK) || (defined(HAVE_DECL_RTA_MARK) && HAVE_DECL_RTA_MARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_MARK) == (16), "RTA_MARK != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_MARK 16
#endif
-#if !(defined(RTA_MFC_STATS) || (defined(HAVE_DECL_RTA_MFC_STATS) && HAVE_DECL_RTA_MFC_STATS))
+#if defined(RTA_MFC_STATS) || (defined(HAVE_DECL_RTA_MFC_STATS) && HAVE_DECL_RTA_MFC_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_MFC_STATS) == (17), "RTA_MFC_STATS != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_MFC_STATS 17
#endif
-#if !(defined(RTA_VIA) || (defined(HAVE_DECL_RTA_VIA) && HAVE_DECL_RTA_VIA))
+#if defined(RTA_VIA) || (defined(HAVE_DECL_RTA_VIA) && HAVE_DECL_RTA_VIA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_VIA) == (18), "RTA_VIA != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_VIA 18
#endif
-#if !(defined(RTA_NEWDST) || (defined(HAVE_DECL_RTA_NEWDST) && HAVE_DECL_RTA_NEWDST))
+#if defined(RTA_NEWDST) || (defined(HAVE_DECL_RTA_NEWDST) && HAVE_DECL_RTA_NEWDST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_NEWDST) == (19), "RTA_NEWDST != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_NEWDST 19
#endif
-#if !(defined(RTA_PREF) || (defined(HAVE_DECL_RTA_PREF) && HAVE_DECL_RTA_PREF))
+#if defined(RTA_PREF) || (defined(HAVE_DECL_RTA_PREF) && HAVE_DECL_RTA_PREF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_PREF) == (20), "RTA_PREF != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_PREF 20
#endif
-#if !(defined(RTA_ENCAP_TYPE) || (defined(HAVE_DECL_RTA_ENCAP_TYPE) && HAVE_DECL_RTA_ENCAP_TYPE))
+#if defined(RTA_ENCAP_TYPE) || (defined(HAVE_DECL_RTA_ENCAP_TYPE) && HAVE_DECL_RTA_ENCAP_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_ENCAP_TYPE) == (21), "RTA_ENCAP_TYPE != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_ENCAP_TYPE 21
#endif
-#if !(defined(RTA_ENCAP) || (defined(HAVE_DECL_RTA_ENCAP) && HAVE_DECL_RTA_ENCAP))
+#if defined(RTA_ENCAP) || (defined(HAVE_DECL_RTA_ENCAP) && HAVE_DECL_RTA_ENCAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_ENCAP) == (22), "RTA_ENCAP != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_ENCAP 22
#endif
-#if !(defined(RTA_EXPIRES) || (defined(HAVE_DECL_RTA_EXPIRES) && HAVE_DECL_RTA_EXPIRES))
+#if defined(RTA_EXPIRES) || (defined(HAVE_DECL_RTA_EXPIRES) && HAVE_DECL_RTA_EXPIRES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_EXPIRES) == (23), "RTA_EXPIRES != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_EXPIRES 23
#endif
-#if !(defined(RTA_PAD) || (defined(HAVE_DECL_RTA_PAD) && HAVE_DECL_RTA_PAD))
+#if defined(RTA_PAD) || (defined(HAVE_DECL_RTA_PAD) && HAVE_DECL_RTA_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_PAD) == (24), "RTA_PAD != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_PAD 24
#endif
-#if !(defined(RTA_UID) || (defined(HAVE_DECL_RTA_UID) && HAVE_DECL_RTA_UID))
+#if defined(RTA_UID) || (defined(HAVE_DECL_RTA_UID) && HAVE_DECL_RTA_UID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_UID) == (25), "RTA_UID != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_UID 25
#endif
-#if !(defined(RTA_TTL_PROPAGATE) || (defined(HAVE_DECL_RTA_TTL_PROPAGATE) && HAVE_DECL_RTA_TTL_PROPAGATE))
+#if defined(RTA_TTL_PROPAGATE) || (defined(HAVE_DECL_RTA_TTL_PROPAGATE) && HAVE_DECL_RTA_TTL_PROPAGATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTA_TTL_PROPAGATE) == (26), "RTA_TTL_PROPAGATE != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTA_TTL_PROPAGATE 26
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_route_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_route_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_route_attrs[] = {
@@ -119,4 +233,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_rta_metrics_attrs.h b/xlat/rtnl_rta_metrics_attrs.h
index b395ca3..b441459 100644
--- a/xlat/rtnl_rta_metrics_attrs.h
+++ b/xlat/rtnl_rta_metrics_attrs.h
@@ -1,61 +1,135 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_rta_metrics_attrs.in; do not edit. */
-#if !(defined(RTAX_UNSPEC) || (defined(HAVE_DECL_RTAX_UNSPEC) && HAVE_DECL_RTAX_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RTAX_UNSPEC) || (defined(HAVE_DECL_RTAX_UNSPEC) && HAVE_DECL_RTAX_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_UNSPEC) == (0), "RTAX_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_UNSPEC 0
#endif
-#if !(defined(RTAX_LOCK) || (defined(HAVE_DECL_RTAX_LOCK) && HAVE_DECL_RTAX_LOCK))
+#if defined(RTAX_LOCK) || (defined(HAVE_DECL_RTAX_LOCK) && HAVE_DECL_RTAX_LOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_LOCK) == (1), "RTAX_LOCK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_LOCK 1
#endif
-#if !(defined(RTAX_MTU) || (defined(HAVE_DECL_RTAX_MTU) && HAVE_DECL_RTAX_MTU))
+#if defined(RTAX_MTU) || (defined(HAVE_DECL_RTAX_MTU) && HAVE_DECL_RTAX_MTU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_MTU) == (2), "RTAX_MTU != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_MTU 2
#endif
-#if !(defined(RTAX_WINDOW) || (defined(HAVE_DECL_RTAX_WINDOW) && HAVE_DECL_RTAX_WINDOW))
+#if defined(RTAX_WINDOW) || (defined(HAVE_DECL_RTAX_WINDOW) && HAVE_DECL_RTAX_WINDOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_WINDOW) == (3), "RTAX_WINDOW != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_WINDOW 3
#endif
-#if !(defined(RTAX_RTT) || (defined(HAVE_DECL_RTAX_RTT) && HAVE_DECL_RTAX_RTT))
+#if defined(RTAX_RTT) || (defined(HAVE_DECL_RTAX_RTT) && HAVE_DECL_RTAX_RTT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_RTT) == (4), "RTAX_RTT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_RTT 4
#endif
-#if !(defined(RTAX_RTTVAR) || (defined(HAVE_DECL_RTAX_RTTVAR) && HAVE_DECL_RTAX_RTTVAR))
+#if defined(RTAX_RTTVAR) || (defined(HAVE_DECL_RTAX_RTTVAR) && HAVE_DECL_RTAX_RTTVAR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_RTTVAR) == (5), "RTAX_RTTVAR != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_RTTVAR 5
#endif
-#if !(defined(RTAX_SSTHRESH) || (defined(HAVE_DECL_RTAX_SSTHRESH) && HAVE_DECL_RTAX_SSTHRESH))
+#if defined(RTAX_SSTHRESH) || (defined(HAVE_DECL_RTAX_SSTHRESH) && HAVE_DECL_RTAX_SSTHRESH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_SSTHRESH) == (6), "RTAX_SSTHRESH != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_SSTHRESH 6
#endif
-#if !(defined(RTAX_CWND) || (defined(HAVE_DECL_RTAX_CWND) && HAVE_DECL_RTAX_CWND))
+#if defined(RTAX_CWND) || (defined(HAVE_DECL_RTAX_CWND) && HAVE_DECL_RTAX_CWND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_CWND) == (7), "RTAX_CWND != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_CWND 7
#endif
-#if !(defined(RTAX_ADVMSS) || (defined(HAVE_DECL_RTAX_ADVMSS) && HAVE_DECL_RTAX_ADVMSS))
+#if defined(RTAX_ADVMSS) || (defined(HAVE_DECL_RTAX_ADVMSS) && HAVE_DECL_RTAX_ADVMSS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_ADVMSS) == (8), "RTAX_ADVMSS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_ADVMSS 8
#endif
-#if !(defined(RTAX_REORDERING) || (defined(HAVE_DECL_RTAX_REORDERING) && HAVE_DECL_RTAX_REORDERING))
+#if defined(RTAX_REORDERING) || (defined(HAVE_DECL_RTAX_REORDERING) && HAVE_DECL_RTAX_REORDERING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_REORDERING) == (9), "RTAX_REORDERING != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_REORDERING 9
#endif
-#if !(defined(RTAX_HOPLIMIT) || (defined(HAVE_DECL_RTAX_HOPLIMIT) && HAVE_DECL_RTAX_HOPLIMIT))
+#if defined(RTAX_HOPLIMIT) || (defined(HAVE_DECL_RTAX_HOPLIMIT) && HAVE_DECL_RTAX_HOPLIMIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_HOPLIMIT) == (10), "RTAX_HOPLIMIT != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_HOPLIMIT 10
#endif
-#if !(defined(RTAX_INITCWND) || (defined(HAVE_DECL_RTAX_INITCWND) && HAVE_DECL_RTAX_INITCWND))
+#if defined(RTAX_INITCWND) || (defined(HAVE_DECL_RTAX_INITCWND) && HAVE_DECL_RTAX_INITCWND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_INITCWND) == (11), "RTAX_INITCWND != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_INITCWND 11
#endif
-#if !(defined(RTAX_FEATURES) || (defined(HAVE_DECL_RTAX_FEATURES) && HAVE_DECL_RTAX_FEATURES))
+#if defined(RTAX_FEATURES) || (defined(HAVE_DECL_RTAX_FEATURES) && HAVE_DECL_RTAX_FEATURES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_FEATURES) == (12), "RTAX_FEATURES != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_FEATURES 12
#endif
-#if !(defined(RTAX_RTO_MIN) || (defined(HAVE_DECL_RTAX_RTO_MIN) && HAVE_DECL_RTAX_RTO_MIN))
+#if defined(RTAX_RTO_MIN) || (defined(HAVE_DECL_RTAX_RTO_MIN) && HAVE_DECL_RTAX_RTO_MIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_RTO_MIN) == (13), "RTAX_RTO_MIN != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_RTO_MIN 13
#endif
-#if !(defined(RTAX_INITRWND) || (defined(HAVE_DECL_RTAX_INITRWND) && HAVE_DECL_RTAX_INITRWND))
+#if defined(RTAX_INITRWND) || (defined(HAVE_DECL_RTAX_INITRWND) && HAVE_DECL_RTAX_INITRWND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_INITRWND) == (14), "RTAX_INITRWND != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_INITRWND 14
#endif
-#if !(defined(RTAX_QUICKACK) || (defined(HAVE_DECL_RTAX_QUICKACK) && HAVE_DECL_RTAX_QUICKACK))
+#if defined(RTAX_QUICKACK) || (defined(HAVE_DECL_RTAX_QUICKACK) && HAVE_DECL_RTAX_QUICKACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_QUICKACK) == (15), "RTAX_QUICKACK != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_QUICKACK 15
#endif
-#if !(defined(RTAX_CC_ALGO) || (defined(HAVE_DECL_RTAX_CC_ALGO) && HAVE_DECL_RTAX_CC_ALGO))
+#if defined(RTAX_CC_ALGO) || (defined(HAVE_DECL_RTAX_CC_ALGO) && HAVE_DECL_RTAX_CC_ALGO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RTAX_CC_ALGO) == (16), "RTAX_CC_ALGO != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RTAX_CC_ALGO 16
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_rta_metrics_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_rta_metrics_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_rta_metrics_attrs[] = {
@@ -79,4 +153,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_rule_attrs.h b/xlat/rtnl_rule_attrs.h
index c9680ec..683bbee 100644
--- a/xlat/rtnl_rule_attrs.h
+++ b/xlat/rtnl_rule_attrs.h
@@ -1,73 +1,191 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_rule_attrs.in; do not edit. */
-#if !(defined(FRA_UNSPEC) || (defined(HAVE_DECL_FRA_UNSPEC) && HAVE_DECL_FRA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FRA_UNSPEC) || (defined(HAVE_DECL_FRA_UNSPEC) && HAVE_DECL_FRA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_UNSPEC) == (0), "FRA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_UNSPEC 0
#endif
-#if !(defined(FRA_DST) || (defined(HAVE_DECL_FRA_DST) && HAVE_DECL_FRA_DST))
+#if defined(FRA_DST) || (defined(HAVE_DECL_FRA_DST) && HAVE_DECL_FRA_DST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_DST) == (1), "FRA_DST != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_DST 1
#endif
-#if !(defined(FRA_SRC) || (defined(HAVE_DECL_FRA_SRC) && HAVE_DECL_FRA_SRC))
+#if defined(FRA_SRC) || (defined(HAVE_DECL_FRA_SRC) && HAVE_DECL_FRA_SRC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_SRC) == (2), "FRA_SRC != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_SRC 2
#endif
-#if !(defined(FRA_IIFNAME) || (defined(HAVE_DECL_FRA_IIFNAME) && HAVE_DECL_FRA_IIFNAME))
+#if defined(FRA_IIFNAME) || (defined(HAVE_DECL_FRA_IIFNAME) && HAVE_DECL_FRA_IIFNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_IIFNAME) == (3), "FRA_IIFNAME != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_IIFNAME 3
#endif
-#if !(defined(FRA_GOTO) || (defined(HAVE_DECL_FRA_GOTO) && HAVE_DECL_FRA_GOTO))
+#if defined(FRA_GOTO) || (defined(HAVE_DECL_FRA_GOTO) && HAVE_DECL_FRA_GOTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_GOTO) == (4), "FRA_GOTO != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_GOTO 4
#endif
-#if !(defined(FRA_UNUSED2) || (defined(HAVE_DECL_FRA_UNUSED2) && HAVE_DECL_FRA_UNUSED2))
+#if defined(FRA_UNUSED2) || (defined(HAVE_DECL_FRA_UNUSED2) && HAVE_DECL_FRA_UNUSED2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_UNUSED2) == (5), "FRA_UNUSED2 != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_UNUSED2 5
#endif
-#if !(defined(FRA_PRIORITY) || (defined(HAVE_DECL_FRA_PRIORITY) && HAVE_DECL_FRA_PRIORITY))
+#if defined(FRA_PRIORITY) || (defined(HAVE_DECL_FRA_PRIORITY) && HAVE_DECL_FRA_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_PRIORITY) == (6), "FRA_PRIORITY != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_PRIORITY 6
#endif
-#if !(defined(FRA_UNUSED3) || (defined(HAVE_DECL_FRA_UNUSED3) && HAVE_DECL_FRA_UNUSED3))
+#if defined(FRA_UNUSED3) || (defined(HAVE_DECL_FRA_UNUSED3) && HAVE_DECL_FRA_UNUSED3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_UNUSED3) == (7), "FRA_UNUSED3 != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_UNUSED3 7
#endif
-#if !(defined(FRA_UNUSED4) || (defined(HAVE_DECL_FRA_UNUSED4) && HAVE_DECL_FRA_UNUSED4))
+#if defined(FRA_UNUSED4) || (defined(HAVE_DECL_FRA_UNUSED4) && HAVE_DECL_FRA_UNUSED4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_UNUSED4) == (8), "FRA_UNUSED4 != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_UNUSED4 8
#endif
-#if !(defined(FRA_UNUSED5) || (defined(HAVE_DECL_FRA_UNUSED5) && HAVE_DECL_FRA_UNUSED5))
+#if defined(FRA_UNUSED5) || (defined(HAVE_DECL_FRA_UNUSED5) && HAVE_DECL_FRA_UNUSED5)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_UNUSED5) == (9), "FRA_UNUSED5 != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_UNUSED5 9
#endif
-#if !(defined(FRA_FWMARK) || (defined(HAVE_DECL_FRA_FWMARK) && HAVE_DECL_FRA_FWMARK))
+#if defined(FRA_FWMARK) || (defined(HAVE_DECL_FRA_FWMARK) && HAVE_DECL_FRA_FWMARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_FWMARK) == (10), "FRA_FWMARK != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_FWMARK 10
#endif
-#if !(defined(FRA_FLOW) || (defined(HAVE_DECL_FRA_FLOW) && HAVE_DECL_FRA_FLOW))
+#if defined(FRA_FLOW) || (defined(HAVE_DECL_FRA_FLOW) && HAVE_DECL_FRA_FLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_FLOW) == (11), "FRA_FLOW != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_FLOW 11
#endif
-#if !(defined(FRA_TUN_ID) || (defined(HAVE_DECL_FRA_TUN_ID) && HAVE_DECL_FRA_TUN_ID))
+#if defined(FRA_TUN_ID) || (defined(HAVE_DECL_FRA_TUN_ID) && HAVE_DECL_FRA_TUN_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_TUN_ID) == (12), "FRA_TUN_ID != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_TUN_ID 12
#endif
-#if !(defined(FRA_SUPPRESS_IFGROUP) || (defined(HAVE_DECL_FRA_SUPPRESS_IFGROUP) && HAVE_DECL_FRA_SUPPRESS_IFGROUP))
+#if defined(FRA_SUPPRESS_IFGROUP) || (defined(HAVE_DECL_FRA_SUPPRESS_IFGROUP) && HAVE_DECL_FRA_SUPPRESS_IFGROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_SUPPRESS_IFGROUP) == (13), "FRA_SUPPRESS_IFGROUP != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_SUPPRESS_IFGROUP 13
#endif
-#if !(defined(FRA_SUPPRESS_PREFIXLEN) || (defined(HAVE_DECL_FRA_SUPPRESS_PREFIXLEN) && HAVE_DECL_FRA_SUPPRESS_PREFIXLEN))
+#if defined(FRA_SUPPRESS_PREFIXLEN) || (defined(HAVE_DECL_FRA_SUPPRESS_PREFIXLEN) && HAVE_DECL_FRA_SUPPRESS_PREFIXLEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_SUPPRESS_PREFIXLEN) == (14), "FRA_SUPPRESS_PREFIXLEN != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_SUPPRESS_PREFIXLEN 14
#endif
-#if !(defined(FRA_TABLE) || (defined(HAVE_DECL_FRA_TABLE) && HAVE_DECL_FRA_TABLE))
+#if defined(FRA_TABLE) || (defined(HAVE_DECL_FRA_TABLE) && HAVE_DECL_FRA_TABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_TABLE) == (15), "FRA_TABLE != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_TABLE 15
#endif
-#if !(defined(FRA_FWMASK) || (defined(HAVE_DECL_FRA_FWMASK) && HAVE_DECL_FRA_FWMASK))
+#if defined(FRA_FWMASK) || (defined(HAVE_DECL_FRA_FWMASK) && HAVE_DECL_FRA_FWMASK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_FWMASK) == (16), "FRA_FWMASK != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_FWMASK 16
#endif
-#if !(defined(FRA_OIFNAME) || (defined(HAVE_DECL_FRA_OIFNAME) && HAVE_DECL_FRA_OIFNAME))
+#if defined(FRA_OIFNAME) || (defined(HAVE_DECL_FRA_OIFNAME) && HAVE_DECL_FRA_OIFNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_OIFNAME) == (17), "FRA_OIFNAME != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_OIFNAME 17
#endif
-#if !(defined(FRA_PAD) || (defined(HAVE_DECL_FRA_PAD) && HAVE_DECL_FRA_PAD))
+#if defined(FRA_PAD) || (defined(HAVE_DECL_FRA_PAD) && HAVE_DECL_FRA_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_PAD) == (18), "FRA_PAD != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_PAD 18
#endif
-#if !(defined(FRA_L3MDEV) || (defined(HAVE_DECL_FRA_L3MDEV) && HAVE_DECL_FRA_L3MDEV))
+#if defined(FRA_L3MDEV) || (defined(HAVE_DECL_FRA_L3MDEV) && HAVE_DECL_FRA_L3MDEV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_L3MDEV) == (19), "FRA_L3MDEV != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_L3MDEV 19
#endif
-#if !(defined(FRA_UID_RANGE) || (defined(HAVE_DECL_FRA_UID_RANGE) && HAVE_DECL_FRA_UID_RANGE))
+#if defined(FRA_UID_RANGE) || (defined(HAVE_DECL_FRA_UID_RANGE) && HAVE_DECL_FRA_UID_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_UID_RANGE) == (20), "FRA_UID_RANGE != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FRA_UID_RANGE 20
#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat rtnl_rule_attrs in mpers mode
-
+#if defined(FRA_PROTOCOL) || (defined(HAVE_DECL_FRA_PROTOCOL) && HAVE_DECL_FRA_PROTOCOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_PROTOCOL) == (21), "FRA_PROTOCOL != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define FRA_PROTOCOL 21
+#endif
+#if defined(FRA_IP_PROTO) || (defined(HAVE_DECL_FRA_IP_PROTO) && HAVE_DECL_FRA_IP_PROTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_IP_PROTO) == (22), "FRA_IP_PROTO != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FRA_IP_PROTO 22
+#endif
+#if defined(FRA_SPORT_RANGE) || (defined(HAVE_DECL_FRA_SPORT_RANGE) && HAVE_DECL_FRA_SPORT_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_SPORT_RANGE) == (23), "FRA_SPORT_RANGE != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FRA_SPORT_RANGE 23
+#endif
+#if defined(FRA_DPORT_RANGE) || (defined(HAVE_DECL_FRA_DPORT_RANGE) && HAVE_DECL_FRA_DPORT_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FRA_DPORT_RANGE) == (24), "FRA_DPORT_RANGE != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FRA_DPORT_RANGE 24
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat rtnl_rule_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_rule_attrs[] = {
@@ -92,7 +210,13 @@
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
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_rule_attrs.in b/xlat/rtnl_rule_attrs.in
index 971f118..96ab442 100644
--- a/xlat/rtnl_rule_attrs.in
+++ b/xlat/rtnl_rule_attrs.in
@@ -19,3 +19,7 @@
FRA_PAD 18
FRA_L3MDEV 19
FRA_UID_RANGE 20
+FRA_PROTOCOL 21
+FRA_IP_PROTO 22
+FRA_SPORT_RANGE 23
+FRA_DPORT_RANGE 24
diff --git a/xlat/rtnl_tc_action_attrs.h b/xlat/rtnl_tc_action_attrs.h
index d950089..03990c5 100644
--- a/xlat/rtnl_tc_action_attrs.h
+++ b/xlat/rtnl_tc_action_attrs.h
@@ -1,31 +1,65 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_tc_action_attrs.in; do not edit. */
-#if !(defined(TCA_ACT_UNSPEC) || (defined(HAVE_DECL_TCA_ACT_UNSPEC) && HAVE_DECL_TCA_ACT_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TCA_ACT_UNSPEC) || (defined(HAVE_DECL_TCA_ACT_UNSPEC) && HAVE_DECL_TCA_ACT_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_ACT_UNSPEC) == (0), "TCA_ACT_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_ACT_UNSPEC 0
#endif
-#if !(defined(TCA_ACT_KIND) || (defined(HAVE_DECL_TCA_ACT_KIND) && HAVE_DECL_TCA_ACT_KIND))
+#if defined(TCA_ACT_KIND) || (defined(HAVE_DECL_TCA_ACT_KIND) && HAVE_DECL_TCA_ACT_KIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_ACT_KIND) == (1), "TCA_ACT_KIND != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_ACT_KIND 1
#endif
-#if !(defined(TCA_ACT_OPTIONS) || (defined(HAVE_DECL_TCA_ACT_OPTIONS) && HAVE_DECL_TCA_ACT_OPTIONS))
+#if defined(TCA_ACT_OPTIONS) || (defined(HAVE_DECL_TCA_ACT_OPTIONS) && HAVE_DECL_TCA_ACT_OPTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_ACT_OPTIONS) == (2), "TCA_ACT_OPTIONS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_ACT_OPTIONS 2
#endif
-#if !(defined(TCA_ACT_INDEX) || (defined(HAVE_DECL_TCA_ACT_INDEX) && HAVE_DECL_TCA_ACT_INDEX))
+#if defined(TCA_ACT_INDEX) || (defined(HAVE_DECL_TCA_ACT_INDEX) && HAVE_DECL_TCA_ACT_INDEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_ACT_INDEX) == (3), "TCA_ACT_INDEX != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_ACT_INDEX 3
#endif
-#if !(defined(TCA_ACT_STATS) || (defined(HAVE_DECL_TCA_ACT_STATS) && HAVE_DECL_TCA_ACT_STATS))
+#if defined(TCA_ACT_STATS) || (defined(HAVE_DECL_TCA_ACT_STATS) && HAVE_DECL_TCA_ACT_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_ACT_STATS) == (4), "TCA_ACT_STATS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_ACT_STATS 4
#endif
-#if !(defined(TCA_ACT_PAD) || (defined(HAVE_DECL_TCA_ACT_PAD) && HAVE_DECL_TCA_ACT_PAD))
+#if defined(TCA_ACT_PAD) || (defined(HAVE_DECL_TCA_ACT_PAD) && HAVE_DECL_TCA_ACT_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_ACT_PAD) == (5), "TCA_ACT_PAD != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_ACT_PAD 5
#endif
-#if !(defined(TCA_ACT_COOKIE) || (defined(HAVE_DECL_TCA_ACT_COOKIE) && HAVE_DECL_TCA_ACT_COOKIE))
+#if defined(TCA_ACT_COOKIE) || (defined(HAVE_DECL_TCA_ACT_COOKIE) && HAVE_DECL_TCA_ACT_COOKIE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_ACT_COOKIE) == (6), "TCA_ACT_COOKIE != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_ACT_COOKIE 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_tc_action_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_tc_action_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_tc_action_attrs[] = {
@@ -39,4 +73,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_tc_attrs.h b/xlat/rtnl_tc_attrs.h
index f622eed..fc0dedc 100644
--- a/xlat/rtnl_tc_attrs.h
+++ b/xlat/rtnl_tc_attrs.h
@@ -1,55 +1,121 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_tc_attrs.in; do not edit. */
-#if !(defined(TCA_UNSPEC) || (defined(HAVE_DECL_TCA_UNSPEC) && HAVE_DECL_TCA_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TCA_UNSPEC) || (defined(HAVE_DECL_TCA_UNSPEC) && HAVE_DECL_TCA_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_UNSPEC) == (0), "TCA_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_UNSPEC 0
#endif
-#if !(defined(TCA_KIND) || (defined(HAVE_DECL_TCA_KIND) && HAVE_DECL_TCA_KIND))
+#if defined(TCA_KIND) || (defined(HAVE_DECL_TCA_KIND) && HAVE_DECL_TCA_KIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_KIND) == (1), "TCA_KIND != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_KIND 1
#endif
-#if !(defined(TCA_OPTIONS) || (defined(HAVE_DECL_TCA_OPTIONS) && HAVE_DECL_TCA_OPTIONS))
+#if defined(TCA_OPTIONS) || (defined(HAVE_DECL_TCA_OPTIONS) && HAVE_DECL_TCA_OPTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_OPTIONS) == (2), "TCA_OPTIONS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_OPTIONS 2
#endif
-#if !(defined(TCA_STATS) || (defined(HAVE_DECL_TCA_STATS) && HAVE_DECL_TCA_STATS))
+#if defined(TCA_STATS) || (defined(HAVE_DECL_TCA_STATS) && HAVE_DECL_TCA_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS) == (3), "TCA_STATS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS 3
#endif
-#if !(defined(TCA_XSTATS) || (defined(HAVE_DECL_TCA_XSTATS) && HAVE_DECL_TCA_XSTATS))
+#if defined(TCA_XSTATS) || (defined(HAVE_DECL_TCA_XSTATS) && HAVE_DECL_TCA_XSTATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_XSTATS) == (4), "TCA_XSTATS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_XSTATS 4
#endif
-#if !(defined(TCA_RATE) || (defined(HAVE_DECL_TCA_RATE) && HAVE_DECL_TCA_RATE))
+#if defined(TCA_RATE) || (defined(HAVE_DECL_TCA_RATE) && HAVE_DECL_TCA_RATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_RATE) == (5), "TCA_RATE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_RATE 5
#endif
-#if !(defined(TCA_FCNT) || (defined(HAVE_DECL_TCA_FCNT) && HAVE_DECL_TCA_FCNT))
+#if defined(TCA_FCNT) || (defined(HAVE_DECL_TCA_FCNT) && HAVE_DECL_TCA_FCNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_FCNT) == (6), "TCA_FCNT != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_FCNT 6
#endif
-#if !(defined(TCA_STATS2) || (defined(HAVE_DECL_TCA_STATS2) && HAVE_DECL_TCA_STATS2))
+#if defined(TCA_STATS2) || (defined(HAVE_DECL_TCA_STATS2) && HAVE_DECL_TCA_STATS2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS2) == (7), "TCA_STATS2 != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS2 7
#endif
-#if !(defined(TCA_STAB) || (defined(HAVE_DECL_TCA_STAB) && HAVE_DECL_TCA_STAB))
+#if defined(TCA_STAB) || (defined(HAVE_DECL_TCA_STAB) && HAVE_DECL_TCA_STAB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STAB) == (8), "TCA_STAB != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STAB 8
#endif
-#if !(defined(TCA_PAD) || (defined(HAVE_DECL_TCA_PAD) && HAVE_DECL_TCA_PAD))
+#if defined(TCA_PAD) || (defined(HAVE_DECL_TCA_PAD) && HAVE_DECL_TCA_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_PAD) == (9), "TCA_PAD != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_PAD 9
#endif
-#if !(defined(TCA_DUMP_INVISIBLE) || (defined(HAVE_DECL_TCA_DUMP_INVISIBLE) && HAVE_DECL_TCA_DUMP_INVISIBLE))
+#if defined(TCA_DUMP_INVISIBLE) || (defined(HAVE_DECL_TCA_DUMP_INVISIBLE) && HAVE_DECL_TCA_DUMP_INVISIBLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_DUMP_INVISIBLE) == (10), "TCA_DUMP_INVISIBLE != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_DUMP_INVISIBLE 10
#endif
-#if !(defined(TCA_CHAIN) || (defined(HAVE_DECL_TCA_CHAIN) && HAVE_DECL_TCA_CHAIN))
+#if defined(TCA_CHAIN) || (defined(HAVE_DECL_TCA_CHAIN) && HAVE_DECL_TCA_CHAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_CHAIN) == (11), "TCA_CHAIN != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_CHAIN 11
#endif
-#if !(defined(TCA_HW_OFFLOAD) || (defined(HAVE_DECL_TCA_HW_OFFLOAD) && HAVE_DECL_TCA_HW_OFFLOAD))
+#if defined(TCA_HW_OFFLOAD) || (defined(HAVE_DECL_TCA_HW_OFFLOAD) && HAVE_DECL_TCA_HW_OFFLOAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_HW_OFFLOAD) == (12), "TCA_HW_OFFLOAD != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_HW_OFFLOAD 12
#endif
-#if !(defined(TCA_INGRESS_BLOCK) || (defined(HAVE_DECL_TCA_INGRESS_BLOCK) && HAVE_DECL_TCA_INGRESS_BLOCK))
+#if defined(TCA_INGRESS_BLOCK) || (defined(HAVE_DECL_TCA_INGRESS_BLOCK) && HAVE_DECL_TCA_INGRESS_BLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_INGRESS_BLOCK) == (13), "TCA_INGRESS_BLOCK != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_INGRESS_BLOCK 13
#endif
-#if !(defined(TCA_EGRESS_BLOCK) || (defined(HAVE_DECL_TCA_EGRESS_BLOCK) && HAVE_DECL_TCA_EGRESS_BLOCK))
+#if defined(TCA_EGRESS_BLOCK) || (defined(HAVE_DECL_TCA_EGRESS_BLOCK) && HAVE_DECL_TCA_EGRESS_BLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_EGRESS_BLOCK) == (14), "TCA_EGRESS_BLOCK != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_EGRESS_BLOCK 14
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_tc_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_tc_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_tc_attrs[] = {
@@ -71,4 +137,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_tca_stab_attrs.h b/xlat/rtnl_tca_stab_attrs.h
index 8e01f14..ca2f167 100644
--- a/xlat/rtnl_tca_stab_attrs.h
+++ b/xlat/rtnl_tca_stab_attrs.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_tca_stab_attrs.in; do not edit. */
-#if !(defined(TCA_STAB_UNSPEC) || (defined(HAVE_DECL_TCA_STAB_UNSPEC) && HAVE_DECL_TCA_STAB_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TCA_STAB_UNSPEC) || (defined(HAVE_DECL_TCA_STAB_UNSPEC) && HAVE_DECL_TCA_STAB_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STAB_UNSPEC) == (0), "TCA_STAB_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STAB_UNSPEC 0
#endif
-#if !(defined(TCA_STAB_BASE) || (defined(HAVE_DECL_TCA_STAB_BASE) && HAVE_DECL_TCA_STAB_BASE))
+#if defined(TCA_STAB_BASE) || (defined(HAVE_DECL_TCA_STAB_BASE) && HAVE_DECL_TCA_STAB_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STAB_BASE) == (1), "TCA_STAB_BASE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STAB_BASE 1
#endif
-#if !(defined(TCA_STAB_DATA) || (defined(HAVE_DECL_TCA_STAB_DATA) && HAVE_DECL_TCA_STAB_DATA))
+#if defined(TCA_STAB_DATA) || (defined(HAVE_DECL_TCA_STAB_DATA) && HAVE_DECL_TCA_STAB_DATA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STAB_DATA) == (2), "TCA_STAB_DATA != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STAB_DATA 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_tca_stab_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_tca_stab_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_tca_stab_attrs[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rtnl_tca_stats_attrs.h b/xlat/rtnl_tca_stats_attrs.h
index 87a7ee4d..6441ede 100644
--- a/xlat/rtnl_tca_stats_attrs.h
+++ b/xlat/rtnl_tca_stats_attrs.h
@@ -1,31 +1,65 @@
/* Generated by ./xlat/gen.sh from ./xlat/rtnl_tca_stats_attrs.in; do not edit. */
-#if !(defined(TCA_STATS_UNSPEC) || (defined(HAVE_DECL_TCA_STATS_UNSPEC) && HAVE_DECL_TCA_STATS_UNSPEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TCA_STATS_UNSPEC) || (defined(HAVE_DECL_TCA_STATS_UNSPEC) && HAVE_DECL_TCA_STATS_UNSPEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS_UNSPEC) == (0), "TCA_STATS_UNSPEC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS_UNSPEC 0
#endif
-#if !(defined(TCA_STATS_BASIC) || (defined(HAVE_DECL_TCA_STATS_BASIC) && HAVE_DECL_TCA_STATS_BASIC))
+#if defined(TCA_STATS_BASIC) || (defined(HAVE_DECL_TCA_STATS_BASIC) && HAVE_DECL_TCA_STATS_BASIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS_BASIC) == (1), "TCA_STATS_BASIC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS_BASIC 1
#endif
-#if !(defined(TCA_STATS_RATE_EST) || (defined(HAVE_DECL_TCA_STATS_RATE_EST) && HAVE_DECL_TCA_STATS_RATE_EST))
+#if defined(TCA_STATS_RATE_EST) || (defined(HAVE_DECL_TCA_STATS_RATE_EST) && HAVE_DECL_TCA_STATS_RATE_EST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS_RATE_EST) == (2), "TCA_STATS_RATE_EST != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS_RATE_EST 2
#endif
-#if !(defined(TCA_STATS_QUEUE) || (defined(HAVE_DECL_TCA_STATS_QUEUE) && HAVE_DECL_TCA_STATS_QUEUE))
+#if defined(TCA_STATS_QUEUE) || (defined(HAVE_DECL_TCA_STATS_QUEUE) && HAVE_DECL_TCA_STATS_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS_QUEUE) == (3), "TCA_STATS_QUEUE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS_QUEUE 3
#endif
-#if !(defined(TCA_STATS_APP) || (defined(HAVE_DECL_TCA_STATS_APP) && HAVE_DECL_TCA_STATS_APP))
+#if defined(TCA_STATS_APP) || (defined(HAVE_DECL_TCA_STATS_APP) && HAVE_DECL_TCA_STATS_APP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS_APP) == (4), "TCA_STATS_APP != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS_APP 4
#endif
-#if !(defined(TCA_STATS_RATE_EST64) || (defined(HAVE_DECL_TCA_STATS_RATE_EST64) && HAVE_DECL_TCA_STATS_RATE_EST64))
+#if defined(TCA_STATS_RATE_EST64) || (defined(HAVE_DECL_TCA_STATS_RATE_EST64) && HAVE_DECL_TCA_STATS_RATE_EST64)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS_RATE_EST64) == (5), "TCA_STATS_RATE_EST64 != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS_RATE_EST64 5
#endif
-#if !(defined(TCA_STATS_PAD) || (defined(HAVE_DECL_TCA_STATS_PAD) && HAVE_DECL_TCA_STATS_PAD))
+#if defined(TCA_STATS_PAD) || (defined(HAVE_DECL_TCA_STATS_PAD) && HAVE_DECL_TCA_STATS_PAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCA_STATS_PAD) == (6), "TCA_STATS_PAD != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCA_STATS_PAD 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rtnl_tca_stats_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rtnl_tca_stats_attrs in mpers mode
+
+# else
static
const struct xlat rtnl_tca_stats_attrs[] = {
@@ -39,4 +73,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/rwf_flags.h b/xlat/rwf_flags.h
index dee1f8b..9b410e8 100644
--- a/xlat/rwf_flags.h
+++ b/xlat/rwf_flags.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/rwf_flags.in; do not edit. */
-#if !(defined(RWF_HIPRI) || (defined(HAVE_DECL_RWF_HIPRI) && HAVE_DECL_RWF_HIPRI))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RWF_HIPRI) || (defined(HAVE_DECL_RWF_HIPRI) && HAVE_DECL_RWF_HIPRI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RWF_HIPRI) == (0x01), "RWF_HIPRI != 0x01");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RWF_HIPRI 0x01
#endif
-#if !(defined(RWF_DSYNC) || (defined(HAVE_DECL_RWF_DSYNC) && HAVE_DECL_RWF_DSYNC))
+#if defined(RWF_DSYNC) || (defined(HAVE_DECL_RWF_DSYNC) && HAVE_DECL_RWF_DSYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RWF_DSYNC) == (0x02), "RWF_DSYNC != 0x02");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RWF_DSYNC 0x02
#endif
-#if !(defined(RWF_SYNC) || (defined(HAVE_DECL_RWF_SYNC) && HAVE_DECL_RWF_SYNC))
+#if defined(RWF_SYNC) || (defined(HAVE_DECL_RWF_SYNC) && HAVE_DECL_RWF_SYNC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RWF_SYNC) == (0x04), "RWF_SYNC != 0x04");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RWF_SYNC 0x04
#endif
-#if !(defined(RWF_NOWAIT) || (defined(HAVE_DECL_RWF_NOWAIT) && HAVE_DECL_RWF_NOWAIT))
+#if defined(RWF_NOWAIT) || (defined(HAVE_DECL_RWF_NOWAIT) && HAVE_DECL_RWF_NOWAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RWF_NOWAIT) == (0x08), "RWF_NOWAIT != 0x08");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RWF_NOWAIT 0x08
#endif
-#if !(defined(RWF_APPEND) || (defined(HAVE_DECL_RWF_APPEND) && HAVE_DECL_RWF_APPEND))
+#if defined(RWF_APPEND) || (defined(HAVE_DECL_RWF_APPEND) && HAVE_DECL_RWF_APPEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RWF_APPEND) == (0x10), "RWF_APPEND != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RWF_APPEND 0x10
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat rwf_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat rwf_flags in mpers mode
+
+# else
static
const struct xlat rwf_flags[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/s390_guarded_storage_commands.h b/xlat/s390_guarded_storage_commands.h
index d2d0a36..9899819 100644
--- a/xlat/s390_guarded_storage_commands.h
+++ b/xlat/s390_guarded_storage_commands.h
@@ -1,25 +1,51 @@
/* Generated by ./xlat/gen.sh from ./xlat/s390_guarded_storage_commands.in; do not edit. */
-#if !(defined(GS_ENABLE) || (defined(HAVE_DECL_GS_ENABLE) && HAVE_DECL_GS_ENABLE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(GS_ENABLE) || (defined(HAVE_DECL_GS_ENABLE) && HAVE_DECL_GS_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GS_ENABLE) == (0), "GS_ENABLE != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GS_ENABLE 0
#endif
-#if !(defined(GS_DISABLE) || (defined(HAVE_DECL_GS_DISABLE) && HAVE_DECL_GS_DISABLE))
+#if defined(GS_DISABLE) || (defined(HAVE_DECL_GS_DISABLE) && HAVE_DECL_GS_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GS_DISABLE) == (1), "GS_DISABLE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GS_DISABLE 1
#endif
-#if !(defined(GS_SET_BC_CB) || (defined(HAVE_DECL_GS_SET_BC_CB) && HAVE_DECL_GS_SET_BC_CB))
+#if defined(GS_SET_BC_CB) || (defined(HAVE_DECL_GS_SET_BC_CB) && HAVE_DECL_GS_SET_BC_CB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GS_SET_BC_CB) == (2), "GS_SET_BC_CB != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GS_SET_BC_CB 2
#endif
-#if !(defined(GS_CLEAR_BC_CB) || (defined(HAVE_DECL_GS_CLEAR_BC_CB) && HAVE_DECL_GS_CLEAR_BC_CB))
+#if defined(GS_CLEAR_BC_CB) || (defined(HAVE_DECL_GS_CLEAR_BC_CB) && HAVE_DECL_GS_CLEAR_BC_CB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GS_CLEAR_BC_CB) == (3), "GS_CLEAR_BC_CB != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GS_CLEAR_BC_CB 3
#endif
-#if !(defined(GS_BROADCAST) || (defined(HAVE_DECL_GS_BROADCAST) && HAVE_DECL_GS_BROADCAST))
+#if defined(GS_BROADCAST) || (defined(HAVE_DECL_GS_BROADCAST) && HAVE_DECL_GS_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GS_BROADCAST) == (4), "GS_BROADCAST != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define GS_BROADCAST 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat s390_guarded_storage_commands in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat s390_guarded_storage_commands in mpers mode
+
+# else
static
const struct xlat s390_guarded_storage_commands[] = {
@@ -31,4 +57,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/s390_runtime_instr_commands.h b/xlat/s390_runtime_instr_commands.h
index 5d4aefd..a33a97f 100644
--- a/xlat/s390_runtime_instr_commands.h
+++ b/xlat/s390_runtime_instr_commands.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/s390_runtime_instr_commands.in; do not edit. */
-#if !(defined(S390_RUNTIME_INSTR_START) || (defined(HAVE_DECL_S390_RUNTIME_INSTR_START) && HAVE_DECL_S390_RUNTIME_INSTR_START))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(S390_RUNTIME_INSTR_START) || (defined(HAVE_DECL_S390_RUNTIME_INSTR_START) && HAVE_DECL_S390_RUNTIME_INSTR_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((S390_RUNTIME_INSTR_START) == (0x1), "S390_RUNTIME_INSTR_START != 0x1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define S390_RUNTIME_INSTR_START 0x1
#endif
-#if !(defined(S390_RUNTIME_INSTR_STOP) || (defined(HAVE_DECL_S390_RUNTIME_INSTR_STOP) && HAVE_DECL_S390_RUNTIME_INSTR_STOP))
+#if defined(S390_RUNTIME_INSTR_STOP) || (defined(HAVE_DECL_S390_RUNTIME_INSTR_STOP) && HAVE_DECL_S390_RUNTIME_INSTR_STOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((S390_RUNTIME_INSTR_STOP) == (0x2), "S390_RUNTIME_INSTR_STOP != 0x2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define S390_RUNTIME_INSTR_STOP 0x2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat s390_runtime_instr_commands in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat s390_runtime_instr_commands in mpers mode
+
+# else
static
const struct xlat s390_runtime_instr_commands[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/s390_sthyi_function_codes.h b/xlat/s390_sthyi_function_codes.h
index d82b93c..df04b30 100644
--- a/xlat/s390_sthyi_function_codes.h
+++ b/xlat/s390_sthyi_function_codes.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/s390_sthyi_function_codes.in; do not edit. */
-#if !(defined(STHYI_FC_CP_IFL_CAP) || (defined(HAVE_DECL_STHYI_FC_CP_IFL_CAP) && HAVE_DECL_STHYI_FC_CP_IFL_CAP))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(STHYI_FC_CP_IFL_CAP) || (defined(HAVE_DECL_STHYI_FC_CP_IFL_CAP) && HAVE_DECL_STHYI_FC_CP_IFL_CAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STHYI_FC_CP_IFL_CAP) == (0), "STHYI_FC_CP_IFL_CAP != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STHYI_FC_CP_IFL_CAP 0
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat s390_sthyi_function_codes in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat s390_sthyi_function_codes in mpers mode
+
+# else
static
const struct xlat s390_sthyi_function_codes[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sa_handler_values.h b/xlat/sa_handler_values.h
index 3d7da04..796e4b7 100644
--- a/xlat/sa_handler_values.h
+++ b/xlat/sa_handler_values.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sa_handler_values.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sa_handler_values in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sa_handler_values in mpers mode
+
+# else
static
const struct xlat sa_handler_values[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sched_flags.h b/xlat/sched_flags.h
index d087e15..759994f 100644
--- a/xlat/sched_flags.h
+++ b/xlat/sched_flags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/sched_flags.in; do not edit. */
-#if !(defined(SCHED_FLAG_RESET_ON_FORK) || (defined(HAVE_DECL_SCHED_FLAG_RESET_ON_FORK) && HAVE_DECL_SCHED_FLAG_RESET_ON_FORK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SCHED_FLAG_RESET_ON_FORK 1
#endif
-#if !(defined(SCHED_FLAG_RECLAIM) || (defined(HAVE_DECL_SCHED_FLAG_RECLAIM) && HAVE_DECL_SCHED_FLAG_RECLAIM))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SCHED_FLAG_RECLAIM 2
#endif
-#if !(defined(SCHED_FLAG_DL_OVERRUN) || (defined(HAVE_DECL_SCHED_FLAG_DL_OVERRUN) && HAVE_DECL_SCHED_FLAG_DL_OVERRUN))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SCHED_FLAG_DL_OVERRUN 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat sched_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat sched_flags in mpers mode
+
+# else
static
const struct xlat sched_flags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/schedulers.h b/xlat/schedulers.h
index 099db27..2ce324f 100644
--- a/xlat/schedulers.h
+++ b/xlat/schedulers.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/schedulers.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat schedulers in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat schedulers in mpers mode
+
+# else
static
const struct xlat schedulers[] = {
@@ -32,4 +38,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/scmvals.h b/xlat/scmvals.h
index da66af7..ed142cb 100644
--- a/xlat/scmvals.h
+++ b/xlat/scmvals.h
@@ -1,11 +1,27 @@
/* Generated by ./xlat/gen.sh from ./xlat/scmvals.in; do not edit. */
-#if !(defined(SCM_RIGHTS) || (defined(HAVE_DECL_SCM_RIGHTS) && HAVE_DECL_SCM_RIGHTS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SCM_RIGHTS) || (defined(HAVE_DECL_SCM_RIGHTS) && HAVE_DECL_SCM_RIGHTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCM_RIGHTS) == (1), "SCM_RIGHTS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SCM_RIGHTS 1
#endif
-#if !(defined(SCM_CREDENTIALS) || (defined(HAVE_DECL_SCM_CREDENTIALS) && HAVE_DECL_SCM_CREDENTIALS))
+#if defined(SCM_CREDENTIALS) || (defined(HAVE_DECL_SCM_CREDENTIALS) && HAVE_DECL_SCM_CREDENTIALS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCM_CREDENTIALS) == (2), "SCM_CREDENTIALS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SCM_CREDENTIALS 2
#endif
-#if !(defined(SCM_SECURITY) || (defined(HAVE_DECL_SCM_SECURITY) && HAVE_DECL_SCM_SECURITY))
+#if defined(SCM_SECURITY) || (defined(HAVE_DECL_SCM_SECURITY) && HAVE_DECL_SCM_SECURITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCM_SECURITY) == (3), "SCM_SECURITY != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SCM_SECURITY 3
#endif
#ifndef SCM_TIMESTAMP
@@ -63,11 +79,13 @@
# endif
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat scmvals in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat scmvals in mpers mode
+
+# else
static
const struct xlat scmvals[] = {
@@ -155,4 +173,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/scsi_sg_commands.h b/xlat/scsi_sg_commands.h
index 6ccafbc..b274b22 100644
--- a/xlat/scsi_sg_commands.h
+++ b/xlat/scsi_sg_commands.h
@@ -1,76 +1,180 @@
/* Generated by ./xlat/gen.sh from ./xlat/scsi_sg_commands.in; do not edit. */
-#if !(defined(SG_SET_TIMEOUT) || (defined(HAVE_DECL_SG_SET_TIMEOUT) && HAVE_DECL_SG_SET_TIMEOUT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SG_SET_TIMEOUT) || (defined(HAVE_DECL_SG_SET_TIMEOUT) && HAVE_DECL_SG_SET_TIMEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_TIMEOUT) == (0x2201), "SG_SET_TIMEOUT != 0x2201");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_TIMEOUT 0x2201
#endif
-#if !(defined(SG_GET_TIMEOUT) || (defined(HAVE_DECL_SG_GET_TIMEOUT) && HAVE_DECL_SG_GET_TIMEOUT))
+#if defined(SG_GET_TIMEOUT) || (defined(HAVE_DECL_SG_GET_TIMEOUT) && HAVE_DECL_SG_GET_TIMEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_TIMEOUT) == (0x2202), "SG_GET_TIMEOUT != 0x2202");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_TIMEOUT 0x2202
#endif
-#if !(defined(SG_EMULATED_HOST) || (defined(HAVE_DECL_SG_EMULATED_HOST) && HAVE_DECL_SG_EMULATED_HOST))
+#if defined(SG_EMULATED_HOST) || (defined(HAVE_DECL_SG_EMULATED_HOST) && HAVE_DECL_SG_EMULATED_HOST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_EMULATED_HOST) == (0x2203), "SG_EMULATED_HOST != 0x2203");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_EMULATED_HOST 0x2203
#endif
-#if !(defined(SG_SET_TRANSFORM) || (defined(HAVE_DECL_SG_SET_TRANSFORM) && HAVE_DECL_SG_SET_TRANSFORM))
+#if defined(SG_SET_TRANSFORM) || (defined(HAVE_DECL_SG_SET_TRANSFORM) && HAVE_DECL_SG_SET_TRANSFORM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_TRANSFORM) == (0x2204), "SG_SET_TRANSFORM != 0x2204");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_TRANSFORM 0x2204
#endif
-#if !(defined(SG_GET_TRANSFORM) || (defined(HAVE_DECL_SG_GET_TRANSFORM) && HAVE_DECL_SG_GET_TRANSFORM))
+#if defined(SG_GET_TRANSFORM) || (defined(HAVE_DECL_SG_GET_TRANSFORM) && HAVE_DECL_SG_GET_TRANSFORM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_TRANSFORM) == (0x2205), "SG_GET_TRANSFORM != 0x2205");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_TRANSFORM 0x2205
#endif
-#if !(defined(SG_GET_COMMAND_Q) || (defined(HAVE_DECL_SG_GET_COMMAND_Q) && HAVE_DECL_SG_GET_COMMAND_Q))
+#if defined(SG_GET_COMMAND_Q) || (defined(HAVE_DECL_SG_GET_COMMAND_Q) && HAVE_DECL_SG_GET_COMMAND_Q)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_COMMAND_Q) == (0x2270), "SG_GET_COMMAND_Q != 0x2270");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_COMMAND_Q 0x2270
#endif
-#if !(defined(SG_SET_COMMAND_Q) || (defined(HAVE_DECL_SG_SET_COMMAND_Q) && HAVE_DECL_SG_SET_COMMAND_Q))
+#if defined(SG_SET_COMMAND_Q) || (defined(HAVE_DECL_SG_SET_COMMAND_Q) && HAVE_DECL_SG_SET_COMMAND_Q)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_COMMAND_Q) == (0x2271), "SG_SET_COMMAND_Q != 0x2271");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_COMMAND_Q 0x2271
#endif
-#if !(defined(SG_GET_RESERVED_SIZE) || (defined(HAVE_DECL_SG_GET_RESERVED_SIZE) && HAVE_DECL_SG_GET_RESERVED_SIZE))
+#if defined(SG_GET_RESERVED_SIZE) || (defined(HAVE_DECL_SG_GET_RESERVED_SIZE) && HAVE_DECL_SG_GET_RESERVED_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_RESERVED_SIZE) == (0x2272), "SG_GET_RESERVED_SIZE != 0x2272");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_RESERVED_SIZE 0x2272
#endif
-#if !(defined(SG_SET_RESERVED_SIZE) || (defined(HAVE_DECL_SG_SET_RESERVED_SIZE) && HAVE_DECL_SG_SET_RESERVED_SIZE))
+#if defined(SG_SET_RESERVED_SIZE) || (defined(HAVE_DECL_SG_SET_RESERVED_SIZE) && HAVE_DECL_SG_SET_RESERVED_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_RESERVED_SIZE) == (0x2275), "SG_SET_RESERVED_SIZE != 0x2275");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_RESERVED_SIZE 0x2275
#endif
-#if !(defined(SG_GET_SCSI_ID) || (defined(HAVE_DECL_SG_GET_SCSI_ID) && HAVE_DECL_SG_GET_SCSI_ID))
+#if defined(SG_GET_SCSI_ID) || (defined(HAVE_DECL_SG_GET_SCSI_ID) && HAVE_DECL_SG_GET_SCSI_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_SCSI_ID) == (0x2276), "SG_GET_SCSI_ID != 0x2276");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_SCSI_ID 0x2276
#endif
-#if !(defined(SG_SET_FORCE_LOW_DMA) || (defined(HAVE_DECL_SG_SET_FORCE_LOW_DMA) && HAVE_DECL_SG_SET_FORCE_LOW_DMA))
+#if defined(SG_SET_FORCE_LOW_DMA) || (defined(HAVE_DECL_SG_SET_FORCE_LOW_DMA) && HAVE_DECL_SG_SET_FORCE_LOW_DMA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_FORCE_LOW_DMA) == (0x2279), "SG_SET_FORCE_LOW_DMA != 0x2279");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_FORCE_LOW_DMA 0x2279
#endif
-#if !(defined(SG_GET_LOW_DMA) || (defined(HAVE_DECL_SG_GET_LOW_DMA) && HAVE_DECL_SG_GET_LOW_DMA))
+#if defined(SG_GET_LOW_DMA) || (defined(HAVE_DECL_SG_GET_LOW_DMA) && HAVE_DECL_SG_GET_LOW_DMA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_LOW_DMA) == (0x227a), "SG_GET_LOW_DMA != 0x227a");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_LOW_DMA 0x227a
#endif
-#if !(defined(SG_SET_FORCE_PACK_ID) || (defined(HAVE_DECL_SG_SET_FORCE_PACK_ID) && HAVE_DECL_SG_SET_FORCE_PACK_ID))
+#if defined(SG_SET_FORCE_PACK_ID) || (defined(HAVE_DECL_SG_SET_FORCE_PACK_ID) && HAVE_DECL_SG_SET_FORCE_PACK_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_FORCE_PACK_ID) == (0x227b), "SG_SET_FORCE_PACK_ID != 0x227b");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_FORCE_PACK_ID 0x227b
#endif
-#if !(defined(SG_GET_PACK_ID) || (defined(HAVE_DECL_SG_GET_PACK_ID) && HAVE_DECL_SG_GET_PACK_ID))
+#if defined(SG_GET_PACK_ID) || (defined(HAVE_DECL_SG_GET_PACK_ID) && HAVE_DECL_SG_GET_PACK_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_PACK_ID) == (0x227c), "SG_GET_PACK_ID != 0x227c");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_PACK_ID 0x227c
#endif
-#if !(defined(SG_GET_NUM_WAITING) || (defined(HAVE_DECL_SG_GET_NUM_WAITING) && HAVE_DECL_SG_GET_NUM_WAITING))
+#if defined(SG_GET_NUM_WAITING) || (defined(HAVE_DECL_SG_GET_NUM_WAITING) && HAVE_DECL_SG_GET_NUM_WAITING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_NUM_WAITING) == (0x227d), "SG_GET_NUM_WAITING != 0x227d");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_NUM_WAITING 0x227d
#endif
-#if !(defined(SG_SET_DEBUG) || (defined(HAVE_DECL_SG_SET_DEBUG) && HAVE_DECL_SG_SET_DEBUG))
+#if defined(SG_SET_DEBUG) || (defined(HAVE_DECL_SG_SET_DEBUG) && HAVE_DECL_SG_SET_DEBUG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_DEBUG) == (0x227e), "SG_SET_DEBUG != 0x227e");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_DEBUG 0x227e
#endif
-#if !(defined(SG_GET_SG_TABLESIZE) || (defined(HAVE_DECL_SG_GET_SG_TABLESIZE) && HAVE_DECL_SG_GET_SG_TABLESIZE))
+#if defined(SG_GET_SG_TABLESIZE) || (defined(HAVE_DECL_SG_GET_SG_TABLESIZE) && HAVE_DECL_SG_GET_SG_TABLESIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_SG_TABLESIZE) == (0x227F), "SG_GET_SG_TABLESIZE != 0x227F");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_SG_TABLESIZE 0x227F
#endif
-#if !(defined(SG_GET_VERSION_NUM) || (defined(HAVE_DECL_SG_GET_VERSION_NUM) && HAVE_DECL_SG_GET_VERSION_NUM))
+#if defined(SG_GET_VERSION_NUM) || (defined(HAVE_DECL_SG_GET_VERSION_NUM) && HAVE_DECL_SG_GET_VERSION_NUM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_VERSION_NUM) == (0x2282), "SG_GET_VERSION_NUM != 0x2282");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_VERSION_NUM 0x2282
#endif
-#if !(defined(SG_NEXT_CMD_LEN) || (defined(HAVE_DECL_SG_NEXT_CMD_LEN) && HAVE_DECL_SG_NEXT_CMD_LEN))
+#if defined(SG_NEXT_CMD_LEN) || (defined(HAVE_DECL_SG_NEXT_CMD_LEN) && HAVE_DECL_SG_NEXT_CMD_LEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_NEXT_CMD_LEN) == (0x2283), "SG_NEXT_CMD_LEN != 0x2283");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_NEXT_CMD_LEN 0x2283
#endif
-#if !(defined(SG_SCSI_RESET) || (defined(HAVE_DECL_SG_SCSI_RESET) && HAVE_DECL_SG_SCSI_RESET))
+#if defined(SG_SCSI_RESET) || (defined(HAVE_DECL_SG_SCSI_RESET) && HAVE_DECL_SG_SCSI_RESET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SCSI_RESET) == (0x2284), "SG_SCSI_RESET != 0x2284");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SCSI_RESET 0x2284
#endif
-#if !(defined(SG_IO) || (defined(HAVE_DECL_SG_IO) && HAVE_DECL_SG_IO))
+#if defined(SG_IO) || (defined(HAVE_DECL_SG_IO) && HAVE_DECL_SG_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_IO) == (0x2285), "SG_IO != 0x2285");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_IO 0x2285
#endif
-#if !(defined(SG_GET_REQUEST_TABLE) || (defined(HAVE_DECL_SG_GET_REQUEST_TABLE) && HAVE_DECL_SG_GET_REQUEST_TABLE))
+#if defined(SG_GET_REQUEST_TABLE) || (defined(HAVE_DECL_SG_GET_REQUEST_TABLE) && HAVE_DECL_SG_GET_REQUEST_TABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_REQUEST_TABLE) == (0x2286), "SG_GET_REQUEST_TABLE != 0x2286");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_REQUEST_TABLE 0x2286
#endif
-#if !(defined(SG_SET_KEEP_ORPHAN) || (defined(HAVE_DECL_SG_SET_KEEP_ORPHAN) && HAVE_DECL_SG_SET_KEEP_ORPHAN))
+#if defined(SG_SET_KEEP_ORPHAN) || (defined(HAVE_DECL_SG_SET_KEEP_ORPHAN) && HAVE_DECL_SG_SET_KEEP_ORPHAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SET_KEEP_ORPHAN) == (0x2287), "SG_SET_KEEP_ORPHAN != 0x2287");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SET_KEEP_ORPHAN 0x2287
#endif
-#if !(defined(SG_GET_KEEP_ORPHAN) || (defined(HAVE_DECL_SG_GET_KEEP_ORPHAN) && HAVE_DECL_SG_GET_KEEP_ORPHAN))
+#if defined(SG_GET_KEEP_ORPHAN) || (defined(HAVE_DECL_SG_GET_KEEP_ORPHAN) && HAVE_DECL_SG_GET_KEEP_ORPHAN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_KEEP_ORPHAN) == (0x2288), "SG_GET_KEEP_ORPHAN != 0x2288");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_KEEP_ORPHAN 0x2288
#endif
-#if !(defined(SG_GET_ACCESS_COUNT) || (defined(HAVE_DECL_SG_GET_ACCESS_COUNT) && HAVE_DECL_SG_GET_ACCESS_COUNT))
+#if defined(SG_GET_ACCESS_COUNT) || (defined(HAVE_DECL_SG_GET_ACCESS_COUNT) && HAVE_DECL_SG_GET_ACCESS_COUNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_GET_ACCESS_COUNT) == (0x2289), "SG_GET_ACCESS_COUNT != 0x2289");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_GET_ACCESS_COUNT 0x2289
#endif
diff --git a/xlat/secbits.h b/xlat/secbits.h
index d616e1f..5058930 100644
--- a/xlat/secbits.h
+++ b/xlat/secbits.h
@@ -1,34 +1,72 @@
/* Generated by ./xlat/gen.sh from ./xlat/secbits.in; do not edit. */
-#if !(defined(SECBIT_NOROOT) || (defined(HAVE_DECL_SECBIT_NOROOT) && HAVE_DECL_SECBIT_NOROOT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SECBIT_NOROOT) || (defined(HAVE_DECL_SECBIT_NOROOT) && HAVE_DECL_SECBIT_NOROOT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_NOROOT) == ((1 << 0)), "SECBIT_NOROOT != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_NOROOT (1 << 0)
#endif
-#if !(defined(SECBIT_NOROOT_LOCKED) || (defined(HAVE_DECL_SECBIT_NOROOT_LOCKED) && HAVE_DECL_SECBIT_NOROOT_LOCKED))
+#if defined(SECBIT_NOROOT_LOCKED) || (defined(HAVE_DECL_SECBIT_NOROOT_LOCKED) && HAVE_DECL_SECBIT_NOROOT_LOCKED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_NOROOT_LOCKED) == ((1 << 1)), "SECBIT_NOROOT_LOCKED != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_NOROOT_LOCKED (1 << 1)
#endif
-#if !(defined(SECBIT_NO_SETUID_FIXUP) || (defined(HAVE_DECL_SECBIT_NO_SETUID_FIXUP) && HAVE_DECL_SECBIT_NO_SETUID_FIXUP))
+#if defined(SECBIT_NO_SETUID_FIXUP) || (defined(HAVE_DECL_SECBIT_NO_SETUID_FIXUP) && HAVE_DECL_SECBIT_NO_SETUID_FIXUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_NO_SETUID_FIXUP) == ((1 << 2)), "SECBIT_NO_SETUID_FIXUP != (1 << 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_NO_SETUID_FIXUP (1 << 2)
#endif
-#if !(defined(SECBIT_NO_SETUID_FIXUP_LOCKED) || (defined(HAVE_DECL_SECBIT_NO_SETUID_FIXUP_LOCKED) && HAVE_DECL_SECBIT_NO_SETUID_FIXUP_LOCKED))
+#if defined(SECBIT_NO_SETUID_FIXUP_LOCKED) || (defined(HAVE_DECL_SECBIT_NO_SETUID_FIXUP_LOCKED) && HAVE_DECL_SECBIT_NO_SETUID_FIXUP_LOCKED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_NO_SETUID_FIXUP_LOCKED) == ((1 << 3)), "SECBIT_NO_SETUID_FIXUP_LOCKED != (1 << 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_NO_SETUID_FIXUP_LOCKED (1 << 3)
#endif
-#if !(defined(SECBIT_KEEP_CAPS) || (defined(HAVE_DECL_SECBIT_KEEP_CAPS) && HAVE_DECL_SECBIT_KEEP_CAPS))
+#if defined(SECBIT_KEEP_CAPS) || (defined(HAVE_DECL_SECBIT_KEEP_CAPS) && HAVE_DECL_SECBIT_KEEP_CAPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_KEEP_CAPS) == ((1 << 4)), "SECBIT_KEEP_CAPS != (1 << 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_KEEP_CAPS (1 << 4)
#endif
-#if !(defined(SECBIT_KEEP_CAPS_LOCKED) || (defined(HAVE_DECL_SECBIT_KEEP_CAPS_LOCKED) && HAVE_DECL_SECBIT_KEEP_CAPS_LOCKED))
+#if defined(SECBIT_KEEP_CAPS_LOCKED) || (defined(HAVE_DECL_SECBIT_KEEP_CAPS_LOCKED) && HAVE_DECL_SECBIT_KEEP_CAPS_LOCKED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_KEEP_CAPS_LOCKED) == ((1 << 5)), "SECBIT_KEEP_CAPS_LOCKED != (1 << 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_KEEP_CAPS_LOCKED (1 << 5)
#endif
-#if !(defined(SECBIT_NO_CAP_AMBIENT_RAISE) || (defined(HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE) && HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE))
+#if defined(SECBIT_NO_CAP_AMBIENT_RAISE) || (defined(HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE) && HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_NO_CAP_AMBIENT_RAISE) == ((1 << 6)), "SECBIT_NO_CAP_AMBIENT_RAISE != (1 << 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_NO_CAP_AMBIENT_RAISE (1 << 6)
#endif
-#if !(defined(SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED) || (defined(HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED) && HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED))
+#if defined(SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED) || (defined(HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED) && HAVE_DECL_SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED) == ((1 << 7)), "SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED != (1 << 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED (1 << 7)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat secbits in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat secbits in mpers mode
+
+# else
static
const struct xlat secbits[] = {
@@ -43,4 +81,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/seccomp_filter_flags.h b/xlat/seccomp_filter_flags.h
index e9801d7..c670e60 100644
--- a/xlat/seccomp_filter_flags.h
+++ b/xlat/seccomp_filter_flags.h
@@ -1,17 +1,41 @@
/* Generated by ./xlat/gen.sh from ./xlat/seccomp_filter_flags.in; do not edit. */
-#if !(defined(SECCOMP_FILTER_FLAG_TSYNC) || (defined(HAVE_DECL_SECCOMP_FILTER_FLAG_TSYNC) && HAVE_DECL_SECCOMP_FILTER_FLAG_TSYNC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_FILTER_FLAG_TSYNC 1
#endif
-#if !(defined(SECCOMP_FILTER_FLAG_LOG) || (defined(HAVE_DECL_SECCOMP_FILTER_FLAG_LOG) && HAVE_DECL_SECCOMP_FILTER_FLAG_LOG))
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_FILTER_FLAG_LOG 2
#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SECCOMP_FILTER_FLAG_SPEC_ALLOW 4
+#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat seccomp_filter_flags[] = {
XLAT(SECCOMP_FILTER_FLAG_TSYNC),
XLAT(SECCOMP_FILTER_FLAG_LOG),
+ XLAT(SECCOMP_FILTER_FLAG_SPEC_ALLOW),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/seccomp_filter_flags.in b/xlat/seccomp_filter_flags.in
index 439f381..be2dab8 100644
--- a/xlat/seccomp_filter_flags.in
+++ b/xlat/seccomp_filter_flags.in
@@ -1,2 +1,3 @@
SECCOMP_FILTER_FLAG_TSYNC 1
SECCOMP_FILTER_FLAG_LOG 2
+SECCOMP_FILTER_FLAG_SPEC_ALLOW 4
diff --git a/xlat/seccomp_mode.h b/xlat/seccomp_mode.h
index 842dd44..bb5200f 100644
--- a/xlat/seccomp_mode.h
+++ b/xlat/seccomp_mode.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/seccomp_mode.in; do not edit. */
-#if !(defined(SECCOMP_MODE_DISABLED) || (defined(HAVE_DECL_SECCOMP_MODE_DISABLED) && HAVE_DECL_SECCOMP_MODE_DISABLED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SECCOMP_MODE_DISABLED) || (defined(HAVE_DECL_SECCOMP_MODE_DISABLED) && HAVE_DECL_SECCOMP_MODE_DISABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_MODE_DISABLED) == (0), "SECCOMP_MODE_DISABLED != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_MODE_DISABLED 0
#endif
-#if !(defined(SECCOMP_MODE_STRICT) || (defined(HAVE_DECL_SECCOMP_MODE_STRICT) && HAVE_DECL_SECCOMP_MODE_STRICT))
+#if defined(SECCOMP_MODE_STRICT) || (defined(HAVE_DECL_SECCOMP_MODE_STRICT) && HAVE_DECL_SECCOMP_MODE_STRICT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_MODE_STRICT) == (1), "SECCOMP_MODE_STRICT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_MODE_STRICT 1
#endif
-#if !(defined(SECCOMP_MODE_FILTER) || (defined(HAVE_DECL_SECCOMP_MODE_FILTER) && HAVE_DECL_SECCOMP_MODE_FILTER))
+#if defined(SECCOMP_MODE_FILTER) || (defined(HAVE_DECL_SECCOMP_MODE_FILTER) && HAVE_DECL_SECCOMP_MODE_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_MODE_FILTER) == (2), "SECCOMP_MODE_FILTER != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_MODE_FILTER 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat seccomp_mode in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat seccomp_mode in mpers mode
+
+# else
static
const struct xlat seccomp_mode[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/seccomp_ops.h b/xlat/seccomp_ops.h
index b6f0e2a..67e62c2 100644
--- a/xlat/seccomp_ops.h
+++ b/xlat/seccomp_ops.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/seccomp_ops.in; do not edit. */
-#if !(defined(SECCOMP_SET_MODE_STRICT) || (defined(HAVE_DECL_SECCOMP_SET_MODE_STRICT) && HAVE_DECL_SECCOMP_SET_MODE_STRICT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SECCOMP_SET_MODE_STRICT) || (defined(HAVE_DECL_SECCOMP_SET_MODE_STRICT) && HAVE_DECL_SECCOMP_SET_MODE_STRICT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_SET_MODE_STRICT) == (0), "SECCOMP_SET_MODE_STRICT != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_SET_MODE_STRICT 0
#endif
-#if !(defined(SECCOMP_SET_MODE_FILTER) || (defined(HAVE_DECL_SECCOMP_SET_MODE_FILTER) && HAVE_DECL_SECCOMP_SET_MODE_FILTER))
+#if defined(SECCOMP_SET_MODE_FILTER) || (defined(HAVE_DECL_SECCOMP_SET_MODE_FILTER) && HAVE_DECL_SECCOMP_SET_MODE_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_SET_MODE_FILTER) == (1), "SECCOMP_SET_MODE_FILTER != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_SET_MODE_FILTER 1
#endif
-#if !(defined(SECCOMP_GET_ACTION_AVAIL) || (defined(HAVE_DECL_SECCOMP_GET_ACTION_AVAIL) && HAVE_DECL_SECCOMP_GET_ACTION_AVAIL))
+#if defined(SECCOMP_GET_ACTION_AVAIL) || (defined(HAVE_DECL_SECCOMP_GET_ACTION_AVAIL) && HAVE_DECL_SECCOMP_GET_ACTION_AVAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_GET_ACTION_AVAIL) == (2), "SECCOMP_GET_ACTION_AVAIL != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_GET_ACTION_AVAIL 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat seccomp_ops in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat seccomp_ops in mpers mode
+
+# else
static
const struct xlat seccomp_ops[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/seccomp_ret_action.h b/xlat/seccomp_ret_action.h
index 7937641..21a14cd 100644
--- a/xlat/seccomp_ret_action.h
+++ b/xlat/seccomp_ret_action.h
@@ -1,27 +1,61 @@
/* Generated by ./xlat/gen.sh from ./xlat/seccomp_ret_action.in; do not edit. */
-#if !(defined(SECCOMP_RET_KILL_PROCESS) || (defined(HAVE_DECL_SECCOMP_RET_KILL_PROCESS) && HAVE_DECL_SECCOMP_RET_KILL_PROCESS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SECCOMP_RET_KILL_PROCESS) || (defined(HAVE_DECL_SECCOMP_RET_KILL_PROCESS) && HAVE_DECL_SECCOMP_RET_KILL_PROCESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_RET_KILL_PROCESS) == (0x80000000U), "SECCOMP_RET_KILL_PROCESS != 0x80000000U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_RET_KILL_PROCESS 0x80000000U
#endif
-#if !(defined(SECCOMP_RET_KILL_THREAD) || (defined(HAVE_DECL_SECCOMP_RET_KILL_THREAD) && HAVE_DECL_SECCOMP_RET_KILL_THREAD))
+#if defined(SECCOMP_RET_KILL_THREAD) || (defined(HAVE_DECL_SECCOMP_RET_KILL_THREAD) && HAVE_DECL_SECCOMP_RET_KILL_THREAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_RET_KILL_THREAD) == (0), "SECCOMP_RET_KILL_THREAD != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_RET_KILL_THREAD 0
#endif
-#if !(defined(SECCOMP_RET_TRAP) || (defined(HAVE_DECL_SECCOMP_RET_TRAP) && HAVE_DECL_SECCOMP_RET_TRAP))
+#if defined(SECCOMP_RET_TRAP) || (defined(HAVE_DECL_SECCOMP_RET_TRAP) && HAVE_DECL_SECCOMP_RET_TRAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_RET_TRAP) == (0x00030000U), "SECCOMP_RET_TRAP != 0x00030000U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_RET_TRAP 0x00030000U
#endif
-#if !(defined(SECCOMP_RET_ERRNO) || (defined(HAVE_DECL_SECCOMP_RET_ERRNO) && HAVE_DECL_SECCOMP_RET_ERRNO))
+#if defined(SECCOMP_RET_ERRNO) || (defined(HAVE_DECL_SECCOMP_RET_ERRNO) && HAVE_DECL_SECCOMP_RET_ERRNO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_RET_ERRNO) == (0x00050000U), "SECCOMP_RET_ERRNO != 0x00050000U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_RET_ERRNO 0x00050000U
#endif
-#if !(defined(SECCOMP_RET_TRACE) || (defined(HAVE_DECL_SECCOMP_RET_TRACE) && HAVE_DECL_SECCOMP_RET_TRACE))
+#if defined(SECCOMP_RET_TRACE) || (defined(HAVE_DECL_SECCOMP_RET_TRACE) && HAVE_DECL_SECCOMP_RET_TRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_RET_TRACE) == (0x7ff00000U), "SECCOMP_RET_TRACE != 0x7ff00000U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_RET_TRACE 0x7ff00000U
#endif
-#if !(defined(SECCOMP_RET_LOG) || (defined(HAVE_DECL_SECCOMP_RET_LOG) && HAVE_DECL_SECCOMP_RET_LOG))
+#if defined(SECCOMP_RET_LOG) || (defined(HAVE_DECL_SECCOMP_RET_LOG) && HAVE_DECL_SECCOMP_RET_LOG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_RET_LOG) == (0x7ffc0000U), "SECCOMP_RET_LOG != 0x7ffc0000U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_RET_LOG 0x7ffc0000U
#endif
-#if !(defined(SECCOMP_RET_ALLOW) || (defined(HAVE_DECL_SECCOMP_RET_ALLOW) && HAVE_DECL_SECCOMP_RET_ALLOW))
+#if defined(SECCOMP_RET_ALLOW) || (defined(HAVE_DECL_SECCOMP_RET_ALLOW) && HAVE_DECL_SECCOMP_RET_ALLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SECCOMP_RET_ALLOW) == (0x7fff0000U), "SECCOMP_RET_ALLOW != 0x7fff0000U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SECCOMP_RET_ALLOW 0x7fff0000U
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat seccomp_ret_action[] = {
XLAT(SECCOMP_RET_KILL_PROCESS),
@@ -34,4 +68,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/semctl_flags.h b/xlat/semctl_flags.h
index b8e0c62..ffb88de 100644
--- a/xlat/semctl_flags.h
+++ b/xlat/semctl_flags.h
@@ -1,55 +1,135 @@
/* Generated by ./xlat/gen.sh from ./xlat/semctl_flags.in; do not edit. */
-#if !(defined(SEM_STAT) || (defined(HAVE_DECL_SEM_STAT) && HAVE_DECL_SEM_STAT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPC_RMID) || (defined(HAVE_DECL_IPC_RMID) && HAVE_DECL_IPC_RMID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_RMID) == (0), "IPC_RMID != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_RMID 0
+#endif
+#if defined(IPC_SET) || (defined(HAVE_DECL_IPC_SET) && HAVE_DECL_IPC_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_SET) == (1), "IPC_SET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_SET 1
+#endif
+#if defined(IPC_STAT) || (defined(HAVE_DECL_IPC_STAT) && HAVE_DECL_IPC_STAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_STAT) == (2), "IPC_STAT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_STAT 2
+#endif
+#if defined(IPC_INFO) || (defined(HAVE_DECL_IPC_INFO) && HAVE_DECL_IPC_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_INFO) == (3), "IPC_INFO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_INFO 3
+#endif
+#if defined(GETPID) || (defined(HAVE_DECL_GETPID) && HAVE_DECL_GETPID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GETPID) == (11), "GETPID != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define GETPID 11
+#endif
+#if defined(GETVAL) || (defined(HAVE_DECL_GETVAL) && HAVE_DECL_GETVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GETVAL) == (12), "GETVAL != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define GETVAL 12
+#endif
+#if defined(GETALL) || (defined(HAVE_DECL_GETALL) && HAVE_DECL_GETALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GETALL) == (13), "GETALL != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define GETALL 13
+#endif
+#if defined(GETNCNT) || (defined(HAVE_DECL_GETNCNT) && HAVE_DECL_GETNCNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GETNCNT) == (14), "GETNCNT != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define GETNCNT 14
+#endif
+#if defined(GETZCNT) || (defined(HAVE_DECL_GETZCNT) && HAVE_DECL_GETZCNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((GETZCNT) == (15), "GETZCNT != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define GETZCNT 15
+#endif
+#if defined(SETVAL) || (defined(HAVE_DECL_SETVAL) && HAVE_DECL_SETVAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SETVAL) == (16), "SETVAL != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SETVAL 16
+#endif
+#if defined(SETALL) || (defined(HAVE_DECL_SETALL) && HAVE_DECL_SETALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SETALL) == (17), "SETALL != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SETALL 17
+#endif
+#if defined(SEM_STAT) || (defined(HAVE_DECL_SEM_STAT) && HAVE_DECL_SEM_STAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEM_STAT) == (18), "SEM_STAT != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEM_STAT 18
#endif
-#if !(defined(SEM_INFO) || (defined(HAVE_DECL_SEM_INFO) && HAVE_DECL_SEM_INFO))
+#if defined(SEM_INFO) || (defined(HAVE_DECL_SEM_INFO) && HAVE_DECL_SEM_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEM_INFO) == (19), "SEM_INFO != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEM_INFO 19
#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat semctl_flags in mpers mode
-
+#if defined(SEM_STAT_ANY) || (defined(HAVE_DECL_SEM_STAT_ANY) && HAVE_DECL_SEM_STAT_ANY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEM_STAT_ANY) == (20), "SEM_STAT_ANY != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
+# define SEM_STAT_ANY 20
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat semctl_flags in mpers mode
+
+# else
static
const struct xlat semctl_flags[] = {
-#if defined(IPC_RMID) || (defined(HAVE_DECL_IPC_RMID) && HAVE_DECL_IPC_RMID)
- XLAT(IPC_RMID),
-#endif
-#if defined(IPC_SET) || (defined(HAVE_DECL_IPC_SET) && HAVE_DECL_IPC_SET)
- XLAT(IPC_SET),
-#endif
-#if defined(IPC_STAT) || (defined(HAVE_DECL_IPC_STAT) && HAVE_DECL_IPC_STAT)
- XLAT(IPC_STAT),
-#endif
-#if defined(IPC_INFO) || (defined(HAVE_DECL_IPC_INFO) && HAVE_DECL_IPC_INFO)
- XLAT(IPC_INFO),
-#endif
+
+ XLAT(IPC_RMID),
+ XLAT(IPC_SET),
+ XLAT(IPC_STAT),
+ XLAT(IPC_INFO),
+ XLAT(GETPID),
+ XLAT(GETVAL),
+ XLAT(GETALL),
+ XLAT(GETNCNT),
+ XLAT(GETZCNT),
+ XLAT(SETVAL),
+ XLAT(SETALL),
XLAT(SEM_STAT),
XLAT(SEM_INFO),
-#if defined(GETPID) || (defined(HAVE_DECL_GETPID) && HAVE_DECL_GETPID)
- XLAT(GETPID),
-#endif
-#if defined(GETVAL) || (defined(HAVE_DECL_GETVAL) && HAVE_DECL_GETVAL)
- XLAT(GETVAL),
-#endif
-#if defined(GETALL) || (defined(HAVE_DECL_GETALL) && HAVE_DECL_GETALL)
- XLAT(GETALL),
-#endif
-#if defined(GETNCNT) || (defined(HAVE_DECL_GETNCNT) && HAVE_DECL_GETNCNT)
- XLAT(GETNCNT),
-#endif
-#if defined(GETZCNT) || (defined(HAVE_DECL_GETZCNT) && HAVE_DECL_GETZCNT)
- XLAT(GETZCNT),
-#endif
-#if defined(SETVAL) || (defined(HAVE_DECL_SETVAL) && HAVE_DECL_SETVAL)
- XLAT(SETVAL),
-#endif
-#if defined(SETALL) || (defined(HAVE_DECL_SETALL) && HAVE_DECL_SETALL)
- XLAT(SETALL),
-#endif
+ XLAT(SEM_STAT_ANY),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/semctl_flags.in b/xlat/semctl_flags.in
index 5638adb..9e8b84b 100644
--- a/xlat/semctl_flags.in
+++ b/xlat/semctl_flags.in
@@ -1,13 +1,15 @@
-IPC_RMID
-IPC_SET
-IPC_STAT
-IPC_INFO
+/* sort -k2,2g */
+IPC_RMID 0
+IPC_SET 1
+IPC_STAT 2
+IPC_INFO 3
+GETPID 11
+GETVAL 12
+GETALL 13
+GETNCNT 14
+GETZCNT 15
+SETVAL 16
+SETALL 17
SEM_STAT 18
SEM_INFO 19
-GETPID
-GETVAL
-GETALL
-GETNCNT
-GETZCNT
-SETVAL
-SETALL
+SEM_STAT_ANY 20
diff --git a/xlat/semop_flags.h b/xlat/semop_flags.h
index b5ce4a0..fcd9e11 100644
--- a/xlat/semop_flags.h
+++ b/xlat/semop_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/semop_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat semop_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat semop_flags in mpers mode
+
+# else
static
const struct xlat semop_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/setns_types.h b/xlat/setns_types.h
index a91171d..2b5368f 100644
--- a/xlat/setns_types.h
+++ b/xlat/setns_types.h
@@ -1,27 +1,61 @@
/* Generated by ./xlat/gen.sh from ./xlat/setns_types.in; do not edit. */
-#if !(defined(CLONE_NEWNS) || (defined(HAVE_DECL_CLONE_NEWNS) && HAVE_DECL_CLONE_NEWNS))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWNS 0x00020000
#endif
-#if !(defined(CLONE_NEWCGROUP) || (defined(HAVE_DECL_CLONE_NEWCGROUP) && HAVE_DECL_CLONE_NEWCGROUP))
+#if defined(CLONE_NEWCGROUP) || (defined(HAVE_DECL_CLONE_NEWCGROUP) && HAVE_DECL_CLONE_NEWCGROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWCGROUP) == (0x02000000), "CLONE_NEWCGROUP != 0x02000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWCGROUP 0x02000000
#endif
-#if !(defined(CLONE_NEWUTS) || (defined(HAVE_DECL_CLONE_NEWUTS) && HAVE_DECL_CLONE_NEWUTS))
+#if defined(CLONE_NEWUTS) || (defined(HAVE_DECL_CLONE_NEWUTS) && HAVE_DECL_CLONE_NEWUTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWUTS) == (0x04000000), "CLONE_NEWUTS != 0x04000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWUTS 0x04000000
#endif
-#if !(defined(CLONE_NEWIPC) || (defined(HAVE_DECL_CLONE_NEWIPC) && HAVE_DECL_CLONE_NEWIPC))
+#if defined(CLONE_NEWIPC) || (defined(HAVE_DECL_CLONE_NEWIPC) && HAVE_DECL_CLONE_NEWIPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWIPC) == (0x08000000), "CLONE_NEWIPC != 0x08000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWIPC 0x08000000
#endif
-#if !(defined(CLONE_NEWUSER) || (defined(HAVE_DECL_CLONE_NEWUSER) && HAVE_DECL_CLONE_NEWUSER))
+#if defined(CLONE_NEWUSER) || (defined(HAVE_DECL_CLONE_NEWUSER) && HAVE_DECL_CLONE_NEWUSER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWUSER) == (0x10000000), "CLONE_NEWUSER != 0x10000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWUSER 0x10000000
#endif
-#if !(defined(CLONE_NEWPID) || (defined(HAVE_DECL_CLONE_NEWPID) && HAVE_DECL_CLONE_NEWPID))
+#if defined(CLONE_NEWPID) || (defined(HAVE_DECL_CLONE_NEWPID) && HAVE_DECL_CLONE_NEWPID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWPID) == (0x20000000), "CLONE_NEWPID != 0x20000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWPID 0x20000000
#endif
-#if !(defined(CLONE_NEWNET) || (defined(HAVE_DECL_CLONE_NEWNET) && HAVE_DECL_CLONE_NEWNET))
+#if defined(CLONE_NEWNET) || (defined(HAVE_DECL_CLONE_NEWNET) && HAVE_DECL_CLONE_NEWNET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLONE_NEWNET) == (0x40000000), "CLONE_NEWNET != 0x40000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLONE_NEWNET 0x40000000
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat setns_types[] = {
XLAT(0),
@@ -35,4 +69,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/setsock_ip_options.h b/xlat/setsock_ip_options.h
new file mode 100644
index 0000000..c5f8fc5
--- /dev/null
+++ b/xlat/setsock_ip_options.h
@@ -0,0 +1,97 @@
+/* Generated by ./xlat/gen.sh from ./xlat/setsock_ip_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 setsock_ip_options in mpers mode
+
+# else
+
+static
+const struct xlat setsock_ip_options[] = {
+/*
+* Options specific to setsockopt(SOL_IP).
+* Common {g,s}etsockopt(SOL_IP) options
+* should be in sock_ip_options.in instead.
+*/
+
+#if defined(ARPT_SO_SET_REPLACE) || (defined(HAVE_DECL_ARPT_SO_SET_REPLACE) && HAVE_DECL_ARPT_SO_SET_REPLACE)
+ XLAT(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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#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),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/setsock_ip_options.in b/xlat/setsock_ip_options.in
new file mode 100644
index 0000000..c811439
--- /dev/null
+++ b/xlat/setsock_ip_options.in
@@ -0,0 +1,31 @@
+/*
+ * Options specific to setsockopt(SOL_IP).
+ * Common {g,s}etsockopt(SOL_IP) options
+ * should be in sock_ip_options.in instead.
+ */
+
+ARPT_SO_SET_REPLACE
+ARPT_SO_SET_ADD_COUNTERS
+
+EBT_SO_SET_ENTRIES
+EBT_SO_SET_COUNTERS
+
+IP_VS_SO_SET_NONE
+IP_VS_SO_SET_INSERT
+IP_VS_SO_SET_ADD
+IP_VS_SO_SET_EDIT
+IP_VS_SO_SET_DEL
+IP_VS_SO_SET_FLUSH
+IP_VS_SO_SET_LIST
+IP_VS_SO_SET_ADDDEST
+IP_VS_SO_SET_DELDEST
+IP_VS_SO_SET_EDITDEST
+IP_VS_SO_SET_TIMEOUT
+IP_VS_SO_SET_STARTDAEMON
+IP_VS_SO_SET_STOPDAEMON
+IP_VS_SO_SET_RESTORE
+IP_VS_SO_SET_SAVE
+IP_VS_SO_SET_ZERO
+
+IPT_SO_SET_REPLACE
+IPT_SO_SET_ADD_COUNTERS
diff --git a/xlat/setsock_ipv6_options.h b/xlat/setsock_ipv6_options.h
new file mode 100644
index 0000000..8a473e6
--- /dev/null
+++ b/xlat/setsock_ipv6_options.h
@@ -0,0 +1,34 @@
+/* Generated by ./xlat/gen.sh from ./xlat/setsock_ipv6_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 setsock_ipv6_options in mpers mode
+
+# else
+
+static
+const struct xlat setsock_ipv6_options[] = {
+/*
+* Options specific to setsockopt(SOL_IPV6).
+* Common {g,s}etsockopt(SOL_IPV6) options
+* should be in sock_ipv6_options.in instead.
+*/
+
+#if defined(IP6T_SO_SET_REPLACE) || (defined(HAVE_DECL_IP6T_SO_SET_REPLACE) && HAVE_DECL_IP6T_SO_SET_REPLACE)
+ XLAT(IP6T_SO_SET_REPLACE),
+#endif
+#if defined(IP6T_SO_SET_ADD_COUNTERS) || (defined(HAVE_DECL_IP6T_SO_SET_ADD_COUNTERS) && HAVE_DECL_IP6T_SO_SET_ADD_COUNTERS)
+ XLAT(IP6T_SO_SET_ADD_COUNTERS),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/setsock_ipv6_options.in b/xlat/setsock_ipv6_options.in
new file mode 100644
index 0000000..087a176
--- /dev/null
+++ b/xlat/setsock_ipv6_options.in
@@ -0,0 +1,8 @@
+/*
+ * Options specific to setsockopt(SOL_IPV6).
+ * Common {g,s}etsockopt(SOL_IPV6) options
+ * should be in sock_ipv6_options.in instead.
+ */
+
+IP6T_SO_SET_REPLACE
+IP6T_SO_SET_ADD_COUNTERS
diff --git a/xlat/setsock_options.h b/xlat/setsock_options.h
new file mode 100644
index 0000000..2ee500c
--- /dev/null
+++ b/xlat/setsock_options.h
@@ -0,0 +1,44 @@
+/* Generated by ./xlat/gen.sh from ./xlat/setsock_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined __hppa__
+#if defined(SO_ATTACH_FILTER) || (defined(HAVE_DECL_SO_ATTACH_FILTER) && HAVE_DECL_SO_ATTACH_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_FILTER) == (16410), "SO_ATTACH_FILTER != 16410");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_FILTER 16410
+#endif
+#else
+#if defined(SO_ATTACH_FILTER) || (defined(HAVE_DECL_SO_ATTACH_FILTER) && HAVE_DECL_SO_ATTACH_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_FILTER) == (26), "SO_ATTACH_FILTER != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_FILTER 26
+#endif
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat setsock_options in mpers mode
+
+# else
+
+static
+const struct xlat setsock_options[] = {
+#if defined __hppa__
+ XLAT(SO_ATTACH_FILTER),
+#else
+ XLAT(SO_ATTACH_FILTER),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/setsock_options.in b/xlat/setsock_options.in
new file mode 100644
index 0000000..38f2920
--- /dev/null
+++ b/xlat/setsock_options.in
@@ -0,0 +1,5 @@
+#if defined __hppa__
+SO_ATTACH_FILTER 16410
+#else
+SO_ATTACH_FILTER 26
+#endif
diff --git a/xlat/setsockipoptions.h b/xlat/setsockipoptions.h
deleted file mode 100644
index 34ae307..0000000
--- a/xlat/setsockipoptions.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/setsockipoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat setsockipoptions in mpers mode
-
-#else
-
-static
-const struct xlat setsockipoptions[] = {
-/*
-* Options specific to setsockopt(SOL_IP).
-* Common {g,s}etsockopt(SOL_IP) options
-* should be in sockipoptions.in instead.
-*/
-
-#if defined(ARPT_SO_SET_REPLACE) || (defined(HAVE_DECL_ARPT_SO_SET_REPLACE) && HAVE_DECL_ARPT_SO_SET_REPLACE)
- XLAT(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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#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),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/setsockipv6options.h b/xlat/setsockipv6options.h
deleted file mode 100644
index 4fea6bc..0000000
--- a/xlat/setsockipv6options.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/setsockipv6options.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat setsockipv6options in mpers mode
-
-#else
-
-static
-const struct xlat setsockipv6options[] = {
-/*
-* Options specific to setsockopt(SOL_IPV6).
-* Common {g,s}etsockopt(SOL_IPV6) options
-* should be in sockipv6options.in instead.
-*/
-
-#if defined(IP6T_SO_SET_REPLACE) || (defined(HAVE_DECL_IP6T_SO_SET_REPLACE) && HAVE_DECL_IP6T_SO_SET_REPLACE)
- XLAT(IP6T_SO_SET_REPLACE),
-#endif
-#if defined(IP6T_SO_SET_ADD_COUNTERS) || (defined(HAVE_DECL_IP6T_SO_SET_ADD_COUNTERS) && HAVE_DECL_IP6T_SO_SET_ADD_COUNTERS)
- XLAT(IP6T_SO_SET_ADD_COUNTERS),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/sfd_flags.h b/xlat/sfd_flags.h
index 23d08b8..84e29de 100644
--- a/xlat/sfd_flags.h
+++ b/xlat/sfd_flags.h
@@ -1,18 +1,32 @@
/* Generated by ./xlat/gen.sh from ./xlat/sfd_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
#if defined SFD_CLOEXEC || defined O_CLOEXEC
-#if !(defined(SFD_CLOEXEC) || (defined(HAVE_DECL_SFD_CLOEXEC) && HAVE_DECL_SFD_CLOEXEC))
+#if defined(SFD_CLOEXEC) || (defined(HAVE_DECL_SFD_CLOEXEC) && HAVE_DECL_SFD_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SFD_CLOEXEC) == (O_CLOEXEC), "SFD_CLOEXEC != O_CLOEXEC");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SFD_CLOEXEC O_CLOEXEC
#endif
#endif
-#if !(defined(SFD_NONBLOCK) || (defined(HAVE_DECL_SFD_NONBLOCK) && HAVE_DECL_SFD_NONBLOCK))
+#if defined(SFD_NONBLOCK) || (defined(HAVE_DECL_SFD_NONBLOCK) && HAVE_DECL_SFD_NONBLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SFD_NONBLOCK) == (O_NONBLOCK), "SFD_NONBLOCK != O_NONBLOCK");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SFD_NONBLOCK O_NONBLOCK
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat sfd_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat sfd_flags in mpers mode
+
+# else
static
const struct xlat sfd_flags[] = {
@@ -23,4 +37,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sg_io_dxfer_direction.h b/xlat/sg_io_dxfer_direction.h
index 4923016..93dda68 100644
--- a/xlat/sg_io_dxfer_direction.h
+++ b/xlat/sg_io_dxfer_direction.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/sg_io_dxfer_direction.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sg_io_dxfer_direction[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sg_io_dxfer_direction[] = {
#if defined(SG_DXFER_NONE) || (defined(HAVE_DECL_SG_DXFER_NONE) && HAVE_DECL_SG_DXFER_NONE)
XLAT(SG_DXFER_NONE),
@@ -25,4 +31,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sg_io_flags.h b/xlat/sg_io_flags.h
index 5c25ad7..9b938e9 100644
--- a/xlat/sg_io_flags.h
+++ b/xlat/sg_io_flags.h
@@ -1,32 +1,62 @@
/* Generated by ./xlat/gen.sh from ./xlat/sg_io_flags.in; do not edit. */
-#if !(defined(SG_FLAG_DIRECT_IO) || (defined(HAVE_DECL_SG_FLAG_DIRECT_IO) && HAVE_DECL_SG_FLAG_DIRECT_IO))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SG_FLAG_DIRECT_IO) || (defined(HAVE_DECL_SG_FLAG_DIRECT_IO) && HAVE_DECL_SG_FLAG_DIRECT_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_FLAG_DIRECT_IO) == (1), "SG_FLAG_DIRECT_IO != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_FLAG_DIRECT_IO 1
#endif
-#if !(defined(SG_FLAG_UNUSED_LUN_INHIBIT) || (defined(HAVE_DECL_SG_FLAG_UNUSED_LUN_INHIBIT) && HAVE_DECL_SG_FLAG_UNUSED_LUN_INHIBIT))
+#if defined(SG_FLAG_UNUSED_LUN_INHIBIT) || (defined(HAVE_DECL_SG_FLAG_UNUSED_LUN_INHIBIT) && HAVE_DECL_SG_FLAG_UNUSED_LUN_INHIBIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_FLAG_UNUSED_LUN_INHIBIT) == (2), "SG_FLAG_UNUSED_LUN_INHIBIT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_FLAG_UNUSED_LUN_INHIBIT 2
#endif
-#if !(defined(SG_FLAG_MMAP_IO) || (defined(HAVE_DECL_SG_FLAG_MMAP_IO) && HAVE_DECL_SG_FLAG_MMAP_IO))
+#if defined(SG_FLAG_MMAP_IO) || (defined(HAVE_DECL_SG_FLAG_MMAP_IO) && HAVE_DECL_SG_FLAG_MMAP_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_FLAG_MMAP_IO) == (4), "SG_FLAG_MMAP_IO != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_FLAG_MMAP_IO 4
#endif
-#if !(defined(SG_FLAG_NO_DXFER) || (defined(HAVE_DECL_SG_FLAG_NO_DXFER) && HAVE_DECL_SG_FLAG_NO_DXFER))
+#if defined(SG_FLAG_NO_DXFER) || (defined(HAVE_DECL_SG_FLAG_NO_DXFER) && HAVE_DECL_SG_FLAG_NO_DXFER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_FLAG_NO_DXFER) == (0x10000), "SG_FLAG_NO_DXFER != 0x10000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_FLAG_NO_DXFER 0x10000
#endif
-#if !(defined(SG_FLAG_Q_AT_TAIL) || (defined(HAVE_DECL_SG_FLAG_Q_AT_TAIL) && HAVE_DECL_SG_FLAG_Q_AT_TAIL))
+#if defined(SG_FLAG_Q_AT_TAIL) || (defined(HAVE_DECL_SG_FLAG_Q_AT_TAIL) && HAVE_DECL_SG_FLAG_Q_AT_TAIL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_FLAG_Q_AT_TAIL) == (0x10), "SG_FLAG_Q_AT_TAIL != 0x10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_FLAG_Q_AT_TAIL 0x10
#endif
-#if !(defined(SG_FLAG_Q_AT_HEAD) || (defined(HAVE_DECL_SG_FLAG_Q_AT_HEAD) && HAVE_DECL_SG_FLAG_Q_AT_HEAD))
+#if defined(SG_FLAG_Q_AT_HEAD) || (defined(HAVE_DECL_SG_FLAG_Q_AT_HEAD) && HAVE_DECL_SG_FLAG_Q_AT_HEAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_FLAG_Q_AT_HEAD) == (0x20), "SG_FLAG_Q_AT_HEAD != 0x20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_FLAG_Q_AT_HEAD 0x20
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sg_io_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sg_io_flags[] = {
XLAT(SG_FLAG_DIRECT_IO),
XLAT(SG_FLAG_UNUSED_LUN_INHIBIT),
@@ -37,4 +67,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sg_io_info.h b/xlat/sg_io_info.h
index 49929be..af88616 100644
--- a/xlat/sg_io_info.h
+++ b/xlat/sg_io_info.h
@@ -1,15 +1,33 @@
/* Generated by ./xlat/gen.sh from ./xlat/sg_io_info.in; do not edit. */
-#if !(defined(SG_INFO_CHECK) || (defined(HAVE_DECL_SG_INFO_CHECK) && HAVE_DECL_SG_INFO_CHECK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SG_INFO_CHECK) || (defined(HAVE_DECL_SG_INFO_CHECK) && HAVE_DECL_SG_INFO_CHECK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_INFO_CHECK) == (1), "SG_INFO_CHECK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_INFO_CHECK 1
#endif
-#if !(defined(SG_INFO_DIRECT_IO) || (defined(HAVE_DECL_SG_INFO_DIRECT_IO) && HAVE_DECL_SG_INFO_DIRECT_IO))
+#if defined(SG_INFO_DIRECT_IO) || (defined(HAVE_DECL_SG_INFO_DIRECT_IO) && HAVE_DECL_SG_INFO_DIRECT_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_INFO_DIRECT_IO) == (2), "SG_INFO_DIRECT_IO != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_INFO_DIRECT_IO 2
#endif
-#if !(defined(SG_INFO_MIXED_IO) || (defined(HAVE_DECL_SG_INFO_MIXED_IO) && HAVE_DECL_SG_INFO_MIXED_IO))
+#if defined(SG_INFO_MIXED_IO) || (defined(HAVE_DECL_SG_INFO_MIXED_IO) && HAVE_DECL_SG_INFO_MIXED_IO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_INFO_MIXED_IO) == (4), "SG_INFO_MIXED_IO != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_INFO_MIXED_IO 4
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat sg_io_info[] = {
XLAT(SG_INFO_CHECK),
@@ -18,4 +36,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sg_scsi_reset.h b/xlat/sg_scsi_reset.h
index b33ed1d..e261fd5 100644
--- a/xlat/sg_scsi_reset.h
+++ b/xlat/sg_scsi_reset.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/sg_scsi_reset.in; do not edit. */
-#if !(defined(SG_SCSI_RESET_NOTHING) || (defined(HAVE_DECL_SG_SCSI_RESET_NOTHING) && HAVE_DECL_SG_SCSI_RESET_NOTHING))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SG_SCSI_RESET_NOTHING) || (defined(HAVE_DECL_SG_SCSI_RESET_NOTHING) && HAVE_DECL_SG_SCSI_RESET_NOTHING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SCSI_RESET_NOTHING) == (0), "SG_SCSI_RESET_NOTHING != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SCSI_RESET_NOTHING 0
#endif
-#if !(defined(SG_SCSI_RESET_DEVICE) || (defined(HAVE_DECL_SG_SCSI_RESET_DEVICE) && HAVE_DECL_SG_SCSI_RESET_DEVICE))
+#if defined(SG_SCSI_RESET_DEVICE) || (defined(HAVE_DECL_SG_SCSI_RESET_DEVICE) && HAVE_DECL_SG_SCSI_RESET_DEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SCSI_RESET_DEVICE) == (1), "SG_SCSI_RESET_DEVICE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SCSI_RESET_DEVICE 1
#endif
-#if !(defined(SG_SCSI_RESET_BUS) || (defined(HAVE_DECL_SG_SCSI_RESET_BUS) && HAVE_DECL_SG_SCSI_RESET_BUS))
+#if defined(SG_SCSI_RESET_BUS) || (defined(HAVE_DECL_SG_SCSI_RESET_BUS) && HAVE_DECL_SG_SCSI_RESET_BUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SCSI_RESET_BUS) == (2), "SG_SCSI_RESET_BUS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SCSI_RESET_BUS 2
#endif
-#if !(defined(SG_SCSI_RESET_HOST) || (defined(HAVE_DECL_SG_SCSI_RESET_HOST) && HAVE_DECL_SG_SCSI_RESET_HOST))
+#if defined(SG_SCSI_RESET_HOST) || (defined(HAVE_DECL_SG_SCSI_RESET_HOST) && HAVE_DECL_SG_SCSI_RESET_HOST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SCSI_RESET_HOST) == (3), "SG_SCSI_RESET_HOST != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SCSI_RESET_HOST 3
#endif
-#if !(defined(SG_SCSI_RESET_TARGET) || (defined(HAVE_DECL_SG_SCSI_RESET_TARGET) && HAVE_DECL_SG_SCSI_RESET_TARGET))
+#if defined(SG_SCSI_RESET_TARGET) || (defined(HAVE_DECL_SG_SCSI_RESET_TARGET) && HAVE_DECL_SG_SCSI_RESET_TARGET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SCSI_RESET_TARGET) == (4), "SG_SCSI_RESET_TARGET != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SCSI_RESET_TARGET 4
#endif
-#if !(defined(SG_SCSI_RESET_NO_ESCALATE) || (defined(HAVE_DECL_SG_SCSI_RESET_NO_ESCALATE) && HAVE_DECL_SG_SCSI_RESET_NO_ESCALATE))
+#if defined(SG_SCSI_RESET_NO_ESCALATE) || (defined(HAVE_DECL_SG_SCSI_RESET_NO_ESCALATE) && HAVE_DECL_SG_SCSI_RESET_NO_ESCALATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SG_SCSI_RESET_NO_ESCALATE) == (0x100), "SG_SCSI_RESET_NO_ESCALATE != 0x100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SG_SCSI_RESET_NO_ESCALATE 0x100
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat sg_scsi_reset in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat sg_scsi_reset in mpers mode
+
+# else
static
const struct xlat sg_scsi_reset[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/shm_flags.h b/xlat/shm_flags.h
index 5919153..f7f5b38 100644
--- a/xlat/shm_flags.h
+++ b/xlat/shm_flags.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/shm_flags.in; do not edit. */
-#if !(defined(SHM_EXEC) || (defined(HAVE_DECL_SHM_EXEC) && HAVE_DECL_SHM_EXEC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHM_EXEC 0100000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat shm_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat shm_flags in mpers mode
+
+# else
static
const struct xlat shm_flags[] = {
@@ -24,4 +34,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/shm_resource_flags.h b/xlat/shm_resource_flags.h
index 11caf5a..6b703af 100644
--- a/xlat/shm_resource_flags.h
+++ b/xlat/shm_resource_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/shm_resource_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat shm_resource_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat shm_resource_flags in mpers mode
+
+# else
static
const struct xlat shm_resource_flags[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/shmctl_flags.h b/xlat/shmctl_flags.h
index eac0c1d..40ac3ae 100644
--- a/xlat/shmctl_flags.h
+++ b/xlat/shmctl_flags.h
@@ -1,40 +1,97 @@
/* Generated by ./xlat/gen.sh from ./xlat/shmctl_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPC_RMID) || (defined(HAVE_DECL_IPC_RMID) && HAVE_DECL_IPC_RMID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_RMID) == (0), "IPC_RMID != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_RMID 0
+#endif
+#if defined(IPC_SET) || (defined(HAVE_DECL_IPC_SET) && HAVE_DECL_IPC_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_SET) == (1), "IPC_SET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_SET 1
+#endif
+#if defined(IPC_STAT) || (defined(HAVE_DECL_IPC_STAT) && HAVE_DECL_IPC_STAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_STAT) == (2), "IPC_STAT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_STAT 2
+#endif
+#if defined(IPC_INFO) || (defined(HAVE_DECL_IPC_INFO) && HAVE_DECL_IPC_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPC_INFO) == (3), "IPC_INFO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPC_INFO 3
+#endif
+#if defined(SHM_LOCK) || (defined(HAVE_DECL_SHM_LOCK) && HAVE_DECL_SHM_LOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHM_LOCK) == (11), "SHM_LOCK != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SHM_LOCK 11
+#endif
+#if defined(SHM_UNLOCK) || (defined(HAVE_DECL_SHM_UNLOCK) && HAVE_DECL_SHM_UNLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHM_UNLOCK) == (12), "SHM_UNLOCK != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SHM_UNLOCK 12
+#endif
+#if defined(SHM_STAT) || (defined(HAVE_DECL_SHM_STAT) && HAVE_DECL_SHM_STAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHM_STAT) == (13), "SHM_STAT != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SHM_STAT 13
+#endif
+#if defined(SHM_INFO) || (defined(HAVE_DECL_SHM_INFO) && HAVE_DECL_SHM_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHM_INFO) == (14), "SHM_INFO != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SHM_INFO 14
+#endif
+#if defined(SHM_STAT_ANY) || (defined(HAVE_DECL_SHM_STAT_ANY) && HAVE_DECL_SHM_STAT_ANY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHM_STAT_ANY) == (15), "SHM_STAT_ANY != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SHM_STAT_ANY 15
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat shmctl_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat shmctl_flags[] = {
-#if defined(IPC_RMID) || (defined(HAVE_DECL_IPC_RMID) && HAVE_DECL_IPC_RMID)
- XLAT(IPC_RMID),
-#endif
-#if defined(IPC_SET) || (defined(HAVE_DECL_IPC_SET) && HAVE_DECL_IPC_SET)
- XLAT(IPC_SET),
-#endif
-#if defined(IPC_STAT) || (defined(HAVE_DECL_IPC_STAT) && HAVE_DECL_IPC_STAT)
- XLAT(IPC_STAT),
-#endif
-#if defined(IPC_INFO) || (defined(HAVE_DECL_IPC_INFO) && HAVE_DECL_IPC_INFO)
- XLAT(IPC_INFO),
-#endif
-#if defined(SHM_LOCK) || (defined(HAVE_DECL_SHM_LOCK) && HAVE_DECL_SHM_LOCK)
- XLAT(SHM_LOCK),
-#endif
-#if defined(SHM_UNLOCK) || (defined(HAVE_DECL_SHM_UNLOCK) && HAVE_DECL_SHM_UNLOCK)
- XLAT(SHM_UNLOCK),
-#endif
-#if defined(SHM_STAT) || (defined(HAVE_DECL_SHM_STAT) && HAVE_DECL_SHM_STAT)
- XLAT(SHM_STAT),
-#endif
-#if defined(SHM_INFO) || (defined(HAVE_DECL_SHM_INFO) && HAVE_DECL_SHM_INFO)
- XLAT(SHM_INFO),
-#endif
+
+ XLAT(IPC_RMID),
+ XLAT(IPC_SET),
+ XLAT(IPC_STAT),
+ XLAT(IPC_INFO),
+ XLAT(SHM_LOCK),
+ XLAT(SHM_UNLOCK),
+ XLAT(SHM_STAT),
+ XLAT(SHM_INFO),
+ XLAT(SHM_STAT_ANY),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/shmctl_flags.in b/xlat/shmctl_flags.in
index f22e793..b794306 100644
--- a/xlat/shmctl_flags.in
+++ b/xlat/shmctl_flags.in
@@ -1,8 +1,10 @@
-IPC_RMID
-IPC_SET
-IPC_STAT
-IPC_INFO
-SHM_LOCK
-SHM_UNLOCK
-SHM_STAT
-SHM_INFO
+/* sort -k2,2g */
+IPC_RMID 0
+IPC_SET 1
+IPC_STAT 2
+IPC_INFO 3
+SHM_LOCK 11
+SHM_UNLOCK 12
+SHM_STAT 13
+SHM_INFO 14
+SHM_STAT_ANY 15
diff --git a/xlat/shutdown_modes.h b/xlat/shutdown_modes.h
index f34cb6b..2662c36 100644
--- a/xlat/shutdown_modes.h
+++ b/xlat/shutdown_modes.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/shutdown_modes.in; do not edit. */
-#if !(defined(SHUT_RD) || (defined(HAVE_DECL_SHUT_RD) && HAVE_DECL_SHUT_RD))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SHUT_RD) || (defined(HAVE_DECL_SHUT_RD) && HAVE_DECL_SHUT_RD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHUT_RD) == (0), "SHUT_RD != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHUT_RD 0
#endif
-#if !(defined(SHUT_WR) || (defined(HAVE_DECL_SHUT_WR) && HAVE_DECL_SHUT_WR))
+#if defined(SHUT_WR) || (defined(HAVE_DECL_SHUT_WR) && HAVE_DECL_SHUT_WR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHUT_WR) == (1), "SHUT_WR != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHUT_WR 1
#endif
-#if !(defined(SHUT_RDWR) || (defined(HAVE_DECL_SHUT_RDWR) && HAVE_DECL_SHUT_RDWR))
+#if defined(SHUT_RDWR) || (defined(HAVE_DECL_SHUT_RDWR) && HAVE_DECL_SHUT_RDWR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SHUT_RDWR) == (2), "SHUT_RDWR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SHUT_RDWR 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat shutdown_modes in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat shutdown_modes in mpers mode
+
+# else
static
const struct xlat shutdown_modes[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigact_flags.h b/xlat/sigact_flags.h
index 7149b92..14bb012 100644
--- a/xlat/sigact_flags.h
+++ b/xlat/sigact_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigact_flags.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
#if defined SA_NOMASK && SA_NODEFER != SA_NOMASK
#endif
#if defined SA_ONESHOT && SA_ONESHOT != SA_RESETHAND
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat sigact_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat sigact_flags in mpers mode
+
+# else
static
const struct xlat sigact_flags[] = {
@@ -67,4 +73,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigaltstack_flags.h b/xlat/sigaltstack_flags.h
index 76ed327..68359b4 100644
--- a/xlat/sigaltstack_flags.h
+++ b/xlat/sigaltstack_flags.h
@@ -1,23 +1,41 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigaltstack_flags.in; do not edit. */
-#if !(defined(SS_ONSTACK) || (defined(HAVE_DECL_SS_ONSTACK) && HAVE_DECL_SS_ONSTACK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SS_ONSTACK) || (defined(HAVE_DECL_SS_ONSTACK) && HAVE_DECL_SS_ONSTACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SS_ONSTACK) == (1), "SS_ONSTACK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SS_ONSTACK 1
#endif
-#if !(defined(SS_DISABLE) || (defined(HAVE_DECL_SS_DISABLE) && HAVE_DECL_SS_DISABLE))
+#if defined(SS_DISABLE) || (defined(HAVE_DECL_SS_DISABLE) && HAVE_DECL_SS_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SS_DISABLE) == (2), "SS_DISABLE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SS_DISABLE 2
#endif
-#if !(defined(SS_AUTODISARM) || (defined(HAVE_DECL_SS_AUTODISARM) && HAVE_DECL_SS_AUTODISARM))
+#if defined(SS_AUTODISARM) || (defined(HAVE_DECL_SS_AUTODISARM) && HAVE_DECL_SS_AUTODISARM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SS_AUTODISARM) == ((1U << 31)), "SS_AUTODISARM != (1U << 31)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SS_AUTODISARM (1U << 31)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigaltstack_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigaltstack_flags[] = {
XLAT(SS_ONSTACK),
XLAT(SS_DISABLE),
@@ -25,4 +43,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigbus_codes.h b/xlat/sigbus_codes.h
index 30c017d..4212356 100644
--- a/xlat/sigbus_codes.h
+++ b/xlat/sigbus_codes.h
@@ -1,29 +1,55 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigbus_codes.in; do not edit. */
-#if !(defined(BUS_ADRALN) || (defined(HAVE_DECL_BUS_ADRALN) && HAVE_DECL_BUS_ADRALN))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BUS_ADRALN) || (defined(HAVE_DECL_BUS_ADRALN) && HAVE_DECL_BUS_ADRALN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BUS_ADRALN) == (1), "BUS_ADRALN != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BUS_ADRALN 1
#endif
-#if !(defined(BUS_ADRERR) || (defined(HAVE_DECL_BUS_ADRERR) && HAVE_DECL_BUS_ADRERR))
+#if defined(BUS_ADRERR) || (defined(HAVE_DECL_BUS_ADRERR) && HAVE_DECL_BUS_ADRERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BUS_ADRERR) == (2), "BUS_ADRERR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BUS_ADRERR 2
#endif
-#if !(defined(BUS_OBJERR) || (defined(HAVE_DECL_BUS_OBJERR) && HAVE_DECL_BUS_OBJERR))
+#if defined(BUS_OBJERR) || (defined(HAVE_DECL_BUS_OBJERR) && HAVE_DECL_BUS_OBJERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BUS_OBJERR) == (3), "BUS_OBJERR != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BUS_OBJERR 3
#endif
-#if !(defined(BUS_MCEERR_AR) || (defined(HAVE_DECL_BUS_MCEERR_AR) && HAVE_DECL_BUS_MCEERR_AR))
+#if defined(BUS_MCEERR_AR) || (defined(HAVE_DECL_BUS_MCEERR_AR) && HAVE_DECL_BUS_MCEERR_AR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BUS_MCEERR_AR) == (4), "BUS_MCEERR_AR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BUS_MCEERR_AR 4
#endif
-#if !(defined(BUS_MCEERR_AO) || (defined(HAVE_DECL_BUS_MCEERR_AO) && HAVE_DECL_BUS_MCEERR_AO))
+#if defined(BUS_MCEERR_AO) || (defined(HAVE_DECL_BUS_MCEERR_AO) && HAVE_DECL_BUS_MCEERR_AO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BUS_MCEERR_AO) == (5), "BUS_MCEERR_AO != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define BUS_MCEERR_AO 5
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigbus_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigbus_codes[] = {
XLAT(BUS_ADRALN),
XLAT(BUS_ADRERR),
@@ -36,4 +62,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigchld_codes.h b/xlat/sigchld_codes.h
index e1bf046..515eb2c 100644
--- a/xlat/sigchld_codes.h
+++ b/xlat/sigchld_codes.h
@@ -1,32 +1,62 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigchld_codes.in; do not edit. */
-#if !(defined(CLD_EXITED) || (defined(HAVE_DECL_CLD_EXITED) && HAVE_DECL_CLD_EXITED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(CLD_EXITED) || (defined(HAVE_DECL_CLD_EXITED) && HAVE_DECL_CLD_EXITED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLD_EXITED) == (1), "CLD_EXITED != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLD_EXITED 1
#endif
-#if !(defined(CLD_KILLED) || (defined(HAVE_DECL_CLD_KILLED) && HAVE_DECL_CLD_KILLED))
+#if defined(CLD_KILLED) || (defined(HAVE_DECL_CLD_KILLED) && HAVE_DECL_CLD_KILLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLD_KILLED) == (2), "CLD_KILLED != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLD_KILLED 2
#endif
-#if !(defined(CLD_DUMPED) || (defined(HAVE_DECL_CLD_DUMPED) && HAVE_DECL_CLD_DUMPED))
+#if defined(CLD_DUMPED) || (defined(HAVE_DECL_CLD_DUMPED) && HAVE_DECL_CLD_DUMPED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLD_DUMPED) == (3), "CLD_DUMPED != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLD_DUMPED 3
#endif
-#if !(defined(CLD_TRAPPED) || (defined(HAVE_DECL_CLD_TRAPPED) && HAVE_DECL_CLD_TRAPPED))
+#if defined(CLD_TRAPPED) || (defined(HAVE_DECL_CLD_TRAPPED) && HAVE_DECL_CLD_TRAPPED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLD_TRAPPED) == (4), "CLD_TRAPPED != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLD_TRAPPED 4
#endif
-#if !(defined(CLD_STOPPED) || (defined(HAVE_DECL_CLD_STOPPED) && HAVE_DECL_CLD_STOPPED))
+#if defined(CLD_STOPPED) || (defined(HAVE_DECL_CLD_STOPPED) && HAVE_DECL_CLD_STOPPED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLD_STOPPED) == (5), "CLD_STOPPED != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLD_STOPPED 5
#endif
-#if !(defined(CLD_CONTINUED) || (defined(HAVE_DECL_CLD_CONTINUED) && HAVE_DECL_CLD_CONTINUED))
+#if defined(CLD_CONTINUED) || (defined(HAVE_DECL_CLD_CONTINUED) && HAVE_DECL_CLD_CONTINUED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CLD_CONTINUED) == (6), "CLD_CONTINUED != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define CLD_CONTINUED 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigchld_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigchld_codes[] = {
XLAT(CLD_EXITED),
XLAT(CLD_KILLED),
@@ -37,4 +67,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigemt_codes.h b/xlat/sigemt_codes.h
index 68f6fb4..0938327 100644
--- a/xlat/sigemt_codes.h
+++ b/xlat/sigemt_codes.h
@@ -1,20 +1,32 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigemt_codes.in; do not edit. */
-#if !(defined(EMT_TAGOVF) || (defined(HAVE_DECL_EMT_TAGOVF) && HAVE_DECL_EMT_TAGOVF))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(EMT_TAGOVF) || (defined(HAVE_DECL_EMT_TAGOVF) && HAVE_DECL_EMT_TAGOVF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((EMT_TAGOVF) == (1), "EMT_TAGOVF != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define EMT_TAGOVF 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigemt_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigemt_codes[] = {
XLAT(EMT_TAGOVF),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigev_value.h b/xlat/sigev_value.h
index 7c569a5..c9069d5 100644
--- a/xlat/sigev_value.h
+++ b/xlat/sigev_value.h
@@ -1,26 +1,48 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigev_value.in; do not edit. */
-#if !(defined(SIGEV_SIGNAL) || (defined(HAVE_DECL_SIGEV_SIGNAL) && HAVE_DECL_SIGEV_SIGNAL))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SIGEV_SIGNAL) || (defined(HAVE_DECL_SIGEV_SIGNAL) && HAVE_DECL_SIGEV_SIGNAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SIGEV_SIGNAL) == (0), "SIGEV_SIGNAL != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SIGEV_SIGNAL 0
#endif
-#if !(defined(SIGEV_NONE) || (defined(HAVE_DECL_SIGEV_NONE) && HAVE_DECL_SIGEV_NONE))
+#if defined(SIGEV_NONE) || (defined(HAVE_DECL_SIGEV_NONE) && HAVE_DECL_SIGEV_NONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SIGEV_NONE) == (1), "SIGEV_NONE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SIGEV_NONE 1
#endif
-#if !(defined(SIGEV_THREAD) || (defined(HAVE_DECL_SIGEV_THREAD) && HAVE_DECL_SIGEV_THREAD))
+#if defined(SIGEV_THREAD) || (defined(HAVE_DECL_SIGEV_THREAD) && HAVE_DECL_SIGEV_THREAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SIGEV_THREAD) == (2), "SIGEV_THREAD != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SIGEV_THREAD 2
#endif
-#if !(defined(SIGEV_THREAD_ID) || (defined(HAVE_DECL_SIGEV_THREAD_ID) && HAVE_DECL_SIGEV_THREAD_ID))
+#if defined(SIGEV_THREAD_ID) || (defined(HAVE_DECL_SIGEV_THREAD_ID) && HAVE_DECL_SIGEV_THREAD_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SIGEV_THREAD_ID) == (4), "SIGEV_THREAD_ID != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SIGEV_THREAD_ID 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigev_value[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigev_value[] = {
XLAT(SIGEV_SIGNAL),
XLAT(SIGEV_NONE),
@@ -29,4 +51,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigfpe_codes.h b/xlat/sigfpe_codes.h
index 1821f34..eab8237 100644
--- a/xlat/sigfpe_codes.h
+++ b/xlat/sigfpe_codes.h
@@ -1,38 +1,90 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigfpe_codes.in; do not edit. */
-#if !(defined(FPE_INTDIV) || (defined(HAVE_DECL_FPE_INTDIV) && HAVE_DECL_FPE_INTDIV))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(FPE_INTDIV) || (defined(HAVE_DECL_FPE_INTDIV) && HAVE_DECL_FPE_INTDIV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_INTDIV) == (1), "FPE_INTDIV != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_INTDIV 1
#endif
-#if !(defined(FPE_INTOVF) || (defined(HAVE_DECL_FPE_INTOVF) && HAVE_DECL_FPE_INTOVF))
+#if defined(FPE_INTOVF) || (defined(HAVE_DECL_FPE_INTOVF) && HAVE_DECL_FPE_INTOVF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_INTOVF) == (2), "FPE_INTOVF != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_INTOVF 2
#endif
-#if !(defined(FPE_FLTDIV) || (defined(HAVE_DECL_FPE_FLTDIV) && HAVE_DECL_FPE_FLTDIV))
+#if defined(FPE_FLTDIV) || (defined(HAVE_DECL_FPE_FLTDIV) && HAVE_DECL_FPE_FLTDIV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_FLTDIV) == (3), "FPE_FLTDIV != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_FLTDIV 3
#endif
-#if !(defined(FPE_FLTOVF) || (defined(HAVE_DECL_FPE_FLTOVF) && HAVE_DECL_FPE_FLTOVF))
+#if defined(FPE_FLTOVF) || (defined(HAVE_DECL_FPE_FLTOVF) && HAVE_DECL_FPE_FLTOVF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_FLTOVF) == (4), "FPE_FLTOVF != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_FLTOVF 4
#endif
-#if !(defined(FPE_FLTUND) || (defined(HAVE_DECL_FPE_FLTUND) && HAVE_DECL_FPE_FLTUND))
+#if defined(FPE_FLTUND) || (defined(HAVE_DECL_FPE_FLTUND) && HAVE_DECL_FPE_FLTUND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_FLTUND) == (5), "FPE_FLTUND != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_FLTUND 5
#endif
-#if !(defined(FPE_FLTRES) || (defined(HAVE_DECL_FPE_FLTRES) && HAVE_DECL_FPE_FLTRES))
+#if defined(FPE_FLTRES) || (defined(HAVE_DECL_FPE_FLTRES) && HAVE_DECL_FPE_FLTRES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_FLTRES) == (6), "FPE_FLTRES != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_FLTRES 6
#endif
-#if !(defined(FPE_FLTINV) || (defined(HAVE_DECL_FPE_FLTINV) && HAVE_DECL_FPE_FLTINV))
+#if defined(FPE_FLTINV) || (defined(HAVE_DECL_FPE_FLTINV) && HAVE_DECL_FPE_FLTINV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_FLTINV) == (7), "FPE_FLTINV != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_FLTINV 7
#endif
-#if !(defined(FPE_FLTSUB) || (defined(HAVE_DECL_FPE_FLTSUB) && HAVE_DECL_FPE_FLTSUB))
+#if defined(FPE_FLTSUB) || (defined(HAVE_DECL_FPE_FLTSUB) && HAVE_DECL_FPE_FLTSUB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_FLTSUB) == (8), "FPE_FLTSUB != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define FPE_FLTSUB 8
#endif
+#if defined(FPE_FLTUNK) || (defined(HAVE_DECL_FPE_FLTUNK) && HAVE_DECL_FPE_FLTUNK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_FLTUNK) == (14), "FPE_FLTUNK != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FPE_FLTUNK 14
+#endif
+#if defined(FPE_CONDTRAP) || (defined(HAVE_DECL_FPE_CONDTRAP) && HAVE_DECL_FPE_CONDTRAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((FPE_CONDTRAP) == (15), "FPE_CONDTRAP != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define FPE_CONDTRAP 15
+#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigfpe_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigfpe_codes[] = {
XLAT(FPE_INTDIV),
XLAT(FPE_INTOVF),
@@ -60,7 +112,11 @@
#if defined(__FPE_INVDEC) || (defined(HAVE_DECL___FPE_INVDEC) && HAVE_DECL___FPE_INVDEC)
XLAT(__FPE_INVDEC),
#endif
+ XLAT(FPE_FLTUNK),
+ XLAT(FPE_CONDTRAP),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigfpe_codes.in b/xlat/sigfpe_codes.in
index 31cc924..4abd621 100644
--- a/xlat/sigfpe_codes.in
+++ b/xlat/sigfpe_codes.in
@@ -12,3 +12,5 @@
__FPE_DECERR /* 11 - ia64 */
__FPE_INVASC /* 12 - ia64 */
__FPE_INVDEC /* 13 - ia64 */
+FPE_FLTUNK 14
+FPE_CONDTRAP 15
diff --git a/xlat/sigill_codes.h b/xlat/sigill_codes.h
index 24fe266..74eaea0 100644
--- a/xlat/sigill_codes.h
+++ b/xlat/sigill_codes.h
@@ -1,38 +1,76 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigill_codes.in; do not edit. */
-#if !(defined(ILL_ILLOPC) || (defined(HAVE_DECL_ILL_ILLOPC) && HAVE_DECL_ILL_ILLOPC))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ILL_ILLOPC) || (defined(HAVE_DECL_ILL_ILLOPC) && HAVE_DECL_ILL_ILLOPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_ILLOPC) == (1), "ILL_ILLOPC != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_ILLOPC 1
#endif
-#if !(defined(ILL_ILLOPN) || (defined(HAVE_DECL_ILL_ILLOPN) && HAVE_DECL_ILL_ILLOPN))
+#if defined(ILL_ILLOPN) || (defined(HAVE_DECL_ILL_ILLOPN) && HAVE_DECL_ILL_ILLOPN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_ILLOPN) == (2), "ILL_ILLOPN != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_ILLOPN 2
#endif
-#if !(defined(ILL_ILLADR) || (defined(HAVE_DECL_ILL_ILLADR) && HAVE_DECL_ILL_ILLADR))
+#if defined(ILL_ILLADR) || (defined(HAVE_DECL_ILL_ILLADR) && HAVE_DECL_ILL_ILLADR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_ILLADR) == (3), "ILL_ILLADR != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_ILLADR 3
#endif
-#if !(defined(ILL_ILLTRP) || (defined(HAVE_DECL_ILL_ILLTRP) && HAVE_DECL_ILL_ILLTRP))
+#if defined(ILL_ILLTRP) || (defined(HAVE_DECL_ILL_ILLTRP) && HAVE_DECL_ILL_ILLTRP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_ILLTRP) == (4), "ILL_ILLTRP != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_ILLTRP 4
#endif
-#if !(defined(ILL_PRVOPC) || (defined(HAVE_DECL_ILL_PRVOPC) && HAVE_DECL_ILL_PRVOPC))
+#if defined(ILL_PRVOPC) || (defined(HAVE_DECL_ILL_PRVOPC) && HAVE_DECL_ILL_PRVOPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_PRVOPC) == (5), "ILL_PRVOPC != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_PRVOPC 5
#endif
-#if !(defined(ILL_PRVREG) || (defined(HAVE_DECL_ILL_PRVREG) && HAVE_DECL_ILL_PRVREG))
+#if defined(ILL_PRVREG) || (defined(HAVE_DECL_ILL_PRVREG) && HAVE_DECL_ILL_PRVREG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_PRVREG) == (6), "ILL_PRVREG != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_PRVREG 6
#endif
-#if !(defined(ILL_COPROC) || (defined(HAVE_DECL_ILL_COPROC) && HAVE_DECL_ILL_COPROC))
+#if defined(ILL_COPROC) || (defined(HAVE_DECL_ILL_COPROC) && HAVE_DECL_ILL_COPROC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_COPROC) == (7), "ILL_COPROC != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_COPROC 7
#endif
-#if !(defined(ILL_BADSTK) || (defined(HAVE_DECL_ILL_BADSTK) && HAVE_DECL_ILL_BADSTK))
+#if defined(ILL_BADSTK) || (defined(HAVE_DECL_ILL_BADSTK) && HAVE_DECL_ILL_BADSTK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ILL_BADSTK) == (8), "ILL_BADSTK != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ILL_BADSTK 8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigill_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigill_codes[] = {
XLAT(ILL_ILLOPC),
#if defined(ILL_ILLPARAOP) || (defined(HAVE_DECL_ILL_ILLPARAOP) && HAVE_DECL_ILL_ILLPARAOP)
@@ -75,4 +113,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/siginfo_codes.h b/xlat/siginfo_codes.h
index faef6c7..a882d24 100644
--- a/xlat/siginfo_codes.h
+++ b/xlat/siginfo_codes.h
@@ -1,51 +1,129 @@
/* Generated by ./xlat/gen.sh from ./xlat/siginfo_codes.in; do not edit. */
-#if !(defined(SI_USER) || (defined(HAVE_DECL_SI_USER) && HAVE_DECL_SI_USER))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SI_USER) || (defined(HAVE_DECL_SI_USER) && HAVE_DECL_SI_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_USER) == (0), "SI_USER != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_USER 0
#endif
-#if !(defined(SI_KERNEL) || (defined(HAVE_DECL_SI_KERNEL) && HAVE_DECL_SI_KERNEL))
+#if defined(SI_KERNEL) || (defined(HAVE_DECL_SI_KERNEL) && HAVE_DECL_SI_KERNEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_KERNEL) == (0x80), "SI_KERNEL != 0x80");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_KERNEL 0x80
#endif
-#if !(defined(SI_QUEUE) || (defined(HAVE_DECL_SI_QUEUE) && HAVE_DECL_SI_QUEUE))
+#if defined(SI_QUEUE) || (defined(HAVE_DECL_SI_QUEUE) && HAVE_DECL_SI_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_QUEUE) == (-1), "SI_QUEUE != -1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_QUEUE -1
#endif
-#if !(defined(SI_TIMER) || (defined(HAVE_DECL_SI_TIMER) && HAVE_DECL_SI_TIMER))
+#ifdef __mips__
+#if defined(SI_ASYNCIO) || (defined(HAVE_DECL_SI_ASYNCIO) && HAVE_DECL_SI_ASYNCIO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_ASYNCIO) == (-2), "SI_ASYNCIO != -2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SI_ASYNCIO -2
+#endif
+#if defined(SI_TIMER) || (defined(HAVE_DECL_SI_TIMER) && HAVE_DECL_SI_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_TIMER) == (-3), "SI_TIMER != -3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SI_TIMER -3
+#endif
+#if defined(SI_MESGQ) || (defined(HAVE_DECL_SI_MESGQ) && HAVE_DECL_SI_MESGQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_MESGQ) == (-4), "SI_MESGQ != -4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SI_MESGQ -4
+#endif
+#else
+#if defined(SI_TIMER) || (defined(HAVE_DECL_SI_TIMER) && HAVE_DECL_SI_TIMER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_TIMER) == (-2), "SI_TIMER != -2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_TIMER -2
#endif
-#if !(defined(SI_MESGQ) || (defined(HAVE_DECL_SI_MESGQ) && HAVE_DECL_SI_MESGQ))
+#if defined(SI_MESGQ) || (defined(HAVE_DECL_SI_MESGQ) && HAVE_DECL_SI_MESGQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_MESGQ) == (-3), "SI_MESGQ != -3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_MESGQ -3
#endif
-#if !(defined(SI_ASYNCIO) || (defined(HAVE_DECL_SI_ASYNCIO) && HAVE_DECL_SI_ASYNCIO))
+#if defined(SI_ASYNCIO) || (defined(HAVE_DECL_SI_ASYNCIO) && HAVE_DECL_SI_ASYNCIO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_ASYNCIO) == (-4), "SI_ASYNCIO != -4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_ASYNCIO -4
#endif
-#if !(defined(SI_SIGIO) || (defined(HAVE_DECL_SI_SIGIO) && HAVE_DECL_SI_SIGIO))
+#endif
+#if defined(SI_SIGIO) || (defined(HAVE_DECL_SI_SIGIO) && HAVE_DECL_SI_SIGIO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_SIGIO) == (-5), "SI_SIGIO != -5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_SIGIO -5
#endif
-#if !(defined(SI_TKILL) || (defined(HAVE_DECL_SI_TKILL) && HAVE_DECL_SI_TKILL))
+#if defined(SI_TKILL) || (defined(HAVE_DECL_SI_TKILL) && HAVE_DECL_SI_TKILL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_TKILL) == (-6), "SI_TKILL != -6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_TKILL -6
#endif
-#if !(defined(SI_DETHREAD) || (defined(HAVE_DECL_SI_DETHREAD) && HAVE_DECL_SI_DETHREAD))
+#if defined(SI_DETHREAD) || (defined(HAVE_DECL_SI_DETHREAD) && HAVE_DECL_SI_DETHREAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_DETHREAD) == (-7), "SI_DETHREAD != -7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_DETHREAD -7
#endif
-#if !(defined(SI_ASYNCNL) || (defined(HAVE_DECL_SI_ASYNCNL) && HAVE_DECL_SI_ASYNCNL))
+#if defined(SI_ASYNCNL) || (defined(HAVE_DECL_SI_ASYNCNL) && HAVE_DECL_SI_ASYNCNL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SI_ASYNCNL) == (-60), "SI_ASYNCNL != -60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SI_ASYNCNL -60
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat siginfo_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat siginfo_codes[] = {
XLAT(SI_USER),
XLAT(SI_KERNEL),
XLAT(SI_QUEUE),
+
+#ifdef __mips__
+ XLAT(SI_ASYNCIO),
+ XLAT(SI_TIMER),
+ XLAT(SI_MESGQ),
+#else
XLAT(SI_TIMER),
XLAT(SI_MESGQ),
XLAT(SI_ASYNCIO),
+#endif
+
XLAT(SI_SIGIO),
XLAT(SI_TKILL),
XLAT(SI_DETHREAD),
@@ -59,4 +137,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/siginfo_codes.in b/xlat/siginfo_codes.in
index a57c370..968c660 100644
--- a/xlat/siginfo_codes.in
+++ b/xlat/siginfo_codes.in
@@ -1,9 +1,17 @@
SI_USER 0
SI_KERNEL 0x80
SI_QUEUE -1
+
+#ifdef __mips__
+SI_ASYNCIO -2
+SI_TIMER -3
+SI_MESGQ -4
+#else
SI_TIMER -2
SI_MESGQ -3
SI_ASYNCIO -4
+#endif
+
SI_SIGIO -5
SI_TKILL -6
SI_DETHREAD -7
diff --git a/xlat/sigpoll_codes.h b/xlat/sigpoll_codes.h
index 55cc1bb..5e9f08b 100644
--- a/xlat/sigpoll_codes.h
+++ b/xlat/sigpoll_codes.h
@@ -1,32 +1,62 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigpoll_codes.in; do not edit. */
-#if !(defined(POLL_IN) || (defined(HAVE_DECL_POLL_IN) && HAVE_DECL_POLL_IN))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(POLL_IN) || (defined(HAVE_DECL_POLL_IN) && HAVE_DECL_POLL_IN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLL_IN) == (1), "POLL_IN != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLL_IN 1
#endif
-#if !(defined(POLL_OUT) || (defined(HAVE_DECL_POLL_OUT) && HAVE_DECL_POLL_OUT))
+#if defined(POLL_OUT) || (defined(HAVE_DECL_POLL_OUT) && HAVE_DECL_POLL_OUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLL_OUT) == (2), "POLL_OUT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLL_OUT 2
#endif
-#if !(defined(POLL_MSG) || (defined(HAVE_DECL_POLL_MSG) && HAVE_DECL_POLL_MSG))
+#if defined(POLL_MSG) || (defined(HAVE_DECL_POLL_MSG) && HAVE_DECL_POLL_MSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLL_MSG) == (3), "POLL_MSG != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLL_MSG 3
#endif
-#if !(defined(POLL_ERR) || (defined(HAVE_DECL_POLL_ERR) && HAVE_DECL_POLL_ERR))
+#if defined(POLL_ERR) || (defined(HAVE_DECL_POLL_ERR) && HAVE_DECL_POLL_ERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLL_ERR) == (4), "POLL_ERR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLL_ERR 4
#endif
-#if !(defined(POLL_PRI) || (defined(HAVE_DECL_POLL_PRI) && HAVE_DECL_POLL_PRI))
+#if defined(POLL_PRI) || (defined(HAVE_DECL_POLL_PRI) && HAVE_DECL_POLL_PRI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLL_PRI) == (5), "POLL_PRI != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLL_PRI 5
#endif
-#if !(defined(POLL_HUP) || (defined(HAVE_DECL_POLL_HUP) && HAVE_DECL_POLL_HUP))
+#if defined(POLL_HUP) || (defined(HAVE_DECL_POLL_HUP) && HAVE_DECL_POLL_HUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((POLL_HUP) == (6), "POLL_HUP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define POLL_HUP 6
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigpoll_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigpoll_codes[] = {
XLAT(POLL_IN),
XLAT(POLL_OUT),
@@ -37,4 +67,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigprocmaskcmds.h b/xlat/sigprocmaskcmds.h
index 427680b..02df705 100644
--- a/xlat/sigprocmaskcmds.h
+++ b/xlat/sigprocmaskcmds.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigprocmaskcmds.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sigprocmaskcmds in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sigprocmaskcmds in mpers mode
+
+# else
static
const struct xlat sigprocmaskcmds[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigprof_codes.h b/xlat/sigprof_codes.h
index 2323b9e..6776434 100644
--- a/xlat/sigprof_codes.h
+++ b/xlat/sigprof_codes.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigprof_codes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigprof_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigprof_codes[] = {
#if defined(PROF_SIG) || (defined(HAVE_DECL_PROF_SIG) && HAVE_DECL_PROF_SIG)
XLAT(PROF_SIG),
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigsegv_codes.h b/xlat/sigsegv_codes.h
index 30dceee..64fbc79 100644
--- a/xlat/sigsegv_codes.h
+++ b/xlat/sigsegv_codes.h
@@ -1,26 +1,69 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigsegv_codes.in; do not edit. */
-#if !(defined(SEGV_MAPERR) || (defined(HAVE_DECL_SEGV_MAPERR) && HAVE_DECL_SEGV_MAPERR))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SEGV_MAPERR) || (defined(HAVE_DECL_SEGV_MAPERR) && HAVE_DECL_SEGV_MAPERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEGV_MAPERR) == (1), "SEGV_MAPERR != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEGV_MAPERR 1
#endif
-#if !(defined(SEGV_ACCERR) || (defined(HAVE_DECL_SEGV_ACCERR) && HAVE_DECL_SEGV_ACCERR))
+#if defined(SEGV_ACCERR) || (defined(HAVE_DECL_SEGV_ACCERR) && HAVE_DECL_SEGV_ACCERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEGV_ACCERR) == (2), "SEGV_ACCERR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEGV_ACCERR 2
#endif
-#if !(defined(SEGV_BNDERR) || (defined(HAVE_DECL_SEGV_BNDERR) && HAVE_DECL_SEGV_BNDERR))
+#if defined(SEGV_BNDERR) || (defined(HAVE_DECL_SEGV_BNDERR) && HAVE_DECL_SEGV_BNDERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEGV_BNDERR) == (3), "SEGV_BNDERR != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEGV_BNDERR 3
#endif
-#if !(defined(SEGV_PKUERR) || (defined(HAVE_DECL_SEGV_PKUERR) && HAVE_DECL_SEGV_PKUERR))
+#if defined(SEGV_PKUERR) || (defined(HAVE_DECL_SEGV_PKUERR) && HAVE_DECL_SEGV_PKUERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEGV_PKUERR) == (4), "SEGV_PKUERR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SEGV_PKUERR 4
#endif
+#if defined(SEGV_ACCADI) || (defined(HAVE_DECL_SEGV_ACCADI) && HAVE_DECL_SEGV_ACCADI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEGV_ACCADI) == (5), "SEGV_ACCADI != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SEGV_ACCADI 5
+#endif
+#if defined(SEGV_ADIDERR) || (defined(HAVE_DECL_SEGV_ADIDERR) && HAVE_DECL_SEGV_ADIDERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEGV_ADIDERR) == (6), "SEGV_ADIDERR != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SEGV_ADIDERR 6
+#endif
+#if defined(SEGV_ADIPERR) || (defined(HAVE_DECL_SEGV_ADIPERR) && HAVE_DECL_SEGV_ADIPERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SEGV_ADIPERR) == (7), "SEGV_ADIPERR != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SEGV_ADIPERR 7
+#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigsegv_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigsegv_codes[] = {
XLAT(SEGV_MAPERR),
XLAT(SEGV_ACCERR),
@@ -32,7 +75,12 @@
XLAT(__SEGV_PSTKOVF),
#endif
XLAT(SEGV_PKUERR),
+ XLAT(SEGV_ACCADI),
+ XLAT(SEGV_ADIDERR),
+ XLAT(SEGV_ADIPERR),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigsegv_codes.in b/xlat/sigsegv_codes.in
index 86dbdc5..2ca98f6 100644
--- a/xlat/sigsegv_codes.in
+++ b/xlat/sigsegv_codes.in
@@ -4,3 +4,6 @@
SEGV_BNDERR 3
__SEGV_PSTKOVF /* 4 - ia64 */
SEGV_PKUERR 4
+SEGV_ACCADI 5 /* sparc */
+SEGV_ADIDERR 6 /* sparc */
+SEGV_ADIPERR 7 /* sparc */
diff --git a/xlat/sigsys_codes.h b/xlat/sigsys_codes.h
index 6fba1fb..4539740 100644
--- a/xlat/sigsys_codes.h
+++ b/xlat/sigsys_codes.h
@@ -1,20 +1,32 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigsys_codes.in; do not edit. */
-#if !(defined(SYS_SECCOMP) || (defined(HAVE_DECL_SYS_SECCOMP) && HAVE_DECL_SYS_SECCOMP))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SYS_SECCOMP) || (defined(HAVE_DECL_SYS_SECCOMP) && HAVE_DECL_SYS_SECCOMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SECCOMP) == (1), "SYS_SECCOMP != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SECCOMP 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigsys_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigsys_codes[] = {
XLAT(SYS_SECCOMP),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sigtrap_codes.h b/xlat/sigtrap_codes.h
index db2a7c9..0fbac5c 100644
--- a/xlat/sigtrap_codes.h
+++ b/xlat/sigtrap_codes.h
@@ -1,26 +1,48 @@
/* Generated by ./xlat/gen.sh from ./xlat/sigtrap_codes.in; do not edit. */
-#if !(defined(TRAP_BRKPT) || (defined(HAVE_DECL_TRAP_BRKPT) && HAVE_DECL_TRAP_BRKPT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TRAP_BRKPT) || (defined(HAVE_DECL_TRAP_BRKPT) && HAVE_DECL_TRAP_BRKPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TRAP_BRKPT) == (1), "TRAP_BRKPT != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TRAP_BRKPT 1
#endif
-#if !(defined(TRAP_TRACE) || (defined(HAVE_DECL_TRAP_TRACE) && HAVE_DECL_TRAP_TRACE))
+#if defined(TRAP_TRACE) || (defined(HAVE_DECL_TRAP_TRACE) && HAVE_DECL_TRAP_TRACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TRAP_TRACE) == (2), "TRAP_TRACE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TRAP_TRACE 2
#endif
-#if !(defined(TRAP_BRANCH) || (defined(HAVE_DECL_TRAP_BRANCH) && HAVE_DECL_TRAP_BRANCH))
+#if defined(TRAP_BRANCH) || (defined(HAVE_DECL_TRAP_BRANCH) && HAVE_DECL_TRAP_BRANCH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TRAP_BRANCH) == (3), "TRAP_BRANCH != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TRAP_BRANCH 3
#endif
-#if !(defined(TRAP_HWBKPT) || (defined(HAVE_DECL_TRAP_HWBKPT) && HAVE_DECL_TRAP_HWBKPT))
+#if defined(TRAP_HWBKPT) || (defined(HAVE_DECL_TRAP_HWBKPT) && HAVE_DECL_TRAP_HWBKPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TRAP_HWBKPT) == (4), "TRAP_HWBKPT != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TRAP_HWBKPT 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat sigtrap_codes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat sigtrap_codes[] = {
#if defined(TRAP_STEP) || (defined(HAVE_DECL_TRAP_STEP) && HAVE_DECL_TRAP_STEP)
XLAT(TRAP_STEP),
@@ -41,4 +63,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/skf_ad.h b/xlat/skf_ad.h
index 23b157f..fac1518 100644
--- a/xlat/skf_ad.h
+++ b/xlat/skf_ad.h
@@ -1,58 +1,128 @@
/* Generated by ./xlat/gen.sh from ./xlat/skf_ad.in; do not edit. */
-#if !(defined(SKF_AD_PROTOCOL) || (defined(HAVE_DECL_SKF_AD_PROTOCOL) && HAVE_DECL_SKF_AD_PROTOCOL))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SKF_AD_PROTOCOL) || (defined(HAVE_DECL_SKF_AD_PROTOCOL) && HAVE_DECL_SKF_AD_PROTOCOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_PROTOCOL) == (0), "SKF_AD_PROTOCOL != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_PROTOCOL 0
#endif
-#if !(defined(SKF_AD_PKTTYPE) || (defined(HAVE_DECL_SKF_AD_PKTTYPE) && HAVE_DECL_SKF_AD_PKTTYPE))
+#if defined(SKF_AD_PKTTYPE) || (defined(HAVE_DECL_SKF_AD_PKTTYPE) && HAVE_DECL_SKF_AD_PKTTYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_PKTTYPE) == (4), "SKF_AD_PKTTYPE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_PKTTYPE 4
#endif
-#if !(defined(SKF_AD_IFINDEX) || (defined(HAVE_DECL_SKF_AD_IFINDEX) && HAVE_DECL_SKF_AD_IFINDEX))
+#if defined(SKF_AD_IFINDEX) || (defined(HAVE_DECL_SKF_AD_IFINDEX) && HAVE_DECL_SKF_AD_IFINDEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_IFINDEX) == (8), "SKF_AD_IFINDEX != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_IFINDEX 8
#endif
-#if !(defined(SKF_AD_NLATTR) || (defined(HAVE_DECL_SKF_AD_NLATTR) && HAVE_DECL_SKF_AD_NLATTR))
+#if defined(SKF_AD_NLATTR) || (defined(HAVE_DECL_SKF_AD_NLATTR) && HAVE_DECL_SKF_AD_NLATTR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_NLATTR) == (12), "SKF_AD_NLATTR != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_NLATTR 12
#endif
-#if !(defined(SKF_AD_NLATTR_NEST) || (defined(HAVE_DECL_SKF_AD_NLATTR_NEST) && HAVE_DECL_SKF_AD_NLATTR_NEST))
+#if defined(SKF_AD_NLATTR_NEST) || (defined(HAVE_DECL_SKF_AD_NLATTR_NEST) && HAVE_DECL_SKF_AD_NLATTR_NEST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_NLATTR_NEST) == (16), "SKF_AD_NLATTR_NEST != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_NLATTR_NEST 16
#endif
-#if !(defined(SKF_AD_MARK) || (defined(HAVE_DECL_SKF_AD_MARK) && HAVE_DECL_SKF_AD_MARK))
+#if defined(SKF_AD_MARK) || (defined(HAVE_DECL_SKF_AD_MARK) && HAVE_DECL_SKF_AD_MARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_MARK) == (20), "SKF_AD_MARK != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_MARK 20
#endif
-#if !(defined(SKF_AD_QUEUE) || (defined(HAVE_DECL_SKF_AD_QUEUE) && HAVE_DECL_SKF_AD_QUEUE))
+#if defined(SKF_AD_QUEUE) || (defined(HAVE_DECL_SKF_AD_QUEUE) && HAVE_DECL_SKF_AD_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_QUEUE) == (24), "SKF_AD_QUEUE != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_QUEUE 24
#endif
-#if !(defined(SKF_AD_HATYPE) || (defined(HAVE_DECL_SKF_AD_HATYPE) && HAVE_DECL_SKF_AD_HATYPE))
+#if defined(SKF_AD_HATYPE) || (defined(HAVE_DECL_SKF_AD_HATYPE) && HAVE_DECL_SKF_AD_HATYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_HATYPE) == (28), "SKF_AD_HATYPE != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_HATYPE 28
#endif
-#if !(defined(SKF_AD_RXHASH) || (defined(HAVE_DECL_SKF_AD_RXHASH) && HAVE_DECL_SKF_AD_RXHASH))
+#if defined(SKF_AD_RXHASH) || (defined(HAVE_DECL_SKF_AD_RXHASH) && HAVE_DECL_SKF_AD_RXHASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_RXHASH) == (32), "SKF_AD_RXHASH != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_RXHASH 32
#endif
-#if !(defined(SKF_AD_CPU) || (defined(HAVE_DECL_SKF_AD_CPU) && HAVE_DECL_SKF_AD_CPU))
+#if defined(SKF_AD_CPU) || (defined(HAVE_DECL_SKF_AD_CPU) && HAVE_DECL_SKF_AD_CPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_CPU) == (36), "SKF_AD_CPU != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_CPU 36
#endif
-#if !(defined(SKF_AD_ALU_XOR_X) || (defined(HAVE_DECL_SKF_AD_ALU_XOR_X) && HAVE_DECL_SKF_AD_ALU_XOR_X))
+#if defined(SKF_AD_ALU_XOR_X) || (defined(HAVE_DECL_SKF_AD_ALU_XOR_X) && HAVE_DECL_SKF_AD_ALU_XOR_X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_ALU_XOR_X) == (40), "SKF_AD_ALU_XOR_X != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_ALU_XOR_X 40
#endif
-#if !(defined(SKF_AD_VLAN_TAG) || (defined(HAVE_DECL_SKF_AD_VLAN_TAG) && HAVE_DECL_SKF_AD_VLAN_TAG))
+#if defined(SKF_AD_VLAN_TAG) || (defined(HAVE_DECL_SKF_AD_VLAN_TAG) && HAVE_DECL_SKF_AD_VLAN_TAG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_VLAN_TAG) == (44), "SKF_AD_VLAN_TAG != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_VLAN_TAG 44
#endif
-#if !(defined(SKF_AD_VLAN_TAG_PRESENT) || (defined(HAVE_DECL_SKF_AD_VLAN_TAG_PRESENT) && HAVE_DECL_SKF_AD_VLAN_TAG_PRESENT))
+#if defined(SKF_AD_VLAN_TAG_PRESENT) || (defined(HAVE_DECL_SKF_AD_VLAN_TAG_PRESENT) && HAVE_DECL_SKF_AD_VLAN_TAG_PRESENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_VLAN_TAG_PRESENT) == (48), "SKF_AD_VLAN_TAG_PRESENT != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_VLAN_TAG_PRESENT 48
#endif
-#if !(defined(SKF_AD_PAY_OFFSET) || (defined(HAVE_DECL_SKF_AD_PAY_OFFSET) && HAVE_DECL_SKF_AD_PAY_OFFSET))
+#if defined(SKF_AD_PAY_OFFSET) || (defined(HAVE_DECL_SKF_AD_PAY_OFFSET) && HAVE_DECL_SKF_AD_PAY_OFFSET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_PAY_OFFSET) == (52), "SKF_AD_PAY_OFFSET != 52");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_PAY_OFFSET 52
#endif
-#if !(defined(SKF_AD_RANDOM) || (defined(HAVE_DECL_SKF_AD_RANDOM) && HAVE_DECL_SKF_AD_RANDOM))
+#if defined(SKF_AD_RANDOM) || (defined(HAVE_DECL_SKF_AD_RANDOM) && HAVE_DECL_SKF_AD_RANDOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_RANDOM) == (56), "SKF_AD_RANDOM != 56");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_RANDOM 56
#endif
-#if !(defined(SKF_AD_VLAN_TPID) || (defined(HAVE_DECL_SKF_AD_VLAN_TPID) && HAVE_DECL_SKF_AD_VLAN_TPID))
+#if defined(SKF_AD_VLAN_TPID) || (defined(HAVE_DECL_SKF_AD_VLAN_TPID) && HAVE_DECL_SKF_AD_VLAN_TPID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_VLAN_TPID) == (60), "SKF_AD_VLAN_TPID != 60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SKF_AD_VLAN_TPID 60
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat skf_ad in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat skf_ad in mpers mode
+
+# else
static
const struct xlat skf_ad[] = {
@@ -75,4 +145,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/skf_off.h b/xlat/skf_off.h
new file mode 100644
index 0000000..77afe64
--- /dev/null
+++ b/xlat/skf_off.h
@@ -0,0 +1,26 @@
+/* Generated by ./xlat/gen.sh from ./xlat/skf_off.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SKF_AD_OFF) || (defined(HAVE_DECL_SKF_AD_OFF) && HAVE_DECL_SKF_AD_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_AD_OFF) == (-0x1000), "SKF_AD_OFF != -0x1000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SKF_AD_OFF -0x1000
+#endif
+#if defined(SKF_NET_OFF) || (defined(HAVE_DECL_SKF_NET_OFF) && HAVE_DECL_SKF_NET_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_NET_OFF) == (-0x100000), "SKF_NET_OFF != -0x100000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SKF_NET_OFF -0x100000
+#endif
+#if defined(SKF_LL_OFF) || (defined(HAVE_DECL_SKF_LL_OFF) && HAVE_DECL_SKF_LL_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SKF_LL_OFF) == (-0x200000), "SKF_LL_OFF != -0x200000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SKF_LL_OFF -0x200000
+#endif
diff --git a/xlat/skf_off.in b/xlat/skf_off.in
new file mode 100644
index 0000000..6db30a9
--- /dev/null
+++ b/xlat/skf_off.in
@@ -0,0 +1,4 @@
+SKF_AD_OFF -0x1000
+SKF_NET_OFF -0x100000
+SKF_LL_OFF -0x200000
+#stop
diff --git a/xlat/smc_diag_attrs.h b/xlat/smc_diag_attrs.h
index 84899ee..e6c0a4e 100644
--- a/xlat/smc_diag_attrs.h
+++ b/xlat/smc_diag_attrs.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/smc_diag_attrs.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat smc_diag_attrs in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat smc_diag_attrs in mpers mode
+
+# else
static
const struct xlat smc_diag_attrs[] = {
@@ -15,4 +21,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/smc_diag_extended_flags.h b/xlat/smc_diag_extended_flags.h
index 988dc94..48cb3a4 100644
--- a/xlat/smc_diag_extended_flags.h
+++ b/xlat/smc_diag_extended_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/smc_diag_extended_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat smc_diag_extended_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat smc_diag_extended_flags in mpers mode
+
+# else
static
const struct xlat smc_diag_extended_flags[] = {
@@ -13,4 +19,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/smc_link_group_roles.h b/xlat/smc_link_group_roles.h
index a52e853..24f2f5d 100644
--- a/xlat/smc_link_group_roles.h
+++ b/xlat/smc_link_group_roles.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/smc_link_group_roles.in; do not edit. */
-#if !(defined(SMC_CLNT) || (defined(HAVE_DECL_SMC_CLNT) && HAVE_DECL_SMC_CLNT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SMC_CLNT) || (defined(HAVE_DECL_SMC_CLNT) && HAVE_DECL_SMC_CLNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_CLNT) == (0), "SMC_CLNT != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_CLNT 0
#endif
-#if !(defined(SMC_SERV) || (defined(HAVE_DECL_SMC_SERV) && HAVE_DECL_SMC_SERV))
+#if defined(SMC_SERV) || (defined(HAVE_DECL_SMC_SERV) && HAVE_DECL_SMC_SERV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_SERV) == (1), "SMC_SERV != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_SERV 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat smc_link_group_roles in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat smc_link_group_roles in mpers mode
+
+# else
static
const struct xlat smc_link_group_roles[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/smc_protocols.h b/xlat/smc_protocols.h
new file mode 100644
index 0000000..18ab383
--- /dev/null
+++ b/xlat/smc_protocols.h
@@ -0,0 +1,38 @@
+/* Generated by ./xlat/gen.sh from ./xlat/smc_protocols.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MCPROTO_SMC) || (defined(HAVE_DECL_MCPROTO_SMC) && HAVE_DECL_MCPROTO_SMC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MCPROTO_SMC) == (0), "MCPROTO_SMC != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define MCPROTO_SMC 0
+#endif
+#if defined(SMCPROTO_SMC6) || (defined(HAVE_DECL_SMCPROTO_SMC6) && HAVE_DECL_SMCPROTO_SMC6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMCPROTO_SMC6) == (1), "SMCPROTO_SMC6 != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SMCPROTO_SMC6 1
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat smc_protocols in mpers mode
+
+# else
+
+static
+const struct xlat smc_protocols[] = {
+ [MCPROTO_SMC] = XLAT(MCPROTO_SMC),
+ [SMCPROTO_SMC6] = XLAT(SMCPROTO_SMC6),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/smc_protocols.in b/xlat/smc_protocols.in
new file mode 100644
index 0000000..3a65a39
--- /dev/null
+++ b/xlat/smc_protocols.in
@@ -0,0 +1,3 @@
+#value_indexed
+MCPROTO_SMC 0
+SMCPROTO_SMC6 1
diff --git a/xlat/smc_states.h b/xlat/smc_states.h
index a5371d7..e88a62c 100644
--- a/xlat/smc_states.h
+++ b/xlat/smc_states.h
@@ -1,46 +1,100 @@
/* Generated by ./xlat/gen.sh from ./xlat/smc_states.in; do not edit. */
-#if !(defined(SMC_ACTIVE) || (defined(HAVE_DECL_SMC_ACTIVE) && HAVE_DECL_SMC_ACTIVE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SMC_ACTIVE) || (defined(HAVE_DECL_SMC_ACTIVE) && HAVE_DECL_SMC_ACTIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_ACTIVE) == (1), "SMC_ACTIVE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_ACTIVE 1
#endif
-#if !(defined(SMC_INIT) || (defined(HAVE_DECL_SMC_INIT) && HAVE_DECL_SMC_INIT))
+#if defined(SMC_INIT) || (defined(HAVE_DECL_SMC_INIT) && HAVE_DECL_SMC_INIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_INIT) == (2), "SMC_INIT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_INIT 2
#endif
-#if !(defined(SMC_CLOSED) || (defined(HAVE_DECL_SMC_CLOSED) && HAVE_DECL_SMC_CLOSED))
+#if defined(SMC_CLOSED) || (defined(HAVE_DECL_SMC_CLOSED) && HAVE_DECL_SMC_CLOSED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_CLOSED) == (7), "SMC_CLOSED != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_CLOSED 7
#endif
-#if !(defined(SMC_LISTEN) || (defined(HAVE_DECL_SMC_LISTEN) && HAVE_DECL_SMC_LISTEN))
+#if defined(SMC_LISTEN) || (defined(HAVE_DECL_SMC_LISTEN) && HAVE_DECL_SMC_LISTEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_LISTEN) == (10), "SMC_LISTEN != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_LISTEN 10
#endif
-#if !(defined(SMC_PEERCLOSEWAIT1) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT1) && HAVE_DECL_SMC_PEERCLOSEWAIT1))
+#if defined(SMC_PEERCLOSEWAIT1) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT1) && HAVE_DECL_SMC_PEERCLOSEWAIT1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_PEERCLOSEWAIT1) == (20), "SMC_PEERCLOSEWAIT1 != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_PEERCLOSEWAIT1 20
#endif
-#if !(defined(SMC_PEERCLOSEWAIT2) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT2) && HAVE_DECL_SMC_PEERCLOSEWAIT2))
+#if defined(SMC_PEERCLOSEWAIT2) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT2) && HAVE_DECL_SMC_PEERCLOSEWAIT2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_PEERCLOSEWAIT2) == (21), "SMC_PEERCLOSEWAIT2 != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_PEERCLOSEWAIT2 21
#endif
-#if !(defined(SMC_APPFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_APPFINCLOSEWAIT) && HAVE_DECL_SMC_APPFINCLOSEWAIT))
+#if defined(SMC_APPFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_APPFINCLOSEWAIT) && HAVE_DECL_SMC_APPFINCLOSEWAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_APPFINCLOSEWAIT) == (24), "SMC_APPFINCLOSEWAIT != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_APPFINCLOSEWAIT 24
#endif
-#if !(defined(SMC_APPCLOSEWAIT1) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT1) && HAVE_DECL_SMC_APPCLOSEWAIT1))
+#if defined(SMC_APPCLOSEWAIT1) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT1) && HAVE_DECL_SMC_APPCLOSEWAIT1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_APPCLOSEWAIT1) == (22), "SMC_APPCLOSEWAIT1 != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_APPCLOSEWAIT1 22
#endif
-#if !(defined(SMC_APPCLOSEWAIT2) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT2) && HAVE_DECL_SMC_APPCLOSEWAIT2))
+#if defined(SMC_APPCLOSEWAIT2) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT2) && HAVE_DECL_SMC_APPCLOSEWAIT2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_APPCLOSEWAIT2) == (23), "SMC_APPCLOSEWAIT2 != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_APPCLOSEWAIT2 23
#endif
-#if !(defined(SMC_PEERFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_PEERFINCLOSEWAIT) && HAVE_DECL_SMC_PEERFINCLOSEWAIT))
+#if defined(SMC_PEERFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_PEERFINCLOSEWAIT) && HAVE_DECL_SMC_PEERFINCLOSEWAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_PEERFINCLOSEWAIT) == (25), "SMC_PEERFINCLOSEWAIT != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_PEERFINCLOSEWAIT 25
#endif
-#if !(defined(SMC_PEERABORTWAIT) || (defined(HAVE_DECL_SMC_PEERABORTWAIT) && HAVE_DECL_SMC_PEERABORTWAIT))
+#if defined(SMC_PEERABORTWAIT) || (defined(HAVE_DECL_SMC_PEERABORTWAIT) && HAVE_DECL_SMC_PEERABORTWAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_PEERABORTWAIT) == (26), "SMC_PEERABORTWAIT != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_PEERABORTWAIT 26
#endif
-#if !(defined(SMC_PROCESSABORT) || (defined(HAVE_DECL_SMC_PROCESSABORT) && HAVE_DECL_SMC_PROCESSABORT))
+#if defined(SMC_PROCESSABORT) || (defined(HAVE_DECL_SMC_PROCESSABORT) && HAVE_DECL_SMC_PROCESSABORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SMC_PROCESSABORT) == (27), "SMC_PROCESSABORT != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SMC_PROCESSABORT 27
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat smc_states in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat smc_states in mpers mode
+
+# else
static
const struct xlat smc_states[] = {
@@ -59,4 +113,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/snmp_icmp6_stats.h b/xlat/snmp_icmp6_stats.h
new file mode 100644
index 0000000..62553d5
--- /dev/null
+++ b/xlat/snmp_icmp6_stats.h
@@ -0,0 +1,70 @@
+/* Generated by ./xlat/gen.sh from ./xlat/snmp_icmp6_stats.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ICMP6_MIB_NUM) || (defined(HAVE_DECL_ICMP6_MIB_NUM) && HAVE_DECL_ICMP6_MIB_NUM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ICMP6_MIB_NUM) == (0), "ICMP6_MIB_NUM != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ICMP6_MIB_NUM 0
+#endif
+#if defined(ICMP6_MIB_INMSGS) || (defined(HAVE_DECL_ICMP6_MIB_INMSGS) && HAVE_DECL_ICMP6_MIB_INMSGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ICMP6_MIB_INMSGS) == (1), "ICMP6_MIB_INMSGS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ICMP6_MIB_INMSGS 1
+#endif
+#if defined(ICMP6_MIB_INERRORS) || (defined(HAVE_DECL_ICMP6_MIB_INERRORS) && HAVE_DECL_ICMP6_MIB_INERRORS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ICMP6_MIB_INERRORS) == (2), "ICMP6_MIB_INERRORS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ICMP6_MIB_INERRORS 2
+#endif
+#if defined(ICMP6_MIB_OUTMSGS) || (defined(HAVE_DECL_ICMP6_MIB_OUTMSGS) && HAVE_DECL_ICMP6_MIB_OUTMSGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ICMP6_MIB_OUTMSGS) == (3), "ICMP6_MIB_OUTMSGS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ICMP6_MIB_OUTMSGS 3
+#endif
+#if defined(ICMP6_MIB_OUTERRORS) || (defined(HAVE_DECL_ICMP6_MIB_OUTERRORS) && HAVE_DECL_ICMP6_MIB_OUTERRORS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ICMP6_MIB_OUTERRORS) == (4), "ICMP6_MIB_OUTERRORS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ICMP6_MIB_OUTERRORS 4
+#endif
+#if defined(ICMP6_MIB_CSUMERRORS) || (defined(HAVE_DECL_ICMP6_MIB_CSUMERRORS) && HAVE_DECL_ICMP6_MIB_CSUMERRORS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ICMP6_MIB_CSUMERRORS) == (5), "ICMP6_MIB_CSUMERRORS != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ICMP6_MIB_CSUMERRORS 5
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat snmp_icmp6_stats in mpers mode
+
+# else
+
+static
+const struct xlat snmp_icmp6_stats[] = {
+ [ICMP6_MIB_NUM] = XLAT(ICMP6_MIB_NUM),
+ [ICMP6_MIB_INMSGS] = XLAT(ICMP6_MIB_INMSGS),
+ [ICMP6_MIB_INERRORS] = XLAT(ICMP6_MIB_INERRORS),
+ [ICMP6_MIB_OUTMSGS] = XLAT(ICMP6_MIB_OUTMSGS),
+ [ICMP6_MIB_OUTERRORS] = XLAT(ICMP6_MIB_OUTERRORS),
+ [ICMP6_MIB_CSUMERRORS] = XLAT(ICMP6_MIB_CSUMERRORS),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/snmp_icmp6_stats.in b/xlat/snmp_icmp6_stats.in
new file mode 100644
index 0000000..ee4769e
--- /dev/null
+++ b/xlat/snmp_icmp6_stats.in
@@ -0,0 +1,7 @@
+#value_indexed
+ICMP6_MIB_NUM 0
+ICMP6_MIB_INMSGS 1
+ICMP6_MIB_INERRORS 2
+ICMP6_MIB_OUTMSGS 3
+ICMP6_MIB_OUTERRORS 4
+ICMP6_MIB_CSUMERRORS 5
diff --git a/xlat/snmp_ip_stats.h b/xlat/snmp_ip_stats.h
new file mode 100644
index 0000000..e2a4af9
--- /dev/null
+++ b/xlat/snmp_ip_stats.h
@@ -0,0 +1,310 @@
+/* Generated by ./xlat/gen.sh from ./xlat/snmp_ip_stats.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IPSTATS_MIB_NUM) || (defined(HAVE_DECL_IPSTATS_MIB_NUM) && HAVE_DECL_IPSTATS_MIB_NUM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_NUM) == (0), "IPSTATS_MIB_NUM != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_NUM 0
+#endif
+#if defined(IPSTATS_MIB_INPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_INPKTS) && HAVE_DECL_IPSTATS_MIB_INPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INPKTS) == (1), "IPSTATS_MIB_INPKTS != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INPKTS 1
+#endif
+#if defined(IPSTATS_MIB_INOCTETS) || (defined(HAVE_DECL_IPSTATS_MIB_INOCTETS) && HAVE_DECL_IPSTATS_MIB_INOCTETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INOCTETS) == (2), "IPSTATS_MIB_INOCTETS != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INOCTETS 2
+#endif
+#if defined(IPSTATS_MIB_INDELIVERS) || (defined(HAVE_DECL_IPSTATS_MIB_INDELIVERS) && HAVE_DECL_IPSTATS_MIB_INDELIVERS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INDELIVERS) == (3), "IPSTATS_MIB_INDELIVERS != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INDELIVERS 3
+#endif
+#if defined(IPSTATS_MIB_OUTFORWDATAGRAMS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTFORWDATAGRAMS) && HAVE_DECL_IPSTATS_MIB_OUTFORWDATAGRAMS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTFORWDATAGRAMS) == (4), "IPSTATS_MIB_OUTFORWDATAGRAMS != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTFORWDATAGRAMS 4
+#endif
+#if defined(IPSTATS_MIB_OUTPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTPKTS) && HAVE_DECL_IPSTATS_MIB_OUTPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTPKTS) == (5), "IPSTATS_MIB_OUTPKTS != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTPKTS 5
+#endif
+#if defined(IPSTATS_MIB_OUTOCTETS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTOCTETS) && HAVE_DECL_IPSTATS_MIB_OUTOCTETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTOCTETS) == (6), "IPSTATS_MIB_OUTOCTETS != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTOCTETS 6
+#endif
+#if defined(IPSTATS_MIB_INHDRERRORS) || (defined(HAVE_DECL_IPSTATS_MIB_INHDRERRORS) && HAVE_DECL_IPSTATS_MIB_INHDRERRORS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INHDRERRORS) == (7), "IPSTATS_MIB_INHDRERRORS != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INHDRERRORS 7
+#endif
+#if defined(IPSTATS_MIB_INTOOBIGERRORS) || (defined(HAVE_DECL_IPSTATS_MIB_INTOOBIGERRORS) && HAVE_DECL_IPSTATS_MIB_INTOOBIGERRORS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INTOOBIGERRORS) == (8), "IPSTATS_MIB_INTOOBIGERRORS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INTOOBIGERRORS 8
+#endif
+#if defined(IPSTATS_MIB_INNOROUTES) || (defined(HAVE_DECL_IPSTATS_MIB_INNOROUTES) && HAVE_DECL_IPSTATS_MIB_INNOROUTES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INNOROUTES) == (9), "IPSTATS_MIB_INNOROUTES != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INNOROUTES 9
+#endif
+#if defined(IPSTATS_MIB_INADDRERRORS) || (defined(HAVE_DECL_IPSTATS_MIB_INADDRERRORS) && HAVE_DECL_IPSTATS_MIB_INADDRERRORS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INADDRERRORS) == (10), "IPSTATS_MIB_INADDRERRORS != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INADDRERRORS 10
+#endif
+#if defined(IPSTATS_MIB_INUNKNOWNPROTOS) || (defined(HAVE_DECL_IPSTATS_MIB_INUNKNOWNPROTOS) && HAVE_DECL_IPSTATS_MIB_INUNKNOWNPROTOS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INUNKNOWNPROTOS) == (11), "IPSTATS_MIB_INUNKNOWNPROTOS != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INUNKNOWNPROTOS 11
+#endif
+#if defined(IPSTATS_MIB_INTRUNCATEDPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_INTRUNCATEDPKTS) && HAVE_DECL_IPSTATS_MIB_INTRUNCATEDPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INTRUNCATEDPKTS) == (12), "IPSTATS_MIB_INTRUNCATEDPKTS != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INTRUNCATEDPKTS 12
+#endif
+#if defined(IPSTATS_MIB_INDISCARDS) || (defined(HAVE_DECL_IPSTATS_MIB_INDISCARDS) && HAVE_DECL_IPSTATS_MIB_INDISCARDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INDISCARDS) == (13), "IPSTATS_MIB_INDISCARDS != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INDISCARDS 13
+#endif
+#if defined(IPSTATS_MIB_OUTDISCARDS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTDISCARDS) && HAVE_DECL_IPSTATS_MIB_OUTDISCARDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTDISCARDS) == (14), "IPSTATS_MIB_OUTDISCARDS != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTDISCARDS 14
+#endif
+#if defined(IPSTATS_MIB_OUTNOROUTES) || (defined(HAVE_DECL_IPSTATS_MIB_OUTNOROUTES) && HAVE_DECL_IPSTATS_MIB_OUTNOROUTES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTNOROUTES) == (15), "IPSTATS_MIB_OUTNOROUTES != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTNOROUTES 15
+#endif
+#if defined(IPSTATS_MIB_REASMTIMEOUT) || (defined(HAVE_DECL_IPSTATS_MIB_REASMTIMEOUT) && HAVE_DECL_IPSTATS_MIB_REASMTIMEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_REASMTIMEOUT) == (16), "IPSTATS_MIB_REASMTIMEOUT != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_REASMTIMEOUT 16
+#endif
+#if defined(IPSTATS_MIB_REASMREQDS) || (defined(HAVE_DECL_IPSTATS_MIB_REASMREQDS) && HAVE_DECL_IPSTATS_MIB_REASMREQDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_REASMREQDS) == (17), "IPSTATS_MIB_REASMREQDS != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_REASMREQDS 17
+#endif
+#if defined(IPSTATS_MIB_REASMOKS) || (defined(HAVE_DECL_IPSTATS_MIB_REASMOKS) && HAVE_DECL_IPSTATS_MIB_REASMOKS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_REASMOKS) == (18), "IPSTATS_MIB_REASMOKS != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_REASMOKS 18
+#endif
+#if defined(IPSTATS_MIB_REASMFAILS) || (defined(HAVE_DECL_IPSTATS_MIB_REASMFAILS) && HAVE_DECL_IPSTATS_MIB_REASMFAILS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_REASMFAILS) == (19), "IPSTATS_MIB_REASMFAILS != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_REASMFAILS 19
+#endif
+#if defined(IPSTATS_MIB_FRAGOKS) || (defined(HAVE_DECL_IPSTATS_MIB_FRAGOKS) && HAVE_DECL_IPSTATS_MIB_FRAGOKS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_FRAGOKS) == (20), "IPSTATS_MIB_FRAGOKS != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_FRAGOKS 20
+#endif
+#if defined(IPSTATS_MIB_FRAGFAILS) || (defined(HAVE_DECL_IPSTATS_MIB_FRAGFAILS) && HAVE_DECL_IPSTATS_MIB_FRAGFAILS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_FRAGFAILS) == (21), "IPSTATS_MIB_FRAGFAILS != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_FRAGFAILS 21
+#endif
+#if defined(IPSTATS_MIB_FRAGCREATES) || (defined(HAVE_DECL_IPSTATS_MIB_FRAGCREATES) && HAVE_DECL_IPSTATS_MIB_FRAGCREATES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_FRAGCREATES) == (22), "IPSTATS_MIB_FRAGCREATES != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_FRAGCREATES 22
+#endif
+#if defined(IPSTATS_MIB_INMCASTPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_INMCASTPKTS) && HAVE_DECL_IPSTATS_MIB_INMCASTPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INMCASTPKTS) == (23), "IPSTATS_MIB_INMCASTPKTS != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INMCASTPKTS 23
+#endif
+#if defined(IPSTATS_MIB_OUTMCASTPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTMCASTPKTS) && HAVE_DECL_IPSTATS_MIB_OUTMCASTPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTMCASTPKTS) == (24), "IPSTATS_MIB_OUTMCASTPKTS != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTMCASTPKTS 24
+#endif
+#if defined(IPSTATS_MIB_INBCASTPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_INBCASTPKTS) && HAVE_DECL_IPSTATS_MIB_INBCASTPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INBCASTPKTS) == (25), "IPSTATS_MIB_INBCASTPKTS != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INBCASTPKTS 25
+#endif
+#if defined(IPSTATS_MIB_OUTBCASTPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTBCASTPKTS) && HAVE_DECL_IPSTATS_MIB_OUTBCASTPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTBCASTPKTS) == (26), "IPSTATS_MIB_OUTBCASTPKTS != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTBCASTPKTS 26
+#endif
+#if defined(IPSTATS_MIB_INMCASTOCTETS) || (defined(HAVE_DECL_IPSTATS_MIB_INMCASTOCTETS) && HAVE_DECL_IPSTATS_MIB_INMCASTOCTETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INMCASTOCTETS) == (27), "IPSTATS_MIB_INMCASTOCTETS != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INMCASTOCTETS 27
+#endif
+#if defined(IPSTATS_MIB_OUTMCASTOCTETS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTMCASTOCTETS) && HAVE_DECL_IPSTATS_MIB_OUTMCASTOCTETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTMCASTOCTETS) == (28), "IPSTATS_MIB_OUTMCASTOCTETS != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTMCASTOCTETS 28
+#endif
+#if defined(IPSTATS_MIB_INBCASTOCTETS) || (defined(HAVE_DECL_IPSTATS_MIB_INBCASTOCTETS) && HAVE_DECL_IPSTATS_MIB_INBCASTOCTETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_INBCASTOCTETS) == (29), "IPSTATS_MIB_INBCASTOCTETS != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_INBCASTOCTETS 29
+#endif
+#if defined(IPSTATS_MIB_OUTBCASTOCTETS) || (defined(HAVE_DECL_IPSTATS_MIB_OUTBCASTOCTETS) && HAVE_DECL_IPSTATS_MIB_OUTBCASTOCTETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_OUTBCASTOCTETS) == (30), "IPSTATS_MIB_OUTBCASTOCTETS != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_OUTBCASTOCTETS 30
+#endif
+#if defined(IPSTATS_MIB_CSUMERRORS) || (defined(HAVE_DECL_IPSTATS_MIB_CSUMERRORS) && HAVE_DECL_IPSTATS_MIB_CSUMERRORS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_CSUMERRORS) == (31), "IPSTATS_MIB_CSUMERRORS != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_CSUMERRORS 31
+#endif
+#if defined(IPSTATS_MIB_NOECTPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_NOECTPKTS) && HAVE_DECL_IPSTATS_MIB_NOECTPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_NOECTPKTS) == (32), "IPSTATS_MIB_NOECTPKTS != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_NOECTPKTS 32
+#endif
+#if defined(IPSTATS_MIB_ECT1PKTS) || (defined(HAVE_DECL_IPSTATS_MIB_ECT1PKTS) && HAVE_DECL_IPSTATS_MIB_ECT1PKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_ECT1PKTS) == (33), "IPSTATS_MIB_ECT1PKTS != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_ECT1PKTS 33
+#endif
+#if defined(IPSTATS_MIB_ECT0PKTS) || (defined(HAVE_DECL_IPSTATS_MIB_ECT0PKTS) && HAVE_DECL_IPSTATS_MIB_ECT0PKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_ECT0PKTS) == (34), "IPSTATS_MIB_ECT0PKTS != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_ECT0PKTS 34
+#endif
+#if defined(IPSTATS_MIB_CEPKTS) || (defined(HAVE_DECL_IPSTATS_MIB_CEPKTS) && HAVE_DECL_IPSTATS_MIB_CEPKTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IPSTATS_MIB_CEPKTS) == (35), "IPSTATS_MIB_CEPKTS != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IPSTATS_MIB_CEPKTS 35
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat snmp_ip_stats in mpers mode
+
+# else
+
+static
+const struct xlat snmp_ip_stats[] = {
+ [IPSTATS_MIB_NUM] = XLAT(IPSTATS_MIB_NUM),
+ [IPSTATS_MIB_INPKTS] = XLAT(IPSTATS_MIB_INPKTS),
+ [IPSTATS_MIB_INOCTETS] = XLAT(IPSTATS_MIB_INOCTETS),
+ [IPSTATS_MIB_INDELIVERS] = XLAT(IPSTATS_MIB_INDELIVERS),
+ [IPSTATS_MIB_OUTFORWDATAGRAMS] = XLAT(IPSTATS_MIB_OUTFORWDATAGRAMS),
+ [IPSTATS_MIB_OUTPKTS] = XLAT(IPSTATS_MIB_OUTPKTS),
+ [IPSTATS_MIB_OUTOCTETS] = XLAT(IPSTATS_MIB_OUTOCTETS),
+ [IPSTATS_MIB_INHDRERRORS] = XLAT(IPSTATS_MIB_INHDRERRORS),
+ [IPSTATS_MIB_INTOOBIGERRORS] = XLAT(IPSTATS_MIB_INTOOBIGERRORS),
+ [IPSTATS_MIB_INNOROUTES] = XLAT(IPSTATS_MIB_INNOROUTES),
+ [IPSTATS_MIB_INADDRERRORS] = XLAT(IPSTATS_MIB_INADDRERRORS),
+ [IPSTATS_MIB_INUNKNOWNPROTOS] = XLAT(IPSTATS_MIB_INUNKNOWNPROTOS),
+ [IPSTATS_MIB_INTRUNCATEDPKTS] = XLAT(IPSTATS_MIB_INTRUNCATEDPKTS),
+ [IPSTATS_MIB_INDISCARDS] = XLAT(IPSTATS_MIB_INDISCARDS),
+ [IPSTATS_MIB_OUTDISCARDS] = XLAT(IPSTATS_MIB_OUTDISCARDS),
+ [IPSTATS_MIB_OUTNOROUTES] = XLAT(IPSTATS_MIB_OUTNOROUTES),
+ [IPSTATS_MIB_REASMTIMEOUT] = XLAT(IPSTATS_MIB_REASMTIMEOUT),
+ [IPSTATS_MIB_REASMREQDS] = XLAT(IPSTATS_MIB_REASMREQDS),
+ [IPSTATS_MIB_REASMOKS] = XLAT(IPSTATS_MIB_REASMOKS),
+ [IPSTATS_MIB_REASMFAILS] = XLAT(IPSTATS_MIB_REASMFAILS),
+ [IPSTATS_MIB_FRAGOKS] = XLAT(IPSTATS_MIB_FRAGOKS),
+ [IPSTATS_MIB_FRAGFAILS] = XLAT(IPSTATS_MIB_FRAGFAILS),
+ [IPSTATS_MIB_FRAGCREATES] = XLAT(IPSTATS_MIB_FRAGCREATES),
+ [IPSTATS_MIB_INMCASTPKTS] = XLAT(IPSTATS_MIB_INMCASTPKTS),
+ [IPSTATS_MIB_OUTMCASTPKTS] = XLAT(IPSTATS_MIB_OUTMCASTPKTS),
+ [IPSTATS_MIB_INBCASTPKTS] = XLAT(IPSTATS_MIB_INBCASTPKTS),
+ [IPSTATS_MIB_OUTBCASTPKTS] = XLAT(IPSTATS_MIB_OUTBCASTPKTS),
+ [IPSTATS_MIB_INMCASTOCTETS] = XLAT(IPSTATS_MIB_INMCASTOCTETS),
+ [IPSTATS_MIB_OUTMCASTOCTETS] = XLAT(IPSTATS_MIB_OUTMCASTOCTETS),
+ [IPSTATS_MIB_INBCASTOCTETS] = XLAT(IPSTATS_MIB_INBCASTOCTETS),
+ [IPSTATS_MIB_OUTBCASTOCTETS] = XLAT(IPSTATS_MIB_OUTBCASTOCTETS),
+ [IPSTATS_MIB_CSUMERRORS] = XLAT(IPSTATS_MIB_CSUMERRORS),
+ [IPSTATS_MIB_NOECTPKTS] = XLAT(IPSTATS_MIB_NOECTPKTS),
+ [IPSTATS_MIB_ECT1PKTS] = XLAT(IPSTATS_MIB_ECT1PKTS),
+ [IPSTATS_MIB_ECT0PKTS] = XLAT(IPSTATS_MIB_ECT0PKTS),
+ [IPSTATS_MIB_CEPKTS] = XLAT(IPSTATS_MIB_CEPKTS),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/snmp_ip_stats.in b/xlat/snmp_ip_stats.in
new file mode 100644
index 0000000..4bfb7ee
--- /dev/null
+++ b/xlat/snmp_ip_stats.in
@@ -0,0 +1,37 @@
+#value_indexed
+IPSTATS_MIB_NUM 0
+IPSTATS_MIB_INPKTS 1
+IPSTATS_MIB_INOCTETS 2
+IPSTATS_MIB_INDELIVERS 3
+IPSTATS_MIB_OUTFORWDATAGRAMS 4
+IPSTATS_MIB_OUTPKTS 5
+IPSTATS_MIB_OUTOCTETS 6
+IPSTATS_MIB_INHDRERRORS 7
+IPSTATS_MIB_INTOOBIGERRORS 8
+IPSTATS_MIB_INNOROUTES 9
+IPSTATS_MIB_INADDRERRORS 10
+IPSTATS_MIB_INUNKNOWNPROTOS 11
+IPSTATS_MIB_INTRUNCATEDPKTS 12
+IPSTATS_MIB_INDISCARDS 13
+IPSTATS_MIB_OUTDISCARDS 14
+IPSTATS_MIB_OUTNOROUTES 15
+IPSTATS_MIB_REASMTIMEOUT 16
+IPSTATS_MIB_REASMREQDS 17
+IPSTATS_MIB_REASMOKS 18
+IPSTATS_MIB_REASMFAILS 19
+IPSTATS_MIB_FRAGOKS 20
+IPSTATS_MIB_FRAGFAILS 21
+IPSTATS_MIB_FRAGCREATES 22
+IPSTATS_MIB_INMCASTPKTS 23
+IPSTATS_MIB_OUTMCASTPKTS 24
+IPSTATS_MIB_INBCASTPKTS 25
+IPSTATS_MIB_OUTBCASTPKTS 26
+IPSTATS_MIB_INMCASTOCTETS 27
+IPSTATS_MIB_OUTMCASTOCTETS 28
+IPSTATS_MIB_INBCASTOCTETS 29
+IPSTATS_MIB_OUTBCASTOCTETS 30
+IPSTATS_MIB_CSUMERRORS 31
+IPSTATS_MIB_NOECTPKTS 32
+IPSTATS_MIB_ECT1PKTS 33
+IPSTATS_MIB_ECT0PKTS 34
+IPSTATS_MIB_CEPKTS 35
diff --git a/xlat/sock_alg_options.h b/xlat/sock_alg_options.h
new file mode 100644
index 0000000..41b00a9
--- /dev/null
+++ b/xlat/sock_alg_options.h
@@ -0,0 +1,62 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_alg_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ALG_SET_KEY) || (defined(HAVE_DECL_ALG_SET_KEY) && HAVE_DECL_ALG_SET_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ALG_SET_KEY) == (1), "ALG_SET_KEY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ALG_SET_KEY 1
+#endif
+#if defined(ALG_SET_IV) || (defined(HAVE_DECL_ALG_SET_IV) && HAVE_DECL_ALG_SET_IV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ALG_SET_IV) == (2), "ALG_SET_IV != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ALG_SET_IV 2
+#endif
+#if defined(ALG_SET_OP) || (defined(HAVE_DECL_ALG_SET_OP) && HAVE_DECL_ALG_SET_OP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ALG_SET_OP) == (3), "ALG_SET_OP != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ALG_SET_OP 3
+#endif
+#if defined(ALG_SET_AEAD_ASSOCLEN) || (defined(HAVE_DECL_ALG_SET_AEAD_ASSOCLEN) && HAVE_DECL_ALG_SET_AEAD_ASSOCLEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ALG_SET_AEAD_ASSOCLEN) == (4), "ALG_SET_AEAD_ASSOCLEN != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ALG_SET_AEAD_ASSOCLEN 4
+#endif
+#if defined(ALG_SET_AEAD_AUTHSIZE) || (defined(HAVE_DECL_ALG_SET_AEAD_AUTHSIZE) && HAVE_DECL_ALG_SET_AEAD_AUTHSIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ALG_SET_AEAD_AUTHSIZE) == (5), "ALG_SET_AEAD_AUTHSIZE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define ALG_SET_AEAD_AUTHSIZE 5
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_alg_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_alg_options[] = {
+ [ALG_SET_KEY] = XLAT(ALG_SET_KEY),
+ [ALG_SET_IV] = XLAT(ALG_SET_IV),
+ [ALG_SET_OP] = XLAT(ALG_SET_OP),
+ [ALG_SET_AEAD_ASSOCLEN] = XLAT(ALG_SET_AEAD_ASSOCLEN),
+ [ALG_SET_AEAD_AUTHSIZE] = XLAT(ALG_SET_AEAD_AUTHSIZE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_alg_options.in b/xlat/sock_alg_options.in
new file mode 100644
index 0000000..a1fb4a1
--- /dev/null
+++ b/xlat/sock_alg_options.in
@@ -0,0 +1,6 @@
+#value_indexed
+ALG_SET_KEY 1
+ALG_SET_IV 2
+ALG_SET_OP 3
+ALG_SET_AEAD_ASSOCLEN 4
+ALG_SET_AEAD_AUTHSIZE 5
diff --git a/xlat/sock_bluetooth_options.h b/xlat/sock_bluetooth_options.h
new file mode 100644
index 0000000..4a57abd
--- /dev/null
+++ b/xlat/sock_bluetooth_options.h
@@ -0,0 +1,87 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_bluetooth_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(BT_SECURITY) || (defined(HAVE_DECL_BT_SECURITY) && HAVE_DECL_BT_SECURITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_SECURITY) == (4), "BT_SECURITY != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_SECURITY 4
+#endif
+#if defined(BT_DEFER_SETUP) || (defined(HAVE_DECL_BT_DEFER_SETUP) && HAVE_DECL_BT_DEFER_SETUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_DEFER_SETUP) == (7), "BT_DEFER_SETUP != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_DEFER_SETUP 7
+#endif
+#if defined(BT_FLUSHABLE) || (defined(HAVE_DECL_BT_FLUSHABLE) && HAVE_DECL_BT_FLUSHABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_FLUSHABLE) == (8), "BT_FLUSHABLE != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_FLUSHABLE 8
+#endif
+#if defined(BT_POWER) || (defined(HAVE_DECL_BT_POWER) && HAVE_DECL_BT_POWER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_POWER) == (9), "BT_POWER != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_POWER 9
+#endif
+#if defined(BT_CHANNEL_POLICY) || (defined(HAVE_DECL_BT_CHANNEL_POLICY) && HAVE_DECL_BT_CHANNEL_POLICY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_CHANNEL_POLICY) == (10), "BT_CHANNEL_POLICY != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_CHANNEL_POLICY 10
+#endif
+#if defined(BT_VOICE) || (defined(HAVE_DECL_BT_VOICE) && HAVE_DECL_BT_VOICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_VOICE) == (11), "BT_VOICE != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_VOICE 11
+#endif
+#if defined(BT_SNDMTU) || (defined(HAVE_DECL_BT_SNDMTU) && HAVE_DECL_BT_SNDMTU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_SNDMTU) == (12), "BT_SNDMTU != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_SNDMTU 12
+#endif
+#if defined(BT_RCVMTU) || (defined(HAVE_DECL_BT_RCVMTU) && HAVE_DECL_BT_RCVMTU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((BT_RCVMTU) == (13), "BT_RCVMTU != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define BT_RCVMTU 13
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_bluetooth_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_bluetooth_options[] = {
+
+ XLAT(BT_SECURITY),
+ XLAT(BT_DEFER_SETUP),
+ XLAT(BT_FLUSHABLE),
+ XLAT(BT_POWER),
+ XLAT(BT_CHANNEL_POLICY),
+ XLAT(BT_VOICE),
+ XLAT(BT_SNDMTU),
+ XLAT(BT_RCVMTU),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_bluetooth_options.in b/xlat/sock_bluetooth_options.in
new file mode 100644
index 0000000..919b21b
--- /dev/null
+++ b/xlat/sock_bluetooth_options.in
@@ -0,0 +1,9 @@
+/* sort -k2,2n */
+BT_SECURITY 4
+BT_DEFER_SETUP 7
+BT_FLUSHABLE 8
+BT_POWER 9
+BT_CHANNEL_POLICY 10
+BT_VOICE 11
+BT_SNDMTU 12
+BT_RCVMTU 13
diff --git a/xlat/sock_caif_options.h b/xlat/sock_caif_options.h
new file mode 100644
index 0000000..1066132
--- /dev/null
+++ b/xlat/sock_caif_options.h
@@ -0,0 +1,46 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_caif_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(CAIFSO_LINK_SELECT) || (defined(HAVE_DECL_CAIFSO_LINK_SELECT) && HAVE_DECL_CAIFSO_LINK_SELECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFSO_LINK_SELECT) == (127), "CAIFSO_LINK_SELECT != 127");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFSO_LINK_SELECT 127
+#endif
+#if defined(CAIFSO_REQ_PARAM) || (defined(HAVE_DECL_CAIFSO_REQ_PARAM) && HAVE_DECL_CAIFSO_REQ_PARAM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFSO_REQ_PARAM) == (128), "CAIFSO_REQ_PARAM != 128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFSO_REQ_PARAM 128
+#endif
+#if defined(CAIFSO_RSP_PARAM) || (defined(HAVE_DECL_CAIFSO_RSP_PARAM) && HAVE_DECL_CAIFSO_RSP_PARAM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((CAIFSO_RSP_PARAM) == (129), "CAIFSO_RSP_PARAM != 129");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define CAIFSO_RSP_PARAM 129
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_caif_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_caif_options[] = {
+ XLAT(CAIFSO_LINK_SELECT),
+ XLAT(CAIFSO_REQ_PARAM),
+ XLAT(CAIFSO_RSP_PARAM),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_caif_options.in b/xlat/sock_caif_options.in
new file mode 100644
index 0000000..5e1c044
--- /dev/null
+++ b/xlat/sock_caif_options.in
@@ -0,0 +1,3 @@
+CAIFSO_LINK_SELECT 127
+CAIFSO_REQ_PARAM 128
+CAIFSO_RSP_PARAM 129
diff --git a/xlat/sock_dccp_options.h b/xlat/sock_dccp_options.h
new file mode 100644
index 0000000..41b487c
--- /dev/null
+++ b/xlat/sock_dccp_options.h
@@ -0,0 +1,151 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_dccp_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(DCCP_SOCKOPT_PACKET_SIZE) || (defined(HAVE_DECL_DCCP_SOCKOPT_PACKET_SIZE) && HAVE_DECL_DCCP_SOCKOPT_PACKET_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_PACKET_SIZE) == (1), "DCCP_SOCKOPT_PACKET_SIZE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_PACKET_SIZE 1
+#endif
+#if defined(DCCP_SOCKOPT_SERVICE) || (defined(HAVE_DECL_DCCP_SOCKOPT_SERVICE) && HAVE_DECL_DCCP_SOCKOPT_SERVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_SERVICE) == (2), "DCCP_SOCKOPT_SERVICE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_SERVICE 2
+#endif
+#if defined(DCCP_SOCKOPT_CHANGE_L) || (defined(HAVE_DECL_DCCP_SOCKOPT_CHANGE_L) && HAVE_DECL_DCCP_SOCKOPT_CHANGE_L)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_CHANGE_L) == (3), "DCCP_SOCKOPT_CHANGE_L != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_CHANGE_L 3
+#endif
+#if defined(DCCP_SOCKOPT_CHANGE_R) || (defined(HAVE_DECL_DCCP_SOCKOPT_CHANGE_R) && HAVE_DECL_DCCP_SOCKOPT_CHANGE_R)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_CHANGE_R) == (4), "DCCP_SOCKOPT_CHANGE_R != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_CHANGE_R 4
+#endif
+#if defined(DCCP_SOCKOPT_GET_CUR_MPS) || (defined(HAVE_DECL_DCCP_SOCKOPT_GET_CUR_MPS) && HAVE_DECL_DCCP_SOCKOPT_GET_CUR_MPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_GET_CUR_MPS) == (5), "DCCP_SOCKOPT_GET_CUR_MPS != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_GET_CUR_MPS 5
+#endif
+#if defined(DCCP_SOCKOPT_SERVER_TIMEWAIT) || (defined(HAVE_DECL_DCCP_SOCKOPT_SERVER_TIMEWAIT) && HAVE_DECL_DCCP_SOCKOPT_SERVER_TIMEWAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_SERVER_TIMEWAIT) == (6), "DCCP_SOCKOPT_SERVER_TIMEWAIT != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_SERVER_TIMEWAIT 6
+#endif
+#if defined(DCCP_SOCKOPT_SEND_CSCOV) || (defined(HAVE_DECL_DCCP_SOCKOPT_SEND_CSCOV) && HAVE_DECL_DCCP_SOCKOPT_SEND_CSCOV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_SEND_CSCOV) == (10), "DCCP_SOCKOPT_SEND_CSCOV != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_SEND_CSCOV 10
+#endif
+#if defined(DCCP_SOCKOPT_RECV_CSCOV) || (defined(HAVE_DECL_DCCP_SOCKOPT_RECV_CSCOV) && HAVE_DECL_DCCP_SOCKOPT_RECV_CSCOV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_RECV_CSCOV) == (11), "DCCP_SOCKOPT_RECV_CSCOV != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_RECV_CSCOV 11
+#endif
+#if defined(DCCP_SOCKOPT_AVAILABLE_CCIDS) || (defined(HAVE_DECL_DCCP_SOCKOPT_AVAILABLE_CCIDS) && HAVE_DECL_DCCP_SOCKOPT_AVAILABLE_CCIDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_AVAILABLE_CCIDS) == (12), "DCCP_SOCKOPT_AVAILABLE_CCIDS != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_AVAILABLE_CCIDS 12
+#endif
+#if defined(DCCP_SOCKOPT_CCID) || (defined(HAVE_DECL_DCCP_SOCKOPT_CCID) && HAVE_DECL_DCCP_SOCKOPT_CCID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_CCID) == (13), "DCCP_SOCKOPT_CCID != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_CCID 13
+#endif
+#if defined(DCCP_SOCKOPT_TX_CCID) || (defined(HAVE_DECL_DCCP_SOCKOPT_TX_CCID) && HAVE_DECL_DCCP_SOCKOPT_TX_CCID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_TX_CCID) == (14), "DCCP_SOCKOPT_TX_CCID != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_TX_CCID 14
+#endif
+#if defined(DCCP_SOCKOPT_RX_CCID) || (defined(HAVE_DECL_DCCP_SOCKOPT_RX_CCID) && HAVE_DECL_DCCP_SOCKOPT_RX_CCID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_RX_CCID) == (15), "DCCP_SOCKOPT_RX_CCID != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_RX_CCID 15
+#endif
+#if defined(DCCP_SOCKOPT_QPOLICY_ID) || (defined(HAVE_DECL_DCCP_SOCKOPT_QPOLICY_ID) && HAVE_DECL_DCCP_SOCKOPT_QPOLICY_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_QPOLICY_ID) == (16), "DCCP_SOCKOPT_QPOLICY_ID != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_QPOLICY_ID 16
+#endif
+#if defined(DCCP_SOCKOPT_QPOLICY_TXQLEN) || (defined(HAVE_DECL_DCCP_SOCKOPT_QPOLICY_TXQLEN) && HAVE_DECL_DCCP_SOCKOPT_QPOLICY_TXQLEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_QPOLICY_TXQLEN) == (17), "DCCP_SOCKOPT_QPOLICY_TXQLEN != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_QPOLICY_TXQLEN 17
+#endif
+#if defined(DCCP_SOCKOPT_CCID_RX_INFO) || (defined(HAVE_DECL_DCCP_SOCKOPT_CCID_RX_INFO) && HAVE_DECL_DCCP_SOCKOPT_CCID_RX_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_CCID_RX_INFO) == (128), "DCCP_SOCKOPT_CCID_RX_INFO != 128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_CCID_RX_INFO 128
+#endif
+#if defined(DCCP_SOCKOPT_CCID_TX_INFO) || (defined(HAVE_DECL_DCCP_SOCKOPT_CCID_TX_INFO) && HAVE_DECL_DCCP_SOCKOPT_CCID_TX_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((DCCP_SOCKOPT_CCID_TX_INFO) == (192), "DCCP_SOCKOPT_CCID_TX_INFO != 192");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define DCCP_SOCKOPT_CCID_TX_INFO 192
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_dccp_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_dccp_options[] = {
+
+ XLAT(DCCP_SOCKOPT_PACKET_SIZE),
+ XLAT(DCCP_SOCKOPT_SERVICE),
+ XLAT(DCCP_SOCKOPT_CHANGE_L),
+ XLAT(DCCP_SOCKOPT_CHANGE_R),
+ XLAT(DCCP_SOCKOPT_GET_CUR_MPS),
+ XLAT(DCCP_SOCKOPT_SERVER_TIMEWAIT),
+ XLAT(DCCP_SOCKOPT_SEND_CSCOV),
+ XLAT(DCCP_SOCKOPT_RECV_CSCOV),
+ XLAT(DCCP_SOCKOPT_AVAILABLE_CCIDS),
+ XLAT(DCCP_SOCKOPT_CCID),
+ XLAT(DCCP_SOCKOPT_TX_CCID),
+ XLAT(DCCP_SOCKOPT_RX_CCID),
+ XLAT(DCCP_SOCKOPT_QPOLICY_ID),
+ XLAT(DCCP_SOCKOPT_QPOLICY_TXQLEN),
+ XLAT(DCCP_SOCKOPT_CCID_RX_INFO),
+ XLAT(DCCP_SOCKOPT_CCID_TX_INFO),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_dccp_options.in b/xlat/sock_dccp_options.in
new file mode 100644
index 0000000..06a0efe
--- /dev/null
+++ b/xlat/sock_dccp_options.in
@@ -0,0 +1,17 @@
+/* sort -k2,2n */
+DCCP_SOCKOPT_PACKET_SIZE 1
+DCCP_SOCKOPT_SERVICE 2
+DCCP_SOCKOPT_CHANGE_L 3
+DCCP_SOCKOPT_CHANGE_R 4
+DCCP_SOCKOPT_GET_CUR_MPS 5
+DCCP_SOCKOPT_SERVER_TIMEWAIT 6
+DCCP_SOCKOPT_SEND_CSCOV 10
+DCCP_SOCKOPT_RECV_CSCOV 11
+DCCP_SOCKOPT_AVAILABLE_CCIDS 12
+DCCP_SOCKOPT_CCID 13
+DCCP_SOCKOPT_TX_CCID 14
+DCCP_SOCKOPT_RX_CCID 15
+DCCP_SOCKOPT_QPOLICY_ID 16
+DCCP_SOCKOPT_QPOLICY_TXQLEN 17
+DCCP_SOCKOPT_CCID_RX_INFO 128
+DCCP_SOCKOPT_CCID_TX_INFO 192
diff --git a/xlat/sock_ip_options.h b/xlat/sock_ip_options.h
new file mode 100644
index 0000000..496db57
--- /dev/null
+++ b/xlat/sock_ip_options.h
@@ -0,0 +1,172 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_ip_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 sock_ip_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_ip_options[] = {
+#if defined(IP_TOS) || (defined(HAVE_DECL_IP_TOS) && HAVE_DECL_IP_TOS)
+ XLAT(IP_TOS),
+#endif
+#if defined(IP_TTL) || (defined(HAVE_DECL_IP_TTL) && HAVE_DECL_IP_TTL)
+ XLAT(IP_TTL),
+#endif
+#if defined(IP_HDRINCL) || (defined(HAVE_DECL_IP_HDRINCL) && HAVE_DECL_IP_HDRINCL)
+ XLAT(IP_HDRINCL),
+#endif
+#if defined(IP_OPTIONS) || (defined(HAVE_DECL_IP_OPTIONS) && HAVE_DECL_IP_OPTIONS)
+ XLAT(IP_OPTIONS),
+#endif
+#if defined(IP_ROUTER_ALERT) || (defined(HAVE_DECL_IP_ROUTER_ALERT) && HAVE_DECL_IP_ROUTER_ALERT)
+ XLAT(IP_ROUTER_ALERT),
+#endif
+#if defined(IP_RECVOPTIONS) || (defined(HAVE_DECL_IP_RECVOPTIONS) && HAVE_DECL_IP_RECVOPTIONS)
+ XLAT(IP_RECVOPTIONS),
+#endif
+#if defined(IP_RECVOPTS) || (defined(HAVE_DECL_IP_RECVOPTS) && HAVE_DECL_IP_RECVOPTS)
+ XLAT(IP_RECVOPTS),
+#endif
+#if defined(IP_RETOPTS) || (defined(HAVE_DECL_IP_RETOPTS) && HAVE_DECL_IP_RETOPTS)
+ XLAT(IP_RETOPTS),
+#endif
+#if defined(IP_RECVRETOPTS) || (defined(HAVE_DECL_IP_RECVRETOPTS) && HAVE_DECL_IP_RECVRETOPTS)
+ XLAT(IP_RECVRETOPTS),
+#endif
+#if defined(IP_RECVDSTADDR) || (defined(HAVE_DECL_IP_RECVDSTADDR) && HAVE_DECL_IP_RECVDSTADDR)
+ XLAT(IP_RECVDSTADDR),
+#endif
+#if defined(IP_PKTINFO) || (defined(HAVE_DECL_IP_PKTINFO) && HAVE_DECL_IP_PKTINFO)
+ XLAT(IP_PKTINFO),
+#endif
+#if defined(IP_PKTOPTIONS) || (defined(HAVE_DECL_IP_PKTOPTIONS) && HAVE_DECL_IP_PKTOPTIONS)
+ XLAT(IP_PKTOPTIONS),
+#endif
+#if defined(IP_MTU_DISCOVER) || (defined(HAVE_DECL_IP_MTU_DISCOVER) && HAVE_DECL_IP_MTU_DISCOVER)
+ XLAT(IP_MTU_DISCOVER),
+#endif
+#if defined(IP_RECVERR) || (defined(HAVE_DECL_IP_RECVERR) && HAVE_DECL_IP_RECVERR)
+ XLAT(IP_RECVERR),
+#endif
+#if defined(IP_RECVTTL) || (defined(HAVE_DECL_IP_RECVTTL) && HAVE_DECL_IP_RECVTTL)
+ XLAT(IP_RECVTTL),
+#endif
+#if defined(IP_RECVTOS) || (defined(HAVE_DECL_IP_RECVTOS) && HAVE_DECL_IP_RECVTOS)
+ XLAT(IP_RECVTOS),
+#endif
+#if defined(IP_MTU) || (defined(HAVE_DECL_IP_MTU) && HAVE_DECL_IP_MTU)
+ XLAT(IP_MTU),
+#endif
+#if defined(IP_MULTICAST_IF) || (defined(HAVE_DECL_IP_MULTICAST_IF) && HAVE_DECL_IP_MULTICAST_IF)
+ XLAT(IP_MULTICAST_IF),
+#endif
+#if defined(IP_MULTICAST_TTL) || (defined(HAVE_DECL_IP_MULTICAST_TTL) && HAVE_DECL_IP_MULTICAST_TTL)
+ XLAT(IP_MULTICAST_TTL),
+#endif
+#if defined(IP_MULTICAST_LOOP) || (defined(HAVE_DECL_IP_MULTICAST_LOOP) && HAVE_DECL_IP_MULTICAST_LOOP)
+ XLAT(IP_MULTICAST_LOOP),
+#endif
+#if defined(IP_ADD_MEMBERSHIP) || (defined(HAVE_DECL_IP_ADD_MEMBERSHIP) && HAVE_DECL_IP_ADD_MEMBERSHIP)
+ XLAT(IP_ADD_MEMBERSHIP),
+#endif
+#if defined(IP_DROP_MEMBERSHIP) || (defined(HAVE_DECL_IP_DROP_MEMBERSHIP) && HAVE_DECL_IP_DROP_MEMBERSHIP)
+ XLAT(IP_DROP_MEMBERSHIP),
+#endif
+#if defined(IP_BROADCAST_IF) || (defined(HAVE_DECL_IP_BROADCAST_IF) && HAVE_DECL_IP_BROADCAST_IF)
+ XLAT(IP_BROADCAST_IF),
+#endif
+#if defined(IP_RECVIFINDEX) || (defined(HAVE_DECL_IP_RECVIFINDEX) && HAVE_DECL_IP_RECVIFINDEX)
+ XLAT(IP_RECVIFINDEX),
+#endif
+#if defined(IP_MSFILTER) || (defined(HAVE_DECL_IP_MSFILTER) && HAVE_DECL_IP_MSFILTER)
+ XLAT(IP_MSFILTER),
+#endif
+#if defined(IP_FREEBIND) || (defined(HAVE_DECL_IP_FREEBIND) && HAVE_DECL_IP_FREEBIND)
+ XLAT(IP_FREEBIND),
+#endif
+#if defined(IP_IPSEC_POLICY) || (defined(HAVE_DECL_IP_IPSEC_POLICY) && HAVE_DECL_IP_IPSEC_POLICY)
+ XLAT(IP_IPSEC_POLICY),
+#endif
+#if defined(IP_XFRM_POLICY) || (defined(HAVE_DECL_IP_XFRM_POLICY) && HAVE_DECL_IP_XFRM_POLICY)
+ XLAT(IP_XFRM_POLICY),
+#endif
+#if defined(IP_PASSSEC) || (defined(HAVE_DECL_IP_PASSSEC) && HAVE_DECL_IP_PASSSEC)
+ XLAT(IP_PASSSEC),
+#endif
+#if defined(IP_TRANSPARENT) || (defined(HAVE_DECL_IP_TRANSPARENT) && HAVE_DECL_IP_TRANSPARENT)
+ XLAT(IP_TRANSPARENT),
+#endif
+#if defined(IP_ORIGDSTADDR) || (defined(HAVE_DECL_IP_ORIGDSTADDR) && HAVE_DECL_IP_ORIGDSTADDR)
+ XLAT(IP_ORIGDSTADDR),
+#endif
+#if defined(IP_RECVORIGDSTADDR) || (defined(HAVE_DECL_IP_RECVORIGDSTADDR) && HAVE_DECL_IP_RECVORIGDSTADDR)
+ XLAT(IP_RECVORIGDSTADDR),
+#endif
+#if defined(IP_MINTTL) || (defined(HAVE_DECL_IP_MINTTL) && HAVE_DECL_IP_MINTTL)
+ XLAT(IP_MINTTL),
+#endif
+#if defined(IP_NODEFRAG) || (defined(HAVE_DECL_IP_NODEFRAG) && HAVE_DECL_IP_NODEFRAG)
+ XLAT(IP_NODEFRAG),
+#endif
+#if defined(IP_CHECKSUM) || (defined(HAVE_DECL_IP_CHECKSUM) && HAVE_DECL_IP_CHECKSUM)
+ XLAT(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),
+#endif
+#if defined(IP_RECVFRAGSIZE) || (defined(HAVE_DECL_IP_RECVFRAGSIZE) && HAVE_DECL_IP_RECVFRAGSIZE)
+ XLAT(IP_RECVFRAGSIZE),
+#endif
+#if defined(IP_UNBLOCK_SOURCE) || (defined(HAVE_DECL_IP_UNBLOCK_SOURCE) && HAVE_DECL_IP_UNBLOCK_SOURCE)
+ XLAT(IP_UNBLOCK_SOURCE),
+#endif
+#if defined(IP_BLOCK_SOURCE) || (defined(HAVE_DECL_IP_BLOCK_SOURCE) && HAVE_DECL_IP_BLOCK_SOURCE)
+ XLAT(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),
+#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),
+#endif
+#if defined(MCAST_JOIN_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_GROUP) && HAVE_DECL_MCAST_JOIN_GROUP)
+ XLAT(MCAST_JOIN_GROUP),
+#endif
+#if defined(MCAST_BLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_BLOCK_SOURCE) && HAVE_DECL_MCAST_BLOCK_SOURCE)
+ XLAT(MCAST_BLOCK_SOURCE),
+#endif
+#if defined(MCAST_UNBLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_UNBLOCK_SOURCE) && HAVE_DECL_MCAST_UNBLOCK_SOURCE)
+ XLAT(MCAST_UNBLOCK_SOURCE),
+#endif
+#if defined(MCAST_LEAVE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_GROUP) && HAVE_DECL_MCAST_LEAVE_GROUP)
+ XLAT(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),
+#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),
+#endif
+#if defined(MCAST_MSFILTER) || (defined(HAVE_DECL_MCAST_MSFILTER) && HAVE_DECL_MCAST_MSFILTER)
+ XLAT(MCAST_MSFILTER),
+#endif
+#if defined(IP_MULTICAST_ALL) || (defined(HAVE_DECL_IP_MULTICAST_ALL) && HAVE_DECL_IP_MULTICAST_ALL)
+ XLAT(IP_MULTICAST_ALL),
+#endif
+#if defined(IP_UNICAST_IF) || (defined(HAVE_DECL_IP_UNICAST_IF) && HAVE_DECL_IP_UNICAST_IF)
+ XLAT(IP_UNICAST_IF),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_ip_options.in b/xlat/sock_ip_options.in
new file mode 100644
index 0000000..51ed134
--- /dev/null
+++ b/xlat/sock_ip_options.in
@@ -0,0 +1,50 @@
+IP_TOS
+IP_TTL
+IP_HDRINCL
+IP_OPTIONS
+IP_ROUTER_ALERT
+IP_RECVOPTIONS
+IP_RECVOPTS
+IP_RETOPTS
+IP_RECVRETOPTS
+IP_RECVDSTADDR
+IP_PKTINFO
+IP_PKTOPTIONS
+IP_MTU_DISCOVER
+IP_RECVERR
+IP_RECVTTL
+IP_RECVTOS
+IP_MTU
+IP_MULTICAST_IF
+IP_MULTICAST_TTL
+IP_MULTICAST_LOOP
+IP_ADD_MEMBERSHIP
+IP_DROP_MEMBERSHIP
+IP_BROADCAST_IF
+IP_RECVIFINDEX
+IP_MSFILTER
+IP_FREEBIND
+IP_IPSEC_POLICY
+IP_XFRM_POLICY
+IP_PASSSEC
+IP_TRANSPARENT
+IP_ORIGDSTADDR
+IP_RECVORIGDSTADDR
+IP_MINTTL
+IP_NODEFRAG
+IP_CHECKSUM
+IP_BIND_ADDRESS_NO_PORT
+IP_RECVFRAGSIZE
+IP_UNBLOCK_SOURCE
+IP_BLOCK_SOURCE
+IP_ADD_SOURCE_MEMBERSHIP
+IP_DROP_SOURCE_MEMBERSHIP
+MCAST_JOIN_GROUP
+MCAST_BLOCK_SOURCE
+MCAST_UNBLOCK_SOURCE
+MCAST_LEAVE_GROUP
+MCAST_JOIN_SOURCE_GROUP
+MCAST_LEAVE_SOURCE_GROUP
+MCAST_MSFILTER
+IP_MULTICAST_ALL
+IP_UNICAST_IF
diff --git a/xlat/sock_ipv6_options.h b/xlat/sock_ipv6_options.h
new file mode 100644
index 0000000..14ea341
--- /dev/null
+++ b/xlat/sock_ipv6_options.h
@@ -0,0 +1,208 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_ipv6_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 sock_ipv6_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_ipv6_options[] = {
+#if defined(IPV6_ADDRFORM) || (defined(HAVE_DECL_IPV6_ADDRFORM) && HAVE_DECL_IPV6_ADDRFORM)
+ XLAT(IPV6_ADDRFORM),
+#endif
+#if defined(IPV6_2292PKTINFO) || (defined(HAVE_DECL_IPV6_2292PKTINFO) && HAVE_DECL_IPV6_2292PKTINFO)
+ XLAT(IPV6_2292PKTINFO),
+#endif
+#if defined(IPV6_2292HOPOPTS) || (defined(HAVE_DECL_IPV6_2292HOPOPTS) && HAVE_DECL_IPV6_2292HOPOPTS)
+ XLAT(IPV6_2292HOPOPTS),
+#endif
+#if defined(IPV6_2292DSTOPTS) || (defined(HAVE_DECL_IPV6_2292DSTOPTS) && HAVE_DECL_IPV6_2292DSTOPTS)
+ XLAT(IPV6_2292DSTOPTS),
+#endif
+#if defined(IPV6_2292RTHDR) || (defined(HAVE_DECL_IPV6_2292RTHDR) && HAVE_DECL_IPV6_2292RTHDR)
+ XLAT(IPV6_2292RTHDR),
+#endif
+#if defined(IPV6_2292PKTOPTIONS) || (defined(HAVE_DECL_IPV6_2292PKTOPTIONS) && HAVE_DECL_IPV6_2292PKTOPTIONS)
+ XLAT(IPV6_2292PKTOPTIONS),
+#endif
+#if defined(IPV6_CHECKSUM) || (defined(HAVE_DECL_IPV6_CHECKSUM) && HAVE_DECL_IPV6_CHECKSUM)
+ XLAT(IPV6_CHECKSUM),
+#endif
+#if defined(IPV6_2292HOPLIMIT) || (defined(HAVE_DECL_IPV6_2292HOPLIMIT) && HAVE_DECL_IPV6_2292HOPLIMIT)
+ XLAT(IPV6_2292HOPLIMIT),
+#endif
+#if defined(IPV6_NEXTHOP) || (defined(HAVE_DECL_IPV6_NEXTHOP) && HAVE_DECL_IPV6_NEXTHOP)
+ XLAT(IPV6_NEXTHOP),
+#endif
+#if defined(IPV6_AUTHHDR) || (defined(HAVE_DECL_IPV6_AUTHHDR) && HAVE_DECL_IPV6_AUTHHDR)
+ XLAT(IPV6_AUTHHDR),
+#endif
+#if defined(IPV6_FLOWINFO) || (defined(HAVE_DECL_IPV6_FLOWINFO) && HAVE_DECL_IPV6_FLOWINFO)
+ XLAT(IPV6_FLOWINFO),
+#endif
+#if defined(IPV6_UNICAST_HOPS) || (defined(HAVE_DECL_IPV6_UNICAST_HOPS) && HAVE_DECL_IPV6_UNICAST_HOPS)
+ XLAT(IPV6_UNICAST_HOPS),
+#endif
+#if defined(IPV6_MULTICAST_IF) || (defined(HAVE_DECL_IPV6_MULTICAST_IF) && HAVE_DECL_IPV6_MULTICAST_IF)
+ XLAT(IPV6_MULTICAST_IF),
+#endif
+#if defined(IPV6_MULTICAST_HOPS) || (defined(HAVE_DECL_IPV6_MULTICAST_HOPS) && HAVE_DECL_IPV6_MULTICAST_HOPS)
+ XLAT(IPV6_MULTICAST_HOPS),
+#endif
+#if defined(IPV6_MULTICAST_LOOP) || (defined(HAVE_DECL_IPV6_MULTICAST_LOOP) && HAVE_DECL_IPV6_MULTICAST_LOOP)
+ XLAT(IPV6_MULTICAST_LOOP),
+#endif
+#if defined(IPV6_ADD_MEMBERSHIP) || (defined(HAVE_DECL_IPV6_ADD_MEMBERSHIP) && HAVE_DECL_IPV6_ADD_MEMBERSHIP)
+ XLAT(IPV6_ADD_MEMBERSHIP),
+#endif
+#if defined(IPV6_DROP_MEMBERSHIP) || (defined(HAVE_DECL_IPV6_DROP_MEMBERSHIP) && HAVE_DECL_IPV6_DROP_MEMBERSHIP)
+ XLAT(IPV6_DROP_MEMBERSHIP),
+#endif
+#if defined(IPV6_ROUTER_ALERT) || (defined(HAVE_DECL_IPV6_ROUTER_ALERT) && HAVE_DECL_IPV6_ROUTER_ALERT)
+ XLAT(IPV6_ROUTER_ALERT),
+#endif
+#if defined(IPV6_MTU_DISCOVER) || (defined(HAVE_DECL_IPV6_MTU_DISCOVER) && HAVE_DECL_IPV6_MTU_DISCOVER)
+ XLAT(IPV6_MTU_DISCOVER),
+#endif
+#if defined(IPV6_MTU) || (defined(HAVE_DECL_IPV6_MTU) && HAVE_DECL_IPV6_MTU)
+ XLAT(IPV6_MTU),
+#endif
+#if defined(IPV6_RECVERR) || (defined(HAVE_DECL_IPV6_RECVERR) && HAVE_DECL_IPV6_RECVERR)
+ XLAT(IPV6_RECVERR),
+#endif
+#if defined(IPV6_V6ONLY) || (defined(HAVE_DECL_IPV6_V6ONLY) && HAVE_DECL_IPV6_V6ONLY)
+ XLAT(IPV6_V6ONLY),
+#endif
+#if defined(IPV6_JOIN_ANYCAST) || (defined(HAVE_DECL_IPV6_JOIN_ANYCAST) && HAVE_DECL_IPV6_JOIN_ANYCAST)
+ XLAT(IPV6_JOIN_ANYCAST),
+#endif
+#if defined(IPV6_LEAVE_ANYCAST) || (defined(HAVE_DECL_IPV6_LEAVE_ANYCAST) && HAVE_DECL_IPV6_LEAVE_ANYCAST)
+ XLAT(IPV6_LEAVE_ANYCAST),
+#endif
+#if defined(IPV6_FLOWLABEL_MGR) || (defined(HAVE_DECL_IPV6_FLOWLABEL_MGR) && HAVE_DECL_IPV6_FLOWLABEL_MGR)
+ XLAT(IPV6_FLOWLABEL_MGR),
+#endif
+#if defined(IPV6_FLOWINFO_SEND) || (defined(HAVE_DECL_IPV6_FLOWINFO_SEND) && HAVE_DECL_IPV6_FLOWINFO_SEND)
+ XLAT(IPV6_FLOWINFO_SEND),
+#endif
+#if defined(IPV6_IPSEC_POLICY) || (defined(HAVE_DECL_IPV6_IPSEC_POLICY) && HAVE_DECL_IPV6_IPSEC_POLICY)
+ XLAT(IPV6_IPSEC_POLICY),
+#endif
+#if defined(IPV6_XFRM_POLICY) || (defined(HAVE_DECL_IPV6_XFRM_POLICY) && HAVE_DECL_IPV6_XFRM_POLICY)
+ XLAT(IPV6_XFRM_POLICY),
+#endif
+#if defined(IPV6_HDRINCL) || (defined(HAVE_DECL_IPV6_HDRINCL) && HAVE_DECL_IPV6_HDRINCL)
+ XLAT(IPV6_HDRINCL),
+#endif
+#if defined(MCAST_JOIN_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_GROUP) && HAVE_DECL_MCAST_JOIN_GROUP)
+ XLAT(MCAST_JOIN_GROUP),
+#endif
+#if defined(MCAST_BLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_BLOCK_SOURCE) && HAVE_DECL_MCAST_BLOCK_SOURCE)
+ XLAT(MCAST_BLOCK_SOURCE),
+#endif
+#if defined(MCAST_UNBLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_UNBLOCK_SOURCE) && HAVE_DECL_MCAST_UNBLOCK_SOURCE)
+ XLAT(MCAST_UNBLOCK_SOURCE),
+#endif
+#if defined(MCAST_LEAVE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_GROUP) && HAVE_DECL_MCAST_LEAVE_GROUP)
+ XLAT(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),
+#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),
+#endif
+#if defined(MCAST_MSFILTER) || (defined(HAVE_DECL_MCAST_MSFILTER) && HAVE_DECL_MCAST_MSFILTER)
+ XLAT(MCAST_MSFILTER),
+#endif
+#if defined(IPV6_RECVPKTINFO) || (defined(HAVE_DECL_IPV6_RECVPKTINFO) && HAVE_DECL_IPV6_RECVPKTINFO)
+ XLAT(IPV6_RECVPKTINFO),
+#endif
+#if defined(IPV6_PKTINFO) || (defined(HAVE_DECL_IPV6_PKTINFO) && HAVE_DECL_IPV6_PKTINFO)
+ XLAT(IPV6_PKTINFO),
+#endif
+#if defined(IPV6_RECVHOPLIMIT) || (defined(HAVE_DECL_IPV6_RECVHOPLIMIT) && HAVE_DECL_IPV6_RECVHOPLIMIT)
+ XLAT(IPV6_RECVHOPLIMIT),
+#endif
+#if defined(IPV6_HOPLIMIT) || (defined(HAVE_DECL_IPV6_HOPLIMIT) && HAVE_DECL_IPV6_HOPLIMIT)
+ XLAT(IPV6_HOPLIMIT),
+#endif
+#if defined(IPV6_RECVHOPOPTS) || (defined(HAVE_DECL_IPV6_RECVHOPOPTS) && HAVE_DECL_IPV6_RECVHOPOPTS)
+ XLAT(IPV6_RECVHOPOPTS),
+#endif
+#if defined(IPV6_HOPOPTS) || (defined(HAVE_DECL_IPV6_HOPOPTS) && HAVE_DECL_IPV6_HOPOPTS)
+ XLAT(IPV6_HOPOPTS),
+#endif
+#if defined(IPV6_RTHDRDSTOPTS) || (defined(HAVE_DECL_IPV6_RTHDRDSTOPTS) && HAVE_DECL_IPV6_RTHDRDSTOPTS)
+ XLAT(IPV6_RTHDRDSTOPTS),
+#endif
+#if defined(IPV6_RECVRTHDR) || (defined(HAVE_DECL_IPV6_RECVRTHDR) && HAVE_DECL_IPV6_RECVRTHDR)
+ XLAT(IPV6_RECVRTHDR),
+#endif
+#if defined(IPV6_RTHDR) || (defined(HAVE_DECL_IPV6_RTHDR) && HAVE_DECL_IPV6_RTHDR)
+ XLAT(IPV6_RTHDR),
+#endif
+#if defined(IPV6_RECVDSTOPTS) || (defined(HAVE_DECL_IPV6_RECVDSTOPTS) && HAVE_DECL_IPV6_RECVDSTOPTS)
+ XLAT(IPV6_RECVDSTOPTS),
+#endif
+#if defined(IPV6_DSTOPTS) || (defined(HAVE_DECL_IPV6_DSTOPTS) && HAVE_DECL_IPV6_DSTOPTS)
+ XLAT(IPV6_DSTOPTS),
+#endif
+#if defined(IPV6_RECVPATHMTU) || (defined(HAVE_DECL_IPV6_RECVPATHMTU) && HAVE_DECL_IPV6_RECVPATHMTU)
+ XLAT(IPV6_RECVPATHMTU),
+#endif
+#if defined(IPV6_PATHMTU) || (defined(HAVE_DECL_IPV6_PATHMTU) && HAVE_DECL_IPV6_PATHMTU)
+ XLAT(IPV6_PATHMTU),
+#endif
+#if defined(IPV6_DONTFRAG) || (defined(HAVE_DECL_IPV6_DONTFRAG) && HAVE_DECL_IPV6_DONTFRAG)
+ XLAT(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),
+#endif
+#if defined(IPV6_RECVTCLASS) || (defined(HAVE_DECL_IPV6_RECVTCLASS) && HAVE_DECL_IPV6_RECVTCLASS)
+ XLAT(IPV6_RECVTCLASS),
+#endif
+#if defined(IPV6_TCLASS) || (defined(HAVE_DECL_IPV6_TCLASS) && HAVE_DECL_IPV6_TCLASS)
+ XLAT(IPV6_TCLASS),
+#endif
+#if defined(IPV6_AUTOFLOWLABEL) || (defined(HAVE_DECL_IPV6_AUTOFLOWLABEL) && HAVE_DECL_IPV6_AUTOFLOWLABEL)
+ XLAT(IPV6_AUTOFLOWLABEL),
+#endif
+#if defined(IPV6_ADDR_PREFERENCES) || (defined(HAVE_DECL_IPV6_ADDR_PREFERENCES) && HAVE_DECL_IPV6_ADDR_PREFERENCES)
+ XLAT(IPV6_ADDR_PREFERENCES),
+#endif
+#if defined(IPV6_MINHOPCOUNT) || (defined(HAVE_DECL_IPV6_MINHOPCOUNT) && HAVE_DECL_IPV6_MINHOPCOUNT)
+ XLAT(IPV6_MINHOPCOUNT),
+#endif
+#if defined(IPV6_ORIGDSTADDR) || (defined(HAVE_DECL_IPV6_ORIGDSTADDR) && HAVE_DECL_IPV6_ORIGDSTADDR)
+ XLAT(IPV6_ORIGDSTADDR),
+#endif
+#if defined(IPV6_RECVORIGDSTADDR) || (defined(HAVE_DECL_IPV6_RECVORIGDSTADDR) && HAVE_DECL_IPV6_RECVORIGDSTADDR)
+ XLAT(IPV6_RECVORIGDSTADDR),
+#endif
+#if defined(IPV6_TRANSPARENT) || (defined(HAVE_DECL_IPV6_TRANSPARENT) && HAVE_DECL_IPV6_TRANSPARENT)
+ XLAT(IPV6_TRANSPARENT),
+#endif
+#if defined(IPV6_UNICAST_IF) || (defined(HAVE_DECL_IPV6_UNICAST_IF) && HAVE_DECL_IPV6_UNICAST_IF)
+ XLAT(IPV6_UNICAST_IF),
+#endif
+#if defined(IPV6_RECVFRAGSIZE) || (defined(HAVE_DECL_IPV6_RECVFRAGSIZE) && HAVE_DECL_IPV6_RECVFRAGSIZE)
+ XLAT(IPV6_RECVFRAGSIZE),
+#endif
+#if defined(IPV6_FREEBIND) || (defined(HAVE_DECL_IPV6_FREEBIND) && HAVE_DECL_IPV6_FREEBIND)
+ XLAT(IPV6_FREEBIND),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_ipv6_options.in b/xlat/sock_ipv6_options.in
new file mode 100644
index 0000000..4f23d19
--- /dev/null
+++ b/xlat/sock_ipv6_options.in
@@ -0,0 +1,62 @@
+IPV6_ADDRFORM
+IPV6_2292PKTINFO
+IPV6_2292HOPOPTS
+IPV6_2292DSTOPTS
+IPV6_2292RTHDR
+IPV6_2292PKTOPTIONS
+IPV6_CHECKSUM
+IPV6_2292HOPLIMIT
+IPV6_NEXTHOP
+IPV6_AUTHHDR
+IPV6_FLOWINFO
+IPV6_UNICAST_HOPS
+IPV6_MULTICAST_IF
+IPV6_MULTICAST_HOPS
+IPV6_MULTICAST_LOOP
+IPV6_ADD_MEMBERSHIP
+IPV6_DROP_MEMBERSHIP
+IPV6_ROUTER_ALERT
+IPV6_MTU_DISCOVER
+IPV6_MTU
+IPV6_RECVERR
+IPV6_V6ONLY
+IPV6_JOIN_ANYCAST
+IPV6_LEAVE_ANYCAST
+IPV6_FLOWLABEL_MGR
+IPV6_FLOWINFO_SEND
+IPV6_IPSEC_POLICY
+IPV6_XFRM_POLICY
+IPV6_HDRINCL
+MCAST_JOIN_GROUP
+MCAST_BLOCK_SOURCE
+MCAST_UNBLOCK_SOURCE
+MCAST_LEAVE_GROUP
+MCAST_JOIN_SOURCE_GROUP
+MCAST_LEAVE_SOURCE_GROUP
+MCAST_MSFILTER
+IPV6_RECVPKTINFO
+IPV6_PKTINFO
+IPV6_RECVHOPLIMIT
+IPV6_HOPLIMIT
+IPV6_RECVHOPOPTS
+IPV6_HOPOPTS
+IPV6_RTHDRDSTOPTS
+IPV6_RECVRTHDR
+IPV6_RTHDR
+IPV6_RECVDSTOPTS
+IPV6_DSTOPTS
+IPV6_RECVPATHMTU
+IPV6_PATHMTU
+IPV6_DONTFRAG
+IPV6_USE_MIN_MTU
+IPV6_RECVTCLASS
+IPV6_TCLASS
+IPV6_AUTOFLOWLABEL
+IPV6_ADDR_PREFERENCES
+IPV6_MINHOPCOUNT
+IPV6_ORIGDSTADDR
+IPV6_RECVORIGDSTADDR
+IPV6_TRANSPARENT
+IPV6_UNICAST_IF
+IPV6_RECVFRAGSIZE
+IPV6_FREEBIND
diff --git a/xlat/sock_ipx_options.h b/xlat/sock_ipx_options.h
new file mode 100644
index 0000000..cee80f1
--- /dev/null
+++ b/xlat/sock_ipx_options.h
@@ -0,0 +1,25 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_ipx_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 sock_ipx_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_ipx_options[] = {
+#if defined(IPX_TYPE) || (defined(HAVE_DECL_IPX_TYPE) && HAVE_DECL_IPX_TYPE)
+ XLAT(IPX_TYPE),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_ipx_options.in b/xlat/sock_ipx_options.in
new file mode 100644
index 0000000..eba97fd
--- /dev/null
+++ b/xlat/sock_ipx_options.in
@@ -0,0 +1 @@
+IPX_TYPE
diff --git a/xlat/sock_irda_options.h b/xlat/sock_irda_options.h
new file mode 100644
index 0000000..5964390
--- /dev/null
+++ b/xlat/sock_irda_options.h
@@ -0,0 +1,110 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_irda_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IRLMP_ENUMDEVICES) || (defined(HAVE_DECL_IRLMP_ENUMDEVICES) && HAVE_DECL_IRLMP_ENUMDEVICES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_ENUMDEVICES) == (1), "IRLMP_ENUMDEVICES != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_ENUMDEVICES 1
+#endif
+#if defined(IRLMP_IAS_SET) || (defined(HAVE_DECL_IRLMP_IAS_SET) && HAVE_DECL_IRLMP_IAS_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_IAS_SET) == (2), "IRLMP_IAS_SET != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_IAS_SET 2
+#endif
+#if defined(IRLMP_IAS_QUERY) || (defined(HAVE_DECL_IRLMP_IAS_QUERY) && HAVE_DECL_IRLMP_IAS_QUERY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_IAS_QUERY) == (3), "IRLMP_IAS_QUERY != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_IAS_QUERY 3
+#endif
+#if defined(IRLMP_HINTS_SET) || (defined(HAVE_DECL_IRLMP_HINTS_SET) && HAVE_DECL_IRLMP_HINTS_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_HINTS_SET) == (4), "IRLMP_HINTS_SET != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_HINTS_SET 4
+#endif
+#if defined(IRLMP_QOS_SET) || (defined(HAVE_DECL_IRLMP_QOS_SET) && HAVE_DECL_IRLMP_QOS_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_QOS_SET) == (5), "IRLMP_QOS_SET != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_QOS_SET 5
+#endif
+#if defined(IRLMP_QOS_GET) || (defined(HAVE_DECL_IRLMP_QOS_GET) && HAVE_DECL_IRLMP_QOS_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_QOS_GET) == (6), "IRLMP_QOS_GET != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_QOS_GET 6
+#endif
+#if defined(IRLMP_MAX_SDU_SIZE) || (defined(HAVE_DECL_IRLMP_MAX_SDU_SIZE) && HAVE_DECL_IRLMP_MAX_SDU_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_MAX_SDU_SIZE) == (7), "IRLMP_MAX_SDU_SIZE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_MAX_SDU_SIZE 7
+#endif
+#if defined(IRLMP_IAS_GET) || (defined(HAVE_DECL_IRLMP_IAS_GET) && HAVE_DECL_IRLMP_IAS_GET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_IAS_GET) == (8), "IRLMP_IAS_GET != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_IAS_GET 8
+#endif
+#if defined(IRLMP_IAS_DEL) || (defined(HAVE_DECL_IRLMP_IAS_DEL) && HAVE_DECL_IRLMP_IAS_DEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_IAS_DEL) == (9), "IRLMP_IAS_DEL != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_IAS_DEL 9
+#endif
+#if defined(IRLMP_HINT_MASK_SET) || (defined(HAVE_DECL_IRLMP_HINT_MASK_SET) && HAVE_DECL_IRLMP_HINT_MASK_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_HINT_MASK_SET) == (10), "IRLMP_HINT_MASK_SET != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_HINT_MASK_SET 10
+#endif
+#if defined(IRLMP_WAITDEVICE) || (defined(HAVE_DECL_IRLMP_WAITDEVICE) && HAVE_DECL_IRLMP_WAITDEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IRLMP_WAITDEVICE) == (11), "IRLMP_WAITDEVICE != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IRLMP_WAITDEVICE 11
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_irda_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_irda_options[] = {
+ [IRLMP_ENUMDEVICES] = XLAT(IRLMP_ENUMDEVICES),
+ [IRLMP_IAS_SET] = XLAT(IRLMP_IAS_SET),
+ [IRLMP_IAS_QUERY] = XLAT(IRLMP_IAS_QUERY),
+ [IRLMP_HINTS_SET] = XLAT(IRLMP_HINTS_SET),
+ [IRLMP_QOS_SET] = XLAT(IRLMP_QOS_SET),
+ [IRLMP_QOS_GET] = XLAT(IRLMP_QOS_GET),
+ [IRLMP_MAX_SDU_SIZE] = XLAT(IRLMP_MAX_SDU_SIZE),
+ [IRLMP_IAS_GET] = XLAT(IRLMP_IAS_GET),
+ [IRLMP_IAS_DEL] = XLAT(IRLMP_IAS_DEL),
+ [IRLMP_HINT_MASK_SET] = XLAT(IRLMP_HINT_MASK_SET),
+ [IRLMP_WAITDEVICE] = XLAT(IRLMP_WAITDEVICE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_irda_options.in b/xlat/sock_irda_options.in
new file mode 100644
index 0000000..a26e098
--- /dev/null
+++ b/xlat/sock_irda_options.in
@@ -0,0 +1,12 @@
+#value_indexed
+IRLMP_ENUMDEVICES 1
+IRLMP_IAS_SET 2
+IRLMP_IAS_QUERY 3
+IRLMP_HINTS_SET 4
+IRLMP_QOS_SET 5
+IRLMP_QOS_GET 6
+IRLMP_MAX_SDU_SIZE 7
+IRLMP_IAS_GET 8
+IRLMP_IAS_DEL 9
+IRLMP_HINT_MASK_SET 10
+IRLMP_WAITDEVICE 11
diff --git a/xlat/sock_iucv_options.h b/xlat/sock_iucv_options.h
new file mode 100644
index 0000000..ad4b173
--- /dev/null
+++ b/xlat/sock_iucv_options.h
@@ -0,0 +1,46 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_iucv_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SO_IPRMDATA_MSG) || (defined(HAVE_DECL_SO_IPRMDATA_MSG) && HAVE_DECL_SO_IPRMDATA_MSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_IPRMDATA_MSG) == (0x0080), "SO_IPRMDATA_MSG != 0x0080");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_IPRMDATA_MSG 0x0080
+#endif
+#if defined(SO_MSGLIMIT) || (defined(HAVE_DECL_SO_MSGLIMIT) && HAVE_DECL_SO_MSGLIMIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MSGLIMIT) == (0x1000), "SO_MSGLIMIT != 0x1000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MSGLIMIT 0x1000
+#endif
+#if defined(SO_MSGSIZE) || (defined(HAVE_DECL_SO_MSGSIZE) && HAVE_DECL_SO_MSGSIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MSGSIZE) == (0x0800), "SO_MSGSIZE != 0x0800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MSGSIZE 0x0800
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_iucv_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_iucv_options[] = {
+ XLAT(SO_IPRMDATA_MSG),
+ XLAT(SO_MSGLIMIT),
+ XLAT(SO_MSGSIZE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_iucv_options.in b/xlat/sock_iucv_options.in
new file mode 100644
index 0000000..827b54c
--- /dev/null
+++ b/xlat/sock_iucv_options.in
@@ -0,0 +1,3 @@
+SO_IPRMDATA_MSG 0x0080
+SO_MSGLIMIT 0x1000
+SO_MSGSIZE 0x0800
diff --git a/xlat/sock_kcm_options.h b/xlat/sock_kcm_options.h
new file mode 100644
index 0000000..43e4cc4
--- /dev/null
+++ b/xlat/sock_kcm_options.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_kcm_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KCM_RECV_DISABLE) || (defined(HAVE_DECL_KCM_RECV_DISABLE) && HAVE_DECL_KCM_RECV_DISABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KCM_RECV_DISABLE) == (1), "KCM_RECV_DISABLE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define KCM_RECV_DISABLE 1
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_kcm_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_kcm_options[] = {
+ XLAT(KCM_RECV_DISABLE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_kcm_options.in b/xlat/sock_kcm_options.in
new file mode 100644
index 0000000..ee58639
--- /dev/null
+++ b/xlat/sock_kcm_options.in
@@ -0,0 +1 @@
+KCM_RECV_DISABLE 1
diff --git a/xlat/sock_llc_options.h b/xlat/sock_llc_options.h
new file mode 100644
index 0000000..109ecdc
--- /dev/null
+++ b/xlat/sock_llc_options.h
@@ -0,0 +1,102 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_llc_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(LLC_OPT_UNKNOWN) || (defined(HAVE_DECL_LLC_OPT_UNKNOWN) && HAVE_DECL_LLC_OPT_UNKNOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_UNKNOWN) == (0), "LLC_OPT_UNKNOWN != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_UNKNOWN 0
+#endif
+#if defined(LLC_OPT_RETRY) || (defined(HAVE_DECL_LLC_OPT_RETRY) && HAVE_DECL_LLC_OPT_RETRY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_RETRY) == (1), "LLC_OPT_RETRY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_RETRY 1
+#endif
+#if defined(LLC_OPT_SIZE) || (defined(HAVE_DECL_LLC_OPT_SIZE) && HAVE_DECL_LLC_OPT_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_SIZE) == (2), "LLC_OPT_SIZE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_SIZE 2
+#endif
+#if defined(LLC_OPT_ACK_TMR_EXP) || (defined(HAVE_DECL_LLC_OPT_ACK_TMR_EXP) && HAVE_DECL_LLC_OPT_ACK_TMR_EXP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_ACK_TMR_EXP) == (3), "LLC_OPT_ACK_TMR_EXP != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_ACK_TMR_EXP 3
+#endif
+#if defined(LLC_OPT_P_TMR_EXP) || (defined(HAVE_DECL_LLC_OPT_P_TMR_EXP) && HAVE_DECL_LLC_OPT_P_TMR_EXP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_P_TMR_EXP) == (4), "LLC_OPT_P_TMR_EXP != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_P_TMR_EXP 4
+#endif
+#if defined(LLC_OPT_REJ_TMR_EXP) || (defined(HAVE_DECL_LLC_OPT_REJ_TMR_EXP) && HAVE_DECL_LLC_OPT_REJ_TMR_EXP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_REJ_TMR_EXP) == (5), "LLC_OPT_REJ_TMR_EXP != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_REJ_TMR_EXP 5
+#endif
+#if defined(LLC_OPT_BUSY_TMR_EXP) || (defined(HAVE_DECL_LLC_OPT_BUSY_TMR_EXP) && HAVE_DECL_LLC_OPT_BUSY_TMR_EXP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_BUSY_TMR_EXP) == (6), "LLC_OPT_BUSY_TMR_EXP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_BUSY_TMR_EXP 6
+#endif
+#if defined(LLC_OPT_TX_WIN) || (defined(HAVE_DECL_LLC_OPT_TX_WIN) && HAVE_DECL_LLC_OPT_TX_WIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_TX_WIN) == (7), "LLC_OPT_TX_WIN != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_TX_WIN 7
+#endif
+#if defined(LLC_OPT_RX_WIN) || (defined(HAVE_DECL_LLC_OPT_RX_WIN) && HAVE_DECL_LLC_OPT_RX_WIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_RX_WIN) == (8), "LLC_OPT_RX_WIN != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_RX_WIN 8
+#endif
+#if defined(LLC_OPT_PKTINFO) || (defined(HAVE_DECL_LLC_OPT_PKTINFO) && HAVE_DECL_LLC_OPT_PKTINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((LLC_OPT_PKTINFO) == (9), "LLC_OPT_PKTINFO != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define LLC_OPT_PKTINFO 9
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_llc_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_llc_options[] = {
+ [LLC_OPT_UNKNOWN] = XLAT(LLC_OPT_UNKNOWN),
+ [LLC_OPT_RETRY] = XLAT(LLC_OPT_RETRY),
+ [LLC_OPT_SIZE] = XLAT(LLC_OPT_SIZE),
+ [LLC_OPT_ACK_TMR_EXP] = XLAT(LLC_OPT_ACK_TMR_EXP),
+ [LLC_OPT_P_TMR_EXP] = XLAT(LLC_OPT_P_TMR_EXP),
+ [LLC_OPT_REJ_TMR_EXP] = XLAT(LLC_OPT_REJ_TMR_EXP),
+ [LLC_OPT_BUSY_TMR_EXP] = XLAT(LLC_OPT_BUSY_TMR_EXP),
+ [LLC_OPT_TX_WIN] = XLAT(LLC_OPT_TX_WIN),
+ [LLC_OPT_RX_WIN] = XLAT(LLC_OPT_RX_WIN),
+ [LLC_OPT_PKTINFO] = XLAT(LLC_OPT_PKTINFO),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_llc_options.in b/xlat/sock_llc_options.in
new file mode 100644
index 0000000..7a948d7
--- /dev/null
+++ b/xlat/sock_llc_options.in
@@ -0,0 +1,11 @@
+#value_indexed
+LLC_OPT_UNKNOWN 0
+LLC_OPT_RETRY 1
+LLC_OPT_SIZE 2
+LLC_OPT_ACK_TMR_EXP 3
+LLC_OPT_P_TMR_EXP 4
+LLC_OPT_REJ_TMR_EXP 5
+LLC_OPT_BUSY_TMR_EXP 6
+LLC_OPT_TX_WIN 7
+LLC_OPT_RX_WIN 8
+LLC_OPT_PKTINFO 9
diff --git a/xlat/sock_netlink_options.h b/xlat/sock_netlink_options.h
new file mode 100644
index 0000000..8f359db
--- /dev/null
+++ b/xlat/sock_netlink_options.h
@@ -0,0 +1,110 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_netlink_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NETLINK_ADD_MEMBERSHIP) || (defined(HAVE_DECL_NETLINK_ADD_MEMBERSHIP) && HAVE_DECL_NETLINK_ADD_MEMBERSHIP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_ADD_MEMBERSHIP) == (1), "NETLINK_ADD_MEMBERSHIP != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_ADD_MEMBERSHIP 1
+#endif
+#if defined(NETLINK_DROP_MEMBERSHIP) || (defined(HAVE_DECL_NETLINK_DROP_MEMBERSHIP) && HAVE_DECL_NETLINK_DROP_MEMBERSHIP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_DROP_MEMBERSHIP) == (2), "NETLINK_DROP_MEMBERSHIP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_DROP_MEMBERSHIP 2
+#endif
+#if defined(NETLINK_PKTINFO) || (defined(HAVE_DECL_NETLINK_PKTINFO) && HAVE_DECL_NETLINK_PKTINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_PKTINFO) == (3), "NETLINK_PKTINFO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_PKTINFO 3
+#endif
+#if defined(NETLINK_BROADCAST_ERROR) || (defined(HAVE_DECL_NETLINK_BROADCAST_ERROR) && HAVE_DECL_NETLINK_BROADCAST_ERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_BROADCAST_ERROR) == (4), "NETLINK_BROADCAST_ERROR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_BROADCAST_ERROR 4
+#endif
+#if defined(NETLINK_NO_ENOBUFS) || (defined(HAVE_DECL_NETLINK_NO_ENOBUFS) && HAVE_DECL_NETLINK_NO_ENOBUFS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_NO_ENOBUFS) == (5), "NETLINK_NO_ENOBUFS != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_NO_ENOBUFS 5
+#endif
+#if defined(NETLINK_RX_RING) || (defined(HAVE_DECL_NETLINK_RX_RING) && HAVE_DECL_NETLINK_RX_RING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_RX_RING) == (6), "NETLINK_RX_RING != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_RX_RING 6
+#endif
+#if defined(NETLINK_TX_RING) || (defined(HAVE_DECL_NETLINK_TX_RING) && HAVE_DECL_NETLINK_TX_RING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_TX_RING) == (7), "NETLINK_TX_RING != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_TX_RING 7
+#endif
+#if defined(NETLINK_LISTEN_ALL_NSID) || (defined(HAVE_DECL_NETLINK_LISTEN_ALL_NSID) && HAVE_DECL_NETLINK_LISTEN_ALL_NSID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_LISTEN_ALL_NSID) == (8), "NETLINK_LISTEN_ALL_NSID != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_LISTEN_ALL_NSID 8
+#endif
+#if defined(NETLINK_LIST_MEMBERSHIPS) || (defined(HAVE_DECL_NETLINK_LIST_MEMBERSHIPS) && HAVE_DECL_NETLINK_LIST_MEMBERSHIPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_LIST_MEMBERSHIPS) == (9), "NETLINK_LIST_MEMBERSHIPS != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_LIST_MEMBERSHIPS 9
+#endif
+#if defined(NETLINK_CAP_ACK) || (defined(HAVE_DECL_NETLINK_CAP_ACK) && HAVE_DECL_NETLINK_CAP_ACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_CAP_ACK) == (10), "NETLINK_CAP_ACK != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_CAP_ACK 10
+#endif
+#if defined(NETLINK_EXT_ACK) || (defined(HAVE_DECL_NETLINK_EXT_ACK) && HAVE_DECL_NETLINK_EXT_ACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NETLINK_EXT_ACK) == (11), "NETLINK_EXT_ACK != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NETLINK_EXT_ACK 11
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_netlink_options in mpers mode
+
+# 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_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_netlink_options.in b/xlat/sock_netlink_options.in
new file mode 100644
index 0000000..033ffd4
--- /dev/null
+++ b/xlat/sock_netlink_options.in
@@ -0,0 +1,11 @@
+NETLINK_ADD_MEMBERSHIP 1
+NETLINK_DROP_MEMBERSHIP 2
+NETLINK_PKTINFO 3
+NETLINK_BROADCAST_ERROR 4
+NETLINK_NO_ENOBUFS 5
+NETLINK_RX_RING 6
+NETLINK_TX_RING 7
+NETLINK_LISTEN_ALL_NSID 8
+NETLINK_LIST_MEMBERSHIPS 9
+NETLINK_CAP_ACK 10
+NETLINK_EXT_ACK 11
diff --git a/xlat/sock_nfcllcp_options.h b/xlat/sock_nfcllcp_options.h
new file mode 100644
index 0000000..4d7bfb8
--- /dev/null
+++ b/xlat/sock_nfcllcp_options.h
@@ -0,0 +1,62 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_nfcllcp_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(NFC_LLCP_RW) || (defined(HAVE_DECL_NFC_LLCP_RW) && HAVE_DECL_NFC_LLCP_RW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFC_LLCP_RW) == (0), "NFC_LLCP_RW != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NFC_LLCP_RW 0
+#endif
+#if defined(NFC_LLCP_MIUX) || (defined(HAVE_DECL_NFC_LLCP_MIUX) && HAVE_DECL_NFC_LLCP_MIUX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFC_LLCP_MIUX) == (1), "NFC_LLCP_MIUX != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NFC_LLCP_MIUX 1
+#endif
+#if defined(NFC_LLCP_REMOTE_MIU) || (defined(HAVE_DECL_NFC_LLCP_REMOTE_MIU) && HAVE_DECL_NFC_LLCP_REMOTE_MIU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFC_LLCP_REMOTE_MIU) == (2), "NFC_LLCP_REMOTE_MIU != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NFC_LLCP_REMOTE_MIU 2
+#endif
+#if defined(NFC_LLCP_REMOTE_LTO) || (defined(HAVE_DECL_NFC_LLCP_REMOTE_LTO) && HAVE_DECL_NFC_LLCP_REMOTE_LTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFC_LLCP_REMOTE_LTO) == (3), "NFC_LLCP_REMOTE_LTO != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NFC_LLCP_REMOTE_LTO 3
+#endif
+#if defined(NFC_LLCP_REMOTE_RW) || (defined(HAVE_DECL_NFC_LLCP_REMOTE_RW) && HAVE_DECL_NFC_LLCP_REMOTE_RW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((NFC_LLCP_REMOTE_RW) == (4), "NFC_LLCP_REMOTE_RW != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define NFC_LLCP_REMOTE_RW 4
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_nfcllcp_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_nfcllcp_options[] = {
+ [NFC_LLCP_RW] = XLAT(NFC_LLCP_RW),
+ [NFC_LLCP_MIUX] = XLAT(NFC_LLCP_MIUX),
+ [NFC_LLCP_REMOTE_MIU] = XLAT(NFC_LLCP_REMOTE_MIU),
+ [NFC_LLCP_REMOTE_LTO] = XLAT(NFC_LLCP_REMOTE_LTO),
+ [NFC_LLCP_REMOTE_RW] = XLAT(NFC_LLCP_REMOTE_RW),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_nfcllcp_options.in b/xlat/sock_nfcllcp_options.in
new file mode 100644
index 0000000..c9f9fdc
--- /dev/null
+++ b/xlat/sock_nfcllcp_options.in
@@ -0,0 +1,6 @@
+#value_indexed
+NFC_LLCP_RW 0
+NFC_LLCP_MIUX 1
+NFC_LLCP_REMOTE_MIU 2
+NFC_LLCP_REMOTE_LTO 3
+NFC_LLCP_REMOTE_RW 4
diff --git a/xlat/sock_options.h b/xlat/sock_options.h
new file mode 100644
index 0000000..a85a8ad
--- /dev/null
+++ b/xlat/sock_options.h
@@ -0,0 +1,1858 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SO_DEBUG) || (defined(HAVE_DECL_SO_DEBUG) && HAVE_DECL_SO_DEBUG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_DEBUG) == (1), "SO_DEBUG != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_DEBUG 1
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_REUSEADDR) || (defined(HAVE_DECL_SO_REUSEADDR) && HAVE_DECL_SO_REUSEADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_REUSEADDR) == (4), "SO_REUSEADDR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_REUSEADDR 4
+#endif
+#else
+#if defined(SO_REUSEADDR) || (defined(HAVE_DECL_SO_REUSEADDR) && HAVE_DECL_SO_REUSEADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_REUSEADDR) == (2), "SO_REUSEADDR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_REUSEADDR 2
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_TYPE) || (defined(HAVE_DECL_SO_TYPE) && HAVE_DECL_SO_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TYPE) == (4104), "SO_TYPE != 4104");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TYPE 4104
+#endif
+#else
+#if defined(SO_TYPE) || (defined(HAVE_DECL_SO_TYPE) && HAVE_DECL_SO_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TYPE) == (3), "SO_TYPE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TYPE 3
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_ERROR) || (defined(HAVE_DECL_SO_ERROR) && HAVE_DECL_SO_ERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ERROR) == (4103), "SO_ERROR != 4103");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ERROR 4103
+#endif
+#else
+#if defined(SO_ERROR) || (defined(HAVE_DECL_SO_ERROR) && HAVE_DECL_SO_ERROR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ERROR) == (4), "SO_ERROR != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ERROR 4
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_DONTROUTE) || (defined(HAVE_DECL_SO_DONTROUTE) && HAVE_DECL_SO_DONTROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_DONTROUTE) == (16), "SO_DONTROUTE != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_DONTROUTE 16
+#endif
+#else
+#if defined(SO_DONTROUTE) || (defined(HAVE_DECL_SO_DONTROUTE) && HAVE_DECL_SO_DONTROUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_DONTROUTE) == (5), "SO_DONTROUTE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_DONTROUTE 5
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_BROADCAST) || (defined(HAVE_DECL_SO_BROADCAST) && HAVE_DECL_SO_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BROADCAST) == (32), "SO_BROADCAST != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BROADCAST 32
+#endif
+#else
+#if defined(SO_BROADCAST) || (defined(HAVE_DECL_SO_BROADCAST) && HAVE_DECL_SO_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BROADCAST) == (6), "SO_BROADCAST != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BROADCAST 6
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_SNDBUF) || (defined(HAVE_DECL_SO_SNDBUF) && HAVE_DECL_SO_SNDBUF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDBUF) == (4097), "SO_SNDBUF != 4097");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDBUF 4097
+#endif
+#else
+#if defined(SO_SNDBUF) || (defined(HAVE_DECL_SO_SNDBUF) && HAVE_DECL_SO_SNDBUF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDBUF) == (7), "SO_SNDBUF != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDBUF 7
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_RCVBUF) || (defined(HAVE_DECL_SO_RCVBUF) && HAVE_DECL_SO_RCVBUF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVBUF) == (4098), "SO_RCVBUF != 4098");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVBUF 4098
+#endif
+#else
+#if defined(SO_RCVBUF) || (defined(HAVE_DECL_SO_RCVBUF) && HAVE_DECL_SO_RCVBUF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVBUF) == (8), "SO_RCVBUF != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVBUF 8
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_KEEPALIVE) || (defined(HAVE_DECL_SO_KEEPALIVE) && HAVE_DECL_SO_KEEPALIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_KEEPALIVE) == (8), "SO_KEEPALIVE != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_KEEPALIVE 8
+#endif
+#else
+#if defined(SO_KEEPALIVE) || (defined(HAVE_DECL_SO_KEEPALIVE) && HAVE_DECL_SO_KEEPALIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_KEEPALIVE) == (9), "SO_KEEPALIVE != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_KEEPALIVE 9
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_OOBINLINE) || (defined(HAVE_DECL_SO_OOBINLINE) && HAVE_DECL_SO_OOBINLINE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_OOBINLINE) == (256), "SO_OOBINLINE != 256");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_OOBINLINE 256
+#endif
+#else
+#if defined(SO_OOBINLINE) || (defined(HAVE_DECL_SO_OOBINLINE) && HAVE_DECL_SO_OOBINLINE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_OOBINLINE) == (10), "SO_OOBINLINE != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_OOBINLINE 10
+#endif
+#endif
+#if defined __hppa__
+#if defined(SO_NO_CHECK) || (defined(HAVE_DECL_SO_NO_CHECK) && HAVE_DECL_SO_NO_CHECK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_NO_CHECK) == (16395), "SO_NO_CHECK != 16395");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_NO_CHECK 16395
+#endif
+#else
+#if defined(SO_NO_CHECK) || (defined(HAVE_DECL_SO_NO_CHECK) && HAVE_DECL_SO_NO_CHECK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_NO_CHECK) == (11), "SO_NO_CHECK != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_NO_CHECK 11
+#endif
+#endif
+#if defined __hppa__
+#if defined(SO_PRIORITY) || (defined(HAVE_DECL_SO_PRIORITY) && HAVE_DECL_SO_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PRIORITY) == (16396), "SO_PRIORITY != 16396");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PRIORITY 16396
+#endif
+#else
+#if defined(SO_PRIORITY) || (defined(HAVE_DECL_SO_PRIORITY) && HAVE_DECL_SO_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PRIORITY) == (12), "SO_PRIORITY != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PRIORITY 12
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_LINGER) || (defined(HAVE_DECL_SO_LINGER) && HAVE_DECL_SO_LINGER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_LINGER) == (128), "SO_LINGER != 128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_LINGER 128
+#endif
+#else
+#if defined(SO_LINGER) || (defined(HAVE_DECL_SO_LINGER) && HAVE_DECL_SO_LINGER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_LINGER) == (13), "SO_LINGER != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_LINGER 13
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_BSDCOMPAT) || (defined(HAVE_DECL_SO_BSDCOMPAT) && HAVE_DECL_SO_BSDCOMPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BSDCOMPAT) == (1024), "SO_BSDCOMPAT != 1024");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BSDCOMPAT 1024
+#endif
+#elif defined __hppa__
+#if defined(SO_BSDCOMPAT) || (defined(HAVE_DECL_SO_BSDCOMPAT) && HAVE_DECL_SO_BSDCOMPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BSDCOMPAT) == (16398), "SO_BSDCOMPAT != 16398");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BSDCOMPAT 16398
+#endif
+#else
+#if defined(SO_BSDCOMPAT) || (defined(HAVE_DECL_SO_BSDCOMPAT) && HAVE_DECL_SO_BSDCOMPAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BSDCOMPAT) == (14), "SO_BSDCOMPAT != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BSDCOMPAT 14
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_REUSEPORT) || (defined(HAVE_DECL_SO_REUSEPORT) && HAVE_DECL_SO_REUSEPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_REUSEPORT) == (512), "SO_REUSEPORT != 512");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_REUSEPORT 512
+#endif
+#else
+#if defined(SO_REUSEPORT) || (defined(HAVE_DECL_SO_REUSEPORT) && HAVE_DECL_SO_REUSEPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_REUSEPORT) == (15), "SO_REUSEPORT != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_REUSEPORT 15
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSCRED) == (2), "SO_PASSCRED != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSCRED 2
+#endif
+#elif defined __alpha__ || defined __mips__
+#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSCRED) == (17), "SO_PASSCRED != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSCRED 17
+#endif
+#elif defined __powerpc__
+#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSCRED) == (20), "SO_PASSCRED != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSCRED 20
+#endif
+#elif defined __hppa__
+#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSCRED) == (16400), "SO_PASSCRED != 16400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSCRED 16400
+#endif
+#else
+#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSCRED) == (16), "SO_PASSCRED != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSCRED 16
+#endif
+#endif
+#if defined __alpha__ || defined __mips__
+#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERCRED) == (18), "SO_PEERCRED != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERCRED 18
+#endif
+#elif defined __powerpc__
+#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERCRED) == (21), "SO_PEERCRED != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERCRED 21
+#endif
+#elif defined __sparc__
+#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERCRED) == (64), "SO_PEERCRED != 64");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERCRED 64
+#endif
+#elif defined __hppa__
+#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERCRED) == (16401), "SO_PEERCRED != 16401");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERCRED 16401
+#endif
+#else
+#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERCRED) == (17), "SO_PEERCRED != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERCRED 17
+#endif
+#endif
+#if defined __powerpc__
+#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVLOWAT) == (16), "SO_RCVLOWAT != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVLOWAT 16
+#endif
+#elif defined __sparc__
+#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVLOWAT) == (2048), "SO_RCVLOWAT != 2048");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVLOWAT 2048
+#endif
+#elif defined __hppa__ || defined __mips__
+#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVLOWAT) == (4100), "SO_RCVLOWAT != 4100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVLOWAT 4100
+#endif
+#elif defined __alpha__
+#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVLOWAT) == (4112), "SO_RCVLOWAT != 4112");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVLOWAT 4112
+#endif
+#else
+#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVLOWAT) == (18), "SO_RCVLOWAT != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVLOWAT 18
+#endif
+#endif
+#if defined __powerpc__
+#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDLOWAT) == (17), "SO_SNDLOWAT != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDLOWAT 17
+#endif
+#elif defined __sparc__
+#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDLOWAT) == (4096), "SO_SNDLOWAT != 4096");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDLOWAT 4096
+#endif
+#elif defined __hppa__ || defined __mips__
+#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDLOWAT) == (4099), "SO_SNDLOWAT != 4099");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDLOWAT 4099
+#endif
+#elif defined __alpha__
+#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDLOWAT) == (4113), "SO_SNDLOWAT != 4113");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDLOWAT 4113
+#endif
+#else
+#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDLOWAT) == (19), "SO_SNDLOWAT != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDLOWAT 19
+#endif
+#endif
+#if defined __powerpc__
+#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVTIMEO) == (18), "SO_RCVTIMEO != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVTIMEO 18
+#endif
+#elif defined __hppa__ || defined __mips__
+#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVTIMEO) == (4102), "SO_RCVTIMEO != 4102");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVTIMEO 4102
+#endif
+#elif defined __alpha__
+#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVTIMEO) == (4114), "SO_RCVTIMEO != 4114");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVTIMEO 4114
+#endif
+#elif defined __sparc__
+#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVTIMEO) == (8192), "SO_RCVTIMEO != 8192");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVTIMEO 8192
+#endif
+#else
+#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVTIMEO) == (20), "SO_RCVTIMEO != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVTIMEO 20
+#endif
+#endif
+#if defined __powerpc__
+#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDTIMEO) == (19), "SO_SNDTIMEO != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDTIMEO 19
+#endif
+#elif defined __hppa__ || defined __mips__
+#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDTIMEO) == (4101), "SO_SNDTIMEO != 4101");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDTIMEO 4101
+#endif
+#elif defined __alpha__
+#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDTIMEO) == (4115), "SO_SNDTIMEO != 4115");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDTIMEO 4115
+#endif
+#elif defined __sparc__
+#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDTIMEO) == (16384), "SO_SNDTIMEO != 16384");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDTIMEO 16384
+#endif
+#else
+#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDTIMEO) == (21), "SO_SNDTIMEO != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDTIMEO 21
+#endif
+#endif
+#if defined __alpha__
+#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_AUTHENTICATION) == (19), "SO_SECURITY_AUTHENTICATION != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_AUTHENTICATION 19
+#endif
+#elif defined __hppa__
+#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_AUTHENTICATION) == (16406), "SO_SECURITY_AUTHENTICATION != 16406");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_AUTHENTICATION 16406
+#endif
+#elif defined __sparc__
+#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_AUTHENTICATION) == (20481), "SO_SECURITY_AUTHENTICATION != 20481");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_AUTHENTICATION 20481
+#endif
+#else
+#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_AUTHENTICATION) == (22), "SO_SECURITY_AUTHENTICATION != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_AUTHENTICATION 22
+#endif
+#endif
+#if defined __alpha__
+#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (20), "SO_SECURITY_ENCRYPTION_TRANSPORT != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_TRANSPORT 20
+#endif
+#elif defined __hppa__
+#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (16407), "SO_SECURITY_ENCRYPTION_TRANSPORT != 16407");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_TRANSPORT 16407
+#endif
+#elif defined __sparc__
+#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (20482), "SO_SECURITY_ENCRYPTION_TRANSPORT != 20482");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_TRANSPORT 20482
+#endif
+#else
+#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_TRANSPORT) == (23), "SO_SECURITY_ENCRYPTION_TRANSPORT != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_TRANSPORT 23
+#endif
+#endif
+#if defined __alpha__
+#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (21), "SO_SECURITY_ENCRYPTION_NETWORK != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_NETWORK 21
+#endif
+#elif defined __hppa__
+#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (16408), "SO_SECURITY_ENCRYPTION_NETWORK != 16408");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_NETWORK 16408
+#endif
+#elif defined __sparc__
+#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (20484), "SO_SECURITY_ENCRYPTION_NETWORK != 20484");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_NETWORK 20484
+#endif
+#else
+#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SECURITY_ENCRYPTION_NETWORK) == (24), "SO_SECURITY_ENCRYPTION_NETWORK != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SECURITY_ENCRYPTION_NETWORK 24
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BINDTODEVICE) == (13), "SO_BINDTODEVICE != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BINDTODEVICE 13
+#endif
+#elif defined __hppa__
+#if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BINDTODEVICE) == (16409), "SO_BINDTODEVICE != 16409");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BINDTODEVICE 16409
+#endif
+#else
+#if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BINDTODEVICE) == (25), "SO_BINDTODEVICE != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BINDTODEVICE 25
+#endif
+#endif
+#if defined __hppa__
+#if defined(SO_DETACH_FILTER) || (defined(HAVE_DECL_SO_DETACH_FILTER) && HAVE_DECL_SO_DETACH_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_DETACH_FILTER) == (16411), "SO_DETACH_FILTER != 16411");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_DETACH_FILTER 16411
+#endif
+#else
+#if defined(SO_DETACH_FILTER) || (defined(HAVE_DECL_SO_DETACH_FILTER) && HAVE_DECL_SO_DETACH_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_DETACH_FILTER) == (27), "SO_DETACH_FILTER != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_DETACH_FILTER 27
+#endif
+#endif
+#if defined __hppa__
+#if defined(SO_PEERNAME) || (defined(HAVE_DECL_SO_PEERNAME) && HAVE_DECL_SO_PEERNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERNAME) == (8192), "SO_PEERNAME != 8192");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERNAME 8192
+#endif
+#else
+#if defined(SO_PEERNAME) || (defined(HAVE_DECL_SO_PEERNAME) && HAVE_DECL_SO_PEERNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERNAME) == (28), "SO_PEERNAME != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERNAME 28
+#endif
+#endif
+#if defined __hppa__
+#if defined(SO_TIMESTAMP) || (defined(HAVE_DECL_SO_TIMESTAMP) && HAVE_DECL_SO_TIMESTAMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMP) == (16402), "SO_TIMESTAMP != 16402");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMP 16402
+#endif
+#else
+#if defined(SO_TIMESTAMP) || (defined(HAVE_DECL_SO_TIMESTAMP) && HAVE_DECL_SO_TIMESTAMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMP) == (29), "SO_TIMESTAMP != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMP 29
+#endif
+#endif
+#if defined __mips__
+#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ACCEPTCONN) == (4105), "SO_ACCEPTCONN != 4105");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ACCEPTCONN 4105
+#endif
+#elif defined __alpha__
+#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ACCEPTCONN) == (4116), "SO_ACCEPTCONN != 4116");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ACCEPTCONN 4116
+#endif
+#elif defined __hppa__
+#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ACCEPTCONN) == (16412), "SO_ACCEPTCONN != 16412");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ACCEPTCONN 16412
+#endif
+#elif defined __sparc__
+#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ACCEPTCONN) == (32768), "SO_ACCEPTCONN != 32768");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ACCEPTCONN 32768
+#endif
+#else
+#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ACCEPTCONN) == (30), "SO_ACCEPTCONN != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ACCEPTCONN 30
+#endif
+#endif
+#if defined __alpha__ || defined __mips__ || defined __sparc__
+#if defined(SO_PEERSEC) || (defined(HAVE_DECL_SO_PEERSEC) && HAVE_DECL_SO_PEERSEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERSEC) == (30), "SO_PEERSEC != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERSEC 30
+#endif
+#elif defined __hppa__
+#if defined(SO_PEERSEC) || (defined(HAVE_DECL_SO_PEERSEC) && HAVE_DECL_SO_PEERSEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERSEC) == (16413), "SO_PEERSEC != 16413");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERSEC 16413
+#endif
+#else
+#if defined(SO_PEERSEC) || (defined(HAVE_DECL_SO_PEERSEC) && HAVE_DECL_SO_PEERSEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERSEC) == (31), "SO_PEERSEC != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERSEC 31
+#endif
+#endif
+#if defined __mips__
+#if defined(SO_SNDBUFFORCE) || (defined(HAVE_DECL_SO_SNDBUFFORCE) && HAVE_DECL_SO_SNDBUFFORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDBUFFORCE) == (31), "SO_SNDBUFFORCE != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDBUFFORCE 31
+#endif
+#elif defined __alpha__ || defined __hppa__ || defined __sparc__
+#if defined(SO_SNDBUFFORCE) || (defined(HAVE_DECL_SO_SNDBUFFORCE) && HAVE_DECL_SO_SNDBUFFORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDBUFFORCE) == (4106), "SO_SNDBUFFORCE != 4106");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDBUFFORCE 4106
+#endif
+#else
+#if defined(SO_SNDBUFFORCE) || (defined(HAVE_DECL_SO_SNDBUFFORCE) && HAVE_DECL_SO_SNDBUFFORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SNDBUFFORCE) == (32), "SO_SNDBUFFORCE != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SNDBUFFORCE 32
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __sparc__
+#if defined(SO_RCVBUFFORCE) || (defined(HAVE_DECL_SO_RCVBUFFORCE) && HAVE_DECL_SO_RCVBUFFORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVBUFFORCE) == (4107), "SO_RCVBUFFORCE != 4107");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVBUFFORCE 4107
+#endif
+#else
+#if defined(SO_RCVBUFFORCE) || (defined(HAVE_DECL_SO_RCVBUFFORCE) && HAVE_DECL_SO_RCVBUFFORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RCVBUFFORCE) == (33), "SO_RCVBUFFORCE != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RCVBUFFORCE 33
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_PASSSEC) || (defined(HAVE_DECL_SO_PASSSEC) && HAVE_DECL_SO_PASSSEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSSEC) == (31), "SO_PASSSEC != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSSEC 31
+#endif
+#elif defined __hppa__
+#if defined(SO_PASSSEC) || (defined(HAVE_DECL_SO_PASSSEC) && HAVE_DECL_SO_PASSSEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSSEC) == (16414), "SO_PASSSEC != 16414");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSSEC 16414
+#endif
+#else
+#if defined(SO_PASSSEC) || (defined(HAVE_DECL_SO_PASSSEC) && HAVE_DECL_SO_PASSSEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PASSSEC) == (34), "SO_PASSSEC != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PASSSEC 34
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_TIMESTAMPNS) || (defined(HAVE_DECL_SO_TIMESTAMPNS) && HAVE_DECL_SO_TIMESTAMPNS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMPNS) == (33), "SO_TIMESTAMPNS != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMPNS 33
+#endif
+#elif defined __hppa__
+#if defined(SO_TIMESTAMPNS) || (defined(HAVE_DECL_SO_TIMESTAMPNS) && HAVE_DECL_SO_TIMESTAMPNS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMPNS) == (16403), "SO_TIMESTAMPNS != 16403");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMPNS 16403
+#endif
+#else
+#if defined(SO_TIMESTAMPNS) || (defined(HAVE_DECL_SO_TIMESTAMPNS) && HAVE_DECL_SO_TIMESTAMPNS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMPNS) == (35), "SO_TIMESTAMPNS != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMPNS 35
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_MARK) || (defined(HAVE_DECL_SO_MARK) && HAVE_DECL_SO_MARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MARK) == (34), "SO_MARK != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MARK 34
+#endif
+#elif defined __hppa__
+#if defined(SO_MARK) || (defined(HAVE_DECL_SO_MARK) && HAVE_DECL_SO_MARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MARK) == (16415), "SO_MARK != 16415");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MARK 16415
+#endif
+#else
+#if defined(SO_MARK) || (defined(HAVE_DECL_SO_MARK) && HAVE_DECL_SO_MARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MARK) == (36), "SO_MARK != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MARK 36
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_TIMESTAMPING) || (defined(HAVE_DECL_SO_TIMESTAMPING) && HAVE_DECL_SO_TIMESTAMPING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMPING) == (35), "SO_TIMESTAMPING != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMPING 35
+#endif
+#elif defined __hppa__
+#if defined(SO_TIMESTAMPING) || (defined(HAVE_DECL_SO_TIMESTAMPING) && HAVE_DECL_SO_TIMESTAMPING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMPING) == (16416), "SO_TIMESTAMPING != 16416");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMPING 16416
+#endif
+#else
+#if defined(SO_TIMESTAMPING) || (defined(HAVE_DECL_SO_TIMESTAMPING) && HAVE_DECL_SO_TIMESTAMPING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMPING) == (37), "SO_TIMESTAMPING != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMPING 37
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_PROTOCOL) || (defined(HAVE_DECL_SO_PROTOCOL) && HAVE_DECL_SO_PROTOCOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PROTOCOL) == (4136), "SO_PROTOCOL != 4136");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PROTOCOL 4136
+#endif
+#else
+#if defined(SO_PROTOCOL) || (defined(HAVE_DECL_SO_PROTOCOL) && HAVE_DECL_SO_PROTOCOL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PROTOCOL) == (38), "SO_PROTOCOL != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PROTOCOL 38
+#endif
+#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SO_DOMAIN) || (defined(HAVE_DECL_SO_DOMAIN) && HAVE_DECL_SO_DOMAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_DOMAIN) == (4137), "SO_DOMAIN != 4137");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_DOMAIN 4137
+#endif
+#else
+#if defined(SO_DOMAIN) || (defined(HAVE_DECL_SO_DOMAIN) && HAVE_DECL_SO_DOMAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_DOMAIN) == (39), "SO_DOMAIN != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_DOMAIN 39
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_RXQ_OVFL) || (defined(HAVE_DECL_SO_RXQ_OVFL) && HAVE_DECL_SO_RXQ_OVFL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RXQ_OVFL) == (36), "SO_RXQ_OVFL != 36");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RXQ_OVFL 36
+#endif
+#elif defined __hppa__
+#if defined(SO_RXQ_OVFL) || (defined(HAVE_DECL_SO_RXQ_OVFL) && HAVE_DECL_SO_RXQ_OVFL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RXQ_OVFL) == (16417), "SO_RXQ_OVFL != 16417");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RXQ_OVFL 16417
+#endif
+#else
+#if defined(SO_RXQ_OVFL) || (defined(HAVE_DECL_SO_RXQ_OVFL) && HAVE_DECL_SO_RXQ_OVFL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RXQ_OVFL) == (40), "SO_RXQ_OVFL != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RXQ_OVFL 40
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_WIFI_STATUS) == (37), "SO_WIFI_STATUS != 37");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_WIFI_STATUS 37
+#endif
+#elif defined __hppa__
+#if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_WIFI_STATUS) == (16418), "SO_WIFI_STATUS != 16418");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_WIFI_STATUS 16418
+#endif
+#else
+#if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_WIFI_STATUS) == (41), "SO_WIFI_STATUS != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_WIFI_STATUS 41
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_PEEK_OFF) || (defined(HAVE_DECL_SO_PEEK_OFF) && HAVE_DECL_SO_PEEK_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEEK_OFF) == (38), "SO_PEEK_OFF != 38");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEEK_OFF 38
+#endif
+#elif defined __hppa__
+#if defined(SO_PEEK_OFF) || (defined(HAVE_DECL_SO_PEEK_OFF) && HAVE_DECL_SO_PEEK_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEEK_OFF) == (16419), "SO_PEEK_OFF != 16419");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEEK_OFF 16419
+#endif
+#else
+#if defined(SO_PEEK_OFF) || (defined(HAVE_DECL_SO_PEEK_OFF) && HAVE_DECL_SO_PEEK_OFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEEK_OFF) == (42), "SO_PEEK_OFF != 42");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEEK_OFF 42
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_NOFCS) || (defined(HAVE_DECL_SO_NOFCS) && HAVE_DECL_SO_NOFCS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_NOFCS) == (39), "SO_NOFCS != 39");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_NOFCS 39
+#endif
+#elif defined __hppa__
+#if defined(SO_NOFCS) || (defined(HAVE_DECL_SO_NOFCS) && HAVE_DECL_SO_NOFCS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_NOFCS) == (16420), "SO_NOFCS != 16420");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_NOFCS 16420
+#endif
+#else
+#if defined(SO_NOFCS) || (defined(HAVE_DECL_SO_NOFCS) && HAVE_DECL_SO_NOFCS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_NOFCS) == (43), "SO_NOFCS != 43");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_NOFCS 43
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_LOCK_FILTER) || (defined(HAVE_DECL_SO_LOCK_FILTER) && HAVE_DECL_SO_LOCK_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_LOCK_FILTER) == (40), "SO_LOCK_FILTER != 40");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_LOCK_FILTER 40
+#endif
+#elif defined __hppa__
+#if defined(SO_LOCK_FILTER) || (defined(HAVE_DECL_SO_LOCK_FILTER) && HAVE_DECL_SO_LOCK_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_LOCK_FILTER) == (16421), "SO_LOCK_FILTER != 16421");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_LOCK_FILTER 16421
+#endif
+#else
+#if defined(SO_LOCK_FILTER) || (defined(HAVE_DECL_SO_LOCK_FILTER) && HAVE_DECL_SO_LOCK_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_LOCK_FILTER) == (44), "SO_LOCK_FILTER != 44");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_LOCK_FILTER 44
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_SELECT_ERR_QUEUE) || (defined(HAVE_DECL_SO_SELECT_ERR_QUEUE) && HAVE_DECL_SO_SELECT_ERR_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SELECT_ERR_QUEUE) == (41), "SO_SELECT_ERR_QUEUE != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SELECT_ERR_QUEUE 41
+#endif
+#elif defined __hppa__
+#if defined(SO_SELECT_ERR_QUEUE) || (defined(HAVE_DECL_SO_SELECT_ERR_QUEUE) && HAVE_DECL_SO_SELECT_ERR_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SELECT_ERR_QUEUE) == (16422), "SO_SELECT_ERR_QUEUE != 16422");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SELECT_ERR_QUEUE 16422
+#endif
+#else
+#if defined(SO_SELECT_ERR_QUEUE) || (defined(HAVE_DECL_SO_SELECT_ERR_QUEUE) && HAVE_DECL_SO_SELECT_ERR_QUEUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_SELECT_ERR_QUEUE) == (45), "SO_SELECT_ERR_QUEUE != 45");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_SELECT_ERR_QUEUE 45
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_BUSY_POLL) || (defined(HAVE_DECL_SO_BUSY_POLL) && HAVE_DECL_SO_BUSY_POLL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BUSY_POLL) == (48), "SO_BUSY_POLL != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BUSY_POLL 48
+#endif
+#elif defined __hppa__
+#if defined(SO_BUSY_POLL) || (defined(HAVE_DECL_SO_BUSY_POLL) && HAVE_DECL_SO_BUSY_POLL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BUSY_POLL) == (16423), "SO_BUSY_POLL != 16423");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BUSY_POLL 16423
+#endif
+#else
+#if defined(SO_BUSY_POLL) || (defined(HAVE_DECL_SO_BUSY_POLL) && HAVE_DECL_SO_BUSY_POLL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BUSY_POLL) == (46), "SO_BUSY_POLL != 46");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BUSY_POLL 46
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_MAX_PACING_RATE) || (defined(HAVE_DECL_SO_MAX_PACING_RATE) && HAVE_DECL_SO_MAX_PACING_RATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MAX_PACING_RATE) == (49), "SO_MAX_PACING_RATE != 49");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MAX_PACING_RATE 49
+#endif
+#elif defined __hppa__
+#if defined(SO_MAX_PACING_RATE) || (defined(HAVE_DECL_SO_MAX_PACING_RATE) && HAVE_DECL_SO_MAX_PACING_RATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MAX_PACING_RATE) == (16424), "SO_MAX_PACING_RATE != 16424");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MAX_PACING_RATE 16424
+#endif
+#else
+#if defined(SO_MAX_PACING_RATE) || (defined(HAVE_DECL_SO_MAX_PACING_RATE) && HAVE_DECL_SO_MAX_PACING_RATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MAX_PACING_RATE) == (47), "SO_MAX_PACING_RATE != 47");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MAX_PACING_RATE 47
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_BPF_EXTENSIONS) || (defined(HAVE_DECL_SO_BPF_EXTENSIONS) && HAVE_DECL_SO_BPF_EXTENSIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BPF_EXTENSIONS) == (50), "SO_BPF_EXTENSIONS != 50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BPF_EXTENSIONS 50
+#endif
+#elif defined __hppa__
+#if defined(SO_BPF_EXTENSIONS) || (defined(HAVE_DECL_SO_BPF_EXTENSIONS) && HAVE_DECL_SO_BPF_EXTENSIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BPF_EXTENSIONS) == (16425), "SO_BPF_EXTENSIONS != 16425");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BPF_EXTENSIONS 16425
+#endif
+#else
+#if defined(SO_BPF_EXTENSIONS) || (defined(HAVE_DECL_SO_BPF_EXTENSIONS) && HAVE_DECL_SO_BPF_EXTENSIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_BPF_EXTENSIONS) == (48), "SO_BPF_EXTENSIONS != 48");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_BPF_EXTENSIONS 48
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_INCOMING_CPU) || (defined(HAVE_DECL_SO_INCOMING_CPU) && HAVE_DECL_SO_INCOMING_CPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_INCOMING_CPU) == (51), "SO_INCOMING_CPU != 51");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_INCOMING_CPU 51
+#endif
+#elif defined __hppa__
+#if defined(SO_INCOMING_CPU) || (defined(HAVE_DECL_SO_INCOMING_CPU) && HAVE_DECL_SO_INCOMING_CPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_INCOMING_CPU) == (16426), "SO_INCOMING_CPU != 16426");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_INCOMING_CPU 16426
+#endif
+#else
+#if defined(SO_INCOMING_CPU) || (defined(HAVE_DECL_SO_INCOMING_CPU) && HAVE_DECL_SO_INCOMING_CPU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_INCOMING_CPU) == (49), "SO_INCOMING_CPU != 49");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_INCOMING_CPU 49
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_ATTACH_BPF) || (defined(HAVE_DECL_SO_ATTACH_BPF) && HAVE_DECL_SO_ATTACH_BPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_BPF) == (52), "SO_ATTACH_BPF != 52");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_BPF 52
+#endif
+#elif defined __hppa__
+#if defined(SO_ATTACH_BPF) || (defined(HAVE_DECL_SO_ATTACH_BPF) && HAVE_DECL_SO_ATTACH_BPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_BPF) == (16427), "SO_ATTACH_BPF != 16427");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_BPF 16427
+#endif
+#else
+#if defined(SO_ATTACH_BPF) || (defined(HAVE_DECL_SO_ATTACH_BPF) && HAVE_DECL_SO_ATTACH_BPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_BPF) == (50), "SO_ATTACH_BPF != 50");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_BPF 50
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_ATTACH_REUSEPORT_CBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_REUSEPORT_CBPF) == (53), "SO_ATTACH_REUSEPORT_CBPF != 53");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_REUSEPORT_CBPF 53
+#endif
+#elif defined __hppa__
+#if defined(SO_ATTACH_REUSEPORT_CBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_REUSEPORT_CBPF) == (16428), "SO_ATTACH_REUSEPORT_CBPF != 16428");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_REUSEPORT_CBPF 16428
+#endif
+#else
+#if defined(SO_ATTACH_REUSEPORT_CBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_REUSEPORT_CBPF) == (51), "SO_ATTACH_REUSEPORT_CBPF != 51");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_REUSEPORT_CBPF 51
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_ATTACH_REUSEPORT_EBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_REUSEPORT_EBPF) == (54), "SO_ATTACH_REUSEPORT_EBPF != 54");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_REUSEPORT_EBPF 54
+#endif
+#elif defined __hppa__
+#if defined(SO_ATTACH_REUSEPORT_EBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_REUSEPORT_EBPF) == (16429), "SO_ATTACH_REUSEPORT_EBPF != 16429");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_REUSEPORT_EBPF 16429
+#endif
+#else
+#if defined(SO_ATTACH_REUSEPORT_EBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ATTACH_REUSEPORT_EBPF) == (52), "SO_ATTACH_REUSEPORT_EBPF != 52");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ATTACH_REUSEPORT_EBPF 52
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_CNX_ADVICE) == (55), "SO_CNX_ADVICE != 55");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_CNX_ADVICE 55
+#endif
+#elif defined __hppa__
+#if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_CNX_ADVICE) == (16430), "SO_CNX_ADVICE != 16430");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_CNX_ADVICE 16430
+#endif
+#else
+#if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_CNX_ADVICE) == (53), "SO_CNX_ADVICE != 53");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_CNX_ADVICE 53
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MEMINFO) == (57), "SO_MEMINFO != 57");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MEMINFO 57
+#endif
+#elif defined __hppa__
+#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MEMINFO) == (16432), "SO_MEMINFO != 16432");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MEMINFO 16432
+#endif
+#else
+#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_MEMINFO) == (55), "SO_MEMINFO != 55");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_MEMINFO 55
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_INCOMING_NAPI_ID) == (58), "SO_INCOMING_NAPI_ID != 58");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_INCOMING_NAPI_ID 58
+#endif
+#elif defined __hppa__
+#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_INCOMING_NAPI_ID) == (16433), "SO_INCOMING_NAPI_ID != 16433");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_INCOMING_NAPI_ID 16433
+#endif
+#else
+#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_INCOMING_NAPI_ID) == (56), "SO_INCOMING_NAPI_ID != 56");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_INCOMING_NAPI_ID 56
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_COOKIE) == (59), "SO_COOKIE != 59");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_COOKIE 59
+#endif
+#elif defined __hppa__
+#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_COOKIE) == (16434), "SO_COOKIE != 16434");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_COOKIE 16434
+#endif
+#else
+#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_COOKIE) == (57), "SO_COOKIE != 57");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_COOKIE 57
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_PEERGROUPS) || (defined(HAVE_DECL_SO_PEERGROUPS) && HAVE_DECL_SO_PEERGROUPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERGROUPS) == (61), "SO_PEERGROUPS != 61");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERGROUPS 61
+#endif
+#elif defined __hppa__
+#if defined(SO_PEERGROUPS) || (defined(HAVE_DECL_SO_PEERGROUPS) && HAVE_DECL_SO_PEERGROUPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERGROUPS) == (16436), "SO_PEERGROUPS != 16436");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERGROUPS 16436
+#endif
+#else
+#if defined(SO_PEERGROUPS) || (defined(HAVE_DECL_SO_PEERGROUPS) && HAVE_DECL_SO_PEERGROUPS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_PEERGROUPS) == (59), "SO_PEERGROUPS != 59");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_PEERGROUPS 59
+#endif
+#endif
+#if defined __sparc__
+#if defined(SO_ZEROCOPY) || (defined(HAVE_DECL_SO_ZEROCOPY) && HAVE_DECL_SO_ZEROCOPY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ZEROCOPY) == (62), "SO_ZEROCOPY != 62");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ZEROCOPY 62
+#endif
+#elif defined __hppa__
+#if defined(SO_ZEROCOPY) || (defined(HAVE_DECL_SO_ZEROCOPY) && HAVE_DECL_SO_ZEROCOPY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ZEROCOPY) == (16437), "SO_ZEROCOPY != 16437");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ZEROCOPY 16437
+#endif
+#else
+#if defined(SO_ZEROCOPY) || (defined(HAVE_DECL_SO_ZEROCOPY) && HAVE_DECL_SO_ZEROCOPY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_ZEROCOPY) == (60), "SO_ZEROCOPY != 60");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_ZEROCOPY 60
+#endif
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_options[] = {
+ XLAT(SO_DEBUG),
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_REUSEADDR),
+#else
+ XLAT(SO_REUSEADDR),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_TYPE),
+#else
+ XLAT(SO_TYPE),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_ERROR),
+#else
+ XLAT(SO_ERROR),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_DONTROUTE),
+#else
+ XLAT(SO_DONTROUTE),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_BROADCAST),
+#else
+ XLAT(SO_BROADCAST),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_SNDBUF),
+#else
+ XLAT(SO_SNDBUF),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_RCVBUF),
+#else
+ XLAT(SO_RCVBUF),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_KEEPALIVE),
+#else
+ XLAT(SO_KEEPALIVE),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_OOBINLINE),
+#else
+ XLAT(SO_OOBINLINE),
+#endif
+
+#if defined __hppa__
+ XLAT(SO_NO_CHECK),
+#else
+ XLAT(SO_NO_CHECK),
+#endif
+
+#if defined __hppa__
+ XLAT(SO_PRIORITY),
+#else
+ XLAT(SO_PRIORITY),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_LINGER),
+#else
+ XLAT(SO_LINGER),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_BSDCOMPAT),
+#elif defined __hppa__
+ XLAT(SO_BSDCOMPAT),
+#else
+ XLAT(SO_BSDCOMPAT),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_REUSEPORT),
+#else
+ XLAT(SO_REUSEPORT),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_PASSCRED),
+#elif defined __alpha__ || defined __mips__
+ XLAT(SO_PASSCRED),
+#elif defined __powerpc__
+ XLAT(SO_PASSCRED),
+#elif defined __hppa__
+ XLAT(SO_PASSCRED),
+#else
+ XLAT(SO_PASSCRED),
+#endif
+
+#if defined __alpha__ || defined __mips__
+ XLAT(SO_PEERCRED),
+#elif defined __powerpc__
+ XLAT(SO_PEERCRED),
+#elif defined __sparc__
+ XLAT(SO_PEERCRED),
+#elif defined __hppa__
+ XLAT(SO_PEERCRED),
+#else
+ XLAT(SO_PEERCRED),
+#endif
+
+#if defined __powerpc__
+ XLAT(SO_RCVLOWAT),
+#elif defined __sparc__
+ XLAT(SO_RCVLOWAT),
+#elif defined __hppa__ || defined __mips__
+ XLAT(SO_RCVLOWAT),
+#elif defined __alpha__
+ XLAT(SO_RCVLOWAT),
+#else
+ XLAT(SO_RCVLOWAT),
+#endif
+
+#if defined __powerpc__
+ XLAT(SO_SNDLOWAT),
+#elif defined __sparc__
+ XLAT(SO_SNDLOWAT),
+#elif defined __hppa__ || defined __mips__
+ XLAT(SO_SNDLOWAT),
+#elif defined __alpha__
+ XLAT(SO_SNDLOWAT),
+#else
+ XLAT(SO_SNDLOWAT),
+#endif
+
+#if defined __powerpc__
+ XLAT(SO_RCVTIMEO),
+#elif defined __hppa__ || defined __mips__
+ XLAT(SO_RCVTIMEO),
+#elif defined __alpha__
+ XLAT(SO_RCVTIMEO),
+#elif defined __sparc__
+ XLAT(SO_RCVTIMEO),
+#else
+ XLAT(SO_RCVTIMEO),
+#endif
+
+#if defined __powerpc__
+ XLAT(SO_SNDTIMEO),
+#elif defined __hppa__ || defined __mips__
+ XLAT(SO_SNDTIMEO),
+#elif defined __alpha__
+ XLAT(SO_SNDTIMEO),
+#elif defined __sparc__
+ XLAT(SO_SNDTIMEO),
+#else
+ XLAT(SO_SNDTIMEO),
+#endif
+
+#if defined __alpha__
+ XLAT(SO_SECURITY_AUTHENTICATION),
+#elif defined __hppa__
+ XLAT(SO_SECURITY_AUTHENTICATION),
+#elif defined __sparc__
+ XLAT(SO_SECURITY_AUTHENTICATION),
+#else
+ XLAT(SO_SECURITY_AUTHENTICATION),
+#endif
+
+#if defined __alpha__
+ XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
+#elif defined __hppa__
+ XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
+#elif defined __sparc__
+ XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
+#else
+ XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
+#endif
+
+#if defined __alpha__
+ XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
+#elif defined __hppa__
+ XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
+#elif defined __sparc__
+ XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
+#else
+ XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_BINDTODEVICE),
+#elif defined __hppa__
+ XLAT(SO_BINDTODEVICE),
+#else
+ XLAT(SO_BINDTODEVICE),
+#endif
+
+#if defined __hppa__
+ XLAT(SO_DETACH_FILTER),
+#else
+ XLAT(SO_DETACH_FILTER),
+#endif
+
+#if defined __hppa__
+ XLAT(SO_PEERNAME),
+#else
+ XLAT(SO_PEERNAME),
+#endif
+
+#if defined __hppa__
+ XLAT(SO_TIMESTAMP),
+#else
+ XLAT(SO_TIMESTAMP),
+#endif
+
+#if defined __mips__
+ XLAT(SO_ACCEPTCONN),
+#elif defined __alpha__
+ XLAT(SO_ACCEPTCONN),
+#elif defined __hppa__
+ XLAT(SO_ACCEPTCONN),
+#elif defined __sparc__
+ XLAT(SO_ACCEPTCONN),
+#else
+ XLAT(SO_ACCEPTCONN),
+#endif
+
+#if defined __alpha__ || defined __mips__ || defined __sparc__
+ XLAT(SO_PEERSEC),
+#elif defined __hppa__
+ XLAT(SO_PEERSEC),
+#else
+ XLAT(SO_PEERSEC),
+#endif
+
+#if defined __mips__
+ XLAT(SO_SNDBUFFORCE),
+#elif defined __alpha__ || defined __hppa__ || defined __sparc__
+ XLAT(SO_SNDBUFFORCE),
+#else
+ XLAT(SO_SNDBUFFORCE),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __sparc__
+ XLAT(SO_RCVBUFFORCE),
+#else
+ XLAT(SO_RCVBUFFORCE),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_PASSSEC),
+#elif defined __hppa__
+ XLAT(SO_PASSSEC),
+#else
+ XLAT(SO_PASSSEC),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_TIMESTAMPNS),
+#elif defined __hppa__
+ XLAT(SO_TIMESTAMPNS),
+#else
+ XLAT(SO_TIMESTAMPNS),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_MARK),
+#elif defined __hppa__
+ XLAT(SO_MARK),
+#else
+ XLAT(SO_MARK),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_TIMESTAMPING),
+#elif defined __hppa__
+ XLAT(SO_TIMESTAMPING),
+#else
+ XLAT(SO_TIMESTAMPING),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_PROTOCOL),
+#else
+ XLAT(SO_PROTOCOL),
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SO_DOMAIN),
+#else
+ XLAT(SO_DOMAIN),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_RXQ_OVFL),
+#elif defined __hppa__
+ XLAT(SO_RXQ_OVFL),
+#else
+ XLAT(SO_RXQ_OVFL),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_WIFI_STATUS),
+#elif defined __hppa__
+ XLAT(SO_WIFI_STATUS),
+#else
+ XLAT(SO_WIFI_STATUS),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_PEEK_OFF),
+#elif defined __hppa__
+ XLAT(SO_PEEK_OFF),
+#else
+ XLAT(SO_PEEK_OFF),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_NOFCS),
+#elif defined __hppa__
+ XLAT(SO_NOFCS),
+#else
+ XLAT(SO_NOFCS),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_LOCK_FILTER),
+#elif defined __hppa__
+ XLAT(SO_LOCK_FILTER),
+#else
+ XLAT(SO_LOCK_FILTER),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_SELECT_ERR_QUEUE),
+#elif defined __hppa__
+ XLAT(SO_SELECT_ERR_QUEUE),
+#else
+ XLAT(SO_SELECT_ERR_QUEUE),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_BUSY_POLL),
+#elif defined __hppa__
+ XLAT(SO_BUSY_POLL),
+#else
+ XLAT(SO_BUSY_POLL),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_MAX_PACING_RATE),
+#elif defined __hppa__
+ XLAT(SO_MAX_PACING_RATE),
+#else
+ XLAT(SO_MAX_PACING_RATE),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_BPF_EXTENSIONS),
+#elif defined __hppa__
+ XLAT(SO_BPF_EXTENSIONS),
+#else
+ XLAT(SO_BPF_EXTENSIONS),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_INCOMING_CPU),
+#elif defined __hppa__
+ XLAT(SO_INCOMING_CPU),
+#else
+ XLAT(SO_INCOMING_CPU),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_ATTACH_BPF),
+#elif defined __hppa__
+ XLAT(SO_ATTACH_BPF),
+#else
+ XLAT(SO_ATTACH_BPF),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_ATTACH_REUSEPORT_CBPF),
+#elif defined __hppa__
+ XLAT(SO_ATTACH_REUSEPORT_CBPF),
+#else
+ XLAT(SO_ATTACH_REUSEPORT_CBPF),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_ATTACH_REUSEPORT_EBPF),
+#elif defined __hppa__
+ XLAT(SO_ATTACH_REUSEPORT_EBPF),
+#else
+ XLAT(SO_ATTACH_REUSEPORT_EBPF),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_CNX_ADVICE),
+#elif defined __hppa__
+ XLAT(SO_CNX_ADVICE),
+#else
+ XLAT(SO_CNX_ADVICE),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_MEMINFO),
+#elif defined __hppa__
+ XLAT(SO_MEMINFO),
+#else
+ XLAT(SO_MEMINFO),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_INCOMING_NAPI_ID),
+#elif defined __hppa__
+ XLAT(SO_INCOMING_NAPI_ID),
+#else
+ XLAT(SO_INCOMING_NAPI_ID),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_COOKIE),
+#elif defined __hppa__
+ XLAT(SO_COOKIE),
+#else
+ XLAT(SO_COOKIE),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_PEERGROUPS),
+#elif defined __hppa__
+ XLAT(SO_PEERGROUPS),
+#else
+ XLAT(SO_PEERGROUPS),
+#endif
+
+#if defined __sparc__
+ XLAT(SO_ZEROCOPY),
+#elif defined __hppa__
+ XLAT(SO_ZEROCOPY),
+#else
+ XLAT(SO_ZEROCOPY),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_options.in b/xlat/sock_options.in
new file mode 100644
index 0000000..6104f4a
--- /dev/null
+++ b/xlat/sock_options.in
@@ -0,0 +1,445 @@
+SO_DEBUG 1
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_REUSEADDR 4
+#else
+SO_REUSEADDR 2
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_TYPE 4104
+#else
+SO_TYPE 3
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_ERROR 4103
+#else
+SO_ERROR 4
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_DONTROUTE 16
+#else
+SO_DONTROUTE 5
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_BROADCAST 32
+#else
+SO_BROADCAST 6
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_SNDBUF 4097
+#else
+SO_SNDBUF 7
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_RCVBUF 4098
+#else
+SO_RCVBUF 8
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_KEEPALIVE 8
+#else
+SO_KEEPALIVE 9
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_OOBINLINE 256
+#else
+SO_OOBINLINE 10
+#endif
+
+#if defined __hppa__
+SO_NO_CHECK 16395
+#else
+SO_NO_CHECK 11
+#endif
+
+#if defined __hppa__
+SO_PRIORITY 16396
+#else
+SO_PRIORITY 12
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_LINGER 128
+#else
+SO_LINGER 13
+#endif
+
+#if defined __sparc__
+SO_BSDCOMPAT 1024
+#elif defined __hppa__
+SO_BSDCOMPAT 16398
+#else
+SO_BSDCOMPAT 14
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_REUSEPORT 512
+#else
+SO_REUSEPORT 15
+#endif
+
+#if defined __sparc__
+SO_PASSCRED 2
+#elif defined __alpha__ || defined __mips__
+SO_PASSCRED 17
+#elif defined __powerpc__
+SO_PASSCRED 20
+#elif defined __hppa__
+SO_PASSCRED 16400
+#else
+SO_PASSCRED 16
+#endif
+
+#if defined __alpha__ || defined __mips__
+SO_PEERCRED 18
+#elif defined __powerpc__
+SO_PEERCRED 21
+#elif defined __sparc__
+SO_PEERCRED 64
+#elif defined __hppa__
+SO_PEERCRED 16401
+#else
+SO_PEERCRED 17
+#endif
+
+#if defined __powerpc__
+SO_RCVLOWAT 16
+#elif defined __sparc__
+SO_RCVLOWAT 2048
+#elif defined __hppa__ || defined __mips__
+SO_RCVLOWAT 4100
+#elif defined __alpha__
+SO_RCVLOWAT 4112
+#else
+SO_RCVLOWAT 18
+#endif
+
+#if defined __powerpc__
+SO_SNDLOWAT 17
+#elif defined __sparc__
+SO_SNDLOWAT 4096
+#elif defined __hppa__ || defined __mips__
+SO_SNDLOWAT 4099
+#elif defined __alpha__
+SO_SNDLOWAT 4113
+#else
+SO_SNDLOWAT 19
+#endif
+
+#if defined __powerpc__
+SO_RCVTIMEO 18
+#elif defined __hppa__ || defined __mips__
+SO_RCVTIMEO 4102
+#elif defined __alpha__
+SO_RCVTIMEO 4114
+#elif defined __sparc__
+SO_RCVTIMEO 8192
+#else
+SO_RCVTIMEO 20
+#endif
+
+#if defined __powerpc__
+SO_SNDTIMEO 19
+#elif defined __hppa__ || defined __mips__
+SO_SNDTIMEO 4101
+#elif defined __alpha__
+SO_SNDTIMEO 4115
+#elif defined __sparc__
+SO_SNDTIMEO 16384
+#else
+SO_SNDTIMEO 21
+#endif
+
+#if defined __alpha__
+SO_SECURITY_AUTHENTICATION 19
+#elif defined __hppa__
+SO_SECURITY_AUTHENTICATION 16406
+#elif defined __sparc__
+SO_SECURITY_AUTHENTICATION 20481
+#else
+SO_SECURITY_AUTHENTICATION 22
+#endif
+
+#if defined __alpha__
+SO_SECURITY_ENCRYPTION_TRANSPORT 20
+#elif defined __hppa__
+SO_SECURITY_ENCRYPTION_TRANSPORT 16407
+#elif defined __sparc__
+SO_SECURITY_ENCRYPTION_TRANSPORT 20482
+#else
+SO_SECURITY_ENCRYPTION_TRANSPORT 23
+#endif
+
+#if defined __alpha__
+SO_SECURITY_ENCRYPTION_NETWORK 21
+#elif defined __hppa__
+SO_SECURITY_ENCRYPTION_NETWORK 16408
+#elif defined __sparc__
+SO_SECURITY_ENCRYPTION_NETWORK 20484
+#else
+SO_SECURITY_ENCRYPTION_NETWORK 24
+#endif
+
+#if defined __sparc__
+SO_BINDTODEVICE 13
+#elif defined __hppa__
+SO_BINDTODEVICE 16409
+#else
+SO_BINDTODEVICE 25
+#endif
+
+#if defined __hppa__
+SO_DETACH_FILTER 16411
+#else
+SO_DETACH_FILTER 27
+#endif
+
+#if defined __hppa__
+SO_PEERNAME 8192
+#else
+SO_PEERNAME 28
+#endif
+
+#if defined __hppa__
+SO_TIMESTAMP 16402
+#else
+SO_TIMESTAMP 29
+#endif
+
+#if defined __mips__
+SO_ACCEPTCONN 4105
+#elif defined __alpha__
+SO_ACCEPTCONN 4116
+#elif defined __hppa__
+SO_ACCEPTCONN 16412
+#elif defined __sparc__
+SO_ACCEPTCONN 32768
+#else
+SO_ACCEPTCONN 30
+#endif
+
+#if defined __alpha__ || defined __mips__ || defined __sparc__
+SO_PEERSEC 30
+#elif defined __hppa__
+SO_PEERSEC 16413
+#else
+SO_PEERSEC 31
+#endif
+
+#if defined __mips__
+SO_SNDBUFFORCE 31
+#elif defined __alpha__ || defined __hppa__ || defined __sparc__
+SO_SNDBUFFORCE 4106
+#else
+SO_SNDBUFFORCE 32
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __sparc__
+SO_RCVBUFFORCE 4107
+#else
+SO_RCVBUFFORCE 33
+#endif
+
+#if defined __sparc__
+SO_PASSSEC 31
+#elif defined __hppa__
+SO_PASSSEC 16414
+#else
+SO_PASSSEC 34
+#endif
+
+#if defined __sparc__
+SO_TIMESTAMPNS 33
+#elif defined __hppa__
+SO_TIMESTAMPNS 16403
+#else
+SO_TIMESTAMPNS 35
+#endif
+
+#if defined __sparc__
+SO_MARK 34
+#elif defined __hppa__
+SO_MARK 16415
+#else
+SO_MARK 36
+#endif
+
+#if defined __sparc__
+SO_TIMESTAMPING 35
+#elif defined __hppa__
+SO_TIMESTAMPING 16416
+#else
+SO_TIMESTAMPING 37
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_PROTOCOL 4136
+#else
+SO_PROTOCOL 38
+#endif
+
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SO_DOMAIN 4137
+#else
+SO_DOMAIN 39
+#endif
+
+#if defined __sparc__
+SO_RXQ_OVFL 36
+#elif defined __hppa__
+SO_RXQ_OVFL 16417
+#else
+SO_RXQ_OVFL 40
+#endif
+
+#if defined __sparc__
+SO_WIFI_STATUS 37
+#elif defined __hppa__
+SO_WIFI_STATUS 16418
+#else
+SO_WIFI_STATUS 41
+#endif
+
+#if defined __sparc__
+SO_PEEK_OFF 38
+#elif defined __hppa__
+SO_PEEK_OFF 16419
+#else
+SO_PEEK_OFF 42
+#endif
+
+#if defined __sparc__
+SO_NOFCS 39
+#elif defined __hppa__
+SO_NOFCS 16420
+#else
+SO_NOFCS 43
+#endif
+
+#if defined __sparc__
+SO_LOCK_FILTER 40
+#elif defined __hppa__
+SO_LOCK_FILTER 16421
+#else
+SO_LOCK_FILTER 44
+#endif
+
+#if defined __sparc__
+SO_SELECT_ERR_QUEUE 41
+#elif defined __hppa__
+SO_SELECT_ERR_QUEUE 16422
+#else
+SO_SELECT_ERR_QUEUE 45
+#endif
+
+#if defined __sparc__
+SO_BUSY_POLL 48
+#elif defined __hppa__
+SO_BUSY_POLL 16423
+#else
+SO_BUSY_POLL 46
+#endif
+
+#if defined __sparc__
+SO_MAX_PACING_RATE 49
+#elif defined __hppa__
+SO_MAX_PACING_RATE 16424
+#else
+SO_MAX_PACING_RATE 47
+#endif
+
+#if defined __sparc__
+SO_BPF_EXTENSIONS 50
+#elif defined __hppa__
+SO_BPF_EXTENSIONS 16425
+#else
+SO_BPF_EXTENSIONS 48
+#endif
+
+#if defined __sparc__
+SO_INCOMING_CPU 51
+#elif defined __hppa__
+SO_INCOMING_CPU 16426
+#else
+SO_INCOMING_CPU 49
+#endif
+
+#if defined __sparc__
+SO_ATTACH_BPF 52
+#elif defined __hppa__
+SO_ATTACH_BPF 16427
+#else
+SO_ATTACH_BPF 50
+#endif
+
+#if defined __sparc__
+SO_ATTACH_REUSEPORT_CBPF 53
+#elif defined __hppa__
+SO_ATTACH_REUSEPORT_CBPF 16428
+#else
+SO_ATTACH_REUSEPORT_CBPF 51
+#endif
+
+#if defined __sparc__
+SO_ATTACH_REUSEPORT_EBPF 54
+#elif defined __hppa__
+SO_ATTACH_REUSEPORT_EBPF 16429
+#else
+SO_ATTACH_REUSEPORT_EBPF 52
+#endif
+
+#if defined __sparc__
+SO_CNX_ADVICE 55
+#elif defined __hppa__
+SO_CNX_ADVICE 16430
+#else
+SO_CNX_ADVICE 53
+#endif
+
+#if defined __sparc__
+SO_MEMINFO 57
+#elif defined __hppa__
+SO_MEMINFO 16432
+#else
+SO_MEMINFO 55
+#endif
+
+#if defined __sparc__
+SO_INCOMING_NAPI_ID 58
+#elif defined __hppa__
+SO_INCOMING_NAPI_ID 16433
+#else
+SO_INCOMING_NAPI_ID 56
+#endif
+
+#if defined __sparc__
+SO_COOKIE 59
+#elif defined __hppa__
+SO_COOKIE 16434
+#else
+SO_COOKIE 57
+#endif
+
+#if defined __sparc__
+SO_PEERGROUPS 61
+#elif defined __hppa__
+SO_PEERGROUPS 16436
+#else
+SO_PEERGROUPS 59
+#endif
+
+#if defined __sparc__
+SO_ZEROCOPY 62
+#elif defined __hppa__
+SO_ZEROCOPY 16437
+#else
+SO_ZEROCOPY 60
+#endif
diff --git a/xlat/sock_packet_options.h b/xlat/sock_packet_options.h
new file mode 100644
index 0000000..045fc59
--- /dev/null
+++ b/xlat/sock_packet_options.h
@@ -0,0 +1,85 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_packet_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 sock_packet_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_packet_options[] = {
+#if defined(PACKET_ADD_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_ADD_MEMBERSHIP) && HAVE_DECL_PACKET_ADD_MEMBERSHIP)
+ XLAT(PACKET_ADD_MEMBERSHIP),
+#endif
+#if defined(PACKET_DROP_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_DROP_MEMBERSHIP) && HAVE_DECL_PACKET_DROP_MEMBERSHIP)
+ XLAT(PACKET_DROP_MEMBERSHIP),
+#endif
+#if defined(PACKET_RECV_OUTPUT) || (defined(HAVE_DECL_PACKET_RECV_OUTPUT) && HAVE_DECL_PACKET_RECV_OUTPUT)
+ XLAT(PACKET_RECV_OUTPUT),
+#endif
+#if defined(PACKET_RX_RING) || (defined(HAVE_DECL_PACKET_RX_RING) && HAVE_DECL_PACKET_RX_RING)
+ XLAT(PACKET_RX_RING),
+#endif
+#if defined(PACKET_STATISTICS) || (defined(HAVE_DECL_PACKET_STATISTICS) && HAVE_DECL_PACKET_STATISTICS)
+ XLAT(PACKET_STATISTICS),
+#endif
+#if defined(PACKET_COPY_THRESH) || (defined(HAVE_DECL_PACKET_COPY_THRESH) && HAVE_DECL_PACKET_COPY_THRESH)
+ XLAT(PACKET_COPY_THRESH),
+#endif
+#if defined(PACKET_AUXDATA) || (defined(HAVE_DECL_PACKET_AUXDATA) && HAVE_DECL_PACKET_AUXDATA)
+ XLAT(PACKET_AUXDATA),
+#endif
+#if defined(PACKET_ORIGDEV) || (defined(HAVE_DECL_PACKET_ORIGDEV) && HAVE_DECL_PACKET_ORIGDEV)
+ XLAT(PACKET_ORIGDEV),
+#endif
+#if defined(PACKET_VERSION) || (defined(HAVE_DECL_PACKET_VERSION) && HAVE_DECL_PACKET_VERSION)
+ XLAT(PACKET_VERSION),
+#endif
+#if defined(PACKET_HDRLEN) || (defined(HAVE_DECL_PACKET_HDRLEN) && HAVE_DECL_PACKET_HDRLEN)
+ XLAT(PACKET_HDRLEN),
+#endif
+#if defined(PACKET_RESERVE) || (defined(HAVE_DECL_PACKET_RESERVE) && HAVE_DECL_PACKET_RESERVE)
+ XLAT(PACKET_RESERVE),
+#endif
+#if defined(PACKET_TX_RING) || (defined(HAVE_DECL_PACKET_TX_RING) && HAVE_DECL_PACKET_TX_RING)
+ XLAT(PACKET_TX_RING),
+#endif
+#if defined(PACKET_LOSS) || (defined(HAVE_DECL_PACKET_LOSS) && HAVE_DECL_PACKET_LOSS)
+ XLAT(PACKET_LOSS),
+#endif
+#if defined(PACKET_VNET_HDR) || (defined(HAVE_DECL_PACKET_VNET_HDR) && HAVE_DECL_PACKET_VNET_HDR)
+ XLAT(PACKET_VNET_HDR),
+#endif
+#if defined(PACKET_TX_TIMESTAMP) || (defined(HAVE_DECL_PACKET_TX_TIMESTAMP) && HAVE_DECL_PACKET_TX_TIMESTAMP)
+ XLAT(PACKET_TX_TIMESTAMP),
+#endif
+#if defined(PACKET_TIMESTAMP) || (defined(HAVE_DECL_PACKET_TIMESTAMP) && HAVE_DECL_PACKET_TIMESTAMP)
+ XLAT(PACKET_TIMESTAMP),
+#endif
+#if defined(PACKET_FANOUT) || (defined(HAVE_DECL_PACKET_FANOUT) && HAVE_DECL_PACKET_FANOUT)
+ XLAT(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),
+#endif
+#if defined(PACKET_QDISC_BYPASS) || (defined(HAVE_DECL_PACKET_QDISC_BYPASS) && HAVE_DECL_PACKET_QDISC_BYPASS)
+ XLAT(PACKET_QDISC_BYPASS),
+#endif
+#if defined(PACKET_ROLLOVER_STATS) || (defined(HAVE_DECL_PACKET_ROLLOVER_STATS) && HAVE_DECL_PACKET_ROLLOVER_STATS)
+ XLAT(PACKET_ROLLOVER_STATS),
+#endif
+#if defined(PACKET_FANOUT_DATA) || (defined(HAVE_DECL_PACKET_FANOUT_DATA) && HAVE_DECL_PACKET_FANOUT_DATA)
+ XLAT(PACKET_FANOUT_DATA),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_packet_options.in b/xlat/sock_packet_options.in
new file mode 100644
index 0000000..d11ad0b
--- /dev/null
+++ b/xlat/sock_packet_options.in
@@ -0,0 +1,21 @@
+PACKET_ADD_MEMBERSHIP
+PACKET_DROP_MEMBERSHIP
+PACKET_RECV_OUTPUT
+PACKET_RX_RING
+PACKET_STATISTICS
+PACKET_COPY_THRESH
+PACKET_AUXDATA
+PACKET_ORIGDEV
+PACKET_VERSION
+PACKET_HDRLEN
+PACKET_RESERVE
+PACKET_TX_RING
+PACKET_LOSS
+PACKET_VNET_HDR
+PACKET_TX_TIMESTAMP
+PACKET_TIMESTAMP
+PACKET_FANOUT
+PACKET_TX_HAS_OFF
+PACKET_QDISC_BYPASS
+PACKET_ROLLOVER_STATS
+PACKET_FANOUT_DATA
diff --git a/xlat/sock_pnp_options.h b/xlat/sock_pnp_options.h
new file mode 100644
index 0000000..d9083b3
--- /dev/null
+++ b/xlat/sock_pnp_options.h
@@ -0,0 +1,54 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_pnp_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PNPIPE_ENCAP) || (defined(HAVE_DECL_PNPIPE_ENCAP) && HAVE_DECL_PNPIPE_ENCAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PNPIPE_ENCAP) == (1), "PNPIPE_ENCAP != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PNPIPE_ENCAP 1
+#endif
+#if defined(PNPIPE_IFINDEX) || (defined(HAVE_DECL_PNPIPE_IFINDEX) && HAVE_DECL_PNPIPE_IFINDEX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PNPIPE_IFINDEX) == (2), "PNPIPE_IFINDEX != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PNPIPE_IFINDEX 2
+#endif
+#if defined(PNPIPE_HANDLE) || (defined(HAVE_DECL_PNPIPE_HANDLE) && HAVE_DECL_PNPIPE_HANDLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PNPIPE_HANDLE) == (3), "PNPIPE_HANDLE != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PNPIPE_HANDLE 3
+#endif
+#if defined(PNPIPE_INITSTATE) || (defined(HAVE_DECL_PNPIPE_INITSTATE) && HAVE_DECL_PNPIPE_INITSTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PNPIPE_INITSTATE) == (4), "PNPIPE_INITSTATE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PNPIPE_INITSTATE 4
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_pnp_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_pnp_options[] = {
+ XLAT(PNPIPE_ENCAP),
+ XLAT(PNPIPE_IFINDEX),
+ XLAT(PNPIPE_HANDLE),
+ XLAT(PNPIPE_INITSTATE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_pnp_options.in b/xlat/sock_pnp_options.in
new file mode 100644
index 0000000..a8d939c
--- /dev/null
+++ b/xlat/sock_pnp_options.in
@@ -0,0 +1,4 @@
+PNPIPE_ENCAP 1
+PNPIPE_IFINDEX 2
+PNPIPE_HANDLE 3
+PNPIPE_INITSTATE 4
diff --git a/xlat/sock_pppol2tp_options.h b/xlat/sock_pppol2tp_options.h
new file mode 100644
index 0000000..4f4064f
--- /dev/null
+++ b/xlat/sock_pppol2tp_options.h
@@ -0,0 +1,62 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_pppol2tp_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(PPPOL2TP_SO_DEBUG) || (defined(HAVE_DECL_PPPOL2TP_SO_DEBUG) && HAVE_DECL_PPPOL2TP_SO_DEBUG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PPPOL2TP_SO_DEBUG) == (1), "PPPOL2TP_SO_DEBUG != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PPPOL2TP_SO_DEBUG 1
+#endif
+#if defined(PPPOL2TP_SO_RECVSEQ) || (defined(HAVE_DECL_PPPOL2TP_SO_RECVSEQ) && HAVE_DECL_PPPOL2TP_SO_RECVSEQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PPPOL2TP_SO_RECVSEQ) == (2), "PPPOL2TP_SO_RECVSEQ != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PPPOL2TP_SO_RECVSEQ 2
+#endif
+#if defined(PPPOL2TP_SO_SENDSEQ) || (defined(HAVE_DECL_PPPOL2TP_SO_SENDSEQ) && HAVE_DECL_PPPOL2TP_SO_SENDSEQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PPPOL2TP_SO_SENDSEQ) == (3), "PPPOL2TP_SO_SENDSEQ != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PPPOL2TP_SO_SENDSEQ 3
+#endif
+#if defined(PPPOL2TP_SO_LNSMODE) || (defined(HAVE_DECL_PPPOL2TP_SO_LNSMODE) && HAVE_DECL_PPPOL2TP_SO_LNSMODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PPPOL2TP_SO_LNSMODE) == (4), "PPPOL2TP_SO_LNSMODE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PPPOL2TP_SO_LNSMODE 4
+#endif
+#if defined(PPPOL2TP_SO_REORDERTO) || (defined(HAVE_DECL_PPPOL2TP_SO_REORDERTO) && HAVE_DECL_PPPOL2TP_SO_REORDERTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((PPPOL2TP_SO_REORDERTO) == (5), "PPPOL2TP_SO_REORDERTO != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define PPPOL2TP_SO_REORDERTO 5
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_pppol2tp_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_pppol2tp_options[] = {
+ [PPPOL2TP_SO_DEBUG] = XLAT(PPPOL2TP_SO_DEBUG),
+ [PPPOL2TP_SO_RECVSEQ] = XLAT(PPPOL2TP_SO_RECVSEQ),
+ [PPPOL2TP_SO_SENDSEQ] = XLAT(PPPOL2TP_SO_SENDSEQ),
+ [PPPOL2TP_SO_LNSMODE] = XLAT(PPPOL2TP_SO_LNSMODE),
+ [PPPOL2TP_SO_REORDERTO] = XLAT(PPPOL2TP_SO_REORDERTO),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_pppol2tp_options.in b/xlat/sock_pppol2tp_options.in
new file mode 100644
index 0000000..9c4177a
--- /dev/null
+++ b/xlat/sock_pppol2tp_options.in
@@ -0,0 +1,6 @@
+#value_indexed
+PPPOL2TP_SO_DEBUG 1
+PPPOL2TP_SO_RECVSEQ 2
+PPPOL2TP_SO_SENDSEQ 3
+PPPOL2TP_SO_LNSMODE 4
+PPPOL2TP_SO_REORDERTO 5
diff --git a/xlat/sock_raw_options.h b/xlat/sock_raw_options.h
new file mode 100644
index 0000000..e69998c
--- /dev/null
+++ b/xlat/sock_raw_options.h
@@ -0,0 +1,25 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_raw_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 sock_raw_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_raw_options[] = {
+#if defined(ICMP_FILTER) || (defined(HAVE_DECL_ICMP_FILTER) && HAVE_DECL_ICMP_FILTER)
+ XLAT(ICMP_FILTER),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_raw_options.in b/xlat/sock_raw_options.in
new file mode 100644
index 0000000..b341134
--- /dev/null
+++ b/xlat/sock_raw_options.in
@@ -0,0 +1 @@
+ICMP_FILTER
diff --git a/xlat/sock_rds_options.h b/xlat/sock_rds_options.h
new file mode 100644
index 0000000..c135a5f
--- /dev/null
+++ b/xlat/sock_rds_options.h
@@ -0,0 +1,209 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_rds_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RDS_CANCEL_SENT_TO) || (defined(HAVE_DECL_RDS_CANCEL_SENT_TO) && HAVE_DECL_RDS_CANCEL_SENT_TO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_CANCEL_SENT_TO) == (1), "RDS_CANCEL_SENT_TO != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_CANCEL_SENT_TO 1
+#endif
+#if defined(RDS_GET_MR) || (defined(HAVE_DECL_RDS_GET_MR) && HAVE_DECL_RDS_GET_MR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_GET_MR) == (2), "RDS_GET_MR != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_GET_MR 2
+#endif
+#if defined(RDS_FREE_MR) || (defined(HAVE_DECL_RDS_FREE_MR) && HAVE_DECL_RDS_FREE_MR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_FREE_MR) == (3), "RDS_FREE_MR != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_FREE_MR 3
+#endif
+#if defined(RDS_BARRIER) || (defined(HAVE_DECL_RDS_BARRIER) && HAVE_DECL_RDS_BARRIER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_BARRIER) == (4), "RDS_BARRIER != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_BARRIER 4
+#endif
+#if defined(RDS_RECVERR) || (defined(HAVE_DECL_RDS_RECVERR) && HAVE_DECL_RDS_RECVERR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_RECVERR) == (5), "RDS_RECVERR != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_RECVERR 5
+#endif
+#if defined(RDS_CONG_MONITOR) || (defined(HAVE_DECL_RDS_CONG_MONITOR) && HAVE_DECL_RDS_CONG_MONITOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_CONG_MONITOR) == (6), "RDS_CONG_MONITOR != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_CONG_MONITOR 6
+#endif
+#if defined(RDS_GET_MR_FOR_DEST) || (defined(HAVE_DECL_RDS_GET_MR_FOR_DEST) && HAVE_DECL_RDS_GET_MR_FOR_DEST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_GET_MR_FOR_DEST) == (7), "RDS_GET_MR_FOR_DEST != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_GET_MR_FOR_DEST 7
+#endif
+#if defined(SO_RDS_TRANSPORT) || (defined(HAVE_DECL_SO_RDS_TRANSPORT) && HAVE_DECL_SO_RDS_TRANSPORT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RDS_TRANSPORT) == (8), "SO_RDS_TRANSPORT != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RDS_TRANSPORT 8
+#endif
+#if defined(SO_RDS_MSG_RXPATH_LATENCY) || (defined(HAVE_DECL_SO_RDS_MSG_RXPATH_LATENCY) && HAVE_DECL_SO_RDS_MSG_RXPATH_LATENCY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_RDS_MSG_RXPATH_LATENCY) == (10), "SO_RDS_MSG_RXPATH_LATENCY != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_RDS_MSG_RXPATH_LATENCY 10
+#endif
+#ifndef __hppa__
+#if defined(SO_TIMESTAMP) || (defined(HAVE_DECL_SO_TIMESTAMP) && HAVE_DECL_SO_TIMESTAMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMP) == (29), "SO_TIMESTAMP != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMP 29
+#endif
+#endif
+#if defined(RDS_INFO_COUNTERS) || (defined(HAVE_DECL_RDS_INFO_COUNTERS) && HAVE_DECL_RDS_INFO_COUNTERS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_COUNTERS) == (10000), "RDS_INFO_COUNTERS != 10000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_COUNTERS 10000
+#endif
+#if defined(RDS_INFO_CONNECTIONS) || (defined(HAVE_DECL_RDS_INFO_CONNECTIONS) && HAVE_DECL_RDS_INFO_CONNECTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_CONNECTIONS) == (10001), "RDS_INFO_CONNECTIONS != 10001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_CONNECTIONS 10001
+#endif
+#if defined(RDS_INFO_FLOWS) || (defined(HAVE_DECL_RDS_INFO_FLOWS) && HAVE_DECL_RDS_INFO_FLOWS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_FLOWS) == (10002), "RDS_INFO_FLOWS != 10002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_FLOWS 10002
+#endif
+#if defined(RDS_INFO_SEND_MESSAGES) || (defined(HAVE_DECL_RDS_INFO_SEND_MESSAGES) && HAVE_DECL_RDS_INFO_SEND_MESSAGES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_SEND_MESSAGES) == (10003), "RDS_INFO_SEND_MESSAGES != 10003");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_SEND_MESSAGES 10003
+#endif
+#if defined(RDS_INFO_RETRANS_MESSAGES) || (defined(HAVE_DECL_RDS_INFO_RETRANS_MESSAGES) && HAVE_DECL_RDS_INFO_RETRANS_MESSAGES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_RETRANS_MESSAGES) == (10004), "RDS_INFO_RETRANS_MESSAGES != 10004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_RETRANS_MESSAGES 10004
+#endif
+#if defined(RDS_INFO_RECV_MESSAGES) || (defined(HAVE_DECL_RDS_INFO_RECV_MESSAGES) && HAVE_DECL_RDS_INFO_RECV_MESSAGES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_RECV_MESSAGES) == (10005), "RDS_INFO_RECV_MESSAGES != 10005");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_RECV_MESSAGES 10005
+#endif
+#if defined(RDS_INFO_SOCKETS) || (defined(HAVE_DECL_RDS_INFO_SOCKETS) && HAVE_DECL_RDS_INFO_SOCKETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_SOCKETS) == (10006), "RDS_INFO_SOCKETS != 10006");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_SOCKETS 10006
+#endif
+#if defined(RDS_INFO_TCP_SOCKETS) || (defined(HAVE_DECL_RDS_INFO_TCP_SOCKETS) && HAVE_DECL_RDS_INFO_TCP_SOCKETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_TCP_SOCKETS) == (10007), "RDS_INFO_TCP_SOCKETS != 10007");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_TCP_SOCKETS 10007
+#endif
+#if defined(RDS_INFO_IB_CONNECTIONS) || (defined(HAVE_DECL_RDS_INFO_IB_CONNECTIONS) && HAVE_DECL_RDS_INFO_IB_CONNECTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_IB_CONNECTIONS) == (10008), "RDS_INFO_IB_CONNECTIONS != 10008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_IB_CONNECTIONS 10008
+#endif
+#if defined(RDS_INFO_CONNECTION_STATS) || (defined(HAVE_DECL_RDS_INFO_CONNECTION_STATS) && HAVE_DECL_RDS_INFO_CONNECTION_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_CONNECTION_STATS) == (10009), "RDS_INFO_CONNECTION_STATS != 10009");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_CONNECTION_STATS 10009
+#endif
+#if defined(RDS_INFO_IWARP_CONNECTIONS) || (defined(HAVE_DECL_RDS_INFO_IWARP_CONNECTIONS) && HAVE_DECL_RDS_INFO_IWARP_CONNECTIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RDS_INFO_IWARP_CONNECTIONS) == (10010), "RDS_INFO_IWARP_CONNECTIONS != 10010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RDS_INFO_IWARP_CONNECTIONS 10010
+#endif
+#ifdef __hppa__
+#if defined(SO_TIMESTAMP) || (defined(HAVE_DECL_SO_TIMESTAMP) && HAVE_DECL_SO_TIMESTAMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SO_TIMESTAMP) == (0x4012), "SO_TIMESTAMP != 0x4012");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SO_TIMESTAMP 0x4012
+#endif
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_rds_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_rds_options[] = {
+ XLAT(RDS_CANCEL_SENT_TO),
+ XLAT(RDS_GET_MR),
+ XLAT(RDS_FREE_MR),
+ XLAT(RDS_BARRIER),
+ XLAT(RDS_RECVERR),
+ XLAT(RDS_CONG_MONITOR),
+ XLAT(RDS_GET_MR_FOR_DEST),
+ XLAT(SO_RDS_TRANSPORT),
+ XLAT(SO_RDS_MSG_RXPATH_LATENCY),
+
+#ifndef __hppa__
+ XLAT(SO_TIMESTAMP),
+#endif
+
+ XLAT(RDS_INFO_COUNTERS),
+ XLAT(RDS_INFO_CONNECTIONS),
+ XLAT(RDS_INFO_FLOWS),
+ XLAT(RDS_INFO_SEND_MESSAGES),
+ XLAT(RDS_INFO_RETRANS_MESSAGES),
+ XLAT(RDS_INFO_RECV_MESSAGES),
+ XLAT(RDS_INFO_SOCKETS),
+ XLAT(RDS_INFO_TCP_SOCKETS),
+ XLAT(RDS_INFO_IB_CONNECTIONS),
+ XLAT(RDS_INFO_CONNECTION_STATS),
+ XLAT(RDS_INFO_IWARP_CONNECTIONS),
+
+#ifdef __hppa__
+ XLAT(SO_TIMESTAMP),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_rds_options.in b/xlat/sock_rds_options.in
new file mode 100644
index 0000000..776d64a
--- /dev/null
+++ b/xlat/sock_rds_options.in
@@ -0,0 +1,29 @@
+RDS_CANCEL_SENT_TO 1
+RDS_GET_MR 2
+RDS_FREE_MR 3
+RDS_BARRIER 4
+RDS_RECVERR 5
+RDS_CONG_MONITOR 6
+RDS_GET_MR_FOR_DEST 7
+SO_RDS_TRANSPORT 8
+SO_RDS_MSG_RXPATH_LATENCY 10
+
+#ifndef __hppa__
+SO_TIMESTAMP 29
+#endif
+
+RDS_INFO_COUNTERS 10000
+RDS_INFO_CONNECTIONS 10001
+RDS_INFO_FLOWS 10002
+RDS_INFO_SEND_MESSAGES 10003
+RDS_INFO_RETRANS_MESSAGES 10004
+RDS_INFO_RECV_MESSAGES 10005
+RDS_INFO_SOCKETS 10006
+RDS_INFO_TCP_SOCKETS 10007
+RDS_INFO_IB_CONNECTIONS 10008
+RDS_INFO_CONNECTION_STATS 10009
+RDS_INFO_IWARP_CONNECTIONS 10010
+
+#ifdef __hppa__
+SO_TIMESTAMP 0x4012
+#endif
diff --git a/xlat/sock_rxrpc_options.h b/xlat/sock_rxrpc_options.h
new file mode 100644
index 0000000..a7ab59a
--- /dev/null
+++ b/xlat/sock_rxrpc_options.h
@@ -0,0 +1,70 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_rxrpc_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RXRPC_SECURITY_KEY) || (defined(HAVE_DECL_RXRPC_SECURITY_KEY) && HAVE_DECL_RXRPC_SECURITY_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RXRPC_SECURITY_KEY) == (1), "RXRPC_SECURITY_KEY != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RXRPC_SECURITY_KEY 1
+#endif
+#if defined(RXRPC_SECURITY_KEYRING) || (defined(HAVE_DECL_RXRPC_SECURITY_KEYRING) && HAVE_DECL_RXRPC_SECURITY_KEYRING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RXRPC_SECURITY_KEYRING) == (2), "RXRPC_SECURITY_KEYRING != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RXRPC_SECURITY_KEYRING 2
+#endif
+#if defined(RXRPC_EXCLUSIVE_CONNECTION) || (defined(HAVE_DECL_RXRPC_EXCLUSIVE_CONNECTION) && HAVE_DECL_RXRPC_EXCLUSIVE_CONNECTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RXRPC_EXCLUSIVE_CONNECTION) == (3), "RXRPC_EXCLUSIVE_CONNECTION != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RXRPC_EXCLUSIVE_CONNECTION 3
+#endif
+#if defined(RXRPC_MIN_SECURITY_LEVEL) || (defined(HAVE_DECL_RXRPC_MIN_SECURITY_LEVEL) && HAVE_DECL_RXRPC_MIN_SECURITY_LEVEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RXRPC_MIN_SECURITY_LEVEL) == (4), "RXRPC_MIN_SECURITY_LEVEL != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RXRPC_MIN_SECURITY_LEVEL 4
+#endif
+#if defined(RXRPC_UPGRADEABLE_SERVICE) || (defined(HAVE_DECL_RXRPC_UPGRADEABLE_SERVICE) && HAVE_DECL_RXRPC_UPGRADEABLE_SERVICE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RXRPC_UPGRADEABLE_SERVICE) == (5), "RXRPC_UPGRADEABLE_SERVICE != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RXRPC_UPGRADEABLE_SERVICE 5
+#endif
+#if defined(RXRPC_SUPPORTED_CMSG) || (defined(HAVE_DECL_RXRPC_SUPPORTED_CMSG) && HAVE_DECL_RXRPC_SUPPORTED_CMSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RXRPC_SUPPORTED_CMSG) == (6), "RXRPC_SUPPORTED_CMSG != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define RXRPC_SUPPORTED_CMSG 6
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_rxrpc_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_rxrpc_options[] = {
+ [RXRPC_SECURITY_KEY] = XLAT(RXRPC_SECURITY_KEY),
+ [RXRPC_SECURITY_KEYRING] = XLAT(RXRPC_SECURITY_KEYRING),
+ [RXRPC_EXCLUSIVE_CONNECTION] = XLAT(RXRPC_EXCLUSIVE_CONNECTION),
+ [RXRPC_MIN_SECURITY_LEVEL] = XLAT(RXRPC_MIN_SECURITY_LEVEL),
+ [RXRPC_UPGRADEABLE_SERVICE] = XLAT(RXRPC_UPGRADEABLE_SERVICE),
+ [RXRPC_SUPPORTED_CMSG] = XLAT(RXRPC_SUPPORTED_CMSG),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_rxrpc_options.in b/xlat/sock_rxrpc_options.in
new file mode 100644
index 0000000..5540829
--- /dev/null
+++ b/xlat/sock_rxrpc_options.in
@@ -0,0 +1,7 @@
+#value_indexed
+RXRPC_SECURITY_KEY 1
+RXRPC_SECURITY_KEYRING 2
+RXRPC_EXCLUSIVE_CONNECTION 3
+RXRPC_MIN_SECURITY_LEVEL 4
+RXRPC_UPGRADEABLE_SERVICE 5
+RXRPC_SUPPORTED_CMSG 6
diff --git a/xlat/sock_sctp_options.h b/xlat/sock_sctp_options.h
new file mode 100644
index 0000000..13e08d4
--- /dev/null
+++ b/xlat/sock_sctp_options.h
@@ -0,0 +1,527 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_sctp_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SCTP_RTOINFO) || (defined(HAVE_DECL_SCTP_RTOINFO) && HAVE_DECL_SCTP_RTOINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_RTOINFO) == (0), "SCTP_RTOINFO != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_RTOINFO 0
+#endif
+#if defined(SCTP_ASSOCINFO) || (defined(HAVE_DECL_SCTP_ASSOCINFO) && HAVE_DECL_SCTP_ASSOCINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_ASSOCINFO) == (1), "SCTP_ASSOCINFO != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_ASSOCINFO 1
+#endif
+#if defined(SCTP_INITMSG) || (defined(HAVE_DECL_SCTP_INITMSG) && HAVE_DECL_SCTP_INITMSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_INITMSG) == (2), "SCTP_INITMSG != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_INITMSG 2
+#endif
+#if defined(SCTP_NODELAY) || (defined(HAVE_DECL_SCTP_NODELAY) && HAVE_DECL_SCTP_NODELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_NODELAY) == (3), "SCTP_NODELAY != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_NODELAY 3
+#endif
+#if defined(SCTP_AUTOCLOSE) || (defined(HAVE_DECL_SCTP_AUTOCLOSE) && HAVE_DECL_SCTP_AUTOCLOSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_AUTOCLOSE) == (4), "SCTP_AUTOCLOSE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_AUTOCLOSE 4
+#endif
+#if defined(SCTP_SET_PEER_PRIMARY_ADDR) || (defined(HAVE_DECL_SCTP_SET_PEER_PRIMARY_ADDR) && HAVE_DECL_SCTP_SET_PEER_PRIMARY_ADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SET_PEER_PRIMARY_ADDR) == (5), "SCTP_SET_PEER_PRIMARY_ADDR != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SET_PEER_PRIMARY_ADDR 5
+#endif
+#if defined(SCTP_PRIMARY_ADDR) || (defined(HAVE_DECL_SCTP_PRIMARY_ADDR) && HAVE_DECL_SCTP_PRIMARY_ADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PRIMARY_ADDR) == (6), "SCTP_PRIMARY_ADDR != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PRIMARY_ADDR 6
+#endif
+#if defined(SCTP_ADAPTATION_LAYER) || (defined(HAVE_DECL_SCTP_ADAPTATION_LAYER) && HAVE_DECL_SCTP_ADAPTATION_LAYER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_ADAPTATION_LAYER) == (7), "SCTP_ADAPTATION_LAYER != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_ADAPTATION_LAYER 7
+#endif
+#if defined(SCTP_DISABLE_FRAGMENTS) || (defined(HAVE_DECL_SCTP_DISABLE_FRAGMENTS) && HAVE_DECL_SCTP_DISABLE_FRAGMENTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_DISABLE_FRAGMENTS) == (8), "SCTP_DISABLE_FRAGMENTS != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_DISABLE_FRAGMENTS 8
+#endif
+#if defined(SCTP_PEER_ADDR_PARAMS) || (defined(HAVE_DECL_SCTP_PEER_ADDR_PARAMS) && HAVE_DECL_SCTP_PEER_ADDR_PARAMS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PEER_ADDR_PARAMS) == (9), "SCTP_PEER_ADDR_PARAMS != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PEER_ADDR_PARAMS 9
+#endif
+#if defined(SCTP_DEFAULT_SEND_PARAM) || (defined(HAVE_DECL_SCTP_DEFAULT_SEND_PARAM) && HAVE_DECL_SCTP_DEFAULT_SEND_PARAM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_DEFAULT_SEND_PARAM) == (10), "SCTP_DEFAULT_SEND_PARAM != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_DEFAULT_SEND_PARAM 10
+#endif
+#if defined(SCTP_EVENTS) || (defined(HAVE_DECL_SCTP_EVENTS) && HAVE_DECL_SCTP_EVENTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_EVENTS) == (11), "SCTP_EVENTS != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_EVENTS 11
+#endif
+#if defined(SCTP_I_WANT_MAPPED_V4_ADDR) || (defined(HAVE_DECL_SCTP_I_WANT_MAPPED_V4_ADDR) && HAVE_DECL_SCTP_I_WANT_MAPPED_V4_ADDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_I_WANT_MAPPED_V4_ADDR) == (12), "SCTP_I_WANT_MAPPED_V4_ADDR != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_I_WANT_MAPPED_V4_ADDR 12
+#endif
+#if defined(SCTP_MAXSEG) || (defined(HAVE_DECL_SCTP_MAXSEG) && HAVE_DECL_SCTP_MAXSEG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_MAXSEG) == (13), "SCTP_MAXSEG != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_MAXSEG 13
+#endif
+#if defined(SCTP_STATUS) || (defined(HAVE_DECL_SCTP_STATUS) && HAVE_DECL_SCTP_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_STATUS) == (14), "SCTP_STATUS != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_STATUS 14
+#endif
+#if defined(SCTP_GET_PEER_ADDR_INFO) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDR_INFO) && HAVE_DECL_SCTP_GET_PEER_ADDR_INFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_PEER_ADDR_INFO) == (15), "SCTP_GET_PEER_ADDR_INFO != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_PEER_ADDR_INFO 15
+#endif
+#if defined(SCTP_DELAYED_SACK) || (defined(HAVE_DECL_SCTP_DELAYED_SACK) && HAVE_DECL_SCTP_DELAYED_SACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_DELAYED_SACK) == (16), "SCTP_DELAYED_SACK != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_DELAYED_SACK 16
+#endif
+#if defined(SCTP_CONTEXT) || (defined(HAVE_DECL_SCTP_CONTEXT) && HAVE_DECL_SCTP_CONTEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_CONTEXT) == (17), "SCTP_CONTEXT != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_CONTEXT 17
+#endif
+#if defined(SCTP_FRAGMENT_INTERLEAVE) || (defined(HAVE_DECL_SCTP_FRAGMENT_INTERLEAVE) && HAVE_DECL_SCTP_FRAGMENT_INTERLEAVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_FRAGMENT_INTERLEAVE) == (18), "SCTP_FRAGMENT_INTERLEAVE != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_FRAGMENT_INTERLEAVE 18
+#endif
+#if defined(SCTP_PARTIAL_DELIVERY_POINT) || (defined(HAVE_DECL_SCTP_PARTIAL_DELIVERY_POINT) && HAVE_DECL_SCTP_PARTIAL_DELIVERY_POINT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PARTIAL_DELIVERY_POINT) == (19), "SCTP_PARTIAL_DELIVERY_POINT != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PARTIAL_DELIVERY_POINT 19
+#endif
+#if defined(SCTP_MAX_BURST) || (defined(HAVE_DECL_SCTP_MAX_BURST) && HAVE_DECL_SCTP_MAX_BURST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_MAX_BURST) == (20), "SCTP_MAX_BURST != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_MAX_BURST 20
+#endif
+#if defined(SCTP_AUTH_CHUNK) || (defined(HAVE_DECL_SCTP_AUTH_CHUNK) && HAVE_DECL_SCTP_AUTH_CHUNK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_AUTH_CHUNK) == (21), "SCTP_AUTH_CHUNK != 21");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_AUTH_CHUNK 21
+#endif
+#if defined(SCTP_HMAC_IDENT) || (defined(HAVE_DECL_SCTP_HMAC_IDENT) && HAVE_DECL_SCTP_HMAC_IDENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_HMAC_IDENT) == (22), "SCTP_HMAC_IDENT != 22");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_HMAC_IDENT 22
+#endif
+#if defined(SCTP_AUTH_KEY) || (defined(HAVE_DECL_SCTP_AUTH_KEY) && HAVE_DECL_SCTP_AUTH_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_AUTH_KEY) == (23), "SCTP_AUTH_KEY != 23");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_AUTH_KEY 23
+#endif
+#if defined(SCTP_AUTH_ACTIVE_KEY) || (defined(HAVE_DECL_SCTP_AUTH_ACTIVE_KEY) && HAVE_DECL_SCTP_AUTH_ACTIVE_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_AUTH_ACTIVE_KEY) == (24), "SCTP_AUTH_ACTIVE_KEY != 24");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_AUTH_ACTIVE_KEY 24
+#endif
+#if defined(SCTP_AUTH_DELETE_KEY) || (defined(HAVE_DECL_SCTP_AUTH_DELETE_KEY) && HAVE_DECL_SCTP_AUTH_DELETE_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_AUTH_DELETE_KEY) == (25), "SCTP_AUTH_DELETE_KEY != 25");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_AUTH_DELETE_KEY 25
+#endif
+#if defined(SCTP_PEER_AUTH_CHUNKS) || (defined(HAVE_DECL_SCTP_PEER_AUTH_CHUNKS) && HAVE_DECL_SCTP_PEER_AUTH_CHUNKS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PEER_AUTH_CHUNKS) == (26), "SCTP_PEER_AUTH_CHUNKS != 26");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PEER_AUTH_CHUNKS 26
+#endif
+#if defined(SCTP_LOCAL_AUTH_CHUNKS) || (defined(HAVE_DECL_SCTP_LOCAL_AUTH_CHUNKS) && HAVE_DECL_SCTP_LOCAL_AUTH_CHUNKS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_LOCAL_AUTH_CHUNKS) == (27), "SCTP_LOCAL_AUTH_CHUNKS != 27");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_LOCAL_AUTH_CHUNKS 27
+#endif
+#if defined(SCTP_GET_ASSOC_NUMBER) || (defined(HAVE_DECL_SCTP_GET_ASSOC_NUMBER) && HAVE_DECL_SCTP_GET_ASSOC_NUMBER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_ASSOC_NUMBER) == (28), "SCTP_GET_ASSOC_NUMBER != 28");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_ASSOC_NUMBER 28
+#endif
+#if defined(SCTP_GET_ASSOC_ID_LIST) || (defined(HAVE_DECL_SCTP_GET_ASSOC_ID_LIST) && HAVE_DECL_SCTP_GET_ASSOC_ID_LIST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_ASSOC_ID_LIST) == (29), "SCTP_GET_ASSOC_ID_LIST != 29");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_ASSOC_ID_LIST 29
+#endif
+#if defined(SCTP_AUTO_ASCONF) || (defined(HAVE_DECL_SCTP_AUTO_ASCONF) && HAVE_DECL_SCTP_AUTO_ASCONF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_AUTO_ASCONF) == (30), "SCTP_AUTO_ASCONF != 30");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_AUTO_ASCONF 30
+#endif
+#if defined(SCTP_PEER_ADDR_THLDS) || (defined(HAVE_DECL_SCTP_PEER_ADDR_THLDS) && HAVE_DECL_SCTP_PEER_ADDR_THLDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PEER_ADDR_THLDS) == (31), "SCTP_PEER_ADDR_THLDS != 31");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PEER_ADDR_THLDS 31
+#endif
+#if defined(SCTP_RECVRCVINFO) || (defined(HAVE_DECL_SCTP_RECVRCVINFO) && HAVE_DECL_SCTP_RECVRCVINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_RECVRCVINFO) == (32), "SCTP_RECVRCVINFO != 32");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_RECVRCVINFO 32
+#endif
+#if defined(SCTP_RECVNXTINFO) || (defined(HAVE_DECL_SCTP_RECVNXTINFO) && HAVE_DECL_SCTP_RECVNXTINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_RECVNXTINFO) == (33), "SCTP_RECVNXTINFO != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_RECVNXTINFO 33
+#endif
+#if defined(SCTP_DEFAULT_SNDINFO) || (defined(HAVE_DECL_SCTP_DEFAULT_SNDINFO) && HAVE_DECL_SCTP_DEFAULT_SNDINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_DEFAULT_SNDINFO) == (34), "SCTP_DEFAULT_SNDINFO != 34");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_DEFAULT_SNDINFO 34
+#endif
+#if defined(SCTP_AUTH_DEACTIVATE_KEY) || (defined(HAVE_DECL_SCTP_AUTH_DEACTIVATE_KEY) && HAVE_DECL_SCTP_AUTH_DEACTIVATE_KEY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_AUTH_DEACTIVATE_KEY) == (35), "SCTP_AUTH_DEACTIVATE_KEY != 35");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_AUTH_DEACTIVATE_KEY 35
+#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");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SOCKOPT_BINDX_ADD 100
+#endif
+#if defined(SCTP_SOCKOPT_BINDX_REM) || (defined(HAVE_DECL_SCTP_SOCKOPT_BINDX_REM) && HAVE_DECL_SCTP_SOCKOPT_BINDX_REM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SOCKOPT_BINDX_REM) == (101), "SCTP_SOCKOPT_BINDX_REM != 101");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SOCKOPT_BINDX_REM 101
+#endif
+#if defined(SCTP_SOCKOPT_PEELOFF) || (defined(HAVE_DECL_SCTP_SOCKOPT_PEELOFF) && HAVE_DECL_SCTP_SOCKOPT_PEELOFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SOCKOPT_PEELOFF) == (102), "SCTP_SOCKOPT_PEELOFF != 102");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SOCKOPT_PEELOFF 102
+#endif
+#if defined(SCTP_GET_PEER_ADDRS_NUM_OLD) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDRS_NUM_OLD) && HAVE_DECL_SCTP_GET_PEER_ADDRS_NUM_OLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_PEER_ADDRS_NUM_OLD) == (103), "SCTP_GET_PEER_ADDRS_NUM_OLD != 103");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_PEER_ADDRS_NUM_OLD 103
+#endif
+#if defined(SCTP_GET_PEER_ADDRS_OLD) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDRS_OLD) && HAVE_DECL_SCTP_GET_PEER_ADDRS_OLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_PEER_ADDRS_OLD) == (104), "SCTP_GET_PEER_ADDRS_OLD != 104");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_PEER_ADDRS_OLD 104
+#endif
+#if defined(SCTP_GET_LOCAL_ADDRS_NUM_OLD) || (defined(HAVE_DECL_SCTP_GET_LOCAL_ADDRS_NUM_OLD) && HAVE_DECL_SCTP_GET_LOCAL_ADDRS_NUM_OLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_LOCAL_ADDRS_NUM_OLD) == (105), "SCTP_GET_LOCAL_ADDRS_NUM_OLD != 105");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_LOCAL_ADDRS_NUM_OLD 105
+#endif
+#if defined(SCTP_GET_LOCAL_ADDRS_OLD) || (defined(HAVE_DECL_SCTP_GET_LOCAL_ADDRS_OLD) && HAVE_DECL_SCTP_GET_LOCAL_ADDRS_OLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_LOCAL_ADDRS_OLD) == (106), "SCTP_GET_LOCAL_ADDRS_OLD != 106");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_LOCAL_ADDRS_OLD 106
+#endif
+#if defined(SCTP_SOCKOPT_CONNECTX_OLD) || (defined(HAVE_DECL_SCTP_SOCKOPT_CONNECTX_OLD) && HAVE_DECL_SCTP_SOCKOPT_CONNECTX_OLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SOCKOPT_CONNECTX_OLD) == (107), "SCTP_SOCKOPT_CONNECTX_OLD != 107");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SOCKOPT_CONNECTX_OLD 107
+#endif
+#if defined(SCTP_GET_PEER_ADDRS) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDRS) && HAVE_DECL_SCTP_GET_PEER_ADDRS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_PEER_ADDRS) == (108), "SCTP_GET_PEER_ADDRS != 108");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_PEER_ADDRS 108
+#endif
+#if defined(SCTP_GET_LOCAL_ADDRS) || (defined(HAVE_DECL_SCTP_GET_LOCAL_ADDRS) && HAVE_DECL_SCTP_GET_LOCAL_ADDRS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_LOCAL_ADDRS) == (109), "SCTP_GET_LOCAL_ADDRS != 109");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_LOCAL_ADDRS 109
+#endif
+#if defined(SCTP_SOCKOPT_CONNECTX) || (defined(HAVE_DECL_SCTP_SOCKOPT_CONNECTX) && HAVE_DECL_SCTP_SOCKOPT_CONNECTX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SOCKOPT_CONNECTX) == (110), "SCTP_SOCKOPT_CONNECTX != 110");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SOCKOPT_CONNECTX 110
+#endif
+#if defined(SCTP_SOCKOPT_CONNECTX3) || (defined(HAVE_DECL_SCTP_SOCKOPT_CONNECTX3) && HAVE_DECL_SCTP_SOCKOPT_CONNECTX3)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SOCKOPT_CONNECTX3) == (111), "SCTP_SOCKOPT_CONNECTX3 != 111");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SOCKOPT_CONNECTX3 111
+#endif
+#if defined(SCTP_GET_ASSOC_STATS) || (defined(HAVE_DECL_SCTP_GET_ASSOC_STATS) && HAVE_DECL_SCTP_GET_ASSOC_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_GET_ASSOC_STATS) == (112), "SCTP_GET_ASSOC_STATS != 112");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_GET_ASSOC_STATS 112
+#endif
+#if defined(SCTP_PR_SUPPORTED) || (defined(HAVE_DECL_SCTP_PR_SUPPORTED) && HAVE_DECL_SCTP_PR_SUPPORTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PR_SUPPORTED) == (113), "SCTP_PR_SUPPORTED != 113");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PR_SUPPORTED 113
+#endif
+#if defined(SCTP_DEFAULT_PRINFO) || (defined(HAVE_DECL_SCTP_DEFAULT_PRINFO) && HAVE_DECL_SCTP_DEFAULT_PRINFO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_DEFAULT_PRINFO) == (114), "SCTP_DEFAULT_PRINFO != 114");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_DEFAULT_PRINFO 114
+#endif
+#if defined(SCTP_PR_ASSOC_STATUS) || (defined(HAVE_DECL_SCTP_PR_ASSOC_STATUS) && HAVE_DECL_SCTP_PR_ASSOC_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PR_ASSOC_STATUS) == (115), "SCTP_PR_ASSOC_STATUS != 115");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PR_ASSOC_STATUS 115
+#endif
+#if defined(SCTP_PR_STREAM_STATUS) || (defined(HAVE_DECL_SCTP_PR_STREAM_STATUS) && HAVE_DECL_SCTP_PR_STREAM_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_PR_STREAM_STATUS) == (116), "SCTP_PR_STREAM_STATUS != 116");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_PR_STREAM_STATUS 116
+#endif
+#if defined(SCTP_RECONFIG_SUPPORTED) || (defined(HAVE_DECL_SCTP_RECONFIG_SUPPORTED) && HAVE_DECL_SCTP_RECONFIG_SUPPORTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_RECONFIG_SUPPORTED) == (117), "SCTP_RECONFIG_SUPPORTED != 117");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_RECONFIG_SUPPORTED 117
+#endif
+#if defined(SCTP_ENABLE_STREAM_RESET) || (defined(HAVE_DECL_SCTP_ENABLE_STREAM_RESET) && HAVE_DECL_SCTP_ENABLE_STREAM_RESET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_ENABLE_STREAM_RESET) == (118), "SCTP_ENABLE_STREAM_RESET != 118");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_ENABLE_STREAM_RESET 118
+#endif
+#if defined(SCTP_RESET_STREAMS) || (defined(HAVE_DECL_SCTP_RESET_STREAMS) && HAVE_DECL_SCTP_RESET_STREAMS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_RESET_STREAMS) == (119), "SCTP_RESET_STREAMS != 119");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_RESET_STREAMS 119
+#endif
+#if defined(SCTP_RESET_ASSOC) || (defined(HAVE_DECL_SCTP_RESET_ASSOC) && HAVE_DECL_SCTP_RESET_ASSOC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_RESET_ASSOC) == (120), "SCTP_RESET_ASSOC != 120");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_RESET_ASSOC 120
+#endif
+#if defined(SCTP_ADD_STREAMS) || (defined(HAVE_DECL_SCTP_ADD_STREAMS) && HAVE_DECL_SCTP_ADD_STREAMS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_ADD_STREAMS) == (121), "SCTP_ADD_STREAMS != 121");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_ADD_STREAMS 121
+#endif
+#if defined(SCTP_SOCKOPT_PEELOFF_FLAGS) || (defined(HAVE_DECL_SCTP_SOCKOPT_PEELOFF_FLAGS) && HAVE_DECL_SCTP_SOCKOPT_PEELOFF_FLAGS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SOCKOPT_PEELOFF_FLAGS) == (122), "SCTP_SOCKOPT_PEELOFF_FLAGS != 122");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SOCKOPT_PEELOFF_FLAGS 122
+#endif
+#if defined(SCTP_STREAM_SCHEDULER) || (defined(HAVE_DECL_SCTP_STREAM_SCHEDULER) && HAVE_DECL_SCTP_STREAM_SCHEDULER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_STREAM_SCHEDULER) == (123), "SCTP_STREAM_SCHEDULER != 123");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_STREAM_SCHEDULER 123
+#endif
+#if defined(SCTP_STREAM_SCHEDULER_VALUE) || (defined(HAVE_DECL_SCTP_STREAM_SCHEDULER_VALUE) && HAVE_DECL_SCTP_STREAM_SCHEDULER_VALUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_STREAM_SCHEDULER_VALUE) == (124), "SCTP_STREAM_SCHEDULER_VALUE != 124");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_STREAM_SCHEDULER_VALUE 124
+#endif
+#if defined(SCTP_INTERLEAVING_SUPPORTED) || (defined(HAVE_DECL_SCTP_INTERLEAVING_SUPPORTED) && HAVE_DECL_SCTP_INTERLEAVING_SUPPORTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_INTERLEAVING_SUPPORTED) == (125), "SCTP_INTERLEAVING_SUPPORTED != 125");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_INTERLEAVING_SUPPORTED 125
+#endif
+#if defined(SCTP_SENDMSG_CONNECT) || (defined(HAVE_DECL_SCTP_SENDMSG_CONNECT) && HAVE_DECL_SCTP_SENDMSG_CONNECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SCTP_SENDMSG_CONNECT) == (126), "SCTP_SENDMSG_CONNECT != 126");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SCTP_SENDMSG_CONNECT 126
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_sctp_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_sctp_options[] = {
+ XLAT(SCTP_RTOINFO),
+ XLAT(SCTP_ASSOCINFO),
+ XLAT(SCTP_INITMSG),
+ XLAT(SCTP_NODELAY),
+ XLAT(SCTP_AUTOCLOSE),
+ XLAT(SCTP_SET_PEER_PRIMARY_ADDR),
+ XLAT(SCTP_PRIMARY_ADDR),
+ XLAT(SCTP_ADAPTATION_LAYER),
+ XLAT(SCTP_DISABLE_FRAGMENTS),
+ XLAT(SCTP_PEER_ADDR_PARAMS),
+ XLAT(SCTP_DEFAULT_SEND_PARAM),
+ XLAT(SCTP_EVENTS),
+ XLAT(SCTP_I_WANT_MAPPED_V4_ADDR),
+ XLAT(SCTP_MAXSEG),
+ XLAT(SCTP_STATUS),
+ XLAT(SCTP_GET_PEER_ADDR_INFO),
+ XLAT(SCTP_DELAYED_SACK),
+ XLAT(SCTP_CONTEXT),
+ XLAT(SCTP_FRAGMENT_INTERLEAVE),
+ XLAT(SCTP_PARTIAL_DELIVERY_POINT),
+ XLAT(SCTP_MAX_BURST),
+ XLAT(SCTP_AUTH_CHUNK),
+ XLAT(SCTP_HMAC_IDENT),
+ XLAT(SCTP_AUTH_KEY),
+ XLAT(SCTP_AUTH_ACTIVE_KEY),
+ XLAT(SCTP_AUTH_DELETE_KEY),
+ XLAT(SCTP_PEER_AUTH_CHUNKS),
+ XLAT(SCTP_LOCAL_AUTH_CHUNKS),
+ XLAT(SCTP_GET_ASSOC_NUMBER),
+ XLAT(SCTP_GET_ASSOC_ID_LIST),
+ XLAT(SCTP_AUTO_ASCONF),
+ XLAT(SCTP_PEER_ADDR_THLDS),
+ XLAT(SCTP_RECVRCVINFO),
+ XLAT(SCTP_RECVNXTINFO),
+ XLAT(SCTP_DEFAULT_SNDINFO),
+ XLAT(SCTP_AUTH_DEACTIVATE_KEY),
+
+ XLAT(SCTP_SOCKOPT_BINDX_ADD),
+ XLAT(SCTP_SOCKOPT_BINDX_REM),
+ XLAT(SCTP_SOCKOPT_PEELOFF),
+ XLAT(SCTP_GET_PEER_ADDRS_NUM_OLD),
+ XLAT(SCTP_GET_PEER_ADDRS_OLD),
+ XLAT(SCTP_GET_LOCAL_ADDRS_NUM_OLD),
+ XLAT(SCTP_GET_LOCAL_ADDRS_OLD),
+ XLAT(SCTP_SOCKOPT_CONNECTX_OLD),
+ XLAT(SCTP_GET_PEER_ADDRS),
+ XLAT(SCTP_GET_LOCAL_ADDRS),
+ XLAT(SCTP_SOCKOPT_CONNECTX),
+ XLAT(SCTP_SOCKOPT_CONNECTX3),
+ XLAT(SCTP_GET_ASSOC_STATS),
+ XLAT(SCTP_PR_SUPPORTED),
+ XLAT(SCTP_DEFAULT_PRINFO),
+ XLAT(SCTP_PR_ASSOC_STATUS),
+ XLAT(SCTP_PR_STREAM_STATUS),
+ XLAT(SCTP_RECONFIG_SUPPORTED),
+ XLAT(SCTP_ENABLE_STREAM_RESET),
+ XLAT(SCTP_RESET_STREAMS),
+ XLAT(SCTP_RESET_ASSOC),
+ XLAT(SCTP_ADD_STREAMS),
+ XLAT(SCTP_SOCKOPT_PEELOFF_FLAGS),
+ XLAT(SCTP_STREAM_SCHEDULER),
+ XLAT(SCTP_STREAM_SCHEDULER_VALUE),
+ XLAT(SCTP_INTERLEAVING_SUPPORTED),
+ XLAT(SCTP_SENDMSG_CONNECT),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_sctp_options.in b/xlat/sock_sctp_options.in
new file mode 100644
index 0000000..bbb914e
--- /dev/null
+++ b/xlat/sock_sctp_options.in
@@ -0,0 +1,64 @@
+SCTP_RTOINFO 0
+SCTP_ASSOCINFO 1
+SCTP_INITMSG 2
+SCTP_NODELAY 3
+SCTP_AUTOCLOSE 4
+SCTP_SET_PEER_PRIMARY_ADDR 5
+SCTP_PRIMARY_ADDR 6
+SCTP_ADAPTATION_LAYER 7
+SCTP_DISABLE_FRAGMENTS 8
+SCTP_PEER_ADDR_PARAMS 9
+SCTP_DEFAULT_SEND_PARAM 10
+SCTP_EVENTS 11
+SCTP_I_WANT_MAPPED_V4_ADDR 12
+SCTP_MAXSEG 13
+SCTP_STATUS 14
+SCTP_GET_PEER_ADDR_INFO 15
+SCTP_DELAYED_SACK 16
+SCTP_CONTEXT 17
+SCTP_FRAGMENT_INTERLEAVE 18
+SCTP_PARTIAL_DELIVERY_POINT 19
+SCTP_MAX_BURST 20
+SCTP_AUTH_CHUNK 21
+SCTP_HMAC_IDENT 22
+SCTP_AUTH_KEY 23
+SCTP_AUTH_ACTIVE_KEY 24
+SCTP_AUTH_DELETE_KEY 25
+SCTP_PEER_AUTH_CHUNKS 26
+SCTP_LOCAL_AUTH_CHUNKS 27
+SCTP_GET_ASSOC_NUMBER 28
+SCTP_GET_ASSOC_ID_LIST 29
+SCTP_AUTO_ASCONF 30
+SCTP_PEER_ADDR_THLDS 31
+SCTP_RECVRCVINFO 32
+SCTP_RECVNXTINFO 33
+SCTP_DEFAULT_SNDINFO 34
+SCTP_AUTH_DEACTIVATE_KEY 35
+/* linux specific things */
+SCTP_SOCKOPT_BINDX_ADD 100
+SCTP_SOCKOPT_BINDX_REM 101
+SCTP_SOCKOPT_PEELOFF 102
+SCTP_GET_PEER_ADDRS_NUM_OLD 103
+SCTP_GET_PEER_ADDRS_OLD 104
+SCTP_GET_LOCAL_ADDRS_NUM_OLD 105
+SCTP_GET_LOCAL_ADDRS_OLD 106
+SCTP_SOCKOPT_CONNECTX_OLD 107
+SCTP_GET_PEER_ADDRS 108
+SCTP_GET_LOCAL_ADDRS 109
+SCTP_SOCKOPT_CONNECTX 110
+SCTP_SOCKOPT_CONNECTX3 111
+SCTP_GET_ASSOC_STATS 112
+SCTP_PR_SUPPORTED 113
+SCTP_DEFAULT_PRINFO 114
+SCTP_PR_ASSOC_STATUS 115
+SCTP_PR_STREAM_STATUS 116
+SCTP_RECONFIG_SUPPORTED 117
+SCTP_ENABLE_STREAM_RESET 118
+SCTP_RESET_STREAMS 119
+SCTP_RESET_ASSOC 120
+SCTP_ADD_STREAMS 121
+SCTP_SOCKOPT_PEELOFF_FLAGS 122
+SCTP_STREAM_SCHEDULER 123
+SCTP_STREAM_SCHEDULER_VALUE 124
+SCTP_INTERLEAVING_SUPPORTED 125
+SCTP_SENDMSG_CONNECT 126
diff --git a/xlat/sock_tcp_options.h b/xlat/sock_tcp_options.h
new file mode 100644
index 0000000..58d966a
--- /dev/null
+++ b/xlat/sock_tcp_options.h
@@ -0,0 +1,124 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_tcp_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 sock_tcp_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_tcp_options[] = {
+#if defined(TCP_NODELAY) || (defined(HAVE_DECL_TCP_NODELAY) && HAVE_DECL_TCP_NODELAY)
+ XLAT(TCP_NODELAY),
+#endif
+#if defined(TCP_MAXSEG) || (defined(HAVE_DECL_TCP_MAXSEG) && HAVE_DECL_TCP_MAXSEG)
+ XLAT(TCP_MAXSEG),
+#endif
+#if defined(TCP_CORK) || (defined(HAVE_DECL_TCP_CORK) && HAVE_DECL_TCP_CORK)
+ XLAT(TCP_CORK),
+#endif
+#if defined(TCP_KEEPIDLE) || (defined(HAVE_DECL_TCP_KEEPIDLE) && HAVE_DECL_TCP_KEEPIDLE)
+ XLAT(TCP_KEEPIDLE),
+#endif
+#if defined(TCP_KEEPINTVL) || (defined(HAVE_DECL_TCP_KEEPINTVL) && HAVE_DECL_TCP_KEEPINTVL)
+ XLAT(TCP_KEEPINTVL),
+#endif
+#if defined(TCP_KEEPCNT) || (defined(HAVE_DECL_TCP_KEEPCNT) && HAVE_DECL_TCP_KEEPCNT)
+ XLAT(TCP_KEEPCNT),
+#endif
+#if defined(TCP_SYNCNT) || (defined(HAVE_DECL_TCP_SYNCNT) && HAVE_DECL_TCP_SYNCNT)
+ XLAT(TCP_SYNCNT),
+#endif
+#if defined(TCP_LINGER2) || (defined(HAVE_DECL_TCP_LINGER2) && HAVE_DECL_TCP_LINGER2)
+ XLAT(TCP_LINGER2),
+#endif
+#if defined(TCP_DEFER_ACCEPT) || (defined(HAVE_DECL_TCP_DEFER_ACCEPT) && HAVE_DECL_TCP_DEFER_ACCEPT)
+ XLAT(TCP_DEFER_ACCEPT),
+#endif
+#if defined(TCP_WINDOW_CLAMP) || (defined(HAVE_DECL_TCP_WINDOW_CLAMP) && HAVE_DECL_TCP_WINDOW_CLAMP)
+ XLAT(TCP_WINDOW_CLAMP),
+#endif
+#if defined(TCP_INFO) || (defined(HAVE_DECL_TCP_INFO) && HAVE_DECL_TCP_INFO)
+ XLAT(TCP_INFO),
+#endif
+#if defined(TCP_QUICKACK) || (defined(HAVE_DECL_TCP_QUICKACK) && HAVE_DECL_TCP_QUICKACK)
+ XLAT(TCP_QUICKACK),
+#endif
+#if defined(TCP_CONGESTION) || (defined(HAVE_DECL_TCP_CONGESTION) && HAVE_DECL_TCP_CONGESTION)
+ XLAT(TCP_CONGESTION),
+#endif
+#if defined(TCP_MD5SIG) || (defined(HAVE_DECL_TCP_MD5SIG) && HAVE_DECL_TCP_MD5SIG)
+ XLAT(TCP_MD5SIG),
+#endif
+#if defined(TCP_COOKIE_TRANSACTIONS) || (defined(HAVE_DECL_TCP_COOKIE_TRANSACTIONS) && HAVE_DECL_TCP_COOKIE_TRANSACTIONS)
+ XLAT(TCP_COOKIE_TRANSACTIONS),
+#endif
+#if defined(TCP_THIN_LINEAR_TIMEOUTS) || (defined(HAVE_DECL_TCP_THIN_LINEAR_TIMEOUTS) && HAVE_DECL_TCP_THIN_LINEAR_TIMEOUTS)
+ XLAT(TCP_THIN_LINEAR_TIMEOUTS),
+#endif
+#if defined(TCP_THIN_DUPACK) || (defined(HAVE_DECL_TCP_THIN_DUPACK) && HAVE_DECL_TCP_THIN_DUPACK)
+ XLAT(TCP_THIN_DUPACK),
+#endif
+#if defined(TCP_USER_TIMEOUT) || (defined(HAVE_DECL_TCP_USER_TIMEOUT) && HAVE_DECL_TCP_USER_TIMEOUT)
+ XLAT(TCP_USER_TIMEOUT),
+#endif
+#if defined(TCP_REPAIR) || (defined(HAVE_DECL_TCP_REPAIR) && HAVE_DECL_TCP_REPAIR)
+ XLAT(TCP_REPAIR),
+#endif
+#if defined(TCP_REPAIR_QUEUE) || (defined(HAVE_DECL_TCP_REPAIR_QUEUE) && HAVE_DECL_TCP_REPAIR_QUEUE)
+ XLAT(TCP_REPAIR_QUEUE),
+#endif
+#if defined(TCP_QUEUE_SEQ) || (defined(HAVE_DECL_TCP_QUEUE_SEQ) && HAVE_DECL_TCP_QUEUE_SEQ)
+ XLAT(TCP_QUEUE_SEQ),
+#endif
+#if defined(TCP_REPAIR_OPTIONS) || (defined(HAVE_DECL_TCP_REPAIR_OPTIONS) && HAVE_DECL_TCP_REPAIR_OPTIONS)
+ XLAT(TCP_REPAIR_OPTIONS),
+#endif
+#if defined(TCP_FASTOPEN) || (defined(HAVE_DECL_TCP_FASTOPEN) && HAVE_DECL_TCP_FASTOPEN)
+ XLAT(TCP_FASTOPEN),
+#endif
+#if defined(TCP_TIMESTAMP) || (defined(HAVE_DECL_TCP_TIMESTAMP) && HAVE_DECL_TCP_TIMESTAMP)
+ XLAT(TCP_TIMESTAMP),
+#endif
+#if defined(TCP_NOTSENT_LOWAT) || (defined(HAVE_DECL_TCP_NOTSENT_LOWAT) && HAVE_DECL_TCP_NOTSENT_LOWAT)
+ XLAT(TCP_NOTSENT_LOWAT),
+#endif
+#if defined(TCP_CC_INFO) || (defined(HAVE_DECL_TCP_CC_INFO) && HAVE_DECL_TCP_CC_INFO)
+ XLAT(TCP_CC_INFO),
+#endif
+#if defined(TCP_SAVE_SYN) || (defined(HAVE_DECL_TCP_SAVE_SYN) && HAVE_DECL_TCP_SAVE_SYN)
+ XLAT(TCP_SAVE_SYN),
+#endif
+#if defined(TCP_SAVED_SYN) || (defined(HAVE_DECL_TCP_SAVED_SYN) && HAVE_DECL_TCP_SAVED_SYN)
+ XLAT(TCP_SAVED_SYN),
+#endif
+#if defined(TCP_REPAIR_WINDOW) || (defined(HAVE_DECL_TCP_REPAIR_WINDOW) && HAVE_DECL_TCP_REPAIR_WINDOW)
+ XLAT(TCP_REPAIR_WINDOW),
+#endif
+#if defined(TCP_FASTOPEN_CONNECT) || (defined(HAVE_DECL_TCP_FASTOPEN_CONNECT) && HAVE_DECL_TCP_FASTOPEN_CONNECT)
+ XLAT(TCP_FASTOPEN_CONNECT),
+#endif
+#if defined(TCP_ULP) || (defined(HAVE_DECL_TCP_ULP) && HAVE_DECL_TCP_ULP)
+ XLAT(TCP_ULP),
+#endif
+#if defined(TCP_MD5SIG_EXT) || (defined(HAVE_DECL_TCP_MD5SIG_EXT) && HAVE_DECL_TCP_MD5SIG_EXT)
+ XLAT(TCP_MD5SIG_EXT),
+#endif
+#if defined(TCP_FASTOPEN_KEY) || (defined(HAVE_DECL_TCP_FASTOPEN_KEY) && HAVE_DECL_TCP_FASTOPEN_KEY)
+ XLAT(TCP_FASTOPEN_KEY),
+#endif
+#if defined(TCP_FASTOPEN_NO_COOKIE) || (defined(HAVE_DECL_TCP_FASTOPEN_NO_COOKIE) && HAVE_DECL_TCP_FASTOPEN_NO_COOKIE)
+ XLAT(TCP_FASTOPEN_NO_COOKIE),
+#endif
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_tcp_options.in b/xlat/sock_tcp_options.in
new file mode 100644
index 0000000..44f1a2a
--- /dev/null
+++ b/xlat/sock_tcp_options.in
@@ -0,0 +1,34 @@
+TCP_NODELAY
+TCP_MAXSEG
+TCP_CORK
+TCP_KEEPIDLE
+TCP_KEEPINTVL
+TCP_KEEPCNT
+TCP_SYNCNT
+TCP_LINGER2
+TCP_DEFER_ACCEPT
+TCP_WINDOW_CLAMP
+TCP_INFO
+TCP_QUICKACK
+TCP_CONGESTION
+TCP_MD5SIG
+TCP_COOKIE_TRANSACTIONS
+TCP_THIN_LINEAR_TIMEOUTS
+TCP_THIN_DUPACK
+TCP_USER_TIMEOUT
+TCP_REPAIR
+TCP_REPAIR_QUEUE
+TCP_QUEUE_SEQ
+TCP_REPAIR_OPTIONS
+TCP_FASTOPEN
+TCP_TIMESTAMP
+TCP_NOTSENT_LOWAT
+TCP_CC_INFO
+TCP_SAVE_SYN
+TCP_SAVED_SYN
+TCP_REPAIR_WINDOW
+TCP_FASTOPEN_CONNECT
+TCP_ULP
+TCP_MD5SIG_EXT
+TCP_FASTOPEN_KEY
+TCP_FASTOPEN_NO_COOKIE
diff --git a/xlat/sock_tipc_options.h b/xlat/sock_tipc_options.h
new file mode 100644
index 0000000..c41a91c
--- /dev/null
+++ b/xlat/sock_tipc_options.h
@@ -0,0 +1,103 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_tipc_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TIPC_IMPORTANCE) || (defined(HAVE_DECL_TIPC_IMPORTANCE) && HAVE_DECL_TIPC_IMPORTANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_IMPORTANCE) == (127), "TIPC_IMPORTANCE != 127");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_IMPORTANCE 127
+#endif
+#if defined(TIPC_SRC_DROPPABLE) || (defined(HAVE_DECL_TIPC_SRC_DROPPABLE) && HAVE_DECL_TIPC_SRC_DROPPABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_SRC_DROPPABLE) == (128), "TIPC_SRC_DROPPABLE != 128");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_SRC_DROPPABLE 128
+#endif
+#if defined(TIPC_DEST_DROPPABLE) || (defined(HAVE_DECL_TIPC_DEST_DROPPABLE) && HAVE_DECL_TIPC_DEST_DROPPABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_DEST_DROPPABLE) == (129), "TIPC_DEST_DROPPABLE != 129");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_DEST_DROPPABLE 129
+#endif
+#if defined(TIPC_CONN_TIMEOUT) || (defined(HAVE_DECL_TIPC_CONN_TIMEOUT) && HAVE_DECL_TIPC_CONN_TIMEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_CONN_TIMEOUT) == (130), "TIPC_CONN_TIMEOUT != 130");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_CONN_TIMEOUT 130
+#endif
+#if defined(TIPC_NODE_RECVQ_DEPTH) || (defined(HAVE_DECL_TIPC_NODE_RECVQ_DEPTH) && HAVE_DECL_TIPC_NODE_RECVQ_DEPTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_NODE_RECVQ_DEPTH) == (131), "TIPC_NODE_RECVQ_DEPTH != 131");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_NODE_RECVQ_DEPTH 131
+#endif
+#if defined(TIPC_SOCK_RECVQ_DEPTH) || (defined(HAVE_DECL_TIPC_SOCK_RECVQ_DEPTH) && HAVE_DECL_TIPC_SOCK_RECVQ_DEPTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_SOCK_RECVQ_DEPTH) == (132), "TIPC_SOCK_RECVQ_DEPTH != 132");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_SOCK_RECVQ_DEPTH 132
+#endif
+#if defined(TIPC_MCAST_BROADCAST) || (defined(HAVE_DECL_TIPC_MCAST_BROADCAST) && HAVE_DECL_TIPC_MCAST_BROADCAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_MCAST_BROADCAST) == (133), "TIPC_MCAST_BROADCAST != 133");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_MCAST_BROADCAST 133
+#endif
+#if defined(TIPC_MCAST_REPLICAST) || (defined(HAVE_DECL_TIPC_MCAST_REPLICAST) && HAVE_DECL_TIPC_MCAST_REPLICAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_MCAST_REPLICAST) == (134), "TIPC_MCAST_REPLICAST != 134");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_MCAST_REPLICAST 134
+#endif
+#if defined(TIPC_GROUP_JOIN) || (defined(HAVE_DECL_TIPC_GROUP_JOIN) && HAVE_DECL_TIPC_GROUP_JOIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_GROUP_JOIN) == (135), "TIPC_GROUP_JOIN != 135");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_GROUP_JOIN 135
+#endif
+#if defined(TIPC_GROUP_LEAVE) || (defined(HAVE_DECL_TIPC_GROUP_LEAVE) && HAVE_DECL_TIPC_GROUP_LEAVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TIPC_GROUP_LEAVE) == (136), "TIPC_GROUP_LEAVE != 136");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TIPC_GROUP_LEAVE 136
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_tipc_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_tipc_options[] = {
+
+ XLAT(TIPC_IMPORTANCE),
+ XLAT(TIPC_SRC_DROPPABLE),
+ XLAT(TIPC_DEST_DROPPABLE),
+ XLAT(TIPC_CONN_TIMEOUT),
+ XLAT(TIPC_NODE_RECVQ_DEPTH),
+ XLAT(TIPC_SOCK_RECVQ_DEPTH),
+ XLAT(TIPC_MCAST_BROADCAST),
+ XLAT(TIPC_MCAST_REPLICAST),
+ XLAT(TIPC_GROUP_JOIN),
+ XLAT(TIPC_GROUP_LEAVE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_tipc_options.in b/xlat/sock_tipc_options.in
new file mode 100644
index 0000000..849e50d
--- /dev/null
+++ b/xlat/sock_tipc_options.in
@@ -0,0 +1,11 @@
+/* sort -k2,2n */
+TIPC_IMPORTANCE 127
+TIPC_SRC_DROPPABLE 128
+TIPC_DEST_DROPPABLE 129
+TIPC_CONN_TIMEOUT 130
+TIPC_NODE_RECVQ_DEPTH 131
+TIPC_SOCK_RECVQ_DEPTH 132
+TIPC_MCAST_BROADCAST 133
+TIPC_MCAST_REPLICAST 134
+TIPC_GROUP_JOIN 135
+TIPC_GROUP_LEAVE 136
diff --git a/xlat/sock_tls_options.h b/xlat/sock_tls_options.h
new file mode 100644
index 0000000..7e1f253
--- /dev/null
+++ b/xlat/sock_tls_options.h
@@ -0,0 +1,38 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_tls_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TLS_TX) || (defined(HAVE_DECL_TLS_TX) && HAVE_DECL_TLS_TX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TLS_TX) == (1), "TLS_TX != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TLS_TX 1
+#endif
+#if defined(TLS_RX) || (defined(HAVE_DECL_TLS_RX) && HAVE_DECL_TLS_RX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TLS_RX) == (2), "TLS_RX != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define TLS_RX 2
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_tls_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_tls_options[] = {
+ XLAT(TLS_TX),
+ XLAT(TLS_RX),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_tls_options.in b/xlat/sock_tls_options.in
new file mode 100644
index 0000000..5fcefd6
--- /dev/null
+++ b/xlat/sock_tls_options.in
@@ -0,0 +1,2 @@
+TLS_TX 1
+TLS_RX 2
diff --git a/xlat/sock_type_flags.h b/xlat/sock_type_flags.h
index d1af088..d8755c4 100644
--- a/xlat/sock_type_flags.h
+++ b/xlat/sock_type_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sock_type_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sock_type_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_type_flags in mpers mode
+
+# else
static
const struct xlat sock_type_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_udp_options.h b/xlat/sock_udp_options.h
new file mode 100644
index 0000000..51aa1c7
--- /dev/null
+++ b/xlat/sock_udp_options.h
@@ -0,0 +1,54 @@
+/* Generated by ./xlat/gen.sh from ./xlat/sock_udp_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(UDP_CORK) || (defined(HAVE_DECL_UDP_CORK) && HAVE_DECL_UDP_CORK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UDP_CORK) == (1), "UDP_CORK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define UDP_CORK 1
+#endif
+#if defined(UDP_ENCAP) || (defined(HAVE_DECL_UDP_ENCAP) && HAVE_DECL_UDP_ENCAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UDP_ENCAP) == (100), "UDP_ENCAP != 100");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define UDP_ENCAP 100
+#endif
+#if defined(UDP_NO_CHECK6_TX) || (defined(HAVE_DECL_UDP_NO_CHECK6_TX) && HAVE_DECL_UDP_NO_CHECK6_TX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UDP_NO_CHECK6_TX) == (101), "UDP_NO_CHECK6_TX != 101");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define UDP_NO_CHECK6_TX 101
+#endif
+#if defined(UDP_NO_CHECK6_RX) || (defined(HAVE_DECL_UDP_NO_CHECK6_RX) && HAVE_DECL_UDP_NO_CHECK6_RX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UDP_NO_CHECK6_RX) == (102), "UDP_NO_CHECK6_RX != 102");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define UDP_NO_CHECK6_RX 102
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sock_udp_options in mpers mode
+
+# else
+
+static
+const struct xlat sock_udp_options[] = {
+ XLAT(UDP_CORK),
+ XLAT(UDP_ENCAP),
+ XLAT(UDP_NO_CHECK6_TX),
+ XLAT(UDP_NO_CHECK6_RX),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sock_udp_options.in b/xlat/sock_udp_options.in
new file mode 100644
index 0000000..18ec8d4
--- /dev/null
+++ b/xlat/sock_udp_options.in
@@ -0,0 +1,4 @@
+UDP_CORK 1
+UDP_ENCAP 100
+UDP_NO_CHECK6_TX 101
+UDP_NO_CHECK6_RX 102
diff --git a/xlat/socketcalls.h b/xlat/socketcalls.h
index 3680446..a3ae148 100644
--- a/xlat/socketcalls.h
+++ b/xlat/socketcalls.h
@@ -1,70 +1,156 @@
/* Generated by ./xlat/gen.sh from ./xlat/socketcalls.in; do not edit. */
-#if !(defined(SYS_SOCKET) || (defined(HAVE_DECL_SYS_SOCKET) && HAVE_DECL_SYS_SOCKET))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SYS_SOCKET) || (defined(HAVE_DECL_SYS_SOCKET) && HAVE_DECL_SYS_SOCKET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SOCKET) == (1), "SYS_SOCKET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SOCKET 1
#endif
-#if !(defined(SYS_BIND) || (defined(HAVE_DECL_SYS_BIND) && HAVE_DECL_SYS_BIND))
+#if defined(SYS_BIND) || (defined(HAVE_DECL_SYS_BIND) && HAVE_DECL_SYS_BIND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_BIND) == (2), "SYS_BIND != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_BIND 2
#endif
-#if !(defined(SYS_CONNECT) || (defined(HAVE_DECL_SYS_CONNECT) && HAVE_DECL_SYS_CONNECT))
+#if defined(SYS_CONNECT) || (defined(HAVE_DECL_SYS_CONNECT) && HAVE_DECL_SYS_CONNECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_CONNECT) == (3), "SYS_CONNECT != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_CONNECT 3
#endif
-#if !(defined(SYS_LISTEN) || (defined(HAVE_DECL_SYS_LISTEN) && HAVE_DECL_SYS_LISTEN))
+#if defined(SYS_LISTEN) || (defined(HAVE_DECL_SYS_LISTEN) && HAVE_DECL_SYS_LISTEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_LISTEN) == (4), "SYS_LISTEN != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_LISTEN 4
#endif
-#if !(defined(SYS_ACCEPT) || (defined(HAVE_DECL_SYS_ACCEPT) && HAVE_DECL_SYS_ACCEPT))
+#if defined(SYS_ACCEPT) || (defined(HAVE_DECL_SYS_ACCEPT) && HAVE_DECL_SYS_ACCEPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_ACCEPT) == (5), "SYS_ACCEPT != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_ACCEPT 5
#endif
-#if !(defined(SYS_GETSOCKNAME) || (defined(HAVE_DECL_SYS_GETSOCKNAME) && HAVE_DECL_SYS_GETSOCKNAME))
+#if defined(SYS_GETSOCKNAME) || (defined(HAVE_DECL_SYS_GETSOCKNAME) && HAVE_DECL_SYS_GETSOCKNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_GETSOCKNAME) == (6), "SYS_GETSOCKNAME != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_GETSOCKNAME 6
#endif
-#if !(defined(SYS_GETPEERNAME) || (defined(HAVE_DECL_SYS_GETPEERNAME) && HAVE_DECL_SYS_GETPEERNAME))
+#if defined(SYS_GETPEERNAME) || (defined(HAVE_DECL_SYS_GETPEERNAME) && HAVE_DECL_SYS_GETPEERNAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_GETPEERNAME) == (7), "SYS_GETPEERNAME != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_GETPEERNAME 7
#endif
-#if !(defined(SYS_SOCKETPAIR) || (defined(HAVE_DECL_SYS_SOCKETPAIR) && HAVE_DECL_SYS_SOCKETPAIR))
+#if defined(SYS_SOCKETPAIR) || (defined(HAVE_DECL_SYS_SOCKETPAIR) && HAVE_DECL_SYS_SOCKETPAIR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SOCKETPAIR) == (8), "SYS_SOCKETPAIR != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SOCKETPAIR 8
#endif
-#if !(defined(SYS_SEND) || (defined(HAVE_DECL_SYS_SEND) && HAVE_DECL_SYS_SEND))
+#if defined(SYS_SEND) || (defined(HAVE_DECL_SYS_SEND) && HAVE_DECL_SYS_SEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SEND) == (9), "SYS_SEND != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SEND 9
#endif
-#if !(defined(SYS_RECV) || (defined(HAVE_DECL_SYS_RECV) && HAVE_DECL_SYS_RECV))
+#if defined(SYS_RECV) || (defined(HAVE_DECL_SYS_RECV) && HAVE_DECL_SYS_RECV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_RECV) == (10), "SYS_RECV != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_RECV 10
#endif
-#if !(defined(SYS_SENDTO) || (defined(HAVE_DECL_SYS_SENDTO) && HAVE_DECL_SYS_SENDTO))
+#if defined(SYS_SENDTO) || (defined(HAVE_DECL_SYS_SENDTO) && HAVE_DECL_SYS_SENDTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SENDTO) == (11), "SYS_SENDTO != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SENDTO 11
#endif
-#if !(defined(SYS_RECVFROM) || (defined(HAVE_DECL_SYS_RECVFROM) && HAVE_DECL_SYS_RECVFROM))
+#if defined(SYS_RECVFROM) || (defined(HAVE_DECL_SYS_RECVFROM) && HAVE_DECL_SYS_RECVFROM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_RECVFROM) == (12), "SYS_RECVFROM != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_RECVFROM 12
#endif
-#if !(defined(SYS_SHUTDOWN) || (defined(HAVE_DECL_SYS_SHUTDOWN) && HAVE_DECL_SYS_SHUTDOWN))
+#if defined(SYS_SHUTDOWN) || (defined(HAVE_DECL_SYS_SHUTDOWN) && HAVE_DECL_SYS_SHUTDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SHUTDOWN) == (13), "SYS_SHUTDOWN != 13");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SHUTDOWN 13
#endif
-#if !(defined(SYS_SETSOCKOPT) || (defined(HAVE_DECL_SYS_SETSOCKOPT) && HAVE_DECL_SYS_SETSOCKOPT))
+#if defined(SYS_SETSOCKOPT) || (defined(HAVE_DECL_SYS_SETSOCKOPT) && HAVE_DECL_SYS_SETSOCKOPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SETSOCKOPT) == (14), "SYS_SETSOCKOPT != 14");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SETSOCKOPT 14
#endif
-#if !(defined(SYS_GETSOCKOPT) || (defined(HAVE_DECL_SYS_GETSOCKOPT) && HAVE_DECL_SYS_GETSOCKOPT))
+#if defined(SYS_GETSOCKOPT) || (defined(HAVE_DECL_SYS_GETSOCKOPT) && HAVE_DECL_SYS_GETSOCKOPT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_GETSOCKOPT) == (15), "SYS_GETSOCKOPT != 15");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_GETSOCKOPT 15
#endif
-#if !(defined(SYS_SENDMSG) || (defined(HAVE_DECL_SYS_SENDMSG) && HAVE_DECL_SYS_SENDMSG))
+#if defined(SYS_SENDMSG) || (defined(HAVE_DECL_SYS_SENDMSG) && HAVE_DECL_SYS_SENDMSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SENDMSG) == (16), "SYS_SENDMSG != 16");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SENDMSG 16
#endif
-#if !(defined(SYS_RECVMSG) || (defined(HAVE_DECL_SYS_RECVMSG) && HAVE_DECL_SYS_RECVMSG))
+#if defined(SYS_RECVMSG) || (defined(HAVE_DECL_SYS_RECVMSG) && HAVE_DECL_SYS_RECVMSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_RECVMSG) == (17), "SYS_RECVMSG != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_RECVMSG 17
#endif
-#if !(defined(SYS_ACCEPT4) || (defined(HAVE_DECL_SYS_ACCEPT4) && HAVE_DECL_SYS_ACCEPT4))
+#if defined(SYS_ACCEPT4) || (defined(HAVE_DECL_SYS_ACCEPT4) && HAVE_DECL_SYS_ACCEPT4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_ACCEPT4) == (18), "SYS_ACCEPT4 != 18");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_ACCEPT4 18
#endif
-#if !(defined(SYS_RECVMMSG) || (defined(HAVE_DECL_SYS_RECVMMSG) && HAVE_DECL_SYS_RECVMMSG))
+#if defined(SYS_RECVMMSG) || (defined(HAVE_DECL_SYS_RECVMMSG) && HAVE_DECL_SYS_RECVMMSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_RECVMMSG) == (19), "SYS_RECVMMSG != 19");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_RECVMMSG 19
#endif
-#if !(defined(SYS_SENDMMSG) || (defined(HAVE_DECL_SYS_SENDMMSG) && HAVE_DECL_SYS_SENDMMSG))
+#if defined(SYS_SENDMMSG) || (defined(HAVE_DECL_SYS_SENDMMSG) && HAVE_DECL_SYS_SENDMMSG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYS_SENDMMSG) == (20), "SYS_SENDMMSG != 20");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYS_SENDMMSG 20
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat socketcalls in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat socketcalls in mpers mode
+
+# else
static
const struct xlat socketcalls[] = {
@@ -91,4 +177,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/socketlayers.h b/xlat/socketlayers.h
index dc96902..5296344 100644
--- a/xlat/socketlayers.h
+++ b/xlat/socketlayers.h
@@ -1,118 +1,282 @@
/* Generated by ./xlat/gen.sh from ./xlat/socketlayers.in; do not edit. */
-#if !(defined(SOL_IP) || (defined(HAVE_DECL_SOL_IP) && HAVE_DECL_SOL_IP))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SOL_IP) || (defined(HAVE_DECL_SOL_IP) && HAVE_DECL_SOL_IP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_IP) == (0), "SOL_IP != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_IP 0
#endif
-#if !(defined(SOL_SOCKET) || (defined(HAVE_DECL_SOL_SOCKET) && HAVE_DECL_SOL_SOCKET))
+#if !(defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__)
+#if defined(SOL_SOCKET) || (defined(HAVE_DECL_SOL_SOCKET) && HAVE_DECL_SOL_SOCKET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_SOCKET) == (1), "SOL_SOCKET != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_SOCKET 1
#endif
-#if !(defined(SOL_TCP) || (defined(HAVE_DECL_SOL_TCP) && HAVE_DECL_SOL_TCP))
+#endif
+#if defined(SOL_TCP) || (defined(HAVE_DECL_SOL_TCP) && HAVE_DECL_SOL_TCP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_TCP) == (6), "SOL_TCP != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_TCP 6
#endif
-#if !(defined(SOL_UDP) || (defined(HAVE_DECL_SOL_UDP) && HAVE_DECL_SOL_UDP))
+#if defined(SOL_UDP) || (defined(HAVE_DECL_SOL_UDP) && HAVE_DECL_SOL_UDP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_UDP) == (17), "SOL_UDP != 17");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_UDP 17
#endif
-#if !(defined(SOL_IPV6) || (defined(HAVE_DECL_SOL_IPV6) && HAVE_DECL_SOL_IPV6))
+#if defined(SOL_IPV6) || (defined(HAVE_DECL_SOL_IPV6) && HAVE_DECL_SOL_IPV6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_IPV6) == (41), "SOL_IPV6 != 41");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_IPV6 41
#endif
-#if !(defined(SOL_ICMPV6) || (defined(HAVE_DECL_SOL_ICMPV6) && HAVE_DECL_SOL_ICMPV6))
+#if defined(SOL_ICMPV6) || (defined(HAVE_DECL_SOL_ICMPV6) && HAVE_DECL_SOL_ICMPV6)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_ICMPV6) == (58), "SOL_ICMPV6 != 58");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_ICMPV6 58
#endif
-#if !(defined(SOL_SCTP) || (defined(HAVE_DECL_SOL_SCTP) && HAVE_DECL_SOL_SCTP))
+#if defined(SOL_SCTP) || (defined(HAVE_DECL_SOL_SCTP) && HAVE_DECL_SOL_SCTP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_SCTP) == (132), "SOL_SCTP != 132");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_SCTP 132
#endif
-#if !(defined(SOL_UDPLITE) || (defined(HAVE_DECL_SOL_UDPLITE) && HAVE_DECL_SOL_UDPLITE))
+#if defined(SOL_UDPLITE) || (defined(HAVE_DECL_SOL_UDPLITE) && HAVE_DECL_SOL_UDPLITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_UDPLITE) == (136), "SOL_UDPLITE != 136");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_UDPLITE 136
#endif
-#if !(defined(SOL_RAW) || (defined(HAVE_DECL_SOL_RAW) && HAVE_DECL_SOL_RAW))
+#if defined(SOL_RAW) || (defined(HAVE_DECL_SOL_RAW) && HAVE_DECL_SOL_RAW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_RAW) == (255), "SOL_RAW != 255");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_RAW 255
#endif
-#if !(defined(SOL_IPX) || (defined(HAVE_DECL_SOL_IPX) && HAVE_DECL_SOL_IPX))
+#if defined(SOL_IPX) || (defined(HAVE_DECL_SOL_IPX) && HAVE_DECL_SOL_IPX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_IPX) == (256), "SOL_IPX != 256");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_IPX 256
#endif
-#if !(defined(SOL_AX25) || (defined(HAVE_DECL_SOL_AX25) && HAVE_DECL_SOL_AX25))
+#if defined(SOL_AX25) || (defined(HAVE_DECL_SOL_AX25) && HAVE_DECL_SOL_AX25)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_AX25) == (257), "SOL_AX25 != 257");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_AX25 257
#endif
-#if !(defined(SOL_ATALK) || (defined(HAVE_DECL_SOL_ATALK) && HAVE_DECL_SOL_ATALK))
+#if defined(SOL_ATALK) || (defined(HAVE_DECL_SOL_ATALK) && HAVE_DECL_SOL_ATALK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_ATALK) == (258), "SOL_ATALK != 258");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_ATALK 258
#endif
-#if !(defined(SOL_NETROM) || (defined(HAVE_DECL_SOL_NETROM) && HAVE_DECL_SOL_NETROM))
+#if defined(SOL_NETROM) || (defined(HAVE_DECL_SOL_NETROM) && HAVE_DECL_SOL_NETROM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_NETROM) == (259), "SOL_NETROM != 259");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_NETROM 259
#endif
-#if !(defined(SOL_ROSE) || (defined(HAVE_DECL_SOL_ROSE) && HAVE_DECL_SOL_ROSE))
+#if defined(SOL_ROSE) || (defined(HAVE_DECL_SOL_ROSE) && HAVE_DECL_SOL_ROSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_ROSE) == (260), "SOL_ROSE != 260");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_ROSE 260
#endif
-#if !(defined(SOL_DECNET) || (defined(HAVE_DECL_SOL_DECNET) && HAVE_DECL_SOL_DECNET))
+#if defined(SOL_DECNET) || (defined(HAVE_DECL_SOL_DECNET) && HAVE_DECL_SOL_DECNET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_DECNET) == (261), "SOL_DECNET != 261");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_DECNET 261
#endif
-#if !(defined(SOL_X25) || (defined(HAVE_DECL_SOL_X25) && HAVE_DECL_SOL_X25))
+#if defined(SOL_X25) || (defined(HAVE_DECL_SOL_X25) && HAVE_DECL_SOL_X25)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_X25) == (262), "SOL_X25 != 262");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_X25 262
#endif
-#if !(defined(SOL_PACKET) || (defined(HAVE_DECL_SOL_PACKET) && HAVE_DECL_SOL_PACKET))
+#if defined(SOL_PACKET) || (defined(HAVE_DECL_SOL_PACKET) && HAVE_DECL_SOL_PACKET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_PACKET) == (263), "SOL_PACKET != 263");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_PACKET 263
#endif
-#if !(defined(SOL_ATM) || (defined(HAVE_DECL_SOL_ATM) && HAVE_DECL_SOL_ATM))
+#if defined(SOL_ATM) || (defined(HAVE_DECL_SOL_ATM) && HAVE_DECL_SOL_ATM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_ATM) == (264), "SOL_ATM != 264");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_ATM 264
#endif
-#if !(defined(SOL_AAL) || (defined(HAVE_DECL_SOL_AAL) && HAVE_DECL_SOL_AAL))
+#if defined(SOL_AAL) || (defined(HAVE_DECL_SOL_AAL) && HAVE_DECL_SOL_AAL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_AAL) == (265), "SOL_AAL != 265");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_AAL 265
#endif
-#if !(defined(SOL_IRDA) || (defined(HAVE_DECL_SOL_IRDA) && HAVE_DECL_SOL_IRDA))
+#if defined(SOL_IRDA) || (defined(HAVE_DECL_SOL_IRDA) && HAVE_DECL_SOL_IRDA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_IRDA) == (266), "SOL_IRDA != 266");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_IRDA 266
#endif
-#if !(defined(SOL_NETBEUI) || (defined(HAVE_DECL_SOL_NETBEUI) && HAVE_DECL_SOL_NETBEUI))
+#if defined(SOL_NETBEUI) || (defined(HAVE_DECL_SOL_NETBEUI) && HAVE_DECL_SOL_NETBEUI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_NETBEUI) == (267), "SOL_NETBEUI != 267");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_NETBEUI 267
#endif
-#if !(defined(SOL_LLC) || (defined(HAVE_DECL_SOL_LLC) && HAVE_DECL_SOL_LLC))
+#if defined(SOL_LLC) || (defined(HAVE_DECL_SOL_LLC) && HAVE_DECL_SOL_LLC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_LLC) == (268), "SOL_LLC != 268");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_LLC 268
#endif
-#if !(defined(SOL_DCCP) || (defined(HAVE_DECL_SOL_DCCP) && HAVE_DECL_SOL_DCCP))
+#if defined(SOL_DCCP) || (defined(HAVE_DECL_SOL_DCCP) && HAVE_DECL_SOL_DCCP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_DCCP) == (269), "SOL_DCCP != 269");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_DCCP 269
#endif
-#if !(defined(SOL_NETLINK) || (defined(HAVE_DECL_SOL_NETLINK) && HAVE_DECL_SOL_NETLINK))
+#if defined(SOL_NETLINK) || (defined(HAVE_DECL_SOL_NETLINK) && HAVE_DECL_SOL_NETLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_NETLINK) == (270), "SOL_NETLINK != 270");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_NETLINK 270
#endif
-#if !(defined(SOL_TIPC) || (defined(HAVE_DECL_SOL_TIPC) && HAVE_DECL_SOL_TIPC))
+#if defined(SOL_TIPC) || (defined(HAVE_DECL_SOL_TIPC) && HAVE_DECL_SOL_TIPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_TIPC) == (271), "SOL_TIPC != 271");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_TIPC 271
#endif
-#if !(defined(SOL_RXRPC) || (defined(HAVE_DECL_SOL_RXRPC) && HAVE_DECL_SOL_RXRPC))
+#if defined(SOL_RXRPC) || (defined(HAVE_DECL_SOL_RXRPC) && HAVE_DECL_SOL_RXRPC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_RXRPC) == (272), "SOL_RXRPC != 272");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_RXRPC 272
#endif
-#if !(defined(SOL_PPPOL2TP) || (defined(HAVE_DECL_SOL_PPPOL2TP) && HAVE_DECL_SOL_PPPOL2TP))
+#if defined(SOL_PPPOL2TP) || (defined(HAVE_DECL_SOL_PPPOL2TP) && HAVE_DECL_SOL_PPPOL2TP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_PPPOL2TP) == (273), "SOL_PPPOL2TP != 273");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_PPPOL2TP 273
#endif
-#if !(defined(SOL_BLUETOOTH) || (defined(HAVE_DECL_SOL_BLUETOOTH) && HAVE_DECL_SOL_BLUETOOTH))
+#if defined(SOL_BLUETOOTH) || (defined(HAVE_DECL_SOL_BLUETOOTH) && HAVE_DECL_SOL_BLUETOOTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_BLUETOOTH) == (274), "SOL_BLUETOOTH != 274");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_BLUETOOTH 274
#endif
-#if !(defined(SOL_PNPIPE) || (defined(HAVE_DECL_SOL_PNPIPE) && HAVE_DECL_SOL_PNPIPE))
+#if defined(SOL_PNPIPE) || (defined(HAVE_DECL_SOL_PNPIPE) && HAVE_DECL_SOL_PNPIPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_PNPIPE) == (275), "SOL_PNPIPE != 275");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_PNPIPE 275
#endif
-#if !(defined(SOL_RDS) || (defined(HAVE_DECL_SOL_RDS) && HAVE_DECL_SOL_RDS))
+#if defined(SOL_RDS) || (defined(HAVE_DECL_SOL_RDS) && HAVE_DECL_SOL_RDS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_RDS) == (276), "SOL_RDS != 276");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_RDS 276
#endif
-#if !(defined(SOL_IUCV) || (defined(HAVE_DECL_SOL_IUCV) && HAVE_DECL_SOL_IUCV))
+#if defined(SOL_IUCV) || (defined(HAVE_DECL_SOL_IUCV) && HAVE_DECL_SOL_IUCV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_IUCV) == (277), "SOL_IUCV != 277");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_IUCV 277
#endif
-#if !(defined(SOL_CAIF) || (defined(HAVE_DECL_SOL_CAIF) && HAVE_DECL_SOL_CAIF))
+#if defined(SOL_CAIF) || (defined(HAVE_DECL_SOL_CAIF) && HAVE_DECL_SOL_CAIF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_CAIF) == (278), "SOL_CAIF != 278");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_CAIF 278
#endif
-#if !(defined(SOL_ALG) || (defined(HAVE_DECL_SOL_ALG) && HAVE_DECL_SOL_ALG))
+#if defined(SOL_ALG) || (defined(HAVE_DECL_SOL_ALG) && HAVE_DECL_SOL_ALG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_ALG) == (279), "SOL_ALG != 279");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_ALG 279
#endif
-#if !(defined(SOL_NFC) || (defined(HAVE_DECL_SOL_NFC) && HAVE_DECL_SOL_NFC))
+#if defined(SOL_NFC) || (defined(HAVE_DECL_SOL_NFC) && HAVE_DECL_SOL_NFC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_NFC) == (280), "SOL_NFC != 280");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_NFC 280
#endif
-#if !(defined(SOL_KCM) || (defined(HAVE_DECL_SOL_KCM) && HAVE_DECL_SOL_KCM))
+#if defined(SOL_KCM) || (defined(HAVE_DECL_SOL_KCM) && HAVE_DECL_SOL_KCM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_KCM) == (281), "SOL_KCM != 281");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_KCM 281
#endif
-#if !(defined(SOL_TLS) || (defined(HAVE_DECL_SOL_TLS) && HAVE_DECL_SOL_TLS))
+#if defined(SOL_TLS) || (defined(HAVE_DECL_SOL_TLS) && HAVE_DECL_SOL_TLS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_TLS) == (282), "SOL_TLS != 282");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SOL_TLS 282
#endif
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+#if defined(SOL_SOCKET) || (defined(HAVE_DECL_SOL_SOCKET) && HAVE_DECL_SOL_SOCKET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SOL_SOCKET) == (0xffff), "SOL_SOCKET != 0xffff");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define SOL_SOCKET 0xffff
+#endif
+#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat socketlayers[] = {
+
XLAT(SOL_IP),
+#if !(defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__)
XLAT(SOL_SOCKET),
+#endif
XLAT(SOL_TCP),
XLAT(SOL_UDP),
XLAT(SOL_IPV6),
@@ -147,7 +311,12 @@
XLAT(SOL_NFC),
XLAT(SOL_KCM),
XLAT(SOL_TLS),
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+ XLAT(SOL_SOCKET),
+#endif
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/socketlayers.in b/xlat/socketlayers.in
index dc80c58..0dfa446 100644
--- a/xlat/socketlayers.in
+++ b/xlat/socketlayers.in
@@ -1,5 +1,8 @@
+/* sort -k2,2n */
SOL_IP 0
+#if !(defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__)
SOL_SOCKET 1
+#endif
SOL_TCP 6
SOL_UDP 17
SOL_IPV6 41
@@ -34,3 +37,6 @@
SOL_NFC 280
SOL_KCM 281
SOL_TLS 282
+#if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__
+SOL_SOCKET 0xffff
+#endif
diff --git a/xlat/sockipoptions.h b/xlat/sockipoptions.h
deleted file mode 100644
index 26d768f..0000000
--- a/xlat/sockipoptions.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/sockipoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat sockipoptions in mpers mode
-
-#else
-
-static
-const struct xlat sockipoptions[] = {
-#if defined(IP_TOS) || (defined(HAVE_DECL_IP_TOS) && HAVE_DECL_IP_TOS)
- XLAT(IP_TOS),
-#endif
-#if defined(IP_TTL) || (defined(HAVE_DECL_IP_TTL) && HAVE_DECL_IP_TTL)
- XLAT(IP_TTL),
-#endif
-#if defined(IP_HDRINCL) || (defined(HAVE_DECL_IP_HDRINCL) && HAVE_DECL_IP_HDRINCL)
- XLAT(IP_HDRINCL),
-#endif
-#if defined(IP_OPTIONS) || (defined(HAVE_DECL_IP_OPTIONS) && HAVE_DECL_IP_OPTIONS)
- XLAT(IP_OPTIONS),
-#endif
-#if defined(IP_ROUTER_ALERT) || (defined(HAVE_DECL_IP_ROUTER_ALERT) && HAVE_DECL_IP_ROUTER_ALERT)
- XLAT(IP_ROUTER_ALERT),
-#endif
-#if defined(IP_RECVOPTIONS) || (defined(HAVE_DECL_IP_RECVOPTIONS) && HAVE_DECL_IP_RECVOPTIONS)
- XLAT(IP_RECVOPTIONS),
-#endif
-#if defined(IP_RECVOPTS) || (defined(HAVE_DECL_IP_RECVOPTS) && HAVE_DECL_IP_RECVOPTS)
- XLAT(IP_RECVOPTS),
-#endif
-#if defined(IP_RETOPTS) || (defined(HAVE_DECL_IP_RETOPTS) && HAVE_DECL_IP_RETOPTS)
- XLAT(IP_RETOPTS),
-#endif
-#if defined(IP_RECVRETOPTS) || (defined(HAVE_DECL_IP_RECVRETOPTS) && HAVE_DECL_IP_RECVRETOPTS)
- XLAT(IP_RECVRETOPTS),
-#endif
-#if defined(IP_RECVDSTADDR) || (defined(HAVE_DECL_IP_RECVDSTADDR) && HAVE_DECL_IP_RECVDSTADDR)
- XLAT(IP_RECVDSTADDR),
-#endif
-#if defined(IP_PKTINFO) || (defined(HAVE_DECL_IP_PKTINFO) && HAVE_DECL_IP_PKTINFO)
- XLAT(IP_PKTINFO),
-#endif
-#if defined(IP_PKTOPTIONS) || (defined(HAVE_DECL_IP_PKTOPTIONS) && HAVE_DECL_IP_PKTOPTIONS)
- XLAT(IP_PKTOPTIONS),
-#endif
-#if defined(IP_MTU_DISCOVER) || (defined(HAVE_DECL_IP_MTU_DISCOVER) && HAVE_DECL_IP_MTU_DISCOVER)
- XLAT(IP_MTU_DISCOVER),
-#endif
-#if defined(IP_RECVERR) || (defined(HAVE_DECL_IP_RECVERR) && HAVE_DECL_IP_RECVERR)
- XLAT(IP_RECVERR),
-#endif
-#if defined(IP_RECVTTL) || (defined(HAVE_DECL_IP_RECVTTL) && HAVE_DECL_IP_RECVTTL)
- XLAT(IP_RECVTTL),
-#endif
-#if defined(IP_RECVTOS) || (defined(HAVE_DECL_IP_RECVTOS) && HAVE_DECL_IP_RECVTOS)
- XLAT(IP_RECVTOS),
-#endif
-#if defined(IP_MTU) || (defined(HAVE_DECL_IP_MTU) && HAVE_DECL_IP_MTU)
- XLAT(IP_MTU),
-#endif
-#if defined(IP_MULTICAST_IF) || (defined(HAVE_DECL_IP_MULTICAST_IF) && HAVE_DECL_IP_MULTICAST_IF)
- XLAT(IP_MULTICAST_IF),
-#endif
-#if defined(IP_MULTICAST_TTL) || (defined(HAVE_DECL_IP_MULTICAST_TTL) && HAVE_DECL_IP_MULTICAST_TTL)
- XLAT(IP_MULTICAST_TTL),
-#endif
-#if defined(IP_MULTICAST_LOOP) || (defined(HAVE_DECL_IP_MULTICAST_LOOP) && HAVE_DECL_IP_MULTICAST_LOOP)
- XLAT(IP_MULTICAST_LOOP),
-#endif
-#if defined(IP_ADD_MEMBERSHIP) || (defined(HAVE_DECL_IP_ADD_MEMBERSHIP) && HAVE_DECL_IP_ADD_MEMBERSHIP)
- XLAT(IP_ADD_MEMBERSHIP),
-#endif
-#if defined(IP_DROP_MEMBERSHIP) || (defined(HAVE_DECL_IP_DROP_MEMBERSHIP) && HAVE_DECL_IP_DROP_MEMBERSHIP)
- XLAT(IP_DROP_MEMBERSHIP),
-#endif
-#if defined(IP_BROADCAST_IF) || (defined(HAVE_DECL_IP_BROADCAST_IF) && HAVE_DECL_IP_BROADCAST_IF)
- XLAT(IP_BROADCAST_IF),
-#endif
-#if defined(IP_RECVIFINDEX) || (defined(HAVE_DECL_IP_RECVIFINDEX) && HAVE_DECL_IP_RECVIFINDEX)
- XLAT(IP_RECVIFINDEX),
-#endif
-#if defined(IP_MSFILTER) || (defined(HAVE_DECL_IP_MSFILTER) && HAVE_DECL_IP_MSFILTER)
- XLAT(IP_MSFILTER),
-#endif
-#if defined(IP_FREEBIND) || (defined(HAVE_DECL_IP_FREEBIND) && HAVE_DECL_IP_FREEBIND)
- XLAT(IP_FREEBIND),
-#endif
-#if defined(IP_IPSEC_POLICY) || (defined(HAVE_DECL_IP_IPSEC_POLICY) && HAVE_DECL_IP_IPSEC_POLICY)
- XLAT(IP_IPSEC_POLICY),
-#endif
-#if defined(IP_XFRM_POLICY) || (defined(HAVE_DECL_IP_XFRM_POLICY) && HAVE_DECL_IP_XFRM_POLICY)
- XLAT(IP_XFRM_POLICY),
-#endif
-#if defined(IP_PASSSEC) || (defined(HAVE_DECL_IP_PASSSEC) && HAVE_DECL_IP_PASSSEC)
- XLAT(IP_PASSSEC),
-#endif
-#if defined(IP_TRANSPARENT) || (defined(HAVE_DECL_IP_TRANSPARENT) && HAVE_DECL_IP_TRANSPARENT)
- XLAT(IP_TRANSPARENT),
-#endif
-#if defined(IP_ORIGDSTADDR) || (defined(HAVE_DECL_IP_ORIGDSTADDR) && HAVE_DECL_IP_ORIGDSTADDR)
- XLAT(IP_ORIGDSTADDR),
-#endif
-#if defined(IP_RECVORIGDSTADDR) || (defined(HAVE_DECL_IP_RECVORIGDSTADDR) && HAVE_DECL_IP_RECVORIGDSTADDR)
- XLAT(IP_RECVORIGDSTADDR),
-#endif
-#if defined(IP_MINTTL) || (defined(HAVE_DECL_IP_MINTTL) && HAVE_DECL_IP_MINTTL)
- XLAT(IP_MINTTL),
-#endif
-#if defined(IP_NODEFRAG) || (defined(HAVE_DECL_IP_NODEFRAG) && HAVE_DECL_IP_NODEFRAG)
- XLAT(IP_NODEFRAG),
-#endif
-#if defined(IP_CHECKSUM) || (defined(HAVE_DECL_IP_CHECKSUM) && HAVE_DECL_IP_CHECKSUM)
- XLAT(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),
-#endif
-#if defined(IP_RECVFRAGSIZE) || (defined(HAVE_DECL_IP_RECVFRAGSIZE) && HAVE_DECL_IP_RECVFRAGSIZE)
- XLAT(IP_RECVFRAGSIZE),
-#endif
-#if defined(IP_UNBLOCK_SOURCE) || (defined(HAVE_DECL_IP_UNBLOCK_SOURCE) && HAVE_DECL_IP_UNBLOCK_SOURCE)
- XLAT(IP_UNBLOCK_SOURCE),
-#endif
-#if defined(IP_BLOCK_SOURCE) || (defined(HAVE_DECL_IP_BLOCK_SOURCE) && HAVE_DECL_IP_BLOCK_SOURCE)
- XLAT(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),
-#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),
-#endif
-#if defined(MCAST_JOIN_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_GROUP) && HAVE_DECL_MCAST_JOIN_GROUP)
- XLAT(MCAST_JOIN_GROUP),
-#endif
-#if defined(MCAST_BLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_BLOCK_SOURCE) && HAVE_DECL_MCAST_BLOCK_SOURCE)
- XLAT(MCAST_BLOCK_SOURCE),
-#endif
-#if defined(MCAST_UNBLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_UNBLOCK_SOURCE) && HAVE_DECL_MCAST_UNBLOCK_SOURCE)
- XLAT(MCAST_UNBLOCK_SOURCE),
-#endif
-#if defined(MCAST_LEAVE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_GROUP) && HAVE_DECL_MCAST_LEAVE_GROUP)
- XLAT(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),
-#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),
-#endif
-#if defined(MCAST_MSFILTER) || (defined(HAVE_DECL_MCAST_MSFILTER) && HAVE_DECL_MCAST_MSFILTER)
- XLAT(MCAST_MSFILTER),
-#endif
-#if defined(IP_MULTICAST_ALL) || (defined(HAVE_DECL_IP_MULTICAST_ALL) && HAVE_DECL_IP_MULTICAST_ALL)
- XLAT(IP_MULTICAST_ALL),
-#endif
-#if defined(IP_UNICAST_IF) || (defined(HAVE_DECL_IP_UNICAST_IF) && HAVE_DECL_IP_UNICAST_IF)
- XLAT(IP_UNICAST_IF),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/sockipv6options.h b/xlat/sockipv6options.h
deleted file mode 100644
index 4309089..0000000
--- a/xlat/sockipv6options.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/sockipv6options.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat sockipv6options in mpers mode
-
-#else
-
-static
-const struct xlat sockipv6options[] = {
-#if defined(IPV6_ADDRFORM) || (defined(HAVE_DECL_IPV6_ADDRFORM) && HAVE_DECL_IPV6_ADDRFORM)
- XLAT(IPV6_ADDRFORM),
-#endif
-#if defined(IPV6_2292PKTINFO) || (defined(HAVE_DECL_IPV6_2292PKTINFO) && HAVE_DECL_IPV6_2292PKTINFO)
- XLAT(IPV6_2292PKTINFO),
-#endif
-#if defined(IPV6_2292HOPOPTS) || (defined(HAVE_DECL_IPV6_2292HOPOPTS) && HAVE_DECL_IPV6_2292HOPOPTS)
- XLAT(IPV6_2292HOPOPTS),
-#endif
-#if defined(IPV6_2292DSTOPTS) || (defined(HAVE_DECL_IPV6_2292DSTOPTS) && HAVE_DECL_IPV6_2292DSTOPTS)
- XLAT(IPV6_2292DSTOPTS),
-#endif
-#if defined(IPV6_2292RTHDR) || (defined(HAVE_DECL_IPV6_2292RTHDR) && HAVE_DECL_IPV6_2292RTHDR)
- XLAT(IPV6_2292RTHDR),
-#endif
-#if defined(IPV6_2292PKTOPTIONS) || (defined(HAVE_DECL_IPV6_2292PKTOPTIONS) && HAVE_DECL_IPV6_2292PKTOPTIONS)
- XLAT(IPV6_2292PKTOPTIONS),
-#endif
-#if defined(IPV6_CHECKSUM) || (defined(HAVE_DECL_IPV6_CHECKSUM) && HAVE_DECL_IPV6_CHECKSUM)
- XLAT(IPV6_CHECKSUM),
-#endif
-#if defined(IPV6_2292HOPLIMIT) || (defined(HAVE_DECL_IPV6_2292HOPLIMIT) && HAVE_DECL_IPV6_2292HOPLIMIT)
- XLAT(IPV6_2292HOPLIMIT),
-#endif
-#if defined(IPV6_NEXTHOP) || (defined(HAVE_DECL_IPV6_NEXTHOP) && HAVE_DECL_IPV6_NEXTHOP)
- XLAT(IPV6_NEXTHOP),
-#endif
-#if defined(IPV6_AUTHHDR) || (defined(HAVE_DECL_IPV6_AUTHHDR) && HAVE_DECL_IPV6_AUTHHDR)
- XLAT(IPV6_AUTHHDR),
-#endif
-#if defined(IPV6_FLOWINFO) || (defined(HAVE_DECL_IPV6_FLOWINFO) && HAVE_DECL_IPV6_FLOWINFO)
- XLAT(IPV6_FLOWINFO),
-#endif
-#if defined(IPV6_UNICAST_HOPS) || (defined(HAVE_DECL_IPV6_UNICAST_HOPS) && HAVE_DECL_IPV6_UNICAST_HOPS)
- XLAT(IPV6_UNICAST_HOPS),
-#endif
-#if defined(IPV6_MULTICAST_IF) || (defined(HAVE_DECL_IPV6_MULTICAST_IF) && HAVE_DECL_IPV6_MULTICAST_IF)
- XLAT(IPV6_MULTICAST_IF),
-#endif
-#if defined(IPV6_MULTICAST_HOPS) || (defined(HAVE_DECL_IPV6_MULTICAST_HOPS) && HAVE_DECL_IPV6_MULTICAST_HOPS)
- XLAT(IPV6_MULTICAST_HOPS),
-#endif
-#if defined(IPV6_MULTICAST_LOOP) || (defined(HAVE_DECL_IPV6_MULTICAST_LOOP) && HAVE_DECL_IPV6_MULTICAST_LOOP)
- XLAT(IPV6_MULTICAST_LOOP),
-#endif
-#if defined(IPV6_ADD_MEMBERSHIP) || (defined(HAVE_DECL_IPV6_ADD_MEMBERSHIP) && HAVE_DECL_IPV6_ADD_MEMBERSHIP)
- XLAT(IPV6_ADD_MEMBERSHIP),
-#endif
-#if defined(IPV6_DROP_MEMBERSHIP) || (defined(HAVE_DECL_IPV6_DROP_MEMBERSHIP) && HAVE_DECL_IPV6_DROP_MEMBERSHIP)
- XLAT(IPV6_DROP_MEMBERSHIP),
-#endif
-#if defined(IPV6_ROUTER_ALERT) || (defined(HAVE_DECL_IPV6_ROUTER_ALERT) && HAVE_DECL_IPV6_ROUTER_ALERT)
- XLAT(IPV6_ROUTER_ALERT),
-#endif
-#if defined(IPV6_MTU_DISCOVER) || (defined(HAVE_DECL_IPV6_MTU_DISCOVER) && HAVE_DECL_IPV6_MTU_DISCOVER)
- XLAT(IPV6_MTU_DISCOVER),
-#endif
-#if defined(IPV6_MTU) || (defined(HAVE_DECL_IPV6_MTU) && HAVE_DECL_IPV6_MTU)
- XLAT(IPV6_MTU),
-#endif
-#if defined(IPV6_RECVERR) || (defined(HAVE_DECL_IPV6_RECVERR) && HAVE_DECL_IPV6_RECVERR)
- XLAT(IPV6_RECVERR),
-#endif
-#if defined(IPV6_V6ONLY) || (defined(HAVE_DECL_IPV6_V6ONLY) && HAVE_DECL_IPV6_V6ONLY)
- XLAT(IPV6_V6ONLY),
-#endif
-#if defined(IPV6_JOIN_ANYCAST) || (defined(HAVE_DECL_IPV6_JOIN_ANYCAST) && HAVE_DECL_IPV6_JOIN_ANYCAST)
- XLAT(IPV6_JOIN_ANYCAST),
-#endif
-#if defined(IPV6_LEAVE_ANYCAST) || (defined(HAVE_DECL_IPV6_LEAVE_ANYCAST) && HAVE_DECL_IPV6_LEAVE_ANYCAST)
- XLAT(IPV6_LEAVE_ANYCAST),
-#endif
-#if defined(IPV6_FLOWLABEL_MGR) || (defined(HAVE_DECL_IPV6_FLOWLABEL_MGR) && HAVE_DECL_IPV6_FLOWLABEL_MGR)
- XLAT(IPV6_FLOWLABEL_MGR),
-#endif
-#if defined(IPV6_FLOWINFO_SEND) || (defined(HAVE_DECL_IPV6_FLOWINFO_SEND) && HAVE_DECL_IPV6_FLOWINFO_SEND)
- XLAT(IPV6_FLOWINFO_SEND),
-#endif
-#if defined(IPV6_IPSEC_POLICY) || (defined(HAVE_DECL_IPV6_IPSEC_POLICY) && HAVE_DECL_IPV6_IPSEC_POLICY)
- XLAT(IPV6_IPSEC_POLICY),
-#endif
-#if defined(IPV6_XFRM_POLICY) || (defined(HAVE_DECL_IPV6_XFRM_POLICY) && HAVE_DECL_IPV6_XFRM_POLICY)
- XLAT(IPV6_XFRM_POLICY),
-#endif
-#if defined(IPV6_HDRINCL) || (defined(HAVE_DECL_IPV6_HDRINCL) && HAVE_DECL_IPV6_HDRINCL)
- XLAT(IPV6_HDRINCL),
-#endif
-#if defined(MCAST_JOIN_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_GROUP) && HAVE_DECL_MCAST_JOIN_GROUP)
- XLAT(MCAST_JOIN_GROUP),
-#endif
-#if defined(MCAST_BLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_BLOCK_SOURCE) && HAVE_DECL_MCAST_BLOCK_SOURCE)
- XLAT(MCAST_BLOCK_SOURCE),
-#endif
-#if defined(MCAST_UNBLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_UNBLOCK_SOURCE) && HAVE_DECL_MCAST_UNBLOCK_SOURCE)
- XLAT(MCAST_UNBLOCK_SOURCE),
-#endif
-#if defined(MCAST_LEAVE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_GROUP) && HAVE_DECL_MCAST_LEAVE_GROUP)
- XLAT(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),
-#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),
-#endif
-#if defined(MCAST_MSFILTER) || (defined(HAVE_DECL_MCAST_MSFILTER) && HAVE_DECL_MCAST_MSFILTER)
- XLAT(MCAST_MSFILTER),
-#endif
-#if defined(IPV6_RECVPKTINFO) || (defined(HAVE_DECL_IPV6_RECVPKTINFO) && HAVE_DECL_IPV6_RECVPKTINFO)
- XLAT(IPV6_RECVPKTINFO),
-#endif
-#if defined(IPV6_PKTINFO) || (defined(HAVE_DECL_IPV6_PKTINFO) && HAVE_DECL_IPV6_PKTINFO)
- XLAT(IPV6_PKTINFO),
-#endif
-#if defined(IPV6_RECVHOPLIMIT) || (defined(HAVE_DECL_IPV6_RECVHOPLIMIT) && HAVE_DECL_IPV6_RECVHOPLIMIT)
- XLAT(IPV6_RECVHOPLIMIT),
-#endif
-#if defined(IPV6_HOPLIMIT) || (defined(HAVE_DECL_IPV6_HOPLIMIT) && HAVE_DECL_IPV6_HOPLIMIT)
- XLAT(IPV6_HOPLIMIT),
-#endif
-#if defined(IPV6_RECVHOPOPTS) || (defined(HAVE_DECL_IPV6_RECVHOPOPTS) && HAVE_DECL_IPV6_RECVHOPOPTS)
- XLAT(IPV6_RECVHOPOPTS),
-#endif
-#if defined(IPV6_HOPOPTS) || (defined(HAVE_DECL_IPV6_HOPOPTS) && HAVE_DECL_IPV6_HOPOPTS)
- XLAT(IPV6_HOPOPTS),
-#endif
-#if defined(IPV6_RTHDRDSTOPTS) || (defined(HAVE_DECL_IPV6_RTHDRDSTOPTS) && HAVE_DECL_IPV6_RTHDRDSTOPTS)
- XLAT(IPV6_RTHDRDSTOPTS),
-#endif
-#if defined(IPV6_RECVRTHDR) || (defined(HAVE_DECL_IPV6_RECVRTHDR) && HAVE_DECL_IPV6_RECVRTHDR)
- XLAT(IPV6_RECVRTHDR),
-#endif
-#if defined(IPV6_RTHDR) || (defined(HAVE_DECL_IPV6_RTHDR) && HAVE_DECL_IPV6_RTHDR)
- XLAT(IPV6_RTHDR),
-#endif
-#if defined(IPV6_RECVDSTOPTS) || (defined(HAVE_DECL_IPV6_RECVDSTOPTS) && HAVE_DECL_IPV6_RECVDSTOPTS)
- XLAT(IPV6_RECVDSTOPTS),
-#endif
-#if defined(IPV6_DSTOPTS) || (defined(HAVE_DECL_IPV6_DSTOPTS) && HAVE_DECL_IPV6_DSTOPTS)
- XLAT(IPV6_DSTOPTS),
-#endif
-#if defined(IPV6_RECVPATHMTU) || (defined(HAVE_DECL_IPV6_RECVPATHMTU) && HAVE_DECL_IPV6_RECVPATHMTU)
- XLAT(IPV6_RECVPATHMTU),
-#endif
-#if defined(IPV6_PATHMTU) || (defined(HAVE_DECL_IPV6_PATHMTU) && HAVE_DECL_IPV6_PATHMTU)
- XLAT(IPV6_PATHMTU),
-#endif
-#if defined(IPV6_DONTFRAG) || (defined(HAVE_DECL_IPV6_DONTFRAG) && HAVE_DECL_IPV6_DONTFRAG)
- XLAT(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),
-#endif
-#if defined(IPV6_RECVTCLASS) || (defined(HAVE_DECL_IPV6_RECVTCLASS) && HAVE_DECL_IPV6_RECVTCLASS)
- XLAT(IPV6_RECVTCLASS),
-#endif
-#if defined(IPV6_TCLASS) || (defined(HAVE_DECL_IPV6_TCLASS) && HAVE_DECL_IPV6_TCLASS)
- XLAT(IPV6_TCLASS),
-#endif
-#if defined(IPV6_AUTOFLOWLABEL) || (defined(HAVE_DECL_IPV6_AUTOFLOWLABEL) && HAVE_DECL_IPV6_AUTOFLOWLABEL)
- XLAT(IPV6_AUTOFLOWLABEL),
-#endif
-#if defined(IPV6_ADDR_PREFERENCES) || (defined(HAVE_DECL_IPV6_ADDR_PREFERENCES) && HAVE_DECL_IPV6_ADDR_PREFERENCES)
- XLAT(IPV6_ADDR_PREFERENCES),
-#endif
-#if defined(IPV6_MINHOPCOUNT) || (defined(HAVE_DECL_IPV6_MINHOPCOUNT) && HAVE_DECL_IPV6_MINHOPCOUNT)
- XLAT(IPV6_MINHOPCOUNT),
-#endif
-#if defined(IPV6_ORIGDSTADDR) || (defined(HAVE_DECL_IPV6_ORIGDSTADDR) && HAVE_DECL_IPV6_ORIGDSTADDR)
- XLAT(IPV6_ORIGDSTADDR),
-#endif
-#if defined(IPV6_RECVORIGDSTADDR) || (defined(HAVE_DECL_IPV6_RECVORIGDSTADDR) && HAVE_DECL_IPV6_RECVORIGDSTADDR)
- XLAT(IPV6_RECVORIGDSTADDR),
-#endif
-#if defined(IPV6_TRANSPARENT) || (defined(HAVE_DECL_IPV6_TRANSPARENT) && HAVE_DECL_IPV6_TRANSPARENT)
- XLAT(IPV6_TRANSPARENT),
-#endif
-#if defined(IPV6_UNICAST_IF) || (defined(HAVE_DECL_IPV6_UNICAST_IF) && HAVE_DECL_IPV6_UNICAST_IF)
- XLAT(IPV6_UNICAST_IF),
-#endif
-#if defined(IPV6_RECVFRAGSIZE) || (defined(HAVE_DECL_IPV6_RECVFRAGSIZE) && HAVE_DECL_IPV6_RECVFRAGSIZE)
- XLAT(IPV6_RECVFRAGSIZE),
-#endif
-#if defined(IPV6_FREEBIND) || (defined(HAVE_DECL_IPV6_FREEBIND) && HAVE_DECL_IPV6_FREEBIND)
- XLAT(IPV6_FREEBIND),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/sockipxoptions.h b/xlat/sockipxoptions.h
deleted file mode 100644
index 0e92f0e..0000000
--- a/xlat/sockipxoptions.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/sockipxoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat sockipxoptions in mpers mode
-
-#else
-
-static
-const struct xlat sockipxoptions[] = {
-#if defined(IPX_TYPE) || (defined(HAVE_DECL_IPX_TYPE) && HAVE_DECL_IPX_TYPE)
- XLAT(IPX_TYPE),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/socknetlinkoptions.h b/xlat/socknetlinkoptions.h
deleted file mode 100644
index e101213..0000000
--- a/xlat/socknetlinkoptions.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/socknetlinkoptions.in; do not edit. */
-#if !(defined(NETLINK_ADD_MEMBERSHIP) || (defined(HAVE_DECL_NETLINK_ADD_MEMBERSHIP) && HAVE_DECL_NETLINK_ADD_MEMBERSHIP))
-# define NETLINK_ADD_MEMBERSHIP 1
-#endif
-#if !(defined(NETLINK_DROP_MEMBERSHIP) || (defined(HAVE_DECL_NETLINK_DROP_MEMBERSHIP) && HAVE_DECL_NETLINK_DROP_MEMBERSHIP))
-# define NETLINK_DROP_MEMBERSHIP 2
-#endif
-#if !(defined(NETLINK_PKTINFO) || (defined(HAVE_DECL_NETLINK_PKTINFO) && HAVE_DECL_NETLINK_PKTINFO))
-# define NETLINK_PKTINFO 3
-#endif
-#if !(defined(NETLINK_BROADCAST_ERROR) || (defined(HAVE_DECL_NETLINK_BROADCAST_ERROR) && HAVE_DECL_NETLINK_BROADCAST_ERROR))
-# define NETLINK_BROADCAST_ERROR 4
-#endif
-#if !(defined(NETLINK_NO_ENOBUFS) || (defined(HAVE_DECL_NETLINK_NO_ENOBUFS) && HAVE_DECL_NETLINK_NO_ENOBUFS))
-# define NETLINK_NO_ENOBUFS 5
-#endif
-#if !(defined(NETLINK_RX_RING) || (defined(HAVE_DECL_NETLINK_RX_RING) && HAVE_DECL_NETLINK_RX_RING))
-# define NETLINK_RX_RING 6
-#endif
-#if !(defined(NETLINK_TX_RING) || (defined(HAVE_DECL_NETLINK_TX_RING) && HAVE_DECL_NETLINK_TX_RING))
-# define NETLINK_TX_RING 7
-#endif
-#if !(defined(NETLINK_LISTEN_ALL_NSID) || (defined(HAVE_DECL_NETLINK_LISTEN_ALL_NSID) && HAVE_DECL_NETLINK_LISTEN_ALL_NSID))
-# define NETLINK_LISTEN_ALL_NSID 8
-#endif
-#if !(defined(NETLINK_LIST_MEMBERSHIPS) || (defined(HAVE_DECL_NETLINK_LIST_MEMBERSHIPS) && HAVE_DECL_NETLINK_LIST_MEMBERSHIPS))
-# define NETLINK_LIST_MEMBERSHIPS 9
-#endif
-#if !(defined(NETLINK_CAP_ACK) || (defined(HAVE_DECL_NETLINK_CAP_ACK) && HAVE_DECL_NETLINK_CAP_ACK))
-# define NETLINK_CAP_ACK 10
-#endif
-#if !(defined(NETLINK_EXT_ACK) || (defined(HAVE_DECL_NETLINK_EXT_ACK) && HAVE_DECL_NETLINK_EXT_ACK))
-# define NETLINK_EXT_ACK 11
-#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat socknetlinkoptions in mpers mode
-
-#else
-
-static
-const struct xlat socknetlinkoptions[] = {
- 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_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/sockoptions.h b/xlat/sockoptions.h
deleted file mode 100644
index 6e99155..0000000
--- a/xlat/sockoptions.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/sockoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat sockoptions in mpers mode
-
-#else
-
-static
-const struct xlat sockoptions[] = {
-#if defined(SO_DEBUG) || (defined(HAVE_DECL_SO_DEBUG) && HAVE_DECL_SO_DEBUG)
- XLAT(SO_DEBUG),
-#endif
-#if defined(SO_REUSEADDR) || (defined(HAVE_DECL_SO_REUSEADDR) && HAVE_DECL_SO_REUSEADDR)
- XLAT(SO_REUSEADDR),
-#endif
-#if defined(SO_TYPE) || (defined(HAVE_DECL_SO_TYPE) && HAVE_DECL_SO_TYPE)
- XLAT(SO_TYPE),
-#endif
-#if defined(SO_ERROR) || (defined(HAVE_DECL_SO_ERROR) && HAVE_DECL_SO_ERROR)
- XLAT(SO_ERROR),
-#endif
-#if defined(SO_DONTROUTE) || (defined(HAVE_DECL_SO_DONTROUTE) && HAVE_DECL_SO_DONTROUTE)
- XLAT(SO_DONTROUTE),
-#endif
-#if defined(SO_BROADCAST) || (defined(HAVE_DECL_SO_BROADCAST) && HAVE_DECL_SO_BROADCAST)
- XLAT(SO_BROADCAST),
-#endif
-#if defined(SO_SNDBUF) || (defined(HAVE_DECL_SO_SNDBUF) && HAVE_DECL_SO_SNDBUF)
- XLAT(SO_SNDBUF),
-#endif
-#if defined(SO_RCVBUF) || (defined(HAVE_DECL_SO_RCVBUF) && HAVE_DECL_SO_RCVBUF)
- XLAT(SO_RCVBUF),
-#endif
-#if defined(SO_SNDBUFFORCE) || (defined(HAVE_DECL_SO_SNDBUFFORCE) && HAVE_DECL_SO_SNDBUFFORCE)
- XLAT(SO_SNDBUFFORCE),
-#endif
-#if defined(SO_RCVBUFFORCE) || (defined(HAVE_DECL_SO_RCVBUFFORCE) && HAVE_DECL_SO_RCVBUFFORCE)
- XLAT(SO_RCVBUFFORCE),
-#endif
-#if defined(SO_KEEPALIVE) || (defined(HAVE_DECL_SO_KEEPALIVE) && HAVE_DECL_SO_KEEPALIVE)
- XLAT(SO_KEEPALIVE),
-#endif
-#if defined(SO_OOBINLINE) || (defined(HAVE_DECL_SO_OOBINLINE) && HAVE_DECL_SO_OOBINLINE)
- XLAT(SO_OOBINLINE),
-#endif
-#if defined(SO_NO_CHECK) || (defined(HAVE_DECL_SO_NO_CHECK) && HAVE_DECL_SO_NO_CHECK)
- XLAT(SO_NO_CHECK),
-#endif
-#if defined(SO_PRIORITY) || (defined(HAVE_DECL_SO_PRIORITY) && HAVE_DECL_SO_PRIORITY)
- XLAT(SO_PRIORITY),
-#endif
-#if defined(SO_LINGER) || (defined(HAVE_DECL_SO_LINGER) && HAVE_DECL_SO_LINGER)
- XLAT(SO_LINGER),
-#endif
-#if defined(SO_BSDCOMPAT) || (defined(HAVE_DECL_SO_BSDCOMPAT) && HAVE_DECL_SO_BSDCOMPAT)
- XLAT(SO_BSDCOMPAT),
-#endif
-#if defined(SO_REUSEPORT) || (defined(HAVE_DECL_SO_REUSEPORT) && HAVE_DECL_SO_REUSEPORT)
- XLAT(SO_REUSEPORT),
-#endif
-#if defined(SO_PASSCRED) || (defined(HAVE_DECL_SO_PASSCRED) && HAVE_DECL_SO_PASSCRED)
- XLAT(SO_PASSCRED),
-#endif
-#if defined(SO_PEERCRED) || (defined(HAVE_DECL_SO_PEERCRED) && HAVE_DECL_SO_PEERCRED)
- XLAT(SO_PEERCRED),
-#endif
-#if defined(SO_RCVLOWAT) || (defined(HAVE_DECL_SO_RCVLOWAT) && HAVE_DECL_SO_RCVLOWAT)
- XLAT(SO_RCVLOWAT),
-#endif
-#if defined(SO_SNDLOWAT) || (defined(HAVE_DECL_SO_SNDLOWAT) && HAVE_DECL_SO_SNDLOWAT)
- XLAT(SO_SNDLOWAT),
-#endif
-#if defined(SO_RCVTIMEO) || (defined(HAVE_DECL_SO_RCVTIMEO) && HAVE_DECL_SO_RCVTIMEO)
- XLAT(SO_RCVTIMEO),
-#endif
-#if defined(SO_SNDTIMEO) || (defined(HAVE_DECL_SO_SNDTIMEO) && HAVE_DECL_SO_SNDTIMEO)
- XLAT(SO_SNDTIMEO),
-#endif
-#if defined(SO_SECURITY_AUTHENTICATION) || (defined(HAVE_DECL_SO_SECURITY_AUTHENTICATION) && HAVE_DECL_SO_SECURITY_AUTHENTICATION)
- XLAT(SO_SECURITY_AUTHENTICATION),
-#endif
-#if defined(SO_SECURITY_ENCRYPTION_TRANSPORT) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT) && HAVE_DECL_SO_SECURITY_ENCRYPTION_TRANSPORT)
- XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT),
-#endif
-#if defined(SO_SECURITY_ENCRYPTION_NETWORK) || (defined(HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK) && HAVE_DECL_SO_SECURITY_ENCRYPTION_NETWORK)
- XLAT(SO_SECURITY_ENCRYPTION_NETWORK),
-#endif
-#if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE)
- XLAT(SO_BINDTODEVICE),
-#endif
-#if defined(SO_ATTACH_FILTER) || (defined(HAVE_DECL_SO_ATTACH_FILTER) && HAVE_DECL_SO_ATTACH_FILTER)
- XLAT(SO_ATTACH_FILTER),
-#endif
-#if defined(SO_GET_FILTER) || (defined(HAVE_DECL_SO_GET_FILTER) && HAVE_DECL_SO_GET_FILTER)
- XLAT(SO_GET_FILTER),
-#endif
-#if defined(SO_DETACH_FILTER) || (defined(HAVE_DECL_SO_DETACH_FILTER) && HAVE_DECL_SO_DETACH_FILTER)
- XLAT(SO_DETACH_FILTER),
-#endif
-#if defined(SO_DETACH_BPF) || (defined(HAVE_DECL_SO_DETACH_BPF) && HAVE_DECL_SO_DETACH_BPF)
- XLAT(SO_DETACH_BPF),
-#endif
-#if defined(SO_PEERNAME) || (defined(HAVE_DECL_SO_PEERNAME) && HAVE_DECL_SO_PEERNAME)
- XLAT(SO_PEERNAME),
-#endif
-#if defined(SO_TIMESTAMP) || (defined(HAVE_DECL_SO_TIMESTAMP) && HAVE_DECL_SO_TIMESTAMP)
- XLAT(SO_TIMESTAMP),
-#endif
-#if defined(SO_ACCEPTCONN) || (defined(HAVE_DECL_SO_ACCEPTCONN) && HAVE_DECL_SO_ACCEPTCONN)
- XLAT(SO_ACCEPTCONN),
-#endif
-#if defined(SO_PEERSEC) || (defined(HAVE_DECL_SO_PEERSEC) && HAVE_DECL_SO_PEERSEC)
- XLAT(SO_PEERSEC),
-#endif
-#if defined(SO_PASSSEC) || (defined(HAVE_DECL_SO_PASSSEC) && HAVE_DECL_SO_PASSSEC)
- XLAT(SO_PASSSEC),
-#endif
-#if defined(SO_TIMESTAMPNS) || (defined(HAVE_DECL_SO_TIMESTAMPNS) && HAVE_DECL_SO_TIMESTAMPNS)
- XLAT(SO_TIMESTAMPNS),
-#endif
-#if defined(SO_MARK) || (defined(HAVE_DECL_SO_MARK) && HAVE_DECL_SO_MARK)
- XLAT(SO_MARK),
-#endif
-#if defined(SO_TIMESTAMPING) || (defined(HAVE_DECL_SO_TIMESTAMPING) && HAVE_DECL_SO_TIMESTAMPING)
- XLAT(SO_TIMESTAMPING),
-#endif
-#if defined(SO_PROTOCOL) || (defined(HAVE_DECL_SO_PROTOCOL) && HAVE_DECL_SO_PROTOCOL)
- XLAT(SO_PROTOCOL),
-#endif
-#if defined(SO_DOMAIN) || (defined(HAVE_DECL_SO_DOMAIN) && HAVE_DECL_SO_DOMAIN)
- XLAT(SO_DOMAIN),
-#endif
-#if defined(SO_RXQ_OVFL) || (defined(HAVE_DECL_SO_RXQ_OVFL) && HAVE_DECL_SO_RXQ_OVFL)
- XLAT(SO_RXQ_OVFL),
-#endif
-#if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS)
- XLAT(SO_WIFI_STATUS),
-#endif
-#if defined(SO_PEEK_OFF) || (defined(HAVE_DECL_SO_PEEK_OFF) && HAVE_DECL_SO_PEEK_OFF)
- XLAT(SO_PEEK_OFF),
-#endif
-#if defined(SO_NOFCS) || (defined(HAVE_DECL_SO_NOFCS) && HAVE_DECL_SO_NOFCS)
- XLAT(SO_NOFCS),
-#endif
-#if defined(SO_LOCK_FILTER) || (defined(HAVE_DECL_SO_LOCK_FILTER) && HAVE_DECL_SO_LOCK_FILTER)
- XLAT(SO_LOCK_FILTER),
-#endif
-#if defined(SO_SELECT_ERR_QUEUE) || (defined(HAVE_DECL_SO_SELECT_ERR_QUEUE) && HAVE_DECL_SO_SELECT_ERR_QUEUE)
- XLAT(SO_SELECT_ERR_QUEUE),
-#endif
-#if defined(SO_BUSY_POLL) || (defined(HAVE_DECL_SO_BUSY_POLL) && HAVE_DECL_SO_BUSY_POLL)
- XLAT(SO_BUSY_POLL),
-#endif
-#if defined(SO_MAX_PACING_RATE) || (defined(HAVE_DECL_SO_MAX_PACING_RATE) && HAVE_DECL_SO_MAX_PACING_RATE)
- XLAT(SO_MAX_PACING_RATE),
-#endif
-#if defined(SO_BPF_EXTENSIONS) || (defined(HAVE_DECL_SO_BPF_EXTENSIONS) && HAVE_DECL_SO_BPF_EXTENSIONS)
- XLAT(SO_BPF_EXTENSIONS),
-#endif
-#if defined(SO_INCOMING_CPU) || (defined(HAVE_DECL_SO_INCOMING_CPU) && HAVE_DECL_SO_INCOMING_CPU)
- XLAT(SO_INCOMING_CPU),
-#endif
-#if defined(SO_ATTACH_BPF) || (defined(HAVE_DECL_SO_ATTACH_BPF) && HAVE_DECL_SO_ATTACH_BPF)
- XLAT(SO_ATTACH_BPF),
-#endif
-#if defined(SO_ATTACH_REUSEPORT_CBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_CBPF)
- XLAT(SO_ATTACH_REUSEPORT_CBPF),
-#endif
-#if defined(SO_ATTACH_REUSEPORT_EBPF) || (defined(HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF) && HAVE_DECL_SO_ATTACH_REUSEPORT_EBPF)
- XLAT(SO_ATTACH_REUSEPORT_EBPF),
-#endif
-#if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
- XLAT(SO_CNX_ADVICE),
-#endif
-#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
- XLAT(SO_MEMINFO),
-#endif
-#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
- XLAT(SO_INCOMING_NAPI_ID),
-#endif
-#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
- XLAT(SO_COOKIE),
-#endif
-#if defined(SO_PEERGROUPS) || (defined(HAVE_DECL_SO_PEERGROUPS) && HAVE_DECL_SO_PEERGROUPS)
- XLAT(SO_PEERGROUPS),
-#endif
-#if defined(SO_ZEROCOPY) || (defined(HAVE_DECL_SO_ZEROCOPY) && HAVE_DECL_SO_ZEROCOPY)
- XLAT(SO_ZEROCOPY),
-#endif
-
-#if defined(SO_ALLRAW) || (defined(HAVE_DECL_SO_ALLRAW) && HAVE_DECL_SO_ALLRAW)
- XLAT(SO_ALLRAW),
-#endif
-#if defined(SO_ICS) || (defined(HAVE_DECL_SO_ICS) && HAVE_DECL_SO_ICS)
- XLAT(SO_ICS),
-#endif
-#if defined(SO_IMASOCKET) || (defined(HAVE_DECL_SO_IMASOCKET) && HAVE_DECL_SO_IMASOCKET)
- XLAT(SO_IMASOCKET),
-#endif
-#if defined(SO_LISTENING) || (defined(HAVE_DECL_SO_LISTENING) && HAVE_DECL_SO_LISTENING)
- XLAT(SO_LISTENING),
-#endif
-#if defined(SO_MGMT) || (defined(HAVE_DECL_SO_MGMT) && HAVE_DECL_SO_MGMT)
- XLAT(SO_MGMT),
-#endif
-#if defined(SO_ORDREL) || (defined(HAVE_DECL_SO_ORDREL) && HAVE_DECL_SO_ORDREL)
- XLAT(SO_ORDREL),
-#endif
-#if defined(SO_PARALLELSVR) || (defined(HAVE_DECL_SO_PARALLELSVR) && HAVE_DECL_SO_PARALLELSVR)
- XLAT(SO_PARALLELSVR),
-#endif
-#if defined(SO_PROTOTYPE) || (defined(HAVE_DECL_SO_PROTOTYPE) && HAVE_DECL_SO_PROTOTYPE)
- XLAT(SO_PROTOTYPE),
-#endif
-#if defined(SO_RDWR) || (defined(HAVE_DECL_SO_RDWR) && HAVE_DECL_SO_RDWR)
- XLAT(SO_RDWR),
-#endif
-#if defined(SO_SEMA) || (defined(HAVE_DECL_SO_SEMA) && HAVE_DECL_SO_SEMA)
- XLAT(SO_SEMA),
-#endif
-#if defined(SO_USELOOPBACK) || (defined(HAVE_DECL_SO_USELOOPBACK) && HAVE_DECL_SO_USELOOPBACK)
- XLAT(SO_USELOOPBACK),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/sockpacketoptions.h b/xlat/sockpacketoptions.h
deleted file mode 100644
index ae4c5f4..0000000
--- a/xlat/sockpacketoptions.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/sockpacketoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat sockpacketoptions in mpers mode
-
-#else
-
-static
-const struct xlat sockpacketoptions[] = {
-#if defined(PACKET_ADD_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_ADD_MEMBERSHIP) && HAVE_DECL_PACKET_ADD_MEMBERSHIP)
- XLAT(PACKET_ADD_MEMBERSHIP),
-#endif
-#if defined(PACKET_DROP_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_DROP_MEMBERSHIP) && HAVE_DECL_PACKET_DROP_MEMBERSHIP)
- XLAT(PACKET_DROP_MEMBERSHIP),
-#endif
-#if defined(PACKET_RECV_OUTPUT) || (defined(HAVE_DECL_PACKET_RECV_OUTPUT) && HAVE_DECL_PACKET_RECV_OUTPUT)
- XLAT(PACKET_RECV_OUTPUT),
-#endif
-#if defined(PACKET_RX_RING) || (defined(HAVE_DECL_PACKET_RX_RING) && HAVE_DECL_PACKET_RX_RING)
- XLAT(PACKET_RX_RING),
-#endif
-#if defined(PACKET_STATISTICS) || (defined(HAVE_DECL_PACKET_STATISTICS) && HAVE_DECL_PACKET_STATISTICS)
- XLAT(PACKET_STATISTICS),
-#endif
-#if defined(PACKET_COPY_THRESH) || (defined(HAVE_DECL_PACKET_COPY_THRESH) && HAVE_DECL_PACKET_COPY_THRESH)
- XLAT(PACKET_COPY_THRESH),
-#endif
-#if defined(PACKET_AUXDATA) || (defined(HAVE_DECL_PACKET_AUXDATA) && HAVE_DECL_PACKET_AUXDATA)
- XLAT(PACKET_AUXDATA),
-#endif
-#if defined(PACKET_ORIGDEV) || (defined(HAVE_DECL_PACKET_ORIGDEV) && HAVE_DECL_PACKET_ORIGDEV)
- XLAT(PACKET_ORIGDEV),
-#endif
-#if defined(PACKET_VERSION) || (defined(HAVE_DECL_PACKET_VERSION) && HAVE_DECL_PACKET_VERSION)
- XLAT(PACKET_VERSION),
-#endif
-#if defined(PACKET_HDRLEN) || (defined(HAVE_DECL_PACKET_HDRLEN) && HAVE_DECL_PACKET_HDRLEN)
- XLAT(PACKET_HDRLEN),
-#endif
-#if defined(PACKET_RESERVE) || (defined(HAVE_DECL_PACKET_RESERVE) && HAVE_DECL_PACKET_RESERVE)
- XLAT(PACKET_RESERVE),
-#endif
-#if defined(PACKET_TX_RING) || (defined(HAVE_DECL_PACKET_TX_RING) && HAVE_DECL_PACKET_TX_RING)
- XLAT(PACKET_TX_RING),
-#endif
-#if defined(PACKET_LOSS) || (defined(HAVE_DECL_PACKET_LOSS) && HAVE_DECL_PACKET_LOSS)
- XLAT(PACKET_LOSS),
-#endif
-#if defined(PACKET_VNET_HDR) || (defined(HAVE_DECL_PACKET_VNET_HDR) && HAVE_DECL_PACKET_VNET_HDR)
- XLAT(PACKET_VNET_HDR),
-#endif
-#if defined(PACKET_TX_TIMESTAMP) || (defined(HAVE_DECL_PACKET_TX_TIMESTAMP) && HAVE_DECL_PACKET_TX_TIMESTAMP)
- XLAT(PACKET_TX_TIMESTAMP),
-#endif
-#if defined(PACKET_TIMESTAMP) || (defined(HAVE_DECL_PACKET_TIMESTAMP) && HAVE_DECL_PACKET_TIMESTAMP)
- XLAT(PACKET_TIMESTAMP),
-#endif
-#if defined(PACKET_FANOUT) || (defined(HAVE_DECL_PACKET_FANOUT) && HAVE_DECL_PACKET_FANOUT)
- XLAT(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),
-#endif
-#if defined(PACKET_QDISC_BYPASS) || (defined(HAVE_DECL_PACKET_QDISC_BYPASS) && HAVE_DECL_PACKET_QDISC_BYPASS)
- XLAT(PACKET_QDISC_BYPASS),
-#endif
-#if defined(PACKET_ROLLOVER_STATS) || (defined(HAVE_DECL_PACKET_ROLLOVER_STATS) && HAVE_DECL_PACKET_ROLLOVER_STATS)
- XLAT(PACKET_ROLLOVER_STATS),
-#endif
-#if defined(PACKET_FANOUT_DATA) || (defined(HAVE_DECL_PACKET_FANOUT_DATA) && HAVE_DECL_PACKET_FANOUT_DATA)
- XLAT(PACKET_FANOUT_DATA),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/sockrawoptions.h b/xlat/sockrawoptions.h
deleted file mode 100644
index 99868c8..0000000
--- a/xlat/sockrawoptions.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/sockrawoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat sockrawoptions in mpers mode
-
-#else
-
-static
-const struct xlat sockrawoptions[] = {
-#if defined(ICMP_FILTER) || (defined(HAVE_DECL_ICMP_FILTER) && HAVE_DECL_ICMP_FILTER)
- XLAT(ICMP_FILTER),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/socksctpoptions.h b/xlat/socksctpoptions.h
deleted file mode 100644
index 4041db3..0000000
--- a/xlat/socksctpoptions.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/socksctpoptions.in; do not edit. */
-#if !(defined(SCTP_RTOINFO) || (defined(HAVE_DECL_SCTP_RTOINFO) && HAVE_DECL_SCTP_RTOINFO))
-# define SCTP_RTOINFO 0
-#endif
-#if !(defined(SCTP_ASSOCINFO) || (defined(HAVE_DECL_SCTP_ASSOCINFO) && HAVE_DECL_SCTP_ASSOCINFO))
-# define SCTP_ASSOCINFO 1
-#endif
-#if !(defined(SCTP_INITMSG) || (defined(HAVE_DECL_SCTP_INITMSG) && HAVE_DECL_SCTP_INITMSG))
-# define SCTP_INITMSG 2
-#endif
-#if !(defined(SCTP_NODELAY) || (defined(HAVE_DECL_SCTP_NODELAY) && HAVE_DECL_SCTP_NODELAY))
-# define SCTP_NODELAY 3
-#endif
-#if !(defined(SCTP_AUTOCLOSE) || (defined(HAVE_DECL_SCTP_AUTOCLOSE) && HAVE_DECL_SCTP_AUTOCLOSE))
-# define SCTP_AUTOCLOSE 4
-#endif
-#if !(defined(SCTP_SET_PEER_PRIMARY_ADDR) || (defined(HAVE_DECL_SCTP_SET_PEER_PRIMARY_ADDR) && HAVE_DECL_SCTP_SET_PEER_PRIMARY_ADDR))
-# define SCTP_SET_PEER_PRIMARY_ADDR 5
-#endif
-#if !(defined(SCTP_PRIMARY_ADDR) || (defined(HAVE_DECL_SCTP_PRIMARY_ADDR) && HAVE_DECL_SCTP_PRIMARY_ADDR))
-# define SCTP_PRIMARY_ADDR 6
-#endif
-#if !(defined(SCTP_ADAPTATION_LAYER) || (defined(HAVE_DECL_SCTP_ADAPTATION_LAYER) && HAVE_DECL_SCTP_ADAPTATION_LAYER))
-# define SCTP_ADAPTATION_LAYER 7
-#endif
-#if !(defined(SCTP_DISABLE_FRAGMENTS) || (defined(HAVE_DECL_SCTP_DISABLE_FRAGMENTS) && HAVE_DECL_SCTP_DISABLE_FRAGMENTS))
-# define SCTP_DISABLE_FRAGMENTS 8
-#endif
-#if !(defined(SCTP_PEER_ADDR_PARAMS) || (defined(HAVE_DECL_SCTP_PEER_ADDR_PARAMS) && HAVE_DECL_SCTP_PEER_ADDR_PARAMS))
-# define SCTP_PEER_ADDR_PARAMS 9
-#endif
-#if !(defined(SCTP_DEFAULT_SEND_PARAM) || (defined(HAVE_DECL_SCTP_DEFAULT_SEND_PARAM) && HAVE_DECL_SCTP_DEFAULT_SEND_PARAM))
-# define SCTP_DEFAULT_SEND_PARAM 10
-#endif
-#if !(defined(SCTP_EVENTS) || (defined(HAVE_DECL_SCTP_EVENTS) && HAVE_DECL_SCTP_EVENTS))
-# define SCTP_EVENTS 11
-#endif
-#if !(defined(SCTP_I_WANT_MAPPED_V4_ADDR) || (defined(HAVE_DECL_SCTP_I_WANT_MAPPED_V4_ADDR) && HAVE_DECL_SCTP_I_WANT_MAPPED_V4_ADDR))
-# define SCTP_I_WANT_MAPPED_V4_ADDR 12
-#endif
-#if !(defined(SCTP_MAXSEG) || (defined(HAVE_DECL_SCTP_MAXSEG) && HAVE_DECL_SCTP_MAXSEG))
-# define SCTP_MAXSEG 13
-#endif
-#if !(defined(SCTP_STATUS) || (defined(HAVE_DECL_SCTP_STATUS) && HAVE_DECL_SCTP_STATUS))
-# define SCTP_STATUS 14
-#endif
-#if !(defined(SCTP_GET_PEER_ADDR_INFO) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDR_INFO) && HAVE_DECL_SCTP_GET_PEER_ADDR_INFO))
-# define SCTP_GET_PEER_ADDR_INFO 15
-#endif
-#if !(defined(SCTP_DELAYED_SACK) || (defined(HAVE_DECL_SCTP_DELAYED_SACK) && HAVE_DECL_SCTP_DELAYED_SACK))
-# define SCTP_DELAYED_SACK 16
-#endif
-#if !(defined(SCTP_CONTEXT) || (defined(HAVE_DECL_SCTP_CONTEXT) && HAVE_DECL_SCTP_CONTEXT))
-# define SCTP_CONTEXT 17
-#endif
-#if !(defined(SCTP_FRAGMENT_INTERLEAVE) || (defined(HAVE_DECL_SCTP_FRAGMENT_INTERLEAVE) && HAVE_DECL_SCTP_FRAGMENT_INTERLEAVE))
-# define SCTP_FRAGMENT_INTERLEAVE 18
-#endif
-#if !(defined(SCTP_PARTIAL_DELIVERY_POINT) || (defined(HAVE_DECL_SCTP_PARTIAL_DELIVERY_POINT) && HAVE_DECL_SCTP_PARTIAL_DELIVERY_POINT))
-# define SCTP_PARTIAL_DELIVERY_POINT 19
-#endif
-#if !(defined(SCTP_MAX_BURST) || (defined(HAVE_DECL_SCTP_MAX_BURST) && HAVE_DECL_SCTP_MAX_BURST))
-# define SCTP_MAX_BURST 20
-#endif
-#if !(defined(SCTP_AUTH_CHUNK) || (defined(HAVE_DECL_SCTP_AUTH_CHUNK) && HAVE_DECL_SCTP_AUTH_CHUNK))
-# define SCTP_AUTH_CHUNK 21
-#endif
-#if !(defined(SCTP_HMAC_IDENT) || (defined(HAVE_DECL_SCTP_HMAC_IDENT) && HAVE_DECL_SCTP_HMAC_IDENT))
-# define SCTP_HMAC_IDENT 22
-#endif
-#if !(defined(SCTP_AUTH_KEY) || (defined(HAVE_DECL_SCTP_AUTH_KEY) && HAVE_DECL_SCTP_AUTH_KEY))
-# define SCTP_AUTH_KEY 23
-#endif
-#if !(defined(SCTP_AUTH_ACTIVE_KEY) || (defined(HAVE_DECL_SCTP_AUTH_ACTIVE_KEY) && HAVE_DECL_SCTP_AUTH_ACTIVE_KEY))
-# define SCTP_AUTH_ACTIVE_KEY 24
-#endif
-#if !(defined(SCTP_AUTH_DELETE_KEY) || (defined(HAVE_DECL_SCTP_AUTH_DELETE_KEY) && HAVE_DECL_SCTP_AUTH_DELETE_KEY))
-# define SCTP_AUTH_DELETE_KEY 25
-#endif
-#if !(defined(SCTP_PEER_AUTH_CHUNKS) || (defined(HAVE_DECL_SCTP_PEER_AUTH_CHUNKS) && HAVE_DECL_SCTP_PEER_AUTH_CHUNKS))
-# define SCTP_PEER_AUTH_CHUNKS 26
-#endif
-#if !(defined(SCTP_LOCAL_AUTH_CHUNKS) || (defined(HAVE_DECL_SCTP_LOCAL_AUTH_CHUNKS) && HAVE_DECL_SCTP_LOCAL_AUTH_CHUNKS))
-# define SCTP_LOCAL_AUTH_CHUNKS 27
-#endif
-#if !(defined(SCTP_GET_ASSOC_NUMBER) || (defined(HAVE_DECL_SCTP_GET_ASSOC_NUMBER) && HAVE_DECL_SCTP_GET_ASSOC_NUMBER))
-# define SCTP_GET_ASSOC_NUMBER 28
-#endif
-#if !(defined(SCTP_GET_ASSOC_ID_LIST) || (defined(HAVE_DECL_SCTP_GET_ASSOC_ID_LIST) && HAVE_DECL_SCTP_GET_ASSOC_ID_LIST))
-# define SCTP_GET_ASSOC_ID_LIST 29
-#endif
-#if !(defined(SCTP_AUTO_ASCONF) || (defined(HAVE_DECL_SCTP_AUTO_ASCONF) && HAVE_DECL_SCTP_AUTO_ASCONF))
-# define SCTP_AUTO_ASCONF 30
-#endif
-#if !(defined(SCTP_PEER_ADDR_THLDS) || (defined(HAVE_DECL_SCTP_PEER_ADDR_THLDS) && HAVE_DECL_SCTP_PEER_ADDR_THLDS))
-# define SCTP_PEER_ADDR_THLDS 31
-#endif
-#if !(defined(SCTP_RECVRCVINFO) || (defined(HAVE_DECL_SCTP_RECVRCVINFO) && HAVE_DECL_SCTP_RECVRCVINFO))
-# define SCTP_RECVRCVINFO 32
-#endif
-#if !(defined(SCTP_RECVNXTINFO) || (defined(HAVE_DECL_SCTP_RECVNXTINFO) && HAVE_DECL_SCTP_RECVNXTINFO))
-# define SCTP_RECVNXTINFO 33
-#endif
-#if !(defined(SCTP_DEFAULT_SNDINFO) || (defined(HAVE_DECL_SCTP_DEFAULT_SNDINFO) && HAVE_DECL_SCTP_DEFAULT_SNDINFO))
-# define SCTP_DEFAULT_SNDINFO 34
-#endif
-#if !(defined(SCTP_SOCKOPT_BINDX_ADD) || (defined(HAVE_DECL_SCTP_SOCKOPT_BINDX_ADD) && HAVE_DECL_SCTP_SOCKOPT_BINDX_ADD))
-# define SCTP_SOCKOPT_BINDX_ADD 100
-#endif
-#if !(defined(SCTP_SOCKOPT_BINDX_REM) || (defined(HAVE_DECL_SCTP_SOCKOPT_BINDX_REM) && HAVE_DECL_SCTP_SOCKOPT_BINDX_REM))
-# define SCTP_SOCKOPT_BINDX_REM 101
-#endif
-#if !(defined(SCTP_SOCKOPT_PEELOFF) || (defined(HAVE_DECL_SCTP_SOCKOPT_PEELOFF) && HAVE_DECL_SCTP_SOCKOPT_PEELOFF))
-# define SCTP_SOCKOPT_PEELOFF 102
-#endif
-#if !(defined(SCTP_GET_PEER_ADDRS_NUM_OLD) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDRS_NUM_OLD) && HAVE_DECL_SCTP_GET_PEER_ADDRS_NUM_OLD))
-# define SCTP_GET_PEER_ADDRS_NUM_OLD 103
-#endif
-#if !(defined(SCTP_GET_PEER_ADDRS_OLD) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDRS_OLD) && HAVE_DECL_SCTP_GET_PEER_ADDRS_OLD))
-# define SCTP_GET_PEER_ADDRS_OLD 104
-#endif
-#if !(defined(SCTP_GET_LOCAL_ADDRS_NUM_OLD) || (defined(HAVE_DECL_SCTP_GET_LOCAL_ADDRS_NUM_OLD) && HAVE_DECL_SCTP_GET_LOCAL_ADDRS_NUM_OLD))
-# define SCTP_GET_LOCAL_ADDRS_NUM_OLD 105
-#endif
-#if !(defined(SCTP_GET_LOCAL_ADDRS_OLD) || (defined(HAVE_DECL_SCTP_GET_LOCAL_ADDRS_OLD) && HAVE_DECL_SCTP_GET_LOCAL_ADDRS_OLD))
-# define SCTP_GET_LOCAL_ADDRS_OLD 106
-#endif
-#if !(defined(SCTP_SOCKOPT_CONNECTX_OLD) || (defined(HAVE_DECL_SCTP_SOCKOPT_CONNECTX_OLD) && HAVE_DECL_SCTP_SOCKOPT_CONNECTX_OLD))
-# define SCTP_SOCKOPT_CONNECTX_OLD 107
-#endif
-#if !(defined(SCTP_GET_PEER_ADDRS) || (defined(HAVE_DECL_SCTP_GET_PEER_ADDRS) && HAVE_DECL_SCTP_GET_PEER_ADDRS))
-# define SCTP_GET_PEER_ADDRS 108
-#endif
-#if !(defined(SCTP_GET_LOCAL_ADDRS) || (defined(HAVE_DECL_SCTP_GET_LOCAL_ADDRS) && HAVE_DECL_SCTP_GET_LOCAL_ADDRS))
-# define SCTP_GET_LOCAL_ADDRS 109
-#endif
-#if !(defined(SCTP_SOCKOPT_CONNECTX) || (defined(HAVE_DECL_SCTP_SOCKOPT_CONNECTX) && HAVE_DECL_SCTP_SOCKOPT_CONNECTX))
-# define SCTP_SOCKOPT_CONNECTX 110
-#endif
-#if !(defined(SCTP_SOCKOPT_CONNECTX3) || (defined(HAVE_DECL_SCTP_SOCKOPT_CONNECTX3) && HAVE_DECL_SCTP_SOCKOPT_CONNECTX3))
-# define SCTP_SOCKOPT_CONNECTX3 111
-#endif
-#if !(defined(SCTP_GET_ASSOC_STATS) || (defined(HAVE_DECL_SCTP_GET_ASSOC_STATS) && HAVE_DECL_SCTP_GET_ASSOC_STATS))
-# define SCTP_GET_ASSOC_STATS 112
-#endif
-#if !(defined(SCTP_PR_SUPPORTED) || (defined(HAVE_DECL_SCTP_PR_SUPPORTED) && HAVE_DECL_SCTP_PR_SUPPORTED))
-# define SCTP_PR_SUPPORTED 113
-#endif
-#if !(defined(SCTP_DEFAULT_PRINFO) || (defined(HAVE_DECL_SCTP_DEFAULT_PRINFO) && HAVE_DECL_SCTP_DEFAULT_PRINFO))
-# define SCTP_DEFAULT_PRINFO 114
-#endif
-#if !(defined(SCTP_PR_ASSOC_STATUS) || (defined(HAVE_DECL_SCTP_PR_ASSOC_STATUS) && HAVE_DECL_SCTP_PR_ASSOC_STATUS))
-# define SCTP_PR_ASSOC_STATUS 115
-#endif
-#if !(defined(SCTP_PR_STREAM_STATUS) || (defined(HAVE_DECL_SCTP_PR_STREAM_STATUS) && HAVE_DECL_SCTP_PR_STREAM_STATUS))
-# define SCTP_PR_STREAM_STATUS 116
-#endif
-#if !(defined(SCTP_RECONFIG_SUPPORTED) || (defined(HAVE_DECL_SCTP_RECONFIG_SUPPORTED) && HAVE_DECL_SCTP_RECONFIG_SUPPORTED))
-# define SCTP_RECONFIG_SUPPORTED 117
-#endif
-#if !(defined(SCTP_ENABLE_STREAM_RESET) || (defined(HAVE_DECL_SCTP_ENABLE_STREAM_RESET) && HAVE_DECL_SCTP_ENABLE_STREAM_RESET))
-# define SCTP_ENABLE_STREAM_RESET 118
-#endif
-#if !(defined(SCTP_RESET_STREAMS) || (defined(HAVE_DECL_SCTP_RESET_STREAMS) && HAVE_DECL_SCTP_RESET_STREAMS))
-# define SCTP_RESET_STREAMS 119
-#endif
-#if !(defined(SCTP_RESET_ASSOC) || (defined(HAVE_DECL_SCTP_RESET_ASSOC) && HAVE_DECL_SCTP_RESET_ASSOC))
-# define SCTP_RESET_ASSOC 120
-#endif
-#if !(defined(SCTP_ADD_STREAMS) || (defined(HAVE_DECL_SCTP_ADD_STREAMS) && HAVE_DECL_SCTP_ADD_STREAMS))
-# define SCTP_ADD_STREAMS 121
-#endif
-#if !(defined(SCTP_SOCKOPT_PEELOFF_FLAGS) || (defined(HAVE_DECL_SCTP_SOCKOPT_PEELOFF_FLAGS) && HAVE_DECL_SCTP_SOCKOPT_PEELOFF_FLAGS))
-# define SCTP_SOCKOPT_PEELOFF_FLAGS 122
-#endif
-#if !(defined(SCTP_STREAM_SCHEDULER) || (defined(HAVE_DECL_SCTP_STREAM_SCHEDULER) && HAVE_DECL_SCTP_STREAM_SCHEDULER))
-# define SCTP_STREAM_SCHEDULER 123
-#endif
-#if !(defined(SCTP_STREAM_SCHEDULER_VALUE) || (defined(HAVE_DECL_SCTP_STREAM_SCHEDULER_VALUE) && HAVE_DECL_SCTP_STREAM_SCHEDULER_VALUE))
-# define SCTP_STREAM_SCHEDULER_VALUE 124
-#endif
-#if !(defined(SCTP_INTERLEAVING_SUPPORTED) || (defined(HAVE_DECL_SCTP_INTERLEAVING_SUPPORTED) && HAVE_DECL_SCTP_INTERLEAVING_SUPPORTED))
-# define SCTP_INTERLEAVING_SUPPORTED 125
-#endif
-
-#ifdef IN_MPERS
-
-# error static const struct xlat socksctpoptions in mpers mode
-
-#else
-
-static
-const struct xlat socksctpoptions[] = {
- XLAT(SCTP_RTOINFO),
- XLAT(SCTP_ASSOCINFO),
- XLAT(SCTP_INITMSG),
- XLAT(SCTP_NODELAY),
- XLAT(SCTP_AUTOCLOSE),
- XLAT(SCTP_SET_PEER_PRIMARY_ADDR),
- XLAT(SCTP_PRIMARY_ADDR),
- XLAT(SCTP_ADAPTATION_LAYER),
- XLAT(SCTP_DISABLE_FRAGMENTS),
- XLAT(SCTP_PEER_ADDR_PARAMS),
- XLAT(SCTP_DEFAULT_SEND_PARAM),
- XLAT(SCTP_EVENTS),
- XLAT(SCTP_I_WANT_MAPPED_V4_ADDR),
- XLAT(SCTP_MAXSEG),
- XLAT(SCTP_STATUS),
- XLAT(SCTP_GET_PEER_ADDR_INFO),
- XLAT(SCTP_DELAYED_SACK),
- XLAT(SCTP_CONTEXT),
- XLAT(SCTP_FRAGMENT_INTERLEAVE),
- XLAT(SCTP_PARTIAL_DELIVERY_POINT),
- XLAT(SCTP_MAX_BURST),
- XLAT(SCTP_AUTH_CHUNK),
- XLAT(SCTP_HMAC_IDENT),
- XLAT(SCTP_AUTH_KEY),
- XLAT(SCTP_AUTH_ACTIVE_KEY),
- XLAT(SCTP_AUTH_DELETE_KEY),
- XLAT(SCTP_PEER_AUTH_CHUNKS),
- XLAT(SCTP_LOCAL_AUTH_CHUNKS),
- XLAT(SCTP_GET_ASSOC_NUMBER),
- XLAT(SCTP_GET_ASSOC_ID_LIST),
- XLAT(SCTP_AUTO_ASCONF),
- XLAT(SCTP_PEER_ADDR_THLDS),
- XLAT(SCTP_RECVRCVINFO),
- XLAT(SCTP_RECVNXTINFO),
- XLAT(SCTP_DEFAULT_SNDINFO),
-
- XLAT(SCTP_SOCKOPT_BINDX_ADD),
- XLAT(SCTP_SOCKOPT_BINDX_REM),
- XLAT(SCTP_SOCKOPT_PEELOFF),
- XLAT(SCTP_GET_PEER_ADDRS_NUM_OLD),
- XLAT(SCTP_GET_PEER_ADDRS_OLD),
- XLAT(SCTP_GET_LOCAL_ADDRS_NUM_OLD),
- XLAT(SCTP_GET_LOCAL_ADDRS_OLD),
- XLAT(SCTP_SOCKOPT_CONNECTX_OLD),
- XLAT(SCTP_GET_PEER_ADDRS),
- XLAT(SCTP_GET_LOCAL_ADDRS),
- XLAT(SCTP_SOCKOPT_CONNECTX),
- XLAT(SCTP_SOCKOPT_CONNECTX3),
- XLAT(SCTP_GET_ASSOC_STATS),
- XLAT(SCTP_PR_SUPPORTED),
- XLAT(SCTP_DEFAULT_PRINFO),
- XLAT(SCTP_PR_ASSOC_STATUS),
- XLAT(SCTP_PR_STREAM_STATUS),
- XLAT(SCTP_RECONFIG_SUPPORTED),
- XLAT(SCTP_ENABLE_STREAM_RESET),
- XLAT(SCTP_RESET_STREAMS),
- XLAT(SCTP_RESET_ASSOC),
- XLAT(SCTP_ADD_STREAMS),
- XLAT(SCTP_SOCKOPT_PEELOFF_FLAGS),
- XLAT(SCTP_STREAM_SCHEDULER),
- XLAT(SCTP_STREAM_SCHEDULER_VALUE),
- XLAT(SCTP_INTERLEAVING_SUPPORTED),
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/socktcpoptions.h b/xlat/socktcpoptions.h
deleted file mode 100644
index 55d6fd0..0000000
--- a/xlat/socktcpoptions.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Generated by ./xlat/gen.sh from ./xlat/socktcpoptions.in; do not edit. */
-
-#ifdef IN_MPERS
-
-# error static const struct xlat socktcpoptions in mpers mode
-
-#else
-
-static
-const struct xlat socktcpoptions[] = {
-#if defined(TCP_NODELAY) || (defined(HAVE_DECL_TCP_NODELAY) && HAVE_DECL_TCP_NODELAY)
- XLAT(TCP_NODELAY),
-#endif
-#if defined(TCP_MAXSEG) || (defined(HAVE_DECL_TCP_MAXSEG) && HAVE_DECL_TCP_MAXSEG)
- XLAT(TCP_MAXSEG),
-#endif
-#if defined(TCP_CORK) || (defined(HAVE_DECL_TCP_CORK) && HAVE_DECL_TCP_CORK)
- XLAT(TCP_CORK),
-#endif
-#if defined(TCP_KEEPIDLE) || (defined(HAVE_DECL_TCP_KEEPIDLE) && HAVE_DECL_TCP_KEEPIDLE)
- XLAT(TCP_KEEPIDLE),
-#endif
-#if defined(TCP_KEEPINTVL) || (defined(HAVE_DECL_TCP_KEEPINTVL) && HAVE_DECL_TCP_KEEPINTVL)
- XLAT(TCP_KEEPINTVL),
-#endif
-#if defined(TCP_KEEPCNT) || (defined(HAVE_DECL_TCP_KEEPCNT) && HAVE_DECL_TCP_KEEPCNT)
- XLAT(TCP_KEEPCNT),
-#endif
-#if defined(TCP_SYNCNT) || (defined(HAVE_DECL_TCP_SYNCNT) && HAVE_DECL_TCP_SYNCNT)
- XLAT(TCP_SYNCNT),
-#endif
-#if defined(TCP_LINGER2) || (defined(HAVE_DECL_TCP_LINGER2) && HAVE_DECL_TCP_LINGER2)
- XLAT(TCP_LINGER2),
-#endif
-#if defined(TCP_DEFER_ACCEPT) || (defined(HAVE_DECL_TCP_DEFER_ACCEPT) && HAVE_DECL_TCP_DEFER_ACCEPT)
- XLAT(TCP_DEFER_ACCEPT),
-#endif
-#if defined(TCP_WINDOW_CLAMP) || (defined(HAVE_DECL_TCP_WINDOW_CLAMP) && HAVE_DECL_TCP_WINDOW_CLAMP)
- XLAT(TCP_WINDOW_CLAMP),
-#endif
-#if defined(TCP_INFO) || (defined(HAVE_DECL_TCP_INFO) && HAVE_DECL_TCP_INFO)
- XLAT(TCP_INFO),
-#endif
-#if defined(TCP_QUICKACK) || (defined(HAVE_DECL_TCP_QUICKACK) && HAVE_DECL_TCP_QUICKACK)
- XLAT(TCP_QUICKACK),
-#endif
-#if defined(TCP_CONGESTION) || (defined(HAVE_DECL_TCP_CONGESTION) && HAVE_DECL_TCP_CONGESTION)
- XLAT(TCP_CONGESTION),
-#endif
-#if defined(TCP_MD5SIG) || (defined(HAVE_DECL_TCP_MD5SIG) && HAVE_DECL_TCP_MD5SIG)
- XLAT(TCP_MD5SIG),
-#endif
-#if defined(TCP_COOKIE_TRANSACTIONS) || (defined(HAVE_DECL_TCP_COOKIE_TRANSACTIONS) && HAVE_DECL_TCP_COOKIE_TRANSACTIONS)
- XLAT(TCP_COOKIE_TRANSACTIONS),
-#endif
-#if defined(TCP_THIN_LINEAR_TIMEOUTS) || (defined(HAVE_DECL_TCP_THIN_LINEAR_TIMEOUTS) && HAVE_DECL_TCP_THIN_LINEAR_TIMEOUTS)
- XLAT(TCP_THIN_LINEAR_TIMEOUTS),
-#endif
-#if defined(TCP_THIN_DUPACK) || (defined(HAVE_DECL_TCP_THIN_DUPACK) && HAVE_DECL_TCP_THIN_DUPACK)
- XLAT(TCP_THIN_DUPACK),
-#endif
-#if defined(TCP_USER_TIMEOUT) || (defined(HAVE_DECL_TCP_USER_TIMEOUT) && HAVE_DECL_TCP_USER_TIMEOUT)
- XLAT(TCP_USER_TIMEOUT),
-#endif
-#if defined(TCP_REPAIR) || (defined(HAVE_DECL_TCP_REPAIR) && HAVE_DECL_TCP_REPAIR)
- XLAT(TCP_REPAIR),
-#endif
-#if defined(TCP_REPAIR_QUEUE) || (defined(HAVE_DECL_TCP_REPAIR_QUEUE) && HAVE_DECL_TCP_REPAIR_QUEUE)
- XLAT(TCP_REPAIR_QUEUE),
-#endif
-#if defined(TCP_QUEUE_SEQ) || (defined(HAVE_DECL_TCP_QUEUE_SEQ) && HAVE_DECL_TCP_QUEUE_SEQ)
- XLAT(TCP_QUEUE_SEQ),
-#endif
-#if defined(TCP_REPAIR_OPTIONS) || (defined(HAVE_DECL_TCP_REPAIR_OPTIONS) && HAVE_DECL_TCP_REPAIR_OPTIONS)
- XLAT(TCP_REPAIR_OPTIONS),
-#endif
-#if defined(TCP_FASTOPEN) || (defined(HAVE_DECL_TCP_FASTOPEN) && HAVE_DECL_TCP_FASTOPEN)
- XLAT(TCP_FASTOPEN),
-#endif
-#if defined(TCP_TIMESTAMP) || (defined(HAVE_DECL_TCP_TIMESTAMP) && HAVE_DECL_TCP_TIMESTAMP)
- XLAT(TCP_TIMESTAMP),
-#endif
-#if defined(TCP_NOTSENT_LOWAT) || (defined(HAVE_DECL_TCP_NOTSENT_LOWAT) && HAVE_DECL_TCP_NOTSENT_LOWAT)
- XLAT(TCP_NOTSENT_LOWAT),
-#endif
-#if defined(TCP_CC_INFO) || (defined(HAVE_DECL_TCP_CC_INFO) && HAVE_DECL_TCP_CC_INFO)
- XLAT(TCP_CC_INFO),
-#endif
-#if defined(TCP_SAVE_SYN) || (defined(HAVE_DECL_TCP_SAVE_SYN) && HAVE_DECL_TCP_SAVE_SYN)
- XLAT(TCP_SAVE_SYN),
-#endif
-#if defined(TCP_SAVED_SYN) || (defined(HAVE_DECL_TCP_SAVED_SYN) && HAVE_DECL_TCP_SAVED_SYN)
- XLAT(TCP_SAVED_SYN),
-#endif
-#if defined(TCP_REPAIR_WINDOW) || (defined(HAVE_DECL_TCP_REPAIR_WINDOW) && HAVE_DECL_TCP_REPAIR_WINDOW)
- XLAT(TCP_REPAIR_WINDOW),
-#endif
-#if defined(TCP_FASTOPEN_CONNECT) || (defined(HAVE_DECL_TCP_FASTOPEN_CONNECT) && HAVE_DECL_TCP_FASTOPEN_CONNECT)
- XLAT(TCP_FASTOPEN_CONNECT),
-#endif
-#if defined(TCP_ULP) || (defined(HAVE_DECL_TCP_ULP) && HAVE_DECL_TCP_ULP)
- XLAT(TCP_ULP),
-#endif
-#if defined(TCP_MD5SIG_EXT) || (defined(HAVE_DECL_TCP_MD5SIG_EXT) && HAVE_DECL_TCP_MD5SIG_EXT)
- XLAT(TCP_MD5SIG_EXT),
-#endif
-#if defined(TCP_FASTOPEN_KEY) || (defined(HAVE_DECL_TCP_FASTOPEN_KEY) && HAVE_DECL_TCP_FASTOPEN_KEY)
- XLAT(TCP_FASTOPEN_KEY),
-#endif
-#if defined(TCP_FASTOPEN_NO_COOKIE) || (defined(HAVE_DECL_TCP_FASTOPEN_NO_COOKIE) && HAVE_DECL_TCP_FASTOPEN_NO_COOKIE)
- XLAT(TCP_FASTOPEN_NO_COOKIE),
-#endif
- XLAT_END
-};
-
-#endif /* !IN_MPERS */
diff --git a/xlat/socktypes.h b/xlat/socktypes.h
index 8ca50dc..208c172 100644
--- a/xlat/socktypes.h
+++ b/xlat/socktypes.h
@@ -1,6 +1,12 @@
/* Generated by ./xlat/gen.sh from ./xlat/socktypes.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat socktypes[] = {
#if defined(SOCK_STREAM) || (defined(HAVE_DECL_SOCK_STREAM) && HAVE_DECL_SOCK_STREAM)
@@ -27,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sparc_kern_features.h b/xlat/sparc_kern_features.h
index fbd4929..0cc647c 100644
--- a/xlat/sparc_kern_features.h
+++ b/xlat/sparc_kern_features.h
@@ -1,13 +1,23 @@
/* Generated by ./xlat/gen.sh from ./xlat/sparc_kern_features.in; do not edit. */
-#if !(defined(KERN_FEATURE_MIXED_MODE_STACK) || (defined(HAVE_DECL_KERN_FEATURE_MIXED_MODE_STACK) && HAVE_DECL_KERN_FEATURE_MIXED_MODE_STACK))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(KERN_FEATURE_MIXED_MODE_STACK) || (defined(HAVE_DECL_KERN_FEATURE_MIXED_MODE_STACK) && HAVE_DECL_KERN_FEATURE_MIXED_MODE_STACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((KERN_FEATURE_MIXED_MODE_STACK) == (1), "KERN_FEATURE_MIXED_MODE_STACK != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define KERN_FEATURE_MIXED_MODE_STACK 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat sparc_kern_features in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat sparc_kern_features in mpers mode
+
+# else
static
const struct xlat sparc_kern_features[] = {
@@ -15,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/splice_flags.h b/xlat/splice_flags.h
index 5d30583..e011833 100644
--- a/xlat/splice_flags.h
+++ b/xlat/splice_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/splice_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat splice_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat splice_flags in mpers mode
+
+# else
static
const struct xlat splice_flags[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sram_alloc_flags.h b/xlat/sram_alloc_flags.h
index 009324f..0c9a9c0 100644
--- a/xlat/sram_alloc_flags.h
+++ b/xlat/sram_alloc_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sram_alloc_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sram_alloc_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sram_alloc_flags in mpers mode
+
+# else
static
const struct xlat sram_alloc_flags[] = {
@@ -26,4 +32,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/statfs_flags.h b/xlat/statfs_flags.h
index 149f57f..caf6063 100644
--- a/xlat/statfs_flags.h
+++ b/xlat/statfs_flags.h
@@ -1,40 +1,86 @@
/* Generated by ./xlat/gen.sh from ./xlat/statfs_flags.in; do not edit. */
-#if !(defined(ST_VALID) || (defined(HAVE_DECL_ST_VALID) && HAVE_DECL_ST_VALID))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(ST_VALID) || (defined(HAVE_DECL_ST_VALID) && HAVE_DECL_ST_VALID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_VALID) == (0x0020), "ST_VALID != 0x0020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_VALID 0x0020
#endif
-#if !(defined(ST_RDONLY) || (defined(HAVE_DECL_ST_RDONLY) && HAVE_DECL_ST_RDONLY))
+#if defined(ST_RDONLY) || (defined(HAVE_DECL_ST_RDONLY) && HAVE_DECL_ST_RDONLY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_RDONLY) == (0x0001), "ST_RDONLY != 0x0001");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_RDONLY 0x0001
#endif
-#if !(defined(ST_NOSUID) || (defined(HAVE_DECL_ST_NOSUID) && HAVE_DECL_ST_NOSUID))
+#if defined(ST_NOSUID) || (defined(HAVE_DECL_ST_NOSUID) && HAVE_DECL_ST_NOSUID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_NOSUID) == (0x0002), "ST_NOSUID != 0x0002");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_NOSUID 0x0002
#endif
-#if !(defined(ST_NODEV) || (defined(HAVE_DECL_ST_NODEV) && HAVE_DECL_ST_NODEV))
+#if defined(ST_NODEV) || (defined(HAVE_DECL_ST_NODEV) && HAVE_DECL_ST_NODEV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_NODEV) == (0x0004), "ST_NODEV != 0x0004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_NODEV 0x0004
#endif
-#if !(defined(ST_NOEXEC) || (defined(HAVE_DECL_ST_NOEXEC) && HAVE_DECL_ST_NOEXEC))
+#if defined(ST_NOEXEC) || (defined(HAVE_DECL_ST_NOEXEC) && HAVE_DECL_ST_NOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_NOEXEC) == (0x0008), "ST_NOEXEC != 0x0008");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_NOEXEC 0x0008
#endif
-#if !(defined(ST_SYNCHRONOUS) || (defined(HAVE_DECL_ST_SYNCHRONOUS) && HAVE_DECL_ST_SYNCHRONOUS))
+#if defined(ST_SYNCHRONOUS) || (defined(HAVE_DECL_ST_SYNCHRONOUS) && HAVE_DECL_ST_SYNCHRONOUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_SYNCHRONOUS) == (0x0010), "ST_SYNCHRONOUS != 0x0010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_SYNCHRONOUS 0x0010
#endif
-#if !(defined(ST_MANDLOCK) || (defined(HAVE_DECL_ST_MANDLOCK) && HAVE_DECL_ST_MANDLOCK))
+#if defined(ST_MANDLOCK) || (defined(HAVE_DECL_ST_MANDLOCK) && HAVE_DECL_ST_MANDLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_MANDLOCK) == (0x0040), "ST_MANDLOCK != 0x0040");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_MANDLOCK 0x0040
#endif
-#if !(defined(ST_NOATIME) || (defined(HAVE_DECL_ST_NOATIME) && HAVE_DECL_ST_NOATIME))
+#if defined(ST_NOATIME) || (defined(HAVE_DECL_ST_NOATIME) && HAVE_DECL_ST_NOATIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_NOATIME) == (0x0400), "ST_NOATIME != 0x0400");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_NOATIME 0x0400
#endif
-#if !(defined(ST_NODIRATIME) || (defined(HAVE_DECL_ST_NODIRATIME) && HAVE_DECL_ST_NODIRATIME))
+#if defined(ST_NODIRATIME) || (defined(HAVE_DECL_ST_NODIRATIME) && HAVE_DECL_ST_NODIRATIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_NODIRATIME) == (0x0800), "ST_NODIRATIME != 0x0800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_NODIRATIME 0x0800
#endif
-#if !(defined(ST_RELATIME) || (defined(HAVE_DECL_ST_RELATIME) && HAVE_DECL_ST_RELATIME))
+#if defined(ST_RELATIME) || (defined(HAVE_DECL_ST_RELATIME) && HAVE_DECL_ST_RELATIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((ST_RELATIME) == (0x1000), "ST_RELATIME != 0x1000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define ST_RELATIME 0x1000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat statfs_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat statfs_flags in mpers mode
+
+# else
static
const struct xlat statfs_flags[] = {
@@ -51,4 +97,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/statx_attrs.h b/xlat/statx_attrs.h
index 20370af..849ec0e 100644
--- a/xlat/statx_attrs.h
+++ b/xlat/statx_attrs.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/statx_attrs.in; do not edit. */
-#if !(defined(STATX_ATTR_COMPRESSED) || (defined(HAVE_DECL_STATX_ATTR_COMPRESSED) && HAVE_DECL_STATX_ATTR_COMPRESSED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(STATX_ATTR_COMPRESSED) || (defined(HAVE_DECL_STATX_ATTR_COMPRESSED) && HAVE_DECL_STATX_ATTR_COMPRESSED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ATTR_COMPRESSED) == (0x00000004), "STATX_ATTR_COMPRESSED != 0x00000004");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ATTR_COMPRESSED 0x00000004
#endif
-#if !(defined(STATX_ATTR_IMMUTABLE) || (defined(HAVE_DECL_STATX_ATTR_IMMUTABLE) && HAVE_DECL_STATX_ATTR_IMMUTABLE))
+#if defined(STATX_ATTR_IMMUTABLE) || (defined(HAVE_DECL_STATX_ATTR_IMMUTABLE) && HAVE_DECL_STATX_ATTR_IMMUTABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ATTR_IMMUTABLE) == (0x00000010), "STATX_ATTR_IMMUTABLE != 0x00000010");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ATTR_IMMUTABLE 0x00000010
#endif
-#if !(defined(STATX_ATTR_APPEND) || (defined(HAVE_DECL_STATX_ATTR_APPEND) && HAVE_DECL_STATX_ATTR_APPEND))
+#if defined(STATX_ATTR_APPEND) || (defined(HAVE_DECL_STATX_ATTR_APPEND) && HAVE_DECL_STATX_ATTR_APPEND)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ATTR_APPEND) == (0x00000020), "STATX_ATTR_APPEND != 0x00000020");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ATTR_APPEND 0x00000020
#endif
-#if !(defined(STATX_ATTR_NODUMP) || (defined(HAVE_DECL_STATX_ATTR_NODUMP) && HAVE_DECL_STATX_ATTR_NODUMP))
+#if defined(STATX_ATTR_NODUMP) || (defined(HAVE_DECL_STATX_ATTR_NODUMP) && HAVE_DECL_STATX_ATTR_NODUMP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ATTR_NODUMP) == (0x00000040), "STATX_ATTR_NODUMP != 0x00000040");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ATTR_NODUMP 0x00000040
#endif
-#if !(defined(STATX_ATTR_ENCRYPTED) || (defined(HAVE_DECL_STATX_ATTR_ENCRYPTED) && HAVE_DECL_STATX_ATTR_ENCRYPTED))
+#if defined(STATX_ATTR_ENCRYPTED) || (defined(HAVE_DECL_STATX_ATTR_ENCRYPTED) && HAVE_DECL_STATX_ATTR_ENCRYPTED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ATTR_ENCRYPTED) == (0x00000800), "STATX_ATTR_ENCRYPTED != 0x00000800");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ATTR_ENCRYPTED 0x00000800
#endif
-#if !(defined(STATX_ATTR_AUTOMOUNT) || (defined(HAVE_DECL_STATX_ATTR_AUTOMOUNT) && HAVE_DECL_STATX_ATTR_AUTOMOUNT))
+#if defined(STATX_ATTR_AUTOMOUNT) || (defined(HAVE_DECL_STATX_ATTR_AUTOMOUNT) && HAVE_DECL_STATX_ATTR_AUTOMOUNT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ATTR_AUTOMOUNT) == (0x00001000), "STATX_ATTR_AUTOMOUNT != 0x00001000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ATTR_AUTOMOUNT 0x00001000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat statx_attrs in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat statx_attrs in mpers mode
+
+# else
static
const struct xlat statx_attrs[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/statx_masks.h b/xlat/statx_masks.h
index 9e0f543..f94ee8a 100644
--- a/xlat/statx_masks.h
+++ b/xlat/statx_masks.h
@@ -1,52 +1,114 @@
/* Generated by ./xlat/gen.sh from ./xlat/statx_masks.in; do not edit. */
-#if !(defined(STATX_ALL) || (defined(HAVE_DECL_STATX_ALL) && HAVE_DECL_STATX_ALL))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(STATX_ALL) || (defined(HAVE_DECL_STATX_ALL) && HAVE_DECL_STATX_ALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ALL) == (0x00000fffU), "STATX_ALL != 0x00000fffU");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ALL 0x00000fffU
#endif
-#if !(defined(STATX_BASIC_STATS) || (defined(HAVE_DECL_STATX_BASIC_STATS) && HAVE_DECL_STATX_BASIC_STATS))
+#if defined(STATX_BASIC_STATS) || (defined(HAVE_DECL_STATX_BASIC_STATS) && HAVE_DECL_STATX_BASIC_STATS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_BASIC_STATS) == (0x000007ffU), "STATX_BASIC_STATS != 0x000007ffU");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_BASIC_STATS 0x000007ffU
#endif
-#if !(defined(STATX_TYPE) || (defined(HAVE_DECL_STATX_TYPE) && HAVE_DECL_STATX_TYPE))
+#if defined(STATX_TYPE) || (defined(HAVE_DECL_STATX_TYPE) && HAVE_DECL_STATX_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_TYPE) == (0x00000001U), "STATX_TYPE != 0x00000001U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_TYPE 0x00000001U
#endif
-#if !(defined(STATX_MODE) || (defined(HAVE_DECL_STATX_MODE) && HAVE_DECL_STATX_MODE))
+#if defined(STATX_MODE) || (defined(HAVE_DECL_STATX_MODE) && HAVE_DECL_STATX_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_MODE) == (0x00000002U), "STATX_MODE != 0x00000002U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_MODE 0x00000002U
#endif
-#if !(defined(STATX_NLINK) || (defined(HAVE_DECL_STATX_NLINK) && HAVE_DECL_STATX_NLINK))
+#if defined(STATX_NLINK) || (defined(HAVE_DECL_STATX_NLINK) && HAVE_DECL_STATX_NLINK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_NLINK) == (0x00000004U), "STATX_NLINK != 0x00000004U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_NLINK 0x00000004U
#endif
-#if !(defined(STATX_UID) || (defined(HAVE_DECL_STATX_UID) && HAVE_DECL_STATX_UID))
+#if defined(STATX_UID) || (defined(HAVE_DECL_STATX_UID) && HAVE_DECL_STATX_UID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_UID) == (0x00000008U), "STATX_UID != 0x00000008U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_UID 0x00000008U
#endif
-#if !(defined(STATX_GID) || (defined(HAVE_DECL_STATX_GID) && HAVE_DECL_STATX_GID))
+#if defined(STATX_GID) || (defined(HAVE_DECL_STATX_GID) && HAVE_DECL_STATX_GID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_GID) == (0x00000010U), "STATX_GID != 0x00000010U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_GID 0x00000010U
#endif
-#if !(defined(STATX_ATIME) || (defined(HAVE_DECL_STATX_ATIME) && HAVE_DECL_STATX_ATIME))
+#if defined(STATX_ATIME) || (defined(HAVE_DECL_STATX_ATIME) && HAVE_DECL_STATX_ATIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_ATIME) == (0x00000020U), "STATX_ATIME != 0x00000020U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_ATIME 0x00000020U
#endif
-#if !(defined(STATX_MTIME) || (defined(HAVE_DECL_STATX_MTIME) && HAVE_DECL_STATX_MTIME))
+#if defined(STATX_MTIME) || (defined(HAVE_DECL_STATX_MTIME) && HAVE_DECL_STATX_MTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_MTIME) == (0x00000040U), "STATX_MTIME != 0x00000040U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_MTIME 0x00000040U
#endif
-#if !(defined(STATX_CTIME) || (defined(HAVE_DECL_STATX_CTIME) && HAVE_DECL_STATX_CTIME))
+#if defined(STATX_CTIME) || (defined(HAVE_DECL_STATX_CTIME) && HAVE_DECL_STATX_CTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_CTIME) == (0x00000080U), "STATX_CTIME != 0x00000080U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_CTIME 0x00000080U
#endif
-#if !(defined(STATX_INO) || (defined(HAVE_DECL_STATX_INO) && HAVE_DECL_STATX_INO))
+#if defined(STATX_INO) || (defined(HAVE_DECL_STATX_INO) && HAVE_DECL_STATX_INO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_INO) == (0x00000100U), "STATX_INO != 0x00000100U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_INO 0x00000100U
#endif
-#if !(defined(STATX_SIZE) || (defined(HAVE_DECL_STATX_SIZE) && HAVE_DECL_STATX_SIZE))
+#if defined(STATX_SIZE) || (defined(HAVE_DECL_STATX_SIZE) && HAVE_DECL_STATX_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_SIZE) == (0x00000200U), "STATX_SIZE != 0x00000200U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_SIZE 0x00000200U
#endif
-#if !(defined(STATX_BLOCKS) || (defined(HAVE_DECL_STATX_BLOCKS) && HAVE_DECL_STATX_BLOCKS))
+#if defined(STATX_BLOCKS) || (defined(HAVE_DECL_STATX_BLOCKS) && HAVE_DECL_STATX_BLOCKS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_BLOCKS) == (0x00000400U), "STATX_BLOCKS != 0x00000400U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_BLOCKS 0x00000400U
#endif
-#if !(defined(STATX_BTIME) || (defined(HAVE_DECL_STATX_BTIME) && HAVE_DECL_STATX_BTIME))
+#if defined(STATX_BTIME) || (defined(HAVE_DECL_STATX_BTIME) && HAVE_DECL_STATX_BTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((STATX_BTIME) == (0x00000800U), "STATX_BTIME != 0x00000800U");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define STATX_BTIME 0x00000800U
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat statx_masks in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat statx_masks in mpers mode
+
+# else
static
const struct xlat statx_masks[] = {
@@ -68,4 +130,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/swap_flags.h b/xlat/swap_flags.h
index 9baec44..d03aa13 100644
--- a/xlat/swap_flags.h
+++ b/xlat/swap_flags.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/swap_flags.in; do not edit. */
-#if !(defined(SWAP_FLAG_PREFER) || (defined(HAVE_DECL_SWAP_FLAG_PREFER) && HAVE_DECL_SWAP_FLAG_PREFER))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SWAP_FLAG_PREFER) || (defined(HAVE_DECL_SWAP_FLAG_PREFER) && HAVE_DECL_SWAP_FLAG_PREFER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SWAP_FLAG_PREFER) == (0x8000), "SWAP_FLAG_PREFER != 0x8000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SWAP_FLAG_PREFER 0x8000
#endif
-#if !(defined(SWAP_FLAG_DISCARD) || (defined(HAVE_DECL_SWAP_FLAG_DISCARD) && HAVE_DECL_SWAP_FLAG_DISCARD))
+#if defined(SWAP_FLAG_DISCARD) || (defined(HAVE_DECL_SWAP_FLAG_DISCARD) && HAVE_DECL_SWAP_FLAG_DISCARD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SWAP_FLAG_DISCARD) == (0x10000), "SWAP_FLAG_DISCARD != 0x10000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SWAP_FLAG_DISCARD 0x10000
#endif
-#if !(defined(SWAP_FLAG_DISCARD_ONCE) || (defined(HAVE_DECL_SWAP_FLAG_DISCARD_ONCE) && HAVE_DECL_SWAP_FLAG_DISCARD_ONCE))
+#if defined(SWAP_FLAG_DISCARD_ONCE) || (defined(HAVE_DECL_SWAP_FLAG_DISCARD_ONCE) && HAVE_DECL_SWAP_FLAG_DISCARD_ONCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SWAP_FLAG_DISCARD_ONCE) == (0x20000), "SWAP_FLAG_DISCARD_ONCE != 0x20000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SWAP_FLAG_DISCARD_ONCE 0x20000
#endif
-#if !(defined(SWAP_FLAG_DISCARD_PAGES) || (defined(HAVE_DECL_SWAP_FLAG_DISCARD_PAGES) && HAVE_DECL_SWAP_FLAG_DISCARD_PAGES))
+#if defined(SWAP_FLAG_DISCARD_PAGES) || (defined(HAVE_DECL_SWAP_FLAG_DISCARD_PAGES) && HAVE_DECL_SWAP_FLAG_DISCARD_PAGES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SWAP_FLAG_DISCARD_PAGES) == (0x40000), "SWAP_FLAG_DISCARD_PAGES != 0x40000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SWAP_FLAG_DISCARD_PAGES 0x40000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat swap_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat swap_flags in mpers mode
+
+# else
static
const struct xlat swap_flags[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sync_file_range_flags.h b/xlat/sync_file_range_flags.h
index 08d9ac1..2d7de90 100644
--- a/xlat/sync_file_range_flags.h
+++ b/xlat/sync_file_range_flags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/sync_file_range_flags.in; do not edit. */
-#if !(defined(SYNC_FILE_RANGE_WAIT_BEFORE) || (defined(HAVE_DECL_SYNC_FILE_RANGE_WAIT_BEFORE) && HAVE_DECL_SYNC_FILE_RANGE_WAIT_BEFORE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(SYNC_FILE_RANGE_WAIT_BEFORE) || (defined(HAVE_DECL_SYNC_FILE_RANGE_WAIT_BEFORE) && HAVE_DECL_SYNC_FILE_RANGE_WAIT_BEFORE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYNC_FILE_RANGE_WAIT_BEFORE) == (1), "SYNC_FILE_RANGE_WAIT_BEFORE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYNC_FILE_RANGE_WAIT_BEFORE 1
#endif
-#if !(defined(SYNC_FILE_RANGE_WRITE) || (defined(HAVE_DECL_SYNC_FILE_RANGE_WRITE) && HAVE_DECL_SYNC_FILE_RANGE_WRITE))
+#if defined(SYNC_FILE_RANGE_WRITE) || (defined(HAVE_DECL_SYNC_FILE_RANGE_WRITE) && HAVE_DECL_SYNC_FILE_RANGE_WRITE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYNC_FILE_RANGE_WRITE) == (2), "SYNC_FILE_RANGE_WRITE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYNC_FILE_RANGE_WRITE 2
#endif
-#if !(defined(SYNC_FILE_RANGE_WAIT_AFTER) || (defined(HAVE_DECL_SYNC_FILE_RANGE_WAIT_AFTER) && HAVE_DECL_SYNC_FILE_RANGE_WAIT_AFTER))
+#if defined(SYNC_FILE_RANGE_WAIT_AFTER) || (defined(HAVE_DECL_SYNC_FILE_RANGE_WAIT_AFTER) && HAVE_DECL_SYNC_FILE_RANGE_WAIT_AFTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((SYNC_FILE_RANGE_WAIT_AFTER) == (4), "SYNC_FILE_RANGE_WAIT_AFTER != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define SYNC_FILE_RANGE_WAIT_AFTER 4
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat sync_file_range_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat sync_file_range_flags in mpers mode
+
+# else
static
const struct xlat sync_file_range_flags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_kern.h b/xlat/sysctl_kern.h
index b7276da..438dd95 100644
--- a/xlat/sysctl_kern.h
+++ b/xlat/sysctl_kern.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_kern.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_kern in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_kern in mpers mode
+
+# else
static
const struct xlat sysctl_kern[] = {
@@ -111,4 +117,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net.h b/xlat/sysctl_net.h
index 864c548..1e2b0c7 100644
--- a/xlat/sysctl_net.h
+++ b/xlat/sysctl_net.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net in mpers mode
+
+# else
static
const struct xlat sysctl_net[] = {
@@ -40,4 +46,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net_core.h b/xlat/sysctl_net_core.h
index d3db06c..2cce965 100644
--- a/xlat/sysctl_net_core.h
+++ b/xlat/sysctl_net_core.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_core.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net_core in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net_core in mpers mode
+
+# else
static
const struct xlat sysctl_net_core[] = {
@@ -43,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net_ipv4.h b/xlat/sysctl_net_ipv4.h
index cd0a005..fdf0204 100644
--- a/xlat/sysctl_net_ipv4.h
+++ b/xlat/sysctl_net_ipv4.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv4.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net_ipv4 in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net_ipv4 in mpers mode
+
+# else
static
const struct xlat sysctl_net_ipv4[] = {
@@ -149,4 +155,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net_ipv4_conf.h b/xlat/sysctl_net_ipv4_conf.h
index c9cd4dc..892df33 100644
--- a/xlat/sysctl_net_ipv4_conf.h
+++ b/xlat/sysctl_net_ipv4_conf.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv4_conf.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net_ipv4_conf in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net_ipv4_conf in mpers mode
+
+# else
static
const struct xlat sysctl_net_ipv4_conf[] = {
@@ -45,4 +51,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net_ipv4_route.h b/xlat/sysctl_net_ipv4_route.h
index 91983e4..4cb40ad 100644
--- a/xlat/sysctl_net_ipv4_route.h
+++ b/xlat/sysctl_net_ipv4_route.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv4_route.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net_ipv4_route in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net_ipv4_route in mpers mode
+
+# else
static
const struct xlat sysctl_net_ipv4_route[] = {
@@ -32,4 +38,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net_ipv6.h b/xlat/sysctl_net_ipv6.h
index c92a16c..06b6c45 100644
--- a/xlat/sysctl_net_ipv6.h
+++ b/xlat/sysctl_net_ipv6.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv6.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net_ipv6 in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net_ipv6 in mpers mode
+
+# else
static
const struct xlat sysctl_net_ipv6[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net_ipv6_route.h b/xlat/sysctl_net_ipv6_route.h
index cc976ff..7bcf4bc 100644
--- a/xlat/sysctl_net_ipv6_route.h
+++ b/xlat/sysctl_net_ipv6_route.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv6_route.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net_ipv6_route in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net_ipv6_route in mpers mode
+
+# else
static
const struct xlat sysctl_net_ipv6_route[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_net_unix.h b/xlat/sysctl_net_unix.h
index c940dab..ea0043c 100644
--- a/xlat/sysctl_net_unix.h
+++ b/xlat/sysctl_net_unix.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_net_unix.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_net_unix in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_net_unix in mpers mode
+
+# else
static
const struct xlat sysctl_net_unix[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_root.h b/xlat/sysctl_root.h
index 0d4b039..ddb7a2d 100644
--- a/xlat/sysctl_root.h
+++ b/xlat/sysctl_root.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_root.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_root in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_root in mpers mode
+
+# else
static
const struct xlat sysctl_root[] = {
@@ -38,4 +44,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysctl_vm.h b/xlat/sysctl_vm.h
index 36896a2..bb86bd8 100644
--- a/xlat/sysctl_vm.h
+++ b/xlat/sysctl_vm.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysctl_vm.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysctl_vm in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysctl_vm in mpers mode
+
+# else
static
const struct xlat sysctl_vm[] = {
@@ -45,4 +51,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/syslog_action_type.h b/xlat/syslog_action_type.h
index b4f543f..6d1c7fd 100644
--- a/xlat/syslog_action_type.h
+++ b/xlat/syslog_action_type.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/syslog_action_type.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat syslog_action_type in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat syslog_action_type in mpers mode
+
+# else
static
const struct xlat syslog_action_type[] = {
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/sysmips_operations.h b/xlat/sysmips_operations.h
index 107caa2..6e3b00c 100644
--- a/xlat/sysmips_operations.h
+++ b/xlat/sysmips_operations.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/sysmips_operations.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat sysmips_operations in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat sysmips_operations in mpers mode
+
+# else
static
const struct xlat sysmips_operations[] = {
@@ -26,4 +32,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/tcflsh_options.h b/xlat/tcflsh_options.h
index 5d67bb7..9730263 100644
--- a/xlat/tcflsh_options.h
+++ b/xlat/tcflsh_options.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/tcflsh_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat tcflsh_options in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat tcflsh_options in mpers mode
+
+# else
static
const struct xlat tcflsh_options[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/tcp_state_flags.h b/xlat/tcp_state_flags.h
index 34c8140..3f0cb8c 100644
--- a/xlat/tcp_state_flags.h
+++ b/xlat/tcp_state_flags.h
@@ -1,6 +1,12 @@
/* Generated by ./xlat/gen.sh from ./xlat/tcp_state_flags.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat tcp_state_flags[] = {
@@ -43,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/tcp_states.h b/xlat/tcp_states.h
index 3559240..199b7f5 100644
--- a/xlat/tcp_states.h
+++ b/xlat/tcp_states.h
@@ -1,42 +1,96 @@
/* Generated by ./xlat/gen.sh from ./xlat/tcp_states.in; do not edit. */
-#if !(defined(TCP_ESTABLISHED) || (defined(HAVE_DECL_TCP_ESTABLISHED) && HAVE_DECL_TCP_ESTABLISHED))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TCP_ESTABLISHED) || (defined(HAVE_DECL_TCP_ESTABLISHED) && HAVE_DECL_TCP_ESTABLISHED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_ESTABLISHED) == (1), "TCP_ESTABLISHED != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_ESTABLISHED 1
#endif
-#if !(defined(TCP_SYN_SENT) || (defined(HAVE_DECL_TCP_SYN_SENT) && HAVE_DECL_TCP_SYN_SENT))
+#if defined(TCP_SYN_SENT) || (defined(HAVE_DECL_TCP_SYN_SENT) && HAVE_DECL_TCP_SYN_SENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_SYN_SENT) == (2), "TCP_SYN_SENT != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_SYN_SENT 2
#endif
-#if !(defined(TCP_SYN_RECV) || (defined(HAVE_DECL_TCP_SYN_RECV) && HAVE_DECL_TCP_SYN_RECV))
+#if defined(TCP_SYN_RECV) || (defined(HAVE_DECL_TCP_SYN_RECV) && HAVE_DECL_TCP_SYN_RECV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_SYN_RECV) == (3), "TCP_SYN_RECV != 3");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_SYN_RECV 3
#endif
-#if !(defined(TCP_FIN_WAIT1) || (defined(HAVE_DECL_TCP_FIN_WAIT1) && HAVE_DECL_TCP_FIN_WAIT1))
+#if defined(TCP_FIN_WAIT1) || (defined(HAVE_DECL_TCP_FIN_WAIT1) && HAVE_DECL_TCP_FIN_WAIT1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_FIN_WAIT1) == (4), "TCP_FIN_WAIT1 != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_FIN_WAIT1 4
#endif
-#if !(defined(TCP_FIN_WAIT2) || (defined(HAVE_DECL_TCP_FIN_WAIT2) && HAVE_DECL_TCP_FIN_WAIT2))
+#if defined(TCP_FIN_WAIT2) || (defined(HAVE_DECL_TCP_FIN_WAIT2) && HAVE_DECL_TCP_FIN_WAIT2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_FIN_WAIT2) == (5), "TCP_FIN_WAIT2 != 5");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_FIN_WAIT2 5
#endif
-#if !(defined(TCP_TIME_WAIT) || (defined(HAVE_DECL_TCP_TIME_WAIT) && HAVE_DECL_TCP_TIME_WAIT))
+#if defined(TCP_TIME_WAIT) || (defined(HAVE_DECL_TCP_TIME_WAIT) && HAVE_DECL_TCP_TIME_WAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_TIME_WAIT) == (6), "TCP_TIME_WAIT != 6");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_TIME_WAIT 6
#endif
-#if !(defined(TCP_CLOSE) || (defined(HAVE_DECL_TCP_CLOSE) && HAVE_DECL_TCP_CLOSE))
+#if defined(TCP_CLOSE) || (defined(HAVE_DECL_TCP_CLOSE) && HAVE_DECL_TCP_CLOSE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_CLOSE) == (7), "TCP_CLOSE != 7");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_CLOSE 7
#endif
-#if !(defined(TCP_CLOSE_WAIT) || (defined(HAVE_DECL_TCP_CLOSE_WAIT) && HAVE_DECL_TCP_CLOSE_WAIT))
+#if defined(TCP_CLOSE_WAIT) || (defined(HAVE_DECL_TCP_CLOSE_WAIT) && HAVE_DECL_TCP_CLOSE_WAIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_CLOSE_WAIT) == (8), "TCP_CLOSE_WAIT != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_CLOSE_WAIT 8
#endif
-#if !(defined(TCP_LAST_ACK) || (defined(HAVE_DECL_TCP_LAST_ACK) && HAVE_DECL_TCP_LAST_ACK))
+#if defined(TCP_LAST_ACK) || (defined(HAVE_DECL_TCP_LAST_ACK) && HAVE_DECL_TCP_LAST_ACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_LAST_ACK) == (9), "TCP_LAST_ACK != 9");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_LAST_ACK 9
#endif
-#if !(defined(TCP_LISTEN) || (defined(HAVE_DECL_TCP_LISTEN) && HAVE_DECL_TCP_LISTEN))
+#if defined(TCP_LISTEN) || (defined(HAVE_DECL_TCP_LISTEN) && HAVE_DECL_TCP_LISTEN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_LISTEN) == (10), "TCP_LISTEN != 10");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_LISTEN 10
#endif
-#if !(defined(TCP_CLOSING) || (defined(HAVE_DECL_TCP_CLOSING) && HAVE_DECL_TCP_CLOSING))
+#if defined(TCP_CLOSING) || (defined(HAVE_DECL_TCP_CLOSING) && HAVE_DECL_TCP_CLOSING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_CLOSING) == (11), "TCP_CLOSING != 11");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_CLOSING 11
#endif
-#if !(defined(TCP_NEW_SYN_RECV) || (defined(HAVE_DECL_TCP_NEW_SYN_RECV) && HAVE_DECL_TCP_NEW_SYN_RECV))
+#if defined(TCP_NEW_SYN_RECV) || (defined(HAVE_DECL_TCP_NEW_SYN_RECV) && HAVE_DECL_TCP_NEW_SYN_RECV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TCP_NEW_SYN_RECV) == (12), "TCP_NEW_SYN_RECV != 12");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TCP_NEW_SYN_RECV 12
#endif
-#ifndef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat tcp_states[] = {
XLAT(TCP_ESTABLISHED),
@@ -54,4 +108,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/tcxonc_options.h b/xlat/tcxonc_options.h
index 83aae83..c259441 100644
--- a/xlat/tcxonc_options.h
+++ b/xlat/tcxonc_options.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/tcxonc_options.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat tcxonc_options in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat tcxonc_options in mpers mode
+
+# else
static
const struct xlat tcxonc_options[] = {
@@ -23,4 +29,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/timerfdflags.h b/xlat/timerfdflags.h
index 571f7ec..7d0f72b 100644
--- a/xlat/timerfdflags.h
+++ b/xlat/timerfdflags.h
@@ -1,24 +1,46 @@
/* Generated by ./xlat/gen.sh from ./xlat/timerfdflags.in; do not edit. */
-#if !(defined(TFD_TIMER_ABSTIME) || (defined(HAVE_DECL_TFD_TIMER_ABSTIME) && HAVE_DECL_TFD_TIMER_ABSTIME))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(TFD_TIMER_ABSTIME) || (defined(HAVE_DECL_TFD_TIMER_ABSTIME) && HAVE_DECL_TFD_TIMER_ABSTIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TFD_TIMER_ABSTIME) == ((1 << 0)), "TFD_TIMER_ABSTIME != (1 << 0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TFD_TIMER_ABSTIME (1 << 0)
#endif
-#if !(defined(TFD_TIMER_CANCEL_ON_SET) || (defined(HAVE_DECL_TFD_TIMER_CANCEL_ON_SET) && HAVE_DECL_TFD_TIMER_CANCEL_ON_SET))
+#if defined(TFD_TIMER_CANCEL_ON_SET) || (defined(HAVE_DECL_TFD_TIMER_CANCEL_ON_SET) && HAVE_DECL_TFD_TIMER_CANCEL_ON_SET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TFD_TIMER_CANCEL_ON_SET) == ((1 << 1)), "TFD_TIMER_CANCEL_ON_SET != (1 << 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TFD_TIMER_CANCEL_ON_SET (1 << 1)
#endif
#if defined TFD_CLOEXEC || defined O_CLOEXEC
-#if !(defined(TFD_CLOEXEC) || (defined(HAVE_DECL_TFD_CLOEXEC) && HAVE_DECL_TFD_CLOEXEC))
+#if defined(TFD_CLOEXEC) || (defined(HAVE_DECL_TFD_CLOEXEC) && HAVE_DECL_TFD_CLOEXEC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TFD_CLOEXEC) == (O_CLOEXEC), "TFD_CLOEXEC != O_CLOEXEC");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TFD_CLOEXEC O_CLOEXEC
#endif
#endif
-#if !(defined(TFD_NONBLOCK) || (defined(HAVE_DECL_TFD_NONBLOCK) && HAVE_DECL_TFD_NONBLOCK))
+#if defined(TFD_NONBLOCK) || (defined(HAVE_DECL_TFD_NONBLOCK) && HAVE_DECL_TFD_NONBLOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((TFD_NONBLOCK) == (O_NONBLOCK), "TFD_NONBLOCK != O_NONBLOCK");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define TFD_NONBLOCK O_NONBLOCK
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat timerfdflags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat timerfdflags in mpers mode
+
+# else
static
const struct xlat timerfdflags[] = {
@@ -33,4 +55,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/tun_device_types.h b/xlat/tun_device_types.h
new file mode 100644
index 0000000..a1bf5a1
--- /dev/null
+++ b/xlat/tun_device_types.h
@@ -0,0 +1,38 @@
+/* Generated by ./xlat/gen.sh from ./xlat/tun_device_types.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(IFF_TUN) || (defined(HAVE_DECL_IFF_TUN) && HAVE_DECL_IFF_TUN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_TUN) == (1), "IFF_TUN != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_TUN 1
+#endif
+#if defined(IFF_TAP) || (defined(HAVE_DECL_IFF_TAP) && HAVE_DECL_IFF_TAP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IFF_TAP) == (2), "IFF_TAP != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IFF_TAP 2
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat tun_device_types in mpers mode
+
+# else
+
+static
+const struct xlat tun_device_types[] = {
+ [IFF_TUN] = XLAT(IFF_TUN),
+ [IFF_TAP] = XLAT(IFF_TAP),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/tun_device_types.in b/xlat/tun_device_types.in
new file mode 100644
index 0000000..81af0bc
--- /dev/null
+++ b/xlat/tun_device_types.in
@@ -0,0 +1,3 @@
+#value_indexed
+IFF_TUN 1
+IFF_TAP 2
diff --git a/xlat/ubi_volume_props.h b/xlat/ubi_volume_props.h
index cfae600..fb7ca99 100644
--- a/xlat/ubi_volume_props.h
+++ b/xlat/ubi_volume_props.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ubi_volume_props.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ubi_volume_props in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ubi_volume_props in mpers mode
+
+# else
static
const struct xlat ubi_volume_props[] = {
@@ -12,4 +18,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/ubi_volume_types.h b/xlat/ubi_volume_types.h
index 0facbf2..77e8e6a 100644
--- a/xlat/ubi_volume_types.h
+++ b/xlat/ubi_volume_types.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/ubi_volume_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat ubi_volume_types in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat ubi_volume_types in mpers mode
+
+# else
static
const struct xlat ubi_volume_types[] = {
@@ -13,4 +19,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/uffd_api_features.h b/xlat/uffd_api_features.h
index 2ea3a9e..66ea2d2 100644
--- a/xlat/uffd_api_features.h
+++ b/xlat/uffd_api_features.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/uffd_api_features.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat uffd_api_features in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat uffd_api_features in mpers mode
+
+# else
static
const struct xlat uffd_api_features[] = {
@@ -38,4 +44,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/uffd_api_flags.h b/xlat/uffd_api_flags.h
index 4963ec4..7d0f929 100644
--- a/xlat/uffd_api_flags.h
+++ b/xlat/uffd_api_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/uffd_api_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat uffd_api_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat uffd_api_flags in mpers mode
+
+# else
static
const struct xlat uffd_api_flags[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/uffd_copy_flags.h b/xlat/uffd_copy_flags.h
index 669c1bb..1d45e6c 100644
--- a/xlat/uffd_copy_flags.h
+++ b/xlat/uffd_copy_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/uffd_copy_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat uffd_copy_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat uffd_copy_flags in mpers mode
+
+# else
static
const struct xlat uffd_copy_flags[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/uffd_flags.h b/xlat/uffd_flags.h
index 5fd260e..7180961 100644
--- a/xlat/uffd_flags.h
+++ b/xlat/uffd_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/uffd_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat uffd_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat uffd_flags in mpers mode
+
+# else
static
const struct xlat uffd_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/uffd_register_ioctl_flags.h b/xlat/uffd_register_ioctl_flags.h
index 0c90f3c..affbb07 100644
--- a/xlat/uffd_register_ioctl_flags.h
+++ b/xlat/uffd_register_ioctl_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/uffd_register_ioctl_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat uffd_register_ioctl_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat uffd_register_ioctl_flags in mpers mode
+
+# else
static
const struct xlat uffd_register_ioctl_flags[] = {
@@ -20,4 +26,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/uffd_register_mode_flags.h b/xlat/uffd_register_mode_flags.h
index bfcae87..272e4db 100644
--- a/xlat/uffd_register_mode_flags.h
+++ b/xlat/uffd_register_mode_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/uffd_register_mode_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat uffd_register_mode_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat uffd_register_mode_flags in mpers mode
+
+# else
static
const struct xlat uffd_register_mode_flags[] = {
@@ -17,4 +23,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/uffd_zeropage_flags.h b/xlat/uffd_zeropage_flags.h
index 8367ff6..6d21fb0 100644
--- a/xlat/uffd_zeropage_flags.h
+++ b/xlat/uffd_zeropage_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/uffd_zeropage_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat uffd_zeropage_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat uffd_zeropage_flags in mpers mode
+
+# else
static
const struct xlat uffd_zeropage_flags[] = {
@@ -14,4 +20,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/umount_flags.h b/xlat/umount_flags.h
index 3219782..c81e661 100644
--- a/xlat/umount_flags.h
+++ b/xlat/umount_flags.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/umount_flags.in; do not edit. */
-#if !(defined(MNT_FORCE) || (defined(HAVE_DECL_MNT_FORCE) && HAVE_DECL_MNT_FORCE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(MNT_FORCE) || (defined(HAVE_DECL_MNT_FORCE) && HAVE_DECL_MNT_FORCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MNT_FORCE) == (1), "MNT_FORCE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MNT_FORCE 1
#endif
-#if !(defined(MNT_DETACH) || (defined(HAVE_DECL_MNT_DETACH) && HAVE_DECL_MNT_DETACH))
+#if defined(MNT_DETACH) || (defined(HAVE_DECL_MNT_DETACH) && HAVE_DECL_MNT_DETACH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MNT_DETACH) == (2), "MNT_DETACH != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MNT_DETACH 2
#endif
-#if !(defined(MNT_EXPIRE) || (defined(HAVE_DECL_MNT_EXPIRE) && HAVE_DECL_MNT_EXPIRE))
+#if defined(MNT_EXPIRE) || (defined(HAVE_DECL_MNT_EXPIRE) && HAVE_DECL_MNT_EXPIRE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((MNT_EXPIRE) == (4), "MNT_EXPIRE != 4");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define MNT_EXPIRE 4
#endif
-#if !(defined(UMOUNT_NOFOLLOW) || (defined(HAVE_DECL_UMOUNT_NOFOLLOW) && HAVE_DECL_UMOUNT_NOFOLLOW))
+#if defined(UMOUNT_NOFOLLOW) || (defined(HAVE_DECL_UMOUNT_NOFOLLOW) && HAVE_DECL_UMOUNT_NOFOLLOW)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((UMOUNT_NOFOLLOW) == (8), "UMOUNT_NOFOLLOW != 8");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define UMOUNT_NOFOLLOW 8
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat umount_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat umount_flags in mpers mode
+
+# else
static
const struct xlat umount_flags[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/unix_diag_attrs.h b/xlat/unix_diag_attrs.h
index bc18d1d..3f626e0 100644
--- a/xlat/unix_diag_attrs.h
+++ b/xlat/unix_diag_attrs.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/unix_diag_attrs.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat unix_diag_attrs in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat unix_diag_attrs in mpers mode
+
+# else
static
const struct xlat unix_diag_attrs[] = {
@@ -18,4 +24,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/unix_diag_show.h b/xlat/unix_diag_show.h
index d3bb976..eee89fc 100644
--- a/xlat/unix_diag_show.h
+++ b/xlat/unix_diag_show.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/unix_diag_show.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat unix_diag_show in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat unix_diag_show in mpers mode
+
+# else
static
const struct xlat unix_diag_show[] = {
@@ -29,4 +35,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/unshare_flags.h b/xlat/unshare_flags.h
index 5c43ebc..ccbfb75 100644
--- a/xlat/unshare_flags.h
+++ b/xlat/unshare_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/unshare_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat unshare_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat unshare_flags in mpers mode
+
+# else
static
const struct xlat unshare_flags[] = {
@@ -50,4 +56,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/usagewho.h b/xlat/usagewho.h
index 8d46fc0..4b5ace4 100644
--- a/xlat/usagewho.h
+++ b/xlat/usagewho.h
@@ -1,22 +1,44 @@
/* Generated by ./xlat/gen.sh from ./xlat/usagewho.in; do not edit. */
-#if !(defined(RUSAGE_SELF) || (defined(HAVE_DECL_RUSAGE_SELF) && HAVE_DECL_RUSAGE_SELF))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(RUSAGE_SELF) || (defined(HAVE_DECL_RUSAGE_SELF) && HAVE_DECL_RUSAGE_SELF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RUSAGE_SELF) == (0), "RUSAGE_SELF != 0");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RUSAGE_SELF 0
#endif
-#if !(defined(RUSAGE_CHILDREN) || (defined(HAVE_DECL_RUSAGE_CHILDREN) && HAVE_DECL_RUSAGE_CHILDREN))
+#if defined(RUSAGE_CHILDREN) || (defined(HAVE_DECL_RUSAGE_CHILDREN) && HAVE_DECL_RUSAGE_CHILDREN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RUSAGE_CHILDREN) == ((-1)), "RUSAGE_CHILDREN != (-1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RUSAGE_CHILDREN (-1)
#endif
-#if !(defined(RUSAGE_BOTH) || (defined(HAVE_DECL_RUSAGE_BOTH) && HAVE_DECL_RUSAGE_BOTH))
+#if defined(RUSAGE_BOTH) || (defined(HAVE_DECL_RUSAGE_BOTH) && HAVE_DECL_RUSAGE_BOTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RUSAGE_BOTH) == ((-2)), "RUSAGE_BOTH != (-2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RUSAGE_BOTH (-2)
#endif
-#if !(defined(RUSAGE_THREAD) || (defined(HAVE_DECL_RUSAGE_THREAD) && HAVE_DECL_RUSAGE_THREAD))
+#if defined(RUSAGE_THREAD) || (defined(HAVE_DECL_RUSAGE_THREAD) && HAVE_DECL_RUSAGE_THREAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((RUSAGE_THREAD) == (1), "RUSAGE_THREAD != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define RUSAGE_THREAD 1
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat usagewho in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat usagewho in mpers mode
+
+# else
static
const struct xlat usagewho[] = {
@@ -27,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_buf_flags.h b/xlat/v4l2_buf_flags.h
index 05eb64d..6ae7216 100644
--- a/xlat/v4l2_buf_flags.h
+++ b/xlat/v4l2_buf_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_buf_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_buf_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat v4l2_buf_flags[] = {
#if defined(V4L2_BUF_FLAG_MAPPED) || (defined(HAVE_DECL_V4L2_BUF_FLAG_MAPPED) && HAVE_DECL_V4L2_BUF_FLAG_MAPPED)
XLAT(V4L2_BUF_FLAG_MAPPED),
@@ -70,4 +76,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_buf_types.h b/xlat/v4l2_buf_types.h
index 5b206d9..a685c8c 100644
--- a/xlat/v4l2_buf_types.h
+++ b/xlat/v4l2_buf_types.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_buf_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_buf_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat v4l2_buf_types[] = {
#if defined(V4L2_BUF_TYPE_VIDEO_CAPTURE) || (defined(HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE) && HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE)
XLAT(V4L2_BUF_TYPE_VIDEO_CAPTURE),
@@ -52,4 +58,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_capture_modes.h b/xlat/v4l2_capture_modes.h
index ea21949..74e1a6c 100644
--- a/xlat/v4l2_capture_modes.h
+++ b/xlat/v4l2_capture_modes.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_capture_modes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_capture_modes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_colorspaces.h b/xlat/v4l2_colorspaces.h
index 53d16e6..fad4dcd 100644
--- a/xlat/v4l2_colorspaces.h
+++ b/xlat/v4l2_colorspaces.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_colorspaces.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_colorspaces[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat v4l2_colorspaces[] = {
#if defined(V4L2_COLORSPACE_SMPTE170M) || (defined(HAVE_DECL_V4L2_COLORSPACE_SMPTE170M) && HAVE_DECL_V4L2_COLORSPACE_SMPTE170M)
XLAT(V4L2_COLORSPACE_SMPTE170M),
@@ -49,4 +55,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_control_classes.h b/xlat/v4l2_control_classes.h
index 9ceb9c4..c1bb21d 100644
--- a/xlat/v4l2_control_classes.h
+++ b/xlat/v4l2_control_classes.h
@@ -1,43 +1,121 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_control_classes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(V4L2_CTRL_CLASS_USER) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_USER) && HAVE_DECL_V4L2_CTRL_CLASS_USER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_USER) == (0x00980000), "V4L2_CTRL_CLASS_USER != 0x00980000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_USER 0x00980000
+#endif
+#if defined(V4L2_CTRL_CLASS_MPEG) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_MPEG) && HAVE_DECL_V4L2_CTRL_CLASS_MPEG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_MPEG) == (0x00990000), "V4L2_CTRL_CLASS_MPEG != 0x00990000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_MPEG 0x00990000
+#endif
+#if defined(V4L2_CTRL_CLASS_CAMERA) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_CAMERA) && HAVE_DECL_V4L2_CTRL_CLASS_CAMERA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_CAMERA) == (0x009a0000), "V4L2_CTRL_CLASS_CAMERA != 0x009a0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_CAMERA 0x009a0000
+#endif
+#if defined(V4L2_CTRL_CLASS_FM_TX) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FM_TX) && HAVE_DECL_V4L2_CTRL_CLASS_FM_TX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_FM_TX) == (0x009b0000), "V4L2_CTRL_CLASS_FM_TX != 0x009b0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_FM_TX 0x009b0000
+#endif
+#if defined(V4L2_CTRL_CLASS_FLASH) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FLASH) && HAVE_DECL_V4L2_CTRL_CLASS_FLASH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_FLASH) == (0x009c0000), "V4L2_CTRL_CLASS_FLASH != 0x009c0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_FLASH 0x009c0000
+#endif
+#if defined(V4L2_CTRL_CLASS_JPEG) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_JPEG) && HAVE_DECL_V4L2_CTRL_CLASS_JPEG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_JPEG) == (0x009d0000), "V4L2_CTRL_CLASS_JPEG != 0x009d0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_JPEG 0x009d0000
+#endif
+#if defined(V4L2_CTRL_CLASS_IMAGE_SOURCE) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_SOURCE) && HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_SOURCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_IMAGE_SOURCE) == (0x009e0000), "V4L2_CTRL_CLASS_IMAGE_SOURCE != 0x009e0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000
+#endif
+#if defined(V4L2_CTRL_CLASS_IMAGE_PROC) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_PROC) && HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_PROC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_IMAGE_PROC) == (0x009f0000), "V4L2_CTRL_CLASS_IMAGE_PROC != 0x009f0000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000
+#endif
+#if defined(V4L2_CTRL_CLASS_DV) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_DV) && HAVE_DECL_V4L2_CTRL_CLASS_DV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_DV) == (0x00a00000), "V4L2_CTRL_CLASS_DV != 0x00a00000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_DV 0x00a00000
+#endif
+#if defined(V4L2_CTRL_CLASS_FM_RX) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FM_RX) && HAVE_DECL_V4L2_CTRL_CLASS_FM_RX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_FM_RX) == (0x00a10000), "V4L2_CTRL_CLASS_FM_RX != 0x00a10000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_FM_RX 0x00a10000
+#endif
+#if defined(V4L2_CTRL_CLASS_RF_TUNER) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_RF_TUNER) && HAVE_DECL_V4L2_CTRL_CLASS_RF_TUNER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_RF_TUNER) == (0x00a20000), "V4L2_CTRL_CLASS_RF_TUNER != 0x00a20000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
+#endif
+#if defined(V4L2_CTRL_CLASS_DETECT) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_DETECT) && HAVE_DECL_V4L2_CTRL_CLASS_DETECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CTRL_CLASS_DETECT) == (0x00a30000), "V4L2_CTRL_CLASS_DETECT != 0x00a30000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CTRL_CLASS_DETECT 0x00a30000
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_control_classes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat v4l2_control_classes[] = {
-#if defined(V4L2_CTRL_CLASS_USER) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_USER) && HAVE_DECL_V4L2_CTRL_CLASS_USER)
- XLAT(V4L2_CTRL_CLASS_USER),
-#endif
-#if defined(V4L2_CTRL_CLASS_MPEG) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_MPEG) && HAVE_DECL_V4L2_CTRL_CLASS_MPEG)
- XLAT(V4L2_CTRL_CLASS_MPEG),
-#endif
-#if defined(V4L2_CTRL_CLASS_CAMERA) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_CAMERA) && HAVE_DECL_V4L2_CTRL_CLASS_CAMERA)
- XLAT(V4L2_CTRL_CLASS_CAMERA),
-#endif
-#if defined(V4L2_CTRL_CLASS_FM_TX) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FM_TX) && HAVE_DECL_V4L2_CTRL_CLASS_FM_TX)
- XLAT(V4L2_CTRL_CLASS_FM_TX),
-#endif
-#if defined(V4L2_CTRL_CLASS_FLASH) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FLASH) && HAVE_DECL_V4L2_CTRL_CLASS_FLASH)
- XLAT(V4L2_CTRL_CLASS_FLASH),
-#endif
-#if defined(V4L2_CTRL_CLASS_JPEG) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_JPEG) && HAVE_DECL_V4L2_CTRL_CLASS_JPEG)
- XLAT(V4L2_CTRL_CLASS_JPEG),
-#endif
-#if defined(V4L2_CTRL_CLASS_IMAGE_SOURCE) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_SOURCE) && HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_SOURCE)
- XLAT(V4L2_CTRL_CLASS_IMAGE_SOURCE),
-#endif
-#if defined(V4L2_CTRL_CLASS_IMAGE_PROC) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_PROC) && HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_PROC)
- XLAT(V4L2_CTRL_CLASS_IMAGE_PROC),
-#endif
-#if defined(V4L2_CTRL_CLASS_FM_RX) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FM_RX) && HAVE_DECL_V4L2_CTRL_CLASS_FM_RX)
- XLAT(V4L2_CTRL_CLASS_FM_RX),
-#endif
+
+ XLAT(V4L2_CTRL_CLASS_USER),
+ XLAT(V4L2_CTRL_CLASS_MPEG),
+ XLAT(V4L2_CTRL_CLASS_CAMERA),
+ XLAT(V4L2_CTRL_CLASS_FM_TX),
+ XLAT(V4L2_CTRL_CLASS_FLASH),
+ XLAT(V4L2_CTRL_CLASS_JPEG),
+ XLAT(V4L2_CTRL_CLASS_IMAGE_SOURCE),
+ XLAT(V4L2_CTRL_CLASS_IMAGE_PROC),
+ XLAT(V4L2_CTRL_CLASS_DV),
+ XLAT(V4L2_CTRL_CLASS_FM_RX),
+ XLAT(V4L2_CTRL_CLASS_RF_TUNER),
+ XLAT(V4L2_CTRL_CLASS_DETECT),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_control_classes.in b/xlat/v4l2_control_classes.in
index 5666a06..adbf88e 100644
--- a/xlat/v4l2_control_classes.in
+++ b/xlat/v4l2_control_classes.in
@@ -1,9 +1,13 @@
-V4L2_CTRL_CLASS_USER
-V4L2_CTRL_CLASS_MPEG
-V4L2_CTRL_CLASS_CAMERA
-V4L2_CTRL_CLASS_FM_TX
-V4L2_CTRL_CLASS_FLASH
-V4L2_CTRL_CLASS_JPEG
-V4L2_CTRL_CLASS_IMAGE_SOURCE
-V4L2_CTRL_CLASS_IMAGE_PROC
-V4L2_CTRL_CLASS_FM_RX
+/* 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 */
+V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator controls */
+V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */
+V4L2_CTRL_CLASS_JPEG 0x009d0000 /* JPEG-compression controls */
+V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000 /* Image source controls */
+V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */
+V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */
+V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */
+V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */
+V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */
diff --git a/xlat/v4l2_control_flags.h b/xlat/v4l2_control_flags.h
index f541971..00c6157 100644
--- a/xlat/v4l2_control_flags.h
+++ b/xlat/v4l2_control_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_control_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_control_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -46,4 +52,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_control_id_bases.h b/xlat/v4l2_control_id_bases.h
new file mode 100644
index 0000000..e668d94
--- /dev/null
+++ b/xlat/v4l2_control_id_bases.h
@@ -0,0 +1,168 @@
+/* Generated by ./xlat/gen.sh from ./xlat/v4l2_control_id_bases.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(V4L2_CID_BASE) || (defined(HAVE_DECL_V4L2_CID_BASE) && HAVE_DECL_V4L2_CID_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_BASE) == ((V4L2_CTRL_CLASS_USER | 0x900)), "V4L2_CID_BASE != (V4L2_CTRL_CLASS_USER | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
+#endif
+#if defined(V4L2_CID_USER_MEYE_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_MEYE_BASE) && HAVE_DECL_V4L2_CID_USER_MEYE_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_USER_MEYE_BASE) == ((V4L2_CID_BASE + 0x1000)), "V4L2_CID_USER_MEYE_BASE != (V4L2_CID_BASE + 0x1000)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_USER_MEYE_BASE (V4L2_CID_BASE + 0x1000)
+#endif
+#if defined(V4L2_CID_USER_BTTV_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_BTTV_BASE) && HAVE_DECL_V4L2_CID_USER_BTTV_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_USER_BTTV_BASE) == ((V4L2_CID_BASE + 0x1010)), "V4L2_CID_USER_BTTV_BASE != (V4L2_CID_BASE + 0x1010)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_USER_BTTV_BASE (V4L2_CID_BASE + 0x1010)
+#endif
+#if defined(V4L2_CID_USER_TI_VPE_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_TI_VPE_BASE) && HAVE_DECL_V4L2_CID_USER_TI_VPE_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_USER_TI_VPE_BASE) == ((V4L2_CID_BASE + 0x1050)), "V4L2_CID_USER_TI_VPE_BASE != (V4L2_CID_BASE + 0x1050)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050)
+#endif
+#if defined(V4L2_CID_USER_IMX_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_IMX_BASE) && HAVE_DECL_V4L2_CID_USER_IMX_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x1090)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x1090)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090)
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_BASE) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_BASE) == ((V4L2_CTRL_CLASS_MPEG | 0x1000)), "V4L2_CID_MPEG_CX2341X_BASE != (V4L2_CTRL_CLASS_MPEG | 0x1000)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_BASE) && HAVE_DECL_V4L2_CID_MPEG_MFC51_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_BASE) == ((V4L2_CTRL_CLASS_MPEG | 0x1100)), "V4L2_CID_MPEG_MFC51_BASE != (V4L2_CTRL_CLASS_MPEG | 0x1100)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
+#endif
+#if defined(V4L2_CID_CAMERA_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_CAMERA_CLASS_BASE) && HAVE_DECL_V4L2_CID_CAMERA_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_CAMERA_CLASS_BASE) == ((V4L2_CTRL_CLASS_CAMERA | 0x900)), "V4L2_CID_CAMERA_CLASS_BASE != (V4L2_CTRL_CLASS_CAMERA | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
+#endif
+#if defined(V4L2_CID_FM_TX_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_FM_TX_CLASS_BASE) && HAVE_DECL_V4L2_CID_FM_TX_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FM_TX_CLASS_BASE) == ((V4L2_CTRL_CLASS_FM_TX | 0x900)), "V4L2_CID_FM_TX_CLASS_BASE != (V4L2_CTRL_CLASS_FM_TX | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
+#endif
+#if defined(V4L2_CID_FLASH_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_FLASH_CLASS_BASE) && HAVE_DECL_V4L2_CID_FLASH_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_CLASS_BASE) == ((V4L2_CTRL_CLASS_FLASH | 0x900)), "V4L2_CID_FLASH_CLASS_BASE != (V4L2_CTRL_CLASS_FLASH | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900)
+#endif
+#if defined(V4L2_CID_JPEG_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_JPEG_CLASS_BASE) && HAVE_DECL_V4L2_CID_JPEG_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_JPEG_CLASS_BASE) == ((V4L2_CTRL_CLASS_JPEG | 0x900)), "V4L2_CID_JPEG_CLASS_BASE != (V4L2_CTRL_CLASS_JPEG | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900)
+#endif
+#if defined(V4L2_CID_IMAGE_SOURCE_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_IMAGE_SOURCE_CLASS_BASE) && HAVE_DECL_V4L2_CID_IMAGE_SOURCE_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_IMAGE_SOURCE_CLASS_BASE) == ((V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)), "V4L2_CID_IMAGE_SOURCE_CLASS_BASE != (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
+#endif
+#if defined(V4L2_CID_IMAGE_PROC_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_IMAGE_PROC_CLASS_BASE) && HAVE_DECL_V4L2_CID_IMAGE_PROC_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_IMAGE_PROC_CLASS_BASE) == ((V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)), "V4L2_CID_IMAGE_PROC_CLASS_BASE != (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
+#endif
+#if defined(V4L2_CID_DV_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_DV_CLASS_BASE) && HAVE_DECL_V4L2_CID_DV_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DV_CLASS_BASE) == ((V4L2_CTRL_CLASS_DV | 0x900)), "V4L2_CID_DV_CLASS_BASE != (V4L2_CTRL_CLASS_DV | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
+#endif
+#if defined(V4L2_CID_FM_RX_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_FM_RX_CLASS_BASE) && HAVE_DECL_V4L2_CID_FM_RX_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FM_RX_CLASS_BASE) == ((V4L2_CTRL_CLASS_FM_RX | 0x900)), "V4L2_CID_FM_RX_CLASS_BASE != (V4L2_CTRL_CLASS_FM_RX | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900)
+#endif
+#if defined(V4L2_CID_RF_TUNER_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_CLASS_BASE) && HAVE_DECL_V4L2_CID_RF_TUNER_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_CLASS_BASE) == ((V4L2_CTRL_CLASS_RF_TUNER | 0x900)), "V4L2_CID_RF_TUNER_CLASS_BASE != (V4L2_CTRL_CLASS_RF_TUNER | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900)
+#endif
+#if defined(V4L2_CID_DETECT_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_DETECT_CLASS_BASE) && HAVE_DECL_V4L2_CID_DETECT_CLASS_BASE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DETECT_CLASS_BASE) == ((V4L2_CTRL_CLASS_DETECT | 0x900)), "V4L2_CID_DETECT_CLASS_BASE != (V4L2_CTRL_CLASS_DETECT | 0x900)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DETECT_CLASS_BASE (V4L2_CTRL_CLASS_DETECT | 0x900)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+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[] = {
+ XLAT(V4L2_CID_BASE),
+ XLAT(V4L2_CID_USER_MEYE_BASE),
+ XLAT(V4L2_CID_USER_BTTV_BASE),
+ XLAT(V4L2_CID_USER_TI_VPE_BASE),
+ XLAT(V4L2_CID_USER_IMX_BASE),
+ XLAT(V4L2_CID_MPEG_BASE),
+ XLAT(V4L2_CID_MPEG_CX2341X_BASE),
+ XLAT(V4L2_CID_MPEG_MFC51_BASE),
+ XLAT(V4L2_CID_CAMERA_CLASS_BASE),
+ XLAT(V4L2_CID_FM_TX_CLASS_BASE),
+ XLAT(V4L2_CID_FLASH_CLASS_BASE),
+ XLAT(V4L2_CID_JPEG_CLASS_BASE),
+ XLAT(V4L2_CID_IMAGE_SOURCE_CLASS_BASE),
+ XLAT(V4L2_CID_IMAGE_PROC_CLASS_BASE),
+ XLAT(V4L2_CID_DV_CLASS_BASE),
+ XLAT(V4L2_CID_FM_RX_CLASS_BASE),
+ XLAT(V4L2_CID_RF_TUNER_CLASS_BASE),
+ XLAT(V4L2_CID_DETECT_CLASS_BASE),
+ XLAT_END
+};
+
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_control_id_bases.in b/xlat/v4l2_control_id_bases.in
new file mode 100644
index 0000000..a0359be
--- /dev/null
+++ b/xlat/v4l2_control_id_bases.in
@@ -0,0 +1,18 @@
+V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
+V4L2_CID_USER_MEYE_BASE (V4L2_CID_BASE + 0x1000)
+V4L2_CID_USER_BTTV_BASE (V4L2_CID_BASE + 0x1010)
+V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050)
+V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090)
+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)
+V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
+V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
+V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900)
+V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900)
+V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
+V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
+V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
+V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900)
+V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900)
+V4L2_CID_DETECT_CLASS_BASE (V4L2_CTRL_CLASS_DETECT | 0x900)
diff --git a/xlat/v4l2_control_ids.h b/xlat/v4l2_control_ids.h
index ae371f8..2b73d34 100644
--- a/xlat/v4l2_control_ids.h
+++ b/xlat/v4l2_control_ids.h
@@ -1,243 +1,2704 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_control_ids.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(V4L2_CID_BRIGHTNESS) || (defined(HAVE_DECL_V4L2_CID_BRIGHTNESS) && HAVE_DECL_V4L2_CID_BRIGHTNESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_BRIGHTNESS) == ((V4L2_CID_BASE+0)), "V4L2_CID_BRIGHTNESS != (V4L2_CID_BASE+0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
+#endif
+#if defined(V4L2_CID_CONTRAST) || (defined(HAVE_DECL_V4L2_CID_CONTRAST) && HAVE_DECL_V4L2_CID_CONTRAST)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_CONTRAST) == ((V4L2_CID_BASE+1)), "V4L2_CID_CONTRAST != (V4L2_CID_BASE+1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
+#endif
+#if defined(V4L2_CID_SATURATION) || (defined(HAVE_DECL_V4L2_CID_SATURATION) && HAVE_DECL_V4L2_CID_SATURATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_SATURATION) == ((V4L2_CID_BASE+2)), "V4L2_CID_SATURATION != (V4L2_CID_BASE+2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
+#endif
+#if defined(V4L2_CID_HUE) || (defined(HAVE_DECL_V4L2_CID_HUE) && HAVE_DECL_V4L2_CID_HUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_HUE) == ((V4L2_CID_BASE+3)), "V4L2_CID_HUE != (V4L2_CID_BASE+3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_HUE (V4L2_CID_BASE+3)
+#endif
+#if defined(V4L2_CID_AUDIO_VOLUME) || (defined(HAVE_DECL_V4L2_CID_AUDIO_VOLUME) && HAVE_DECL_V4L2_CID_AUDIO_VOLUME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_VOLUME) == ((V4L2_CID_BASE+5)), "V4L2_CID_AUDIO_VOLUME != (V4L2_CID_BASE+5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
+#endif
+#if defined(V4L2_CID_AUDIO_BALANCE) || (defined(HAVE_DECL_V4L2_CID_AUDIO_BALANCE) && HAVE_DECL_V4L2_CID_AUDIO_BALANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_BALANCE) == ((V4L2_CID_BASE+6)), "V4L2_CID_AUDIO_BALANCE != (V4L2_CID_BASE+6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
+#endif
+#if defined(V4L2_CID_AUDIO_BASS) || (defined(HAVE_DECL_V4L2_CID_AUDIO_BASS) && HAVE_DECL_V4L2_CID_AUDIO_BASS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_BASS) == ((V4L2_CID_BASE+7)), "V4L2_CID_AUDIO_BASS != (V4L2_CID_BASE+7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
+#endif
+#if defined(V4L2_CID_AUDIO_TREBLE) || (defined(HAVE_DECL_V4L2_CID_AUDIO_TREBLE) && HAVE_DECL_V4L2_CID_AUDIO_TREBLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_TREBLE) == ((V4L2_CID_BASE+8)), "V4L2_CID_AUDIO_TREBLE != (V4L2_CID_BASE+8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
+#endif
+#if defined(V4L2_CID_AUDIO_MUTE) || (defined(HAVE_DECL_V4L2_CID_AUDIO_MUTE) && HAVE_DECL_V4L2_CID_AUDIO_MUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_MUTE) == ((V4L2_CID_BASE+9)), "V4L2_CID_AUDIO_MUTE != (V4L2_CID_BASE+9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
+#endif
+#if defined(V4L2_CID_AUDIO_LOUDNESS) || (defined(HAVE_DECL_V4L2_CID_AUDIO_LOUDNESS) && HAVE_DECL_V4L2_CID_AUDIO_LOUDNESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_LOUDNESS) == ((V4L2_CID_BASE+10)), "V4L2_CID_AUDIO_LOUDNESS != (V4L2_CID_BASE+10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
+#endif
+#if defined(V4L2_CID_BLACK_LEVEL) || (defined(HAVE_DECL_V4L2_CID_BLACK_LEVEL) && HAVE_DECL_V4L2_CID_BLACK_LEVEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_BLACK_LEVEL) == ((V4L2_CID_BASE+11)), "V4L2_CID_BLACK_LEVEL != (V4L2_CID_BASE+11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11)
+#endif
+#if defined(V4L2_CID_AUTO_WHITE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_AUTO_WHITE_BALANCE) && HAVE_DECL_V4L2_CID_AUTO_WHITE_BALANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTO_WHITE_BALANCE) == ((V4L2_CID_BASE+12)), "V4L2_CID_AUTO_WHITE_BALANCE != (V4L2_CID_BASE+12)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
+#endif
+#if defined(V4L2_CID_DO_WHITE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_DO_WHITE_BALANCE) && HAVE_DECL_V4L2_CID_DO_WHITE_BALANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DO_WHITE_BALANCE) == ((V4L2_CID_BASE+13)), "V4L2_CID_DO_WHITE_BALANCE != (V4L2_CID_BASE+13)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
+#endif
+#if defined(V4L2_CID_RED_BALANCE) || (defined(HAVE_DECL_V4L2_CID_RED_BALANCE) && HAVE_DECL_V4L2_CID_RED_BALANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RED_BALANCE) == ((V4L2_CID_BASE+14)), "V4L2_CID_RED_BALANCE != (V4L2_CID_BASE+14)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
+#endif
+#if defined(V4L2_CID_BLUE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_BLUE_BALANCE) && HAVE_DECL_V4L2_CID_BLUE_BALANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_BLUE_BALANCE) == ((V4L2_CID_BASE+15)), "V4L2_CID_BLUE_BALANCE != (V4L2_CID_BASE+15)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
+#endif
+#if defined(V4L2_CID_GAMMA) || (defined(HAVE_DECL_V4L2_CID_GAMMA) && HAVE_DECL_V4L2_CID_GAMMA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_GAMMA) == ((V4L2_CID_BASE+16)), "V4L2_CID_GAMMA != (V4L2_CID_BASE+16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_GAMMA (V4L2_CID_BASE+16)
+#endif
+#if defined(V4L2_CID_EXPOSURE) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE) && HAVE_DECL_V4L2_CID_EXPOSURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_EXPOSURE) == ((V4L2_CID_BASE+17)), "V4L2_CID_EXPOSURE != (V4L2_CID_BASE+17)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
+#endif
+#if defined(V4L2_CID_AUTOGAIN) || (defined(HAVE_DECL_V4L2_CID_AUTOGAIN) && HAVE_DECL_V4L2_CID_AUTOGAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTOGAIN) == ((V4L2_CID_BASE+18)), "V4L2_CID_AUTOGAIN != (V4L2_CID_BASE+18)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
+#endif
+#if defined(V4L2_CID_GAIN) || (defined(HAVE_DECL_V4L2_CID_GAIN) && HAVE_DECL_V4L2_CID_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_GAIN) == ((V4L2_CID_BASE+19)), "V4L2_CID_GAIN != (V4L2_CID_BASE+19)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_GAIN (V4L2_CID_BASE+19)
+#endif
+#if defined(V4L2_CID_HFLIP) || (defined(HAVE_DECL_V4L2_CID_HFLIP) && HAVE_DECL_V4L2_CID_HFLIP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_HFLIP) == ((V4L2_CID_BASE+20)), "V4L2_CID_HFLIP != (V4L2_CID_BASE+20)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
+#endif
+#if defined(V4L2_CID_VFLIP) || (defined(HAVE_DECL_V4L2_CID_VFLIP) && HAVE_DECL_V4L2_CID_VFLIP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_VFLIP) == ((V4L2_CID_BASE+21)), "V4L2_CID_VFLIP != (V4L2_CID_BASE+21)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
+#endif
+#if defined(V4L2_CID_HCENTER) || (defined(HAVE_DECL_V4L2_CID_HCENTER) && HAVE_DECL_V4L2_CID_HCENTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_HCENTER) == ((V4L2_CID_BASE+22)), "V4L2_CID_HCENTER != (V4L2_CID_BASE+22)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_HCENTER (V4L2_CID_BASE+22)
+#endif
+#if defined(V4L2_CID_VCENTER) || (defined(HAVE_DECL_V4L2_CID_VCENTER) && HAVE_DECL_V4L2_CID_VCENTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_VCENTER) == ((V4L2_CID_BASE+23)), "V4L2_CID_VCENTER != (V4L2_CID_BASE+23)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_VCENTER (V4L2_CID_BASE+23)
+#endif
+#if defined(V4L2_CID_POWER_LINE_FREQUENCY) || (defined(HAVE_DECL_V4L2_CID_POWER_LINE_FREQUENCY) && HAVE_DECL_V4L2_CID_POWER_LINE_FREQUENCY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_POWER_LINE_FREQUENCY) == ((V4L2_CID_BASE+24)), "V4L2_CID_POWER_LINE_FREQUENCY != (V4L2_CID_BASE+24)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24)
+#endif
+#if defined(V4L2_CID_HUE_AUTO) || (defined(HAVE_DECL_V4L2_CID_HUE_AUTO) && HAVE_DECL_V4L2_CID_HUE_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_HUE_AUTO) == ((V4L2_CID_BASE+25)), "V4L2_CID_HUE_AUTO != (V4L2_CID_BASE+25)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25)
+#endif
+#if defined(V4L2_CID_WHITE_BALANCE_TEMPERATURE) || (defined(HAVE_DECL_V4L2_CID_WHITE_BALANCE_TEMPERATURE) && HAVE_DECL_V4L2_CID_WHITE_BALANCE_TEMPERATURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_WHITE_BALANCE_TEMPERATURE) == ((V4L2_CID_BASE+26)), "V4L2_CID_WHITE_BALANCE_TEMPERATURE != (V4L2_CID_BASE+26)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26)
+#endif
+#if defined(V4L2_CID_SHARPNESS) || (defined(HAVE_DECL_V4L2_CID_SHARPNESS) && HAVE_DECL_V4L2_CID_SHARPNESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_SHARPNESS) == ((V4L2_CID_BASE+27)), "V4L2_CID_SHARPNESS != (V4L2_CID_BASE+27)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27)
+#endif
+#if defined(V4L2_CID_BACKLIGHT_COMPENSATION) || (defined(HAVE_DECL_V4L2_CID_BACKLIGHT_COMPENSATION) && HAVE_DECL_V4L2_CID_BACKLIGHT_COMPENSATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_BACKLIGHT_COMPENSATION) == ((V4L2_CID_BASE+28)), "V4L2_CID_BACKLIGHT_COMPENSATION != (V4L2_CID_BASE+28)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
+#endif
+#if defined(V4L2_CID_CHROMA_AGC) || (defined(HAVE_DECL_V4L2_CID_CHROMA_AGC) && HAVE_DECL_V4L2_CID_CHROMA_AGC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_CHROMA_AGC) == ((V4L2_CID_BASE+29)), "V4L2_CID_CHROMA_AGC != (V4L2_CID_BASE+29)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
+#endif
+#if defined(V4L2_CID_COLOR_KILLER) || (defined(HAVE_DECL_V4L2_CID_COLOR_KILLER) && HAVE_DECL_V4L2_CID_COLOR_KILLER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_COLOR_KILLER) == ((V4L2_CID_BASE+30)), "V4L2_CID_COLOR_KILLER != (V4L2_CID_BASE+30)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
+#endif
+#if defined(V4L2_CID_COLORFX) || (defined(HAVE_DECL_V4L2_CID_COLORFX) && HAVE_DECL_V4L2_CID_COLORFX)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_COLORFX) == ((V4L2_CID_BASE+31)), "V4L2_CID_COLORFX != (V4L2_CID_BASE+31)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
+#endif
+#if defined(V4L2_CID_AUTOBRIGHTNESS) || (defined(HAVE_DECL_V4L2_CID_AUTOBRIGHTNESS) && HAVE_DECL_V4L2_CID_AUTOBRIGHTNESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTOBRIGHTNESS) == ((V4L2_CID_BASE+32)), "V4L2_CID_AUTOBRIGHTNESS != (V4L2_CID_BASE+32)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
+#endif
+#if defined(V4L2_CID_BAND_STOP_FILTER) || (defined(HAVE_DECL_V4L2_CID_BAND_STOP_FILTER) && HAVE_DECL_V4L2_CID_BAND_STOP_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_BAND_STOP_FILTER) == ((V4L2_CID_BASE+33)), "V4L2_CID_BAND_STOP_FILTER != (V4L2_CID_BASE+33)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
+#endif
+#if defined(V4L2_CID_ROTATE) || (defined(HAVE_DECL_V4L2_CID_ROTATE) && HAVE_DECL_V4L2_CID_ROTATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ROTATE) == ((V4L2_CID_BASE+34)), "V4L2_CID_ROTATE != (V4L2_CID_BASE+34)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
+#endif
+#if defined(V4L2_CID_BG_COLOR) || (defined(HAVE_DECL_V4L2_CID_BG_COLOR) && HAVE_DECL_V4L2_CID_BG_COLOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_BG_COLOR) == ((V4L2_CID_BASE+35)), "V4L2_CID_BG_COLOR != (V4L2_CID_BASE+35)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35)
+#endif
+#if defined(V4L2_CID_CHROMA_GAIN) || (defined(HAVE_DECL_V4L2_CID_CHROMA_GAIN) && HAVE_DECL_V4L2_CID_CHROMA_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_CHROMA_GAIN) == ((V4L2_CID_BASE+36)), "V4L2_CID_CHROMA_GAIN != (V4L2_CID_BASE+36)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36)
+#endif
+#if defined(V4L2_CID_ILLUMINATORS_1) || (defined(HAVE_DECL_V4L2_CID_ILLUMINATORS_1) && HAVE_DECL_V4L2_CID_ILLUMINATORS_1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ILLUMINATORS_1) == ((V4L2_CID_BASE+37)), "V4L2_CID_ILLUMINATORS_1 != (V4L2_CID_BASE+37)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37)
+#endif
+#if defined(V4L2_CID_ILLUMINATORS_2) || (defined(HAVE_DECL_V4L2_CID_ILLUMINATORS_2) && HAVE_DECL_V4L2_CID_ILLUMINATORS_2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ILLUMINATORS_2) == ((V4L2_CID_BASE+38)), "V4L2_CID_ILLUMINATORS_2 != (V4L2_CID_BASE+38)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38)
+#endif
+#if defined(V4L2_CID_MIN_BUFFERS_FOR_CAPTURE) || (defined(HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_CAPTURE) && HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_CAPTURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MIN_BUFFERS_FOR_CAPTURE) == ((V4L2_CID_BASE+39)), "V4L2_CID_MIN_BUFFERS_FOR_CAPTURE != (V4L2_CID_BASE+39)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39)
+#endif
+#if defined(V4L2_CID_MIN_BUFFERS_FOR_OUTPUT) || (defined(HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_OUTPUT) && HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_OUTPUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MIN_BUFFERS_FOR_OUTPUT) == ((V4L2_CID_BASE+40)), "V4L2_CID_MIN_BUFFERS_FOR_OUTPUT != (V4L2_CID_BASE+40)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
+#endif
+#if defined(V4L2_CID_ALPHA_COMPONENT) || (defined(HAVE_DECL_V4L2_CID_ALPHA_COMPONENT) && HAVE_DECL_V4L2_CID_ALPHA_COMPONENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ALPHA_COMPONENT) == ((V4L2_CID_BASE+41)), "V4L2_CID_ALPHA_COMPONENT != (V4L2_CID_BASE+41)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
+#endif
+#if defined(V4L2_CID_COLORFX_CBCR) || (defined(HAVE_DECL_V4L2_CID_COLORFX_CBCR) && HAVE_DECL_V4L2_CID_COLORFX_CBCR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_COLORFX_CBCR) == ((V4L2_CID_BASE+42)), "V4L2_CID_COLORFX_CBCR != (V4L2_CID_BASE+42)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_TYPE) && HAVE_DECL_V4L2_CID_MPEG_STREAM_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_TYPE) == ((V4L2_CID_MPEG_BASE+0)), "V4L2_CID_MPEG_STREAM_TYPE != (V4L2_CID_MPEG_BASE+0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_PID_PMT) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_PMT) && HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_PMT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_PID_PMT) == ((V4L2_CID_MPEG_BASE+1)), "V4L2_CID_MPEG_STREAM_PID_PMT != (V4L2_CID_MPEG_BASE+1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_PID_AUDIO) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_AUDIO) && HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_AUDIO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_PID_AUDIO) == ((V4L2_CID_MPEG_BASE+2)), "V4L2_CID_MPEG_STREAM_PID_AUDIO != (V4L2_CID_MPEG_BASE+2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_PID_VIDEO) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_VIDEO) && HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_VIDEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_PID_VIDEO) == ((V4L2_CID_MPEG_BASE+3)), "V4L2_CID_MPEG_STREAM_PID_VIDEO != (V4L2_CID_MPEG_BASE+3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_PID_PCR) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_PCR) && HAVE_DECL_V4L2_CID_MPEG_STREAM_PID_PCR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_PID_PCR) == ((V4L2_CID_MPEG_BASE+4)), "V4L2_CID_MPEG_STREAM_PID_PCR != (V4L2_CID_MPEG_BASE+4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_PES_ID_AUDIO) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_PES_ID_AUDIO) && HAVE_DECL_V4L2_CID_MPEG_STREAM_PES_ID_AUDIO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_PES_ID_AUDIO) == ((V4L2_CID_MPEG_BASE+5)), "V4L2_CID_MPEG_STREAM_PES_ID_AUDIO != (V4L2_CID_MPEG_BASE+5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_PES_ID_VIDEO) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_PES_ID_VIDEO) && HAVE_DECL_V4L2_CID_MPEG_STREAM_PES_ID_VIDEO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_PES_ID_VIDEO) == ((V4L2_CID_MPEG_BASE+6)), "V4L2_CID_MPEG_STREAM_PES_ID_VIDEO != (V4L2_CID_MPEG_BASE+6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
+#endif
+#if defined(V4L2_CID_MPEG_STREAM_VBI_FMT) || (defined(HAVE_DECL_V4L2_CID_MPEG_STREAM_VBI_FMT) && HAVE_DECL_V4L2_CID_MPEG_STREAM_VBI_FMT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_STREAM_VBI_FMT) == ((V4L2_CID_MPEG_BASE+7)), "V4L2_CID_MPEG_STREAM_VBI_FMT != (V4L2_CID_MPEG_BASE+7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ) == ((V4L2_CID_MPEG_BASE+100)), "V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ != (V4L2_CID_MPEG_BASE+100)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_ENCODING) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_ENCODING) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_ENCODING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_ENCODING) == ((V4L2_CID_MPEG_BASE+101)), "V4L2_CID_MPEG_AUDIO_ENCODING != (V4L2_CID_MPEG_BASE+101)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_L1_BITRATE) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_L1_BITRATE) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_L1_BITRATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_L1_BITRATE) == ((V4L2_CID_MPEG_BASE+102)), "V4L2_CID_MPEG_AUDIO_L1_BITRATE != (V4L2_CID_MPEG_BASE+102)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_L2_BITRATE) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_L2_BITRATE) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_L2_BITRATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_L2_BITRATE) == ((V4L2_CID_MPEG_BASE+103)), "V4L2_CID_MPEG_AUDIO_L2_BITRATE != (V4L2_CID_MPEG_BASE+103)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_L3_BITRATE) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_L3_BITRATE) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_L3_BITRATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_L3_BITRATE) == ((V4L2_CID_MPEG_BASE+104)), "V4L2_CID_MPEG_AUDIO_L3_BITRATE != (V4L2_CID_MPEG_BASE+104)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_MODE) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_MODE) == ((V4L2_CID_MPEG_BASE+105)), "V4L2_CID_MPEG_AUDIO_MODE != (V4L2_CID_MPEG_BASE+105)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_MODE_EXTENSION) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_MODE_EXTENSION) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_MODE_EXTENSION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_MODE_EXTENSION) == ((V4L2_CID_MPEG_BASE+106)), "V4L2_CID_MPEG_AUDIO_MODE_EXTENSION != (V4L2_CID_MPEG_BASE+106)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_EMPHASIS) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_EMPHASIS) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_EMPHASIS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_EMPHASIS) == ((V4L2_CID_MPEG_BASE+107)), "V4L2_CID_MPEG_AUDIO_EMPHASIS != (V4L2_CID_MPEG_BASE+107)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_CRC) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_CRC) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_CRC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_CRC) == ((V4L2_CID_MPEG_BASE+108)), "V4L2_CID_MPEG_AUDIO_CRC != (V4L2_CID_MPEG_BASE+108)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_MUTE) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_MUTE) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_MUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_MUTE) == ((V4L2_CID_MPEG_BASE+109)), "V4L2_CID_MPEG_AUDIO_MUTE != (V4L2_CID_MPEG_BASE+109)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_AAC_BITRATE) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_AAC_BITRATE) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_AAC_BITRATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_AAC_BITRATE) == ((V4L2_CID_MPEG_BASE+110)), "V4L2_CID_MPEG_AUDIO_AAC_BITRATE != (V4L2_CID_MPEG_BASE+110)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_AC3_BITRATE) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_AC3_BITRATE) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_AC3_BITRATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_AC3_BITRATE) == ((V4L2_CID_MPEG_BASE+111)), "V4L2_CID_MPEG_AUDIO_AC3_BITRATE != (V4L2_CID_MPEG_BASE+111)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK) == ((V4L2_CID_MPEG_BASE+112)), "V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK != (V4L2_CID_MPEG_BASE+112)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112)
+#endif
+#if defined(V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK) || (defined(HAVE_DECL_V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK) && HAVE_DECL_V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK) == ((V4L2_CID_MPEG_BASE+113)), "V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK != (V4L2_CID_MPEG_BASE+113)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_ENCODING) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_ENCODING) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_ENCODING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_ENCODING) == ((V4L2_CID_MPEG_BASE+200)), "V4L2_CID_MPEG_VIDEO_ENCODING != (V4L2_CID_MPEG_BASE+200)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_ASPECT) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_ASPECT) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_ASPECT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_ASPECT) == ((V4L2_CID_MPEG_BASE+201)), "V4L2_CID_MPEG_VIDEO_ASPECT != (V4L2_CID_MPEG_BASE+201)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_B_FRAMES) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_B_FRAMES) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_B_FRAMES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_B_FRAMES) == ((V4L2_CID_MPEG_BASE+202)), "V4L2_CID_MPEG_VIDEO_B_FRAMES != (V4L2_CID_MPEG_BASE+202)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_GOP_SIZE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_GOP_SIZE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_GOP_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_GOP_SIZE) == ((V4L2_CID_MPEG_BASE+203)), "V4L2_CID_MPEG_VIDEO_GOP_SIZE != (V4L2_CID_MPEG_BASE+203)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_GOP_CLOSURE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_GOP_CLOSURE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_GOP_CLOSURE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_GOP_CLOSURE) == ((V4L2_CID_MPEG_BASE+204)), "V4L2_CID_MPEG_VIDEO_GOP_CLOSURE != (V4L2_CID_MPEG_BASE+204)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_PULLDOWN) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_PULLDOWN) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_PULLDOWN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_PULLDOWN) == ((V4L2_CID_MPEG_BASE+205)), "V4L2_CID_MPEG_VIDEO_PULLDOWN != (V4L2_CID_MPEG_BASE+205)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_BITRATE_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_BITRATE_MODE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_BITRATE_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_BITRATE_MODE) == ((V4L2_CID_MPEG_BASE+206)), "V4L2_CID_MPEG_VIDEO_BITRATE_MODE != (V4L2_CID_MPEG_BASE+206)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_BITRATE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_BITRATE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_BITRATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_BITRATE) == ((V4L2_CID_MPEG_BASE+207)), "V4L2_CID_MPEG_VIDEO_BITRATE != (V4L2_CID_MPEG_BASE+207)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_BITRATE_PEAK) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_BITRATE_PEAK) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_BITRATE_PEAK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_BITRATE_PEAK) == ((V4L2_CID_MPEG_BASE+208)), "V4L2_CID_MPEG_VIDEO_BITRATE_PEAK != (V4L2_CID_MPEG_BASE+208)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION) == ((V4L2_CID_MPEG_BASE+209)), "V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION != (V4L2_CID_MPEG_BASE+209)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MUTE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MUTE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MUTE) == ((V4L2_CID_MPEG_BASE+210)), "V4L2_CID_MPEG_VIDEO_MUTE != (V4L2_CID_MPEG_BASE+210)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MUTE_YUV) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MUTE_YUV) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MUTE_YUV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MUTE_YUV) == ((V4L2_CID_MPEG_BASE+211)), "V4L2_CID_MPEG_VIDEO_MUTE_YUV != (V4L2_CID_MPEG_BASE+211)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE) == ((V4L2_CID_MPEG_BASE+212)), "V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE != (V4L2_CID_MPEG_BASE+212)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER) == ((V4L2_CID_MPEG_BASE+213)), "V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER != (V4L2_CID_MPEG_BASE+213)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB) == ((V4L2_CID_MPEG_BASE+214)), "V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB != (V4L2_CID_MPEG_BASE+214)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE) == ((V4L2_CID_MPEG_BASE+215)), "V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE != (V4L2_CID_MPEG_BASE+215)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEADER_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEADER_MODE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEADER_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEADER_MODE) == ((V4L2_CID_MPEG_BASE+216)), "V4L2_CID_MPEG_VIDEO_HEADER_MODE != (V4L2_CID_MPEG_BASE+216)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MAX_REF_PIC) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MAX_REF_PIC) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MAX_REF_PIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MAX_REF_PIC) == ((V4L2_CID_MPEG_BASE+217)), "V4L2_CID_MPEG_VIDEO_MAX_REF_PIC != (V4L2_CID_MPEG_BASE+217)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE) == ((V4L2_CID_MPEG_BASE+218)), "V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE != (V4L2_CID_MPEG_BASE+218)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES) == ((V4L2_CID_MPEG_BASE+219)), "V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES != (V4L2_CID_MPEG_BASE+219)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB) == ((V4L2_CID_MPEG_BASE+220)), "V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB != (V4L2_CID_MPEG_BASE+220)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE) == ((V4L2_CID_MPEG_BASE+221)), "V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE != (V4L2_CID_MPEG_BASE+221)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VBV_SIZE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VBV_SIZE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VBV_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VBV_SIZE) == ((V4L2_CID_MPEG_BASE+222)), "V4L2_CID_MPEG_VIDEO_VBV_SIZE != (V4L2_CID_MPEG_BASE+222)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_DEC_PTS) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_DEC_PTS) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_DEC_PTS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_DEC_PTS) == ((V4L2_CID_MPEG_BASE+223)), "V4L2_CID_MPEG_VIDEO_DEC_PTS != (V4L2_CID_MPEG_BASE+223)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_DEC_FRAME) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_DEC_FRAME) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_DEC_FRAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_DEC_FRAME) == ((V4L2_CID_MPEG_BASE+224)), "V4L2_CID_MPEG_VIDEO_DEC_FRAME != (V4L2_CID_MPEG_BASE+224)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VBV_DELAY) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VBV_DELAY) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VBV_DELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VBV_DELAY) == ((V4L2_CID_MPEG_BASE+225)), "V4L2_CID_MPEG_VIDEO_VBV_DELAY != (V4L2_CID_MPEG_BASE+225)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER) == ((V4L2_CID_MPEG_BASE+226)), "V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER != (V4L2_CID_MPEG_BASE+226)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE) == ((V4L2_CID_MPEG_BASE+227)), "V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE != (V4L2_CID_MPEG_BASE+227)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE) == ((V4L2_CID_MPEG_BASE+228)), "V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE != (V4L2_CID_MPEG_BASE+228)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME) == ((V4L2_CID_MPEG_BASE+229)), "V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME != (V4L2_CID_MPEG_BASE+229)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229)
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP) == ((V4L2_CID_MPEG_BASE+301)), "V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP != (V4L2_CID_MPEG_BASE+301)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP) == ((V4L2_CID_MPEG_BASE+302)), "V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP != (V4L2_CID_MPEG_BASE+302)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H263_MIN_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_MIN_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_MIN_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H263_MIN_QP) == ((V4L2_CID_MPEG_BASE+303)), "V4L2_CID_MPEG_VIDEO_H263_MIN_QP != (V4L2_CID_MPEG_BASE+303)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H263_MAX_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_MAX_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_MAX_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H263_MAX_QP) == ((V4L2_CID_MPEG_BASE+304)), "V4L2_CID_MPEG_VIDEO_H263_MAX_QP != (V4L2_CID_MPEG_BASE+304)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP) == ((V4L2_CID_MPEG_BASE+350)), "V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP != (V4L2_CID_MPEG_BASE+350)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP) == ((V4L2_CID_MPEG_BASE+351)), "V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP != (V4L2_CID_MPEG_BASE+351)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP) == ((V4L2_CID_MPEG_BASE+352)), "V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP != (V4L2_CID_MPEG_BASE+352)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_MIN_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_MIN_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_MIN_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_MIN_QP) == ((V4L2_CID_MPEG_BASE+353)), "V4L2_CID_MPEG_VIDEO_H264_MIN_QP != (V4L2_CID_MPEG_BASE+353)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_MAX_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_MAX_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_MAX_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_MAX_QP) == ((V4L2_CID_MPEG_BASE+354)), "V4L2_CID_MPEG_VIDEO_H264_MAX_QP != (V4L2_CID_MPEG_BASE+354)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM) == ((V4L2_CID_MPEG_BASE+355)), "V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM != (V4L2_CID_MPEG_BASE+355)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE) == ((V4L2_CID_MPEG_BASE+356)), "V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE != (V4L2_CID_MPEG_BASE+356)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE) == ((V4L2_CID_MPEG_BASE+357)), "V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE != (V4L2_CID_MPEG_BASE+357)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_I_PERIOD) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_PERIOD) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_PERIOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_I_PERIOD) == ((V4L2_CID_MPEG_BASE+358)), "V4L2_CID_MPEG_VIDEO_H264_I_PERIOD != (V4L2_CID_MPEG_BASE+358)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_LEVEL) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LEVEL) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LEVEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_LEVEL) == ((V4L2_CID_MPEG_BASE+359)), "V4L2_CID_MPEG_VIDEO_H264_LEVEL != (V4L2_CID_MPEG_BASE+359)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA) == ((V4L2_CID_MPEG_BASE+360)), "V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA != (V4L2_CID_MPEG_BASE+360)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA) == ((V4L2_CID_MPEG_BASE+361)), "V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA != (V4L2_CID_MPEG_BASE+361)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE) == ((V4L2_CID_MPEG_BASE+362)), "V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE != (V4L2_CID_MPEG_BASE+362)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_PROFILE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_PROFILE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_PROFILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_PROFILE) == ((V4L2_CID_MPEG_BASE+363)), "V4L2_CID_MPEG_VIDEO_H264_PROFILE != (V4L2_CID_MPEG_BASE+363)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT) == ((V4L2_CID_MPEG_BASE+364)), "V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT != (V4L2_CID_MPEG_BASE+364)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH) == ((V4L2_CID_MPEG_BASE+365)), "V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH != (V4L2_CID_MPEG_BASE+365)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE) == ((V4L2_CID_MPEG_BASE+366)), "V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE != (V4L2_CID_MPEG_BASE+366)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC) == ((V4L2_CID_MPEG_BASE+367)), "V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC != (V4L2_CID_MPEG_BASE+367)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING) == ((V4L2_CID_MPEG_BASE+368)), "V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING != (V4L2_CID_MPEG_BASE+368)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0) == ((V4L2_CID_MPEG_BASE+369)), "V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 != (V4L2_CID_MPEG_BASE+369)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE) == ((V4L2_CID_MPEG_BASE+370)), "V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE != (V4L2_CID_MPEG_BASE+370)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_FMO) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_FMO) == ((V4L2_CID_MPEG_BASE+371)), "V4L2_CID_MPEG_VIDEO_H264_FMO != (V4L2_CID_MPEG_BASE+371)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE) == ((V4L2_CID_MPEG_BASE+372)), "V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE != (V4L2_CID_MPEG_BASE+372)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP) == ((V4L2_CID_MPEG_BASE+373)), "V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP != (V4L2_CID_MPEG_BASE+373)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION) == ((V4L2_CID_MPEG_BASE+374)), "V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION != (V4L2_CID_MPEG_BASE+374)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE) == ((V4L2_CID_MPEG_BASE+375)), "V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE != (V4L2_CID_MPEG_BASE+375)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH) == ((V4L2_CID_MPEG_BASE+376)), "V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH != (V4L2_CID_MPEG_BASE+376)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_ASO) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_ASO) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_ASO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_ASO) == ((V4L2_CID_MPEG_BASE+377)), "V4L2_CID_MPEG_VIDEO_H264_ASO != (V4L2_CID_MPEG_BASE+377)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER) == ((V4L2_CID_MPEG_BASE+378)), "V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER != (V4L2_CID_MPEG_BASE+378)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING) == ((V4L2_CID_MPEG_BASE+379)), "V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING != (V4L2_CID_MPEG_BASE+379)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE) == ((V4L2_CID_MPEG_BASE+380)), "V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE != (V4L2_CID_MPEG_BASE+380)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER) == ((V4L2_CID_MPEG_BASE+381)), "V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER != (V4L2_CID_MPEG_BASE+381)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP) == ((V4L2_CID_MPEG_BASE+382)), "V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP != (V4L2_CID_MPEG_BASE+382)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382)
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP) == ((V4L2_CID_MPEG_BASE+401)), "V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP != (V4L2_CID_MPEG_BASE+401)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP) == ((V4L2_CID_MPEG_BASE+402)), "V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP != (V4L2_CID_MPEG_BASE+402)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP) == ((V4L2_CID_MPEG_BASE+403)), "V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP != (V4L2_CID_MPEG_BASE+403)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP) == ((V4L2_CID_MPEG_BASE+404)), "V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP != (V4L2_CID_MPEG_BASE+404)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL) == ((V4L2_CID_MPEG_BASE+405)), "V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL != (V4L2_CID_MPEG_BASE+405)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE) == ((V4L2_CID_MPEG_BASE+406)), "V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE != (V4L2_CID_MPEG_BASE+406)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_MPEG4_QPEL) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_QPEL) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_QPEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_QPEL) == ((V4L2_CID_MPEG_BASE+407)), "V4L2_CID_MPEG_VIDEO_MPEG4_QPEL != (V4L2_CID_MPEG_BASE+407)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS) == ((V4L2_CID_MPEG_BASE+500)), "V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS != (V4L2_CID_MPEG_BASE+500)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_MPEG_BASE+500)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4) == ((V4L2_CID_MPEG_BASE+501)), "V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 != (V4L2_CID_MPEG_BASE+501)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_MPEG_BASE+501)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES) == ((V4L2_CID_MPEG_BASE+502)), "V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES != (V4L2_CID_MPEG_BASE+502)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_MPEG_BASE+502)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL) == ((V4L2_CID_MPEG_BASE+503)), "V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL != (V4L2_CID_MPEG_BASE+503)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_MPEG_BASE+503)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS) == ((V4L2_CID_MPEG_BASE+504)), "V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS != (V4L2_CID_MPEG_BASE+504)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_MPEG_BASE+504)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD) == ((V4L2_CID_MPEG_BASE+505)), "V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD != (V4L2_CID_MPEG_BASE+505)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_MPEG_BASE+505)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL) == ((V4L2_CID_MPEG_BASE+506)), "V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL != (V4L2_CID_MPEG_BASE+506)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_MPEG_BASE+506)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_MIN_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_MIN_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_MIN_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_MIN_QP) == ((V4L2_CID_MPEG_BASE+507)), "V4L2_CID_MPEG_VIDEO_VPX_MIN_QP != (V4L2_CID_MPEG_BASE+507)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_MAX_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_MAX_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_MAX_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_MAX_QP) == ((V4L2_CID_MPEG_BASE+508)), "V4L2_CID_MPEG_VIDEO_VPX_MAX_QP != (V4L2_CID_MPEG_BASE+508)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP) == ((V4L2_CID_MPEG_BASE+509)), "V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP != (V4L2_CID_MPEG_BASE+509)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP) == ((V4L2_CID_MPEG_BASE+510)), "V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP != (V4L2_CID_MPEG_BASE+510)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_VPX_PROFILE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_PROFILE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_VPX_PROFILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_VPX_PROFILE) == ((V4L2_CID_MPEG_BASE+511)), "V4L2_CID_MPEG_VIDEO_VPX_PROFILE != (V4L2_CID_MPEG_BASE+511)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP) == ((V4L2_CID_MPEG_BASE + 600)), "V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP != (V4L2_CID_MPEG_BASE + 600)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP) == ((V4L2_CID_MPEG_BASE + 601)), "V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP != (V4L2_CID_MPEG_BASE + 601)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP) == ((V4L2_CID_MPEG_BASE + 602)), "V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP != (V4L2_CID_MPEG_BASE + 602)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP) == ((V4L2_CID_MPEG_BASE + 603)), "V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP != (V4L2_CID_MPEG_BASE + 603)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP) == ((V4L2_CID_MPEG_BASE + 604)), "V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP != (V4L2_CID_MPEG_BASE + 604)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP) == ((V4L2_CID_MPEG_BASE + 605)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP != (V4L2_CID_MPEG_BASE + 605)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE) == ((V4L2_CID_MPEG_BASE + 606)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE != (V4L2_CID_MPEG_BASE + 606)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER) == ((V4L2_CID_MPEG_BASE + 607)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER != (V4L2_CID_MPEG_BASE + 607)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP) == ((V4L2_CID_MPEG_BASE + 608)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP != (V4L2_CID_MPEG_BASE + 608)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP) == ((V4L2_CID_MPEG_BASE + 609)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP != (V4L2_CID_MPEG_BASE + 609)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP) == ((V4L2_CID_MPEG_BASE + 610)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP != (V4L2_CID_MPEG_BASE + 610)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP) == ((V4L2_CID_MPEG_BASE + 611)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP != (V4L2_CID_MPEG_BASE + 611)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP) == ((V4L2_CID_MPEG_BASE + 612)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP != (V4L2_CID_MPEG_BASE + 612)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP) == ((V4L2_CID_MPEG_BASE + 613)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP != (V4L2_CID_MPEG_BASE + 613)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP) == ((V4L2_CID_MPEG_BASE + 614)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP != (V4L2_CID_MPEG_BASE + 614)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_PROFILE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_PROFILE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_PROFILE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_PROFILE) == ((V4L2_CID_MPEG_BASE + 615)), "V4L2_CID_MPEG_VIDEO_HEVC_PROFILE != (V4L2_CID_MPEG_BASE + 615)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_LEVEL) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LEVEL) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LEVEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_LEVEL) == ((V4L2_CID_MPEG_BASE + 616)), "V4L2_CID_MPEG_VIDEO_HEVC_LEVEL != (V4L2_CID_MPEG_BASE + 616)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION) == ((V4L2_CID_MPEG_BASE + 617)), "V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION != (V4L2_CID_MPEG_BASE + 617)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_TIER) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_TIER) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_TIER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_TIER) == ((V4L2_CID_MPEG_BASE + 618)), "V4L2_CID_MPEG_VIDEO_HEVC_TIER != (V4L2_CID_MPEG_BASE + 618)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH) == ((V4L2_CID_MPEG_BASE + 619)), "V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH != (V4L2_CID_MPEG_BASE + 619)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE) == ((V4L2_CID_MPEG_BASE + 620)), "V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE != (V4L2_CID_MPEG_BASE + 620)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2) == ((V4L2_CID_MPEG_BASE + 621)), "V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 != (V4L2_CID_MPEG_BASE + 621)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2) == ((V4L2_CID_MPEG_BASE + 622)), "V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 != (V4L2_CID_MPEG_BASE + 622)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE) == ((V4L2_CID_MPEG_BASE + 623)), "V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE != (V4L2_CID_MPEG_BASE + 623)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD) == ((V4L2_CID_MPEG_BASE + 624)), "V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD != (V4L2_CID_MPEG_BASE + 624)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU) == ((V4L2_CID_MPEG_BASE + 625)), "V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU != (V4L2_CID_MPEG_BASE + 625)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED) == ((V4L2_CID_MPEG_BASE + 626)), "V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED != (V4L2_CID_MPEG_BASE + 626)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT) == ((V4L2_CID_MPEG_BASE + 627)), "V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT != (V4L2_CID_MPEG_BASE + 627)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB) == ((V4L2_CID_MPEG_BASE + 628)), "V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB != (V4L2_CID_MPEG_BASE + 628)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID) == ((V4L2_CID_MPEG_BASE + 629)), "V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID != (V4L2_CID_MPEG_BASE + 629)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING) == ((V4L2_CID_MPEG_BASE + 630)), "V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING != (V4L2_CID_MPEG_BASE + 630)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1) == ((V4L2_CID_MPEG_BASE + 631)), "V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 != (V4L2_CID_MPEG_BASE + 631)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT) == ((V4L2_CID_MPEG_BASE + 632)), "V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT != (V4L2_CID_MPEG_BASE + 632)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION) == ((V4L2_CID_MPEG_BASE + 633)), "V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION != (V4L2_CID_MPEG_BASE + 633)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE) == ((V4L2_CID_MPEG_BASE + 634)), "V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE != (V4L2_CID_MPEG_BASE + 634)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD) == ((V4L2_CID_MPEG_BASE + 635)), "V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD != (V4L2_CID_MPEG_BASE + 635)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR) == ((V4L2_CID_MPEG_BASE + 636)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR != (V4L2_CID_MPEG_BASE + 636)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR) == ((V4L2_CID_MPEG_BASE + 637)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR != (V4L2_CID_MPEG_BASE + 637)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR) == ((V4L2_CID_MPEG_BASE + 638)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR != (V4L2_CID_MPEG_BASE + 638)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR) == ((V4L2_CID_MPEG_BASE + 639)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR != (V4L2_CID_MPEG_BASE + 639)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR) == ((V4L2_CID_MPEG_BASE + 640)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR != (V4L2_CID_MPEG_BASE + 640)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR) == ((V4L2_CID_MPEG_BASE + 641)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR != (V4L2_CID_MPEG_BASE + 641)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR) == ((V4L2_CID_MPEG_BASE + 642)), "V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR != (V4L2_CID_MPEG_BASE + 642)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES) == ((V4L2_CID_MPEG_BASE + 643)), "V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES != (V4L2_CID_MPEG_BASE + 643)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
+#endif
+#if defined(V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR) == ((V4L2_CID_MPEG_BASE + 644)), "V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR != (V4L2_CID_MPEG_BASE + 644)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE) == ((V4L2_CID_MPEG_CX2341X_BASE+0)), "V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE != (V4L2_CID_MPEG_CX2341X_BASE+0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER) == ((V4L2_CID_MPEG_CX2341X_BASE+1)), "V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER != (V4L2_CID_MPEG_CX2341X_BASE+1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE) == ((V4L2_CID_MPEG_CX2341X_BASE+2)), "V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE != (V4L2_CID_MPEG_CX2341X_BASE+2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE) == ((V4L2_CID_MPEG_CX2341X_BASE+3)), "V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE != (V4L2_CID_MPEG_CX2341X_BASE+3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE) == ((V4L2_CID_MPEG_CX2341X_BASE+4)), "V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE != (V4L2_CID_MPEG_CX2341X_BASE+4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER) == ((V4L2_CID_MPEG_CX2341X_BASE+5)), "V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER != (V4L2_CID_MPEG_CX2341X_BASE+5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE) == ((V4L2_CID_MPEG_CX2341X_BASE+6)), "V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE != (V4L2_CID_MPEG_CX2341X_BASE+6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM) == ((V4L2_CID_MPEG_CX2341X_BASE+7)), "V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM != (V4L2_CID_MPEG_CX2341X_BASE+7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP) == ((V4L2_CID_MPEG_CX2341X_BASE+8)), "V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP != (V4L2_CID_MPEG_CX2341X_BASE+8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM) == ((V4L2_CID_MPEG_CX2341X_BASE+9)), "V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM != (V4L2_CID_MPEG_CX2341X_BASE+9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP) == ((V4L2_CID_MPEG_CX2341X_BASE+10)), "V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP != (V4L2_CID_MPEG_CX2341X_BASE+10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
+#endif
+#if defined(V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS) == ((V4L2_CID_MPEG_CX2341X_BASE+11)), "V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS != (V4L2_CID_MPEG_CX2341X_BASE+11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY) == ((V4L2_CID_MPEG_MFC51_BASE+0)), "V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY != (V4L2_CID_MPEG_MFC51_BASE+0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE) == ((V4L2_CID_MPEG_MFC51_BASE+1)), "V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE != (V4L2_CID_MPEG_MFC51_BASE+1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE) == ((V4L2_CID_MPEG_MFC51_BASE+2)), "V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE != (V4L2_CID_MPEG_MFC51_BASE+2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE) == ((V4L2_CID_MPEG_MFC51_BASE+3)), "V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE != (V4L2_CID_MPEG_MFC51_BASE+3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_PADDING) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_PADDING) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_PADDING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_PADDING) == ((V4L2_CID_MPEG_MFC51_BASE+4)), "V4L2_CID_MPEG_MFC51_VIDEO_PADDING != (V4L2_CID_MPEG_MFC51_BASE+4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV) == ((V4L2_CID_MPEG_MFC51_BASE+5)), "V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV != (V4L2_CID_MPEG_MFC51_BASE+5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT) == ((V4L2_CID_MPEG_MFC51_BASE+6)), "V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT != (V4L2_CID_MPEG_MFC51_BASE+6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF) == ((V4L2_CID_MPEG_MFC51_BASE+7)), "V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF != (V4L2_CID_MPEG_MFC51_BASE+7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY) == ((V4L2_CID_MPEG_MFC51_BASE+50)), "V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY != (V4L2_CID_MPEG_MFC51_BASE+50)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK) == ((V4L2_CID_MPEG_MFC51_BASE+51)), "V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK != (V4L2_CID_MPEG_MFC51_BASE+51)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH) == ((V4L2_CID_MPEG_MFC51_BASE+52)), "V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH != (V4L2_CID_MPEG_MFC51_BASE+52)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC) == ((V4L2_CID_MPEG_MFC51_BASE+53)), "V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC != (V4L2_CID_MPEG_MFC51_BASE+53)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
+#endif
+#if defined(V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P) && HAVE_DECL_V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P) == ((V4L2_CID_MPEG_MFC51_BASE+54)), "V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P != (V4L2_CID_MPEG_MFC51_BASE+54)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
+#endif
+#if defined(V4L2_CID_EXPOSURE_AUTO) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_AUTO) && HAVE_DECL_V4L2_CID_EXPOSURE_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_EXPOSURE_AUTO) == ((V4L2_CID_CAMERA_CLASS_BASE+1)), "V4L2_CID_EXPOSURE_AUTO != (V4L2_CID_CAMERA_CLASS_BASE+1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1)
+#endif
+#if defined(V4L2_CID_EXPOSURE_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_ABSOLUTE) && HAVE_DECL_V4L2_CID_EXPOSURE_ABSOLUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_EXPOSURE_ABSOLUTE) == ((V4L2_CID_CAMERA_CLASS_BASE+2)), "V4L2_CID_EXPOSURE_ABSOLUTE != (V4L2_CID_CAMERA_CLASS_BASE+2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2)
+#endif
+#if defined(V4L2_CID_EXPOSURE_AUTO_PRIORITY) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_AUTO_PRIORITY) && HAVE_DECL_V4L2_CID_EXPOSURE_AUTO_PRIORITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_EXPOSURE_AUTO_PRIORITY) == ((V4L2_CID_CAMERA_CLASS_BASE+3)), "V4L2_CID_EXPOSURE_AUTO_PRIORITY != (V4L2_CID_CAMERA_CLASS_BASE+3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3)
+#endif
+#if defined(V4L2_CID_PAN_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_PAN_RELATIVE) && HAVE_DECL_V4L2_CID_PAN_RELATIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PAN_RELATIVE) == ((V4L2_CID_CAMERA_CLASS_BASE+4)), "V4L2_CID_PAN_RELATIVE != (V4L2_CID_CAMERA_CLASS_BASE+4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4)
+#endif
+#if defined(V4L2_CID_TILT_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_TILT_RELATIVE) && HAVE_DECL_V4L2_CID_TILT_RELATIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TILT_RELATIVE) == ((V4L2_CID_CAMERA_CLASS_BASE+5)), "V4L2_CID_TILT_RELATIVE != (V4L2_CID_CAMERA_CLASS_BASE+5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5)
+#endif
+#if defined(V4L2_CID_PAN_RESET) || (defined(HAVE_DECL_V4L2_CID_PAN_RESET) && HAVE_DECL_V4L2_CID_PAN_RESET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PAN_RESET) == ((V4L2_CID_CAMERA_CLASS_BASE+6)), "V4L2_CID_PAN_RESET != (V4L2_CID_CAMERA_CLASS_BASE+6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6)
+#endif
+#if defined(V4L2_CID_TILT_RESET) || (defined(HAVE_DECL_V4L2_CID_TILT_RESET) && HAVE_DECL_V4L2_CID_TILT_RESET)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TILT_RESET) == ((V4L2_CID_CAMERA_CLASS_BASE+7)), "V4L2_CID_TILT_RESET != (V4L2_CID_CAMERA_CLASS_BASE+7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7)
+#endif
+#if defined(V4L2_CID_PAN_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_PAN_ABSOLUTE) && HAVE_DECL_V4L2_CID_PAN_ABSOLUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PAN_ABSOLUTE) == ((V4L2_CID_CAMERA_CLASS_BASE+8)), "V4L2_CID_PAN_ABSOLUTE != (V4L2_CID_CAMERA_CLASS_BASE+8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8)
+#endif
+#if defined(V4L2_CID_TILT_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_TILT_ABSOLUTE) && HAVE_DECL_V4L2_CID_TILT_ABSOLUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TILT_ABSOLUTE) == ((V4L2_CID_CAMERA_CLASS_BASE+9)), "V4L2_CID_TILT_ABSOLUTE != (V4L2_CID_CAMERA_CLASS_BASE+9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9)
+#endif
+#if defined(V4L2_CID_FOCUS_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_FOCUS_ABSOLUTE) && HAVE_DECL_V4L2_CID_FOCUS_ABSOLUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FOCUS_ABSOLUTE) == ((V4L2_CID_CAMERA_CLASS_BASE+10)), "V4L2_CID_FOCUS_ABSOLUTE != (V4L2_CID_CAMERA_CLASS_BASE+10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10)
+#endif
+#if defined(V4L2_CID_FOCUS_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_FOCUS_RELATIVE) && HAVE_DECL_V4L2_CID_FOCUS_RELATIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FOCUS_RELATIVE) == ((V4L2_CID_CAMERA_CLASS_BASE+11)), "V4L2_CID_FOCUS_RELATIVE != (V4L2_CID_CAMERA_CLASS_BASE+11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11)
+#endif
+#if defined(V4L2_CID_FOCUS_AUTO) || (defined(HAVE_DECL_V4L2_CID_FOCUS_AUTO) && HAVE_DECL_V4L2_CID_FOCUS_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FOCUS_AUTO) == ((V4L2_CID_CAMERA_CLASS_BASE+12)), "V4L2_CID_FOCUS_AUTO != (V4L2_CID_CAMERA_CLASS_BASE+12)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12)
+#endif
+#if defined(V4L2_CID_ZOOM_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_ZOOM_ABSOLUTE) && HAVE_DECL_V4L2_CID_ZOOM_ABSOLUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ZOOM_ABSOLUTE) == ((V4L2_CID_CAMERA_CLASS_BASE+13)), "V4L2_CID_ZOOM_ABSOLUTE != (V4L2_CID_CAMERA_CLASS_BASE+13)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13)
+#endif
+#if defined(V4L2_CID_ZOOM_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_ZOOM_RELATIVE) && HAVE_DECL_V4L2_CID_ZOOM_RELATIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ZOOM_RELATIVE) == ((V4L2_CID_CAMERA_CLASS_BASE+14)), "V4L2_CID_ZOOM_RELATIVE != (V4L2_CID_CAMERA_CLASS_BASE+14)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14)
+#endif
+#if defined(V4L2_CID_ZOOM_CONTINUOUS) || (defined(HAVE_DECL_V4L2_CID_ZOOM_CONTINUOUS) && HAVE_DECL_V4L2_CID_ZOOM_CONTINUOUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ZOOM_CONTINUOUS) == ((V4L2_CID_CAMERA_CLASS_BASE+15)), "V4L2_CID_ZOOM_CONTINUOUS != (V4L2_CID_CAMERA_CLASS_BASE+15)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15)
+#endif
+#if defined(V4L2_CID_PRIVACY) || (defined(HAVE_DECL_V4L2_CID_PRIVACY) && HAVE_DECL_V4L2_CID_PRIVACY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PRIVACY) == ((V4L2_CID_CAMERA_CLASS_BASE+16)), "V4L2_CID_PRIVACY != (V4L2_CID_CAMERA_CLASS_BASE+16)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16)
+#endif
+#if defined(V4L2_CID_IRIS_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_IRIS_ABSOLUTE) && HAVE_DECL_V4L2_CID_IRIS_ABSOLUTE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_IRIS_ABSOLUTE) == ((V4L2_CID_CAMERA_CLASS_BASE+17)), "V4L2_CID_IRIS_ABSOLUTE != (V4L2_CID_CAMERA_CLASS_BASE+17)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17)
+#endif
+#if defined(V4L2_CID_IRIS_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_IRIS_RELATIVE) && HAVE_DECL_V4L2_CID_IRIS_RELATIVE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_IRIS_RELATIVE) == ((V4L2_CID_CAMERA_CLASS_BASE+18)), "V4L2_CID_IRIS_RELATIVE != (V4L2_CID_CAMERA_CLASS_BASE+18)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18)
+#endif
+#if defined(V4L2_CID_AUTO_EXPOSURE_BIAS) || (defined(HAVE_DECL_V4L2_CID_AUTO_EXPOSURE_BIAS) && HAVE_DECL_V4L2_CID_AUTO_EXPOSURE_BIAS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTO_EXPOSURE_BIAS) == ((V4L2_CID_CAMERA_CLASS_BASE+19)), "V4L2_CID_AUTO_EXPOSURE_BIAS != (V4L2_CID_CAMERA_CLASS_BASE+19)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTO_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+19)
+#endif
+#if defined(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) && HAVE_DECL_V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) == ((V4L2_CID_CAMERA_CLASS_BASE+20)), "V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE != (V4L2_CID_CAMERA_CLASS_BASE+20)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (V4L2_CID_CAMERA_CLASS_BASE+20)
+#endif
+#if defined(V4L2_CID_WIDE_DYNAMIC_RANGE) || (defined(HAVE_DECL_V4L2_CID_WIDE_DYNAMIC_RANGE) && HAVE_DECL_V4L2_CID_WIDE_DYNAMIC_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_WIDE_DYNAMIC_RANGE) == ((V4L2_CID_CAMERA_CLASS_BASE+21)), "V4L2_CID_WIDE_DYNAMIC_RANGE != (V4L2_CID_CAMERA_CLASS_BASE+21)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21)
+#endif
+#if defined(V4L2_CID_IMAGE_STABILIZATION) || (defined(HAVE_DECL_V4L2_CID_IMAGE_STABILIZATION) && HAVE_DECL_V4L2_CID_IMAGE_STABILIZATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_IMAGE_STABILIZATION) == ((V4L2_CID_CAMERA_CLASS_BASE+22)), "V4L2_CID_IMAGE_STABILIZATION != (V4L2_CID_CAMERA_CLASS_BASE+22)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22)
+#endif
+#if defined(V4L2_CID_ISO_SENSITIVITY) || (defined(HAVE_DECL_V4L2_CID_ISO_SENSITIVITY) && HAVE_DECL_V4L2_CID_ISO_SENSITIVITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ISO_SENSITIVITY) == ((V4L2_CID_CAMERA_CLASS_BASE+23)), "V4L2_CID_ISO_SENSITIVITY != (V4L2_CID_CAMERA_CLASS_BASE+23)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23)
+#endif
+#if defined(V4L2_CID_ISO_SENSITIVITY_AUTO) || (defined(HAVE_DECL_V4L2_CID_ISO_SENSITIVITY_AUTO) && HAVE_DECL_V4L2_CID_ISO_SENSITIVITY_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ISO_SENSITIVITY_AUTO) == ((V4L2_CID_CAMERA_CLASS_BASE+24)), "V4L2_CID_ISO_SENSITIVITY_AUTO != (V4L2_CID_CAMERA_CLASS_BASE+24)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24)
+#endif
+#if defined(V4L2_CID_EXPOSURE_METERING) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_METERING) && HAVE_DECL_V4L2_CID_EXPOSURE_METERING)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_EXPOSURE_METERING) == ((V4L2_CID_CAMERA_CLASS_BASE+25)), "V4L2_CID_EXPOSURE_METERING != (V4L2_CID_CAMERA_CLASS_BASE+25)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_EXPOSURE_METERING (V4L2_CID_CAMERA_CLASS_BASE+25)
+#endif
+#if defined(V4L2_CID_SCENE_MODE) || (defined(HAVE_DECL_V4L2_CID_SCENE_MODE) && HAVE_DECL_V4L2_CID_SCENE_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_SCENE_MODE) == ((V4L2_CID_CAMERA_CLASS_BASE+26)), "V4L2_CID_SCENE_MODE != (V4L2_CID_CAMERA_CLASS_BASE+26)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26)
+#endif
+#if defined(V4L2_CID_3A_LOCK) || (defined(HAVE_DECL_V4L2_CID_3A_LOCK) && HAVE_DECL_V4L2_CID_3A_LOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_3A_LOCK) == ((V4L2_CID_CAMERA_CLASS_BASE+27)), "V4L2_CID_3A_LOCK != (V4L2_CID_CAMERA_CLASS_BASE+27)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_3A_LOCK (V4L2_CID_CAMERA_CLASS_BASE+27)
+#endif
+#if defined(V4L2_CID_AUTO_FOCUS_START) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_START) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_START)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTO_FOCUS_START) == ((V4L2_CID_CAMERA_CLASS_BASE+28)), "V4L2_CID_AUTO_FOCUS_START != (V4L2_CID_CAMERA_CLASS_BASE+28)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTO_FOCUS_START (V4L2_CID_CAMERA_CLASS_BASE+28)
+#endif
+#if defined(V4L2_CID_AUTO_FOCUS_STOP) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_STOP) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_STOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTO_FOCUS_STOP) == ((V4L2_CID_CAMERA_CLASS_BASE+29)), "V4L2_CID_AUTO_FOCUS_STOP != (V4L2_CID_CAMERA_CLASS_BASE+29)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTO_FOCUS_STOP (V4L2_CID_CAMERA_CLASS_BASE+29)
+#endif
+#if defined(V4L2_CID_AUTO_FOCUS_STATUS) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_STATUS) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTO_FOCUS_STATUS) == ((V4L2_CID_CAMERA_CLASS_BASE+30)), "V4L2_CID_AUTO_FOCUS_STATUS != (V4L2_CID_CAMERA_CLASS_BASE+30)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTO_FOCUS_STATUS (V4L2_CID_CAMERA_CLASS_BASE+30)
+#endif
+#if defined(V4L2_CID_AUTO_FOCUS_RANGE) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_RANGE) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUTO_FOCUS_RANGE) == ((V4L2_CID_CAMERA_CLASS_BASE+31)), "V4L2_CID_AUTO_FOCUS_RANGE != (V4L2_CID_CAMERA_CLASS_BASE+31)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUTO_FOCUS_RANGE (V4L2_CID_CAMERA_CLASS_BASE+31)
+#endif
+#if defined(V4L2_CID_PAN_SPEED) || (defined(HAVE_DECL_V4L2_CID_PAN_SPEED) && HAVE_DECL_V4L2_CID_PAN_SPEED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PAN_SPEED) == ((V4L2_CID_CAMERA_CLASS_BASE+32)), "V4L2_CID_PAN_SPEED != (V4L2_CID_CAMERA_CLASS_BASE+32)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32)
+#endif
+#if defined(V4L2_CID_TILT_SPEED) || (defined(HAVE_DECL_V4L2_CID_TILT_SPEED) && HAVE_DECL_V4L2_CID_TILT_SPEED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TILT_SPEED) == ((V4L2_CID_CAMERA_CLASS_BASE+33)), "V4L2_CID_TILT_SPEED != (V4L2_CID_CAMERA_CLASS_BASE+33)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33)
+#endif
+#if defined(V4L2_CID_RDS_TX_DEVIATION) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_DEVIATION) && HAVE_DECL_V4L2_CID_RDS_TX_DEVIATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_DEVIATION) == ((V4L2_CID_FM_TX_CLASS_BASE + 1)), "V4L2_CID_RDS_TX_DEVIATION != (V4L2_CID_FM_TX_CLASS_BASE + 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1)
+#endif
+#if defined(V4L2_CID_RDS_TX_PI) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_PI) && HAVE_DECL_V4L2_CID_RDS_TX_PI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_PI) == ((V4L2_CID_FM_TX_CLASS_BASE + 2)), "V4L2_CID_RDS_TX_PI != (V4L2_CID_FM_TX_CLASS_BASE + 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2)
+#endif
+#if defined(V4L2_CID_RDS_TX_PTY) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_PTY) && HAVE_DECL_V4L2_CID_RDS_TX_PTY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_PTY) == ((V4L2_CID_FM_TX_CLASS_BASE + 3)), "V4L2_CID_RDS_TX_PTY != (V4L2_CID_FM_TX_CLASS_BASE + 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3)
+#endif
+#if defined(V4L2_CID_RDS_TX_PS_NAME) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_PS_NAME) && HAVE_DECL_V4L2_CID_RDS_TX_PS_NAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_PS_NAME) == ((V4L2_CID_FM_TX_CLASS_BASE + 5)), "V4L2_CID_RDS_TX_PS_NAME != (V4L2_CID_FM_TX_CLASS_BASE + 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5)
+#endif
+#if defined(V4L2_CID_RDS_TX_RADIO_TEXT) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_RADIO_TEXT) && HAVE_DECL_V4L2_CID_RDS_TX_RADIO_TEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_RADIO_TEXT) == ((V4L2_CID_FM_TX_CLASS_BASE + 6)), "V4L2_CID_RDS_TX_RADIO_TEXT != (V4L2_CID_FM_TX_CLASS_BASE + 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6)
+#endif
+#if defined(V4L2_CID_RDS_TX_MONO_STEREO) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_MONO_STEREO) && HAVE_DECL_V4L2_CID_RDS_TX_MONO_STEREO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_MONO_STEREO) == ((V4L2_CID_FM_TX_CLASS_BASE + 7)), "V4L2_CID_RDS_TX_MONO_STEREO != (V4L2_CID_FM_TX_CLASS_BASE + 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_MONO_STEREO (V4L2_CID_FM_TX_CLASS_BASE + 7)
+#endif
+#if defined(V4L2_CID_RDS_TX_ARTIFICIAL_HEAD) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_ARTIFICIAL_HEAD) && HAVE_DECL_V4L2_CID_RDS_TX_ARTIFICIAL_HEAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_ARTIFICIAL_HEAD) == ((V4L2_CID_FM_TX_CLASS_BASE + 8)), "V4L2_CID_RDS_TX_ARTIFICIAL_HEAD != (V4L2_CID_FM_TX_CLASS_BASE + 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (V4L2_CID_FM_TX_CLASS_BASE + 8)
+#endif
+#if defined(V4L2_CID_RDS_TX_COMPRESSED) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_COMPRESSED) && HAVE_DECL_V4L2_CID_RDS_TX_COMPRESSED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_COMPRESSED) == ((V4L2_CID_FM_TX_CLASS_BASE + 9)), "V4L2_CID_RDS_TX_COMPRESSED != (V4L2_CID_FM_TX_CLASS_BASE + 9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_COMPRESSED (V4L2_CID_FM_TX_CLASS_BASE + 9)
+#endif
+#if defined(V4L2_CID_RDS_TX_DYNAMIC_PTY) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_DYNAMIC_PTY) && HAVE_DECL_V4L2_CID_RDS_TX_DYNAMIC_PTY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_DYNAMIC_PTY) == ((V4L2_CID_FM_TX_CLASS_BASE + 10)), "V4L2_CID_RDS_TX_DYNAMIC_PTY != (V4L2_CID_FM_TX_CLASS_BASE + 10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_DYNAMIC_PTY (V4L2_CID_FM_TX_CLASS_BASE + 10)
+#endif
+#if defined(V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT) && HAVE_DECL_V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT) == ((V4L2_CID_FM_TX_CLASS_BASE + 11)), "V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT != (V4L2_CID_FM_TX_CLASS_BASE + 11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_TX_CLASS_BASE + 11)
+#endif
+#if defined(V4L2_CID_RDS_TX_TRAFFIC_PROGRAM) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_TRAFFIC_PROGRAM) && HAVE_DECL_V4L2_CID_RDS_TX_TRAFFIC_PROGRAM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_TRAFFIC_PROGRAM) == ((V4L2_CID_FM_TX_CLASS_BASE + 12)), "V4L2_CID_RDS_TX_TRAFFIC_PROGRAM != (V4L2_CID_FM_TX_CLASS_BASE + 12)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (V4L2_CID_FM_TX_CLASS_BASE + 12)
+#endif
+#if defined(V4L2_CID_RDS_TX_MUSIC_SPEECH) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_MUSIC_SPEECH) && HAVE_DECL_V4L2_CID_RDS_TX_MUSIC_SPEECH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_MUSIC_SPEECH) == ((V4L2_CID_FM_TX_CLASS_BASE + 13)), "V4L2_CID_RDS_TX_MUSIC_SPEECH != (V4L2_CID_FM_TX_CLASS_BASE + 13)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_MUSIC_SPEECH (V4L2_CID_FM_TX_CLASS_BASE + 13)
+#endif
+#if defined(V4L2_CID_RDS_TX_ALT_FREQS_ENABLE) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_ALT_FREQS_ENABLE) && HAVE_DECL_V4L2_CID_RDS_TX_ALT_FREQS_ENABLE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_ALT_FREQS_ENABLE) == ((V4L2_CID_FM_TX_CLASS_BASE + 14)), "V4L2_CID_RDS_TX_ALT_FREQS_ENABLE != (V4L2_CID_FM_TX_CLASS_BASE + 14)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (V4L2_CID_FM_TX_CLASS_BASE + 14)
+#endif
+#if defined(V4L2_CID_RDS_TX_ALT_FREQS) || (defined(HAVE_DECL_V4L2_CID_RDS_TX_ALT_FREQS) && HAVE_DECL_V4L2_CID_RDS_TX_ALT_FREQS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_TX_ALT_FREQS) == ((V4L2_CID_FM_TX_CLASS_BASE + 15)), "V4L2_CID_RDS_TX_ALT_FREQS != (V4L2_CID_FM_TX_CLASS_BASE + 15)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_TX_ALT_FREQS (V4L2_CID_FM_TX_CLASS_BASE + 15)
+#endif
+#if defined(V4L2_CID_AUDIO_LIMITER_ENABLED) || (defined(HAVE_DECL_V4L2_CID_AUDIO_LIMITER_ENABLED) && HAVE_DECL_V4L2_CID_AUDIO_LIMITER_ENABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_LIMITER_ENABLED) == ((V4L2_CID_FM_TX_CLASS_BASE + 64)), "V4L2_CID_AUDIO_LIMITER_ENABLED != (V4L2_CID_FM_TX_CLASS_BASE + 64)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64)
+#endif
+#if defined(V4L2_CID_AUDIO_LIMITER_RELEASE_TIME) || (defined(HAVE_DECL_V4L2_CID_AUDIO_LIMITER_RELEASE_TIME) && HAVE_DECL_V4L2_CID_AUDIO_LIMITER_RELEASE_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_LIMITER_RELEASE_TIME) == ((V4L2_CID_FM_TX_CLASS_BASE + 65)), "V4L2_CID_AUDIO_LIMITER_RELEASE_TIME != (V4L2_CID_FM_TX_CLASS_BASE + 65)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65)
+#endif
+#if defined(V4L2_CID_AUDIO_LIMITER_DEVIATION) || (defined(HAVE_DECL_V4L2_CID_AUDIO_LIMITER_DEVIATION) && HAVE_DECL_V4L2_CID_AUDIO_LIMITER_DEVIATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_LIMITER_DEVIATION) == ((V4L2_CID_FM_TX_CLASS_BASE + 66)), "V4L2_CID_AUDIO_LIMITER_DEVIATION != (V4L2_CID_FM_TX_CLASS_BASE + 66)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66)
+#endif
+#if defined(V4L2_CID_AUDIO_COMPRESSION_ENABLED) || (defined(HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_ENABLED) && HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_ENABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_COMPRESSION_ENABLED) == ((V4L2_CID_FM_TX_CLASS_BASE + 80)), "V4L2_CID_AUDIO_COMPRESSION_ENABLED != (V4L2_CID_FM_TX_CLASS_BASE + 80)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80)
+#endif
+#if defined(V4L2_CID_AUDIO_COMPRESSION_GAIN) || (defined(HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_GAIN) && HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_COMPRESSION_GAIN) == ((V4L2_CID_FM_TX_CLASS_BASE + 81)), "V4L2_CID_AUDIO_COMPRESSION_GAIN != (V4L2_CID_FM_TX_CLASS_BASE + 81)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81)
+#endif
+#if defined(V4L2_CID_AUDIO_COMPRESSION_THRESHOLD) || (defined(HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_THRESHOLD) && HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_THRESHOLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_COMPRESSION_THRESHOLD) == ((V4L2_CID_FM_TX_CLASS_BASE + 82)), "V4L2_CID_AUDIO_COMPRESSION_THRESHOLD != (V4L2_CID_FM_TX_CLASS_BASE + 82)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82)
+#endif
+#if defined(V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME) || (defined(HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME) && HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME) == ((V4L2_CID_FM_TX_CLASS_BASE + 83)), "V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME != (V4L2_CID_FM_TX_CLASS_BASE + 83)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83)
+#endif
+#if defined(V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME) || (defined(HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME) && HAVE_DECL_V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME) == ((V4L2_CID_FM_TX_CLASS_BASE + 84)), "V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME != (V4L2_CID_FM_TX_CLASS_BASE + 84)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84)
+#endif
+#if defined(V4L2_CID_PILOT_TONE_ENABLED) || (defined(HAVE_DECL_V4L2_CID_PILOT_TONE_ENABLED) && HAVE_DECL_V4L2_CID_PILOT_TONE_ENABLED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PILOT_TONE_ENABLED) == ((V4L2_CID_FM_TX_CLASS_BASE + 96)), "V4L2_CID_PILOT_TONE_ENABLED != (V4L2_CID_FM_TX_CLASS_BASE + 96)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96)
+#endif
+#if defined(V4L2_CID_PILOT_TONE_DEVIATION) || (defined(HAVE_DECL_V4L2_CID_PILOT_TONE_DEVIATION) && HAVE_DECL_V4L2_CID_PILOT_TONE_DEVIATION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PILOT_TONE_DEVIATION) == ((V4L2_CID_FM_TX_CLASS_BASE + 97)), "V4L2_CID_PILOT_TONE_DEVIATION != (V4L2_CID_FM_TX_CLASS_BASE + 97)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97)
+#endif
+#if defined(V4L2_CID_PILOT_TONE_FREQUENCY) || (defined(HAVE_DECL_V4L2_CID_PILOT_TONE_FREQUENCY) && HAVE_DECL_V4L2_CID_PILOT_TONE_FREQUENCY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PILOT_TONE_FREQUENCY) == ((V4L2_CID_FM_TX_CLASS_BASE + 98)), "V4L2_CID_PILOT_TONE_FREQUENCY != (V4L2_CID_FM_TX_CLASS_BASE + 98)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98)
+#endif
+#if defined(V4L2_CID_TUNE_PREEMPHASIS) || (defined(HAVE_DECL_V4L2_CID_TUNE_PREEMPHASIS) && HAVE_DECL_V4L2_CID_TUNE_PREEMPHASIS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TUNE_PREEMPHASIS) == ((V4L2_CID_FM_TX_CLASS_BASE + 112)), "V4L2_CID_TUNE_PREEMPHASIS != (V4L2_CID_FM_TX_CLASS_BASE + 112)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112)
+#endif
+#if defined(V4L2_CID_TUNE_POWER_LEVEL) || (defined(HAVE_DECL_V4L2_CID_TUNE_POWER_LEVEL) && HAVE_DECL_V4L2_CID_TUNE_POWER_LEVEL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TUNE_POWER_LEVEL) == ((V4L2_CID_FM_TX_CLASS_BASE + 113)), "V4L2_CID_TUNE_POWER_LEVEL != (V4L2_CID_FM_TX_CLASS_BASE + 113)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113)
+#endif
+#if defined(V4L2_CID_TUNE_ANTENNA_CAPACITOR) || (defined(HAVE_DECL_V4L2_CID_TUNE_ANTENNA_CAPACITOR) && HAVE_DECL_V4L2_CID_TUNE_ANTENNA_CAPACITOR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TUNE_ANTENNA_CAPACITOR) == ((V4L2_CID_FM_TX_CLASS_BASE + 114)), "V4L2_CID_TUNE_ANTENNA_CAPACITOR != (V4L2_CID_FM_TX_CLASS_BASE + 114)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114)
+#endif
+#if defined(V4L2_CID_FLASH_LED_MODE) || (defined(HAVE_DECL_V4L2_CID_FLASH_LED_MODE) && HAVE_DECL_V4L2_CID_FLASH_LED_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_LED_MODE) == ((V4L2_CID_FLASH_CLASS_BASE + 1)), "V4L2_CID_FLASH_LED_MODE != (V4L2_CID_FLASH_CLASS_BASE + 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1)
+#endif
+#if defined(V4L2_CID_FLASH_STROBE_SOURCE) || (defined(HAVE_DECL_V4L2_CID_FLASH_STROBE_SOURCE) && HAVE_DECL_V4L2_CID_FLASH_STROBE_SOURCE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_STROBE_SOURCE) == ((V4L2_CID_FLASH_CLASS_BASE + 2)), "V4L2_CID_FLASH_STROBE_SOURCE != (V4L2_CID_FLASH_CLASS_BASE + 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2)
+#endif
+#if defined(V4L2_CID_FLASH_STROBE) || (defined(HAVE_DECL_V4L2_CID_FLASH_STROBE) && HAVE_DECL_V4L2_CID_FLASH_STROBE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_STROBE) == ((V4L2_CID_FLASH_CLASS_BASE + 3)), "V4L2_CID_FLASH_STROBE != (V4L2_CID_FLASH_CLASS_BASE + 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3)
+#endif
+#if defined(V4L2_CID_FLASH_STROBE_STOP) || (defined(HAVE_DECL_V4L2_CID_FLASH_STROBE_STOP) && HAVE_DECL_V4L2_CID_FLASH_STROBE_STOP)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_STROBE_STOP) == ((V4L2_CID_FLASH_CLASS_BASE + 4)), "V4L2_CID_FLASH_STROBE_STOP != (V4L2_CID_FLASH_CLASS_BASE + 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4)
+#endif
+#if defined(V4L2_CID_FLASH_STROBE_STATUS) || (defined(HAVE_DECL_V4L2_CID_FLASH_STROBE_STATUS) && HAVE_DECL_V4L2_CID_FLASH_STROBE_STATUS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_STROBE_STATUS) == ((V4L2_CID_FLASH_CLASS_BASE + 5)), "V4L2_CID_FLASH_STROBE_STATUS != (V4L2_CID_FLASH_CLASS_BASE + 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5)
+#endif
+#if defined(V4L2_CID_FLASH_TIMEOUT) || (defined(HAVE_DECL_V4L2_CID_FLASH_TIMEOUT) && HAVE_DECL_V4L2_CID_FLASH_TIMEOUT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_TIMEOUT) == ((V4L2_CID_FLASH_CLASS_BASE + 6)), "V4L2_CID_FLASH_TIMEOUT != (V4L2_CID_FLASH_CLASS_BASE + 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6)
+#endif
+#if defined(V4L2_CID_FLASH_INTENSITY) || (defined(HAVE_DECL_V4L2_CID_FLASH_INTENSITY) && HAVE_DECL_V4L2_CID_FLASH_INTENSITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_INTENSITY) == ((V4L2_CID_FLASH_CLASS_BASE + 7)), "V4L2_CID_FLASH_INTENSITY != (V4L2_CID_FLASH_CLASS_BASE + 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7)
+#endif
+#if defined(V4L2_CID_FLASH_TORCH_INTENSITY) || (defined(HAVE_DECL_V4L2_CID_FLASH_TORCH_INTENSITY) && HAVE_DECL_V4L2_CID_FLASH_TORCH_INTENSITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_TORCH_INTENSITY) == ((V4L2_CID_FLASH_CLASS_BASE + 8)), "V4L2_CID_FLASH_TORCH_INTENSITY != (V4L2_CID_FLASH_CLASS_BASE + 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8)
+#endif
+#if defined(V4L2_CID_FLASH_INDICATOR_INTENSITY) || (defined(HAVE_DECL_V4L2_CID_FLASH_INDICATOR_INTENSITY) && HAVE_DECL_V4L2_CID_FLASH_INDICATOR_INTENSITY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_INDICATOR_INTENSITY) == ((V4L2_CID_FLASH_CLASS_BASE + 9)), "V4L2_CID_FLASH_INDICATOR_INTENSITY != (V4L2_CID_FLASH_CLASS_BASE + 9)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9)
+#endif
+#if defined(V4L2_CID_FLASH_FAULT) || (defined(HAVE_DECL_V4L2_CID_FLASH_FAULT) && HAVE_DECL_V4L2_CID_FLASH_FAULT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_FAULT) == ((V4L2_CID_FLASH_CLASS_BASE + 10)), "V4L2_CID_FLASH_FAULT != (V4L2_CID_FLASH_CLASS_BASE + 10)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10)
+#endif
+#if defined(V4L2_CID_FLASH_CHARGE) || (defined(HAVE_DECL_V4L2_CID_FLASH_CHARGE) && HAVE_DECL_V4L2_CID_FLASH_CHARGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_CHARGE) == ((V4L2_CID_FLASH_CLASS_BASE + 11)), "V4L2_CID_FLASH_CHARGE != (V4L2_CID_FLASH_CLASS_BASE + 11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11)
+#endif
+#if defined(V4L2_CID_FLASH_READY) || (defined(HAVE_DECL_V4L2_CID_FLASH_READY) && HAVE_DECL_V4L2_CID_FLASH_READY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_FLASH_READY) == ((V4L2_CID_FLASH_CLASS_BASE + 12)), "V4L2_CID_FLASH_READY != (V4L2_CID_FLASH_CLASS_BASE + 12)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12)
+#endif
+#if defined(V4L2_CID_VBLANK) || (defined(HAVE_DECL_V4L2_CID_VBLANK) && HAVE_DECL_V4L2_CID_VBLANK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_VBLANK) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)), "V4L2_CID_VBLANK != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_VBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)
+#endif
+#if defined(V4L2_CID_HBLANK) || (defined(HAVE_DECL_V4L2_CID_HBLANK) && HAVE_DECL_V4L2_CID_HBLANK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_HBLANK) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)), "V4L2_CID_HBLANK != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)
+#endif
+#if defined(V4L2_CID_ANALOGUE_GAIN) || (defined(HAVE_DECL_V4L2_CID_ANALOGUE_GAIN) && HAVE_DECL_V4L2_CID_ANALOGUE_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_ANALOGUE_GAIN) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)), "V4L2_CID_ANALOGUE_GAIN != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)
+#endif
+#if defined(V4L2_CID_TEST_PATTERN_RED) || (defined(HAVE_DECL_V4L2_CID_TEST_PATTERN_RED) && HAVE_DECL_V4L2_CID_TEST_PATTERN_RED)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TEST_PATTERN_RED) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 4)), "V4L2_CID_TEST_PATTERN_RED != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TEST_PATTERN_RED (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 4)
+#endif
+#if defined(V4L2_CID_TEST_PATTERN_GREENR) || (defined(HAVE_DECL_V4L2_CID_TEST_PATTERN_GREENR) && HAVE_DECL_V4L2_CID_TEST_PATTERN_GREENR)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TEST_PATTERN_GREENR) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)), "V4L2_CID_TEST_PATTERN_GREENR != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
+#endif
+#if defined(V4L2_CID_TEST_PATTERN_BLUE) || (defined(HAVE_DECL_V4L2_CID_TEST_PATTERN_BLUE) && HAVE_DECL_V4L2_CID_TEST_PATTERN_BLUE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TEST_PATTERN_BLUE) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)), "V4L2_CID_TEST_PATTERN_BLUE != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
+#endif
+#if defined(V4L2_CID_TEST_PATTERN_GREENB) || (defined(HAVE_DECL_V4L2_CID_TEST_PATTERN_GREENB) && HAVE_DECL_V4L2_CID_TEST_PATTERN_GREENB)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TEST_PATTERN_GREENB) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)), "V4L2_CID_TEST_PATTERN_GREENB != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
+#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)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
+#endif
+#if defined(V4L2_CID_PIXEL_RATE) || (defined(HAVE_DECL_V4L2_CID_PIXEL_RATE) && HAVE_DECL_V4L2_CID_PIXEL_RATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_PIXEL_RATE) == ((V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)), "V4L2_CID_PIXEL_RATE != (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
+#endif
+#if defined(V4L2_CID_TEST_PATTERN) || (defined(HAVE_DECL_V4L2_CID_TEST_PATTERN) && HAVE_DECL_V4L2_CID_TEST_PATTERN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TEST_PATTERN) == ((V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)), "V4L2_CID_TEST_PATTERN != (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
+#endif
+#if defined(V4L2_CID_DEINTERLACING_MODE) || (defined(HAVE_DECL_V4L2_CID_DEINTERLACING_MODE) && HAVE_DECL_V4L2_CID_DEINTERLACING_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DEINTERLACING_MODE) == ((V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)), "V4L2_CID_DEINTERLACING_MODE != (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
+#endif
+#if defined(V4L2_CID_DIGITAL_GAIN) || (defined(HAVE_DECL_V4L2_CID_DIGITAL_GAIN) && HAVE_DECL_V4L2_CID_DIGITAL_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DIGITAL_GAIN) == ((V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)), "V4L2_CID_DIGITAL_GAIN != (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
+#endif
+#if defined(V4L2_CID_DV_TX_RGB_RANGE) || (defined(HAVE_DECL_V4L2_CID_DV_TX_RGB_RANGE) && HAVE_DECL_V4L2_CID_DV_TX_RGB_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DV_TX_RGB_RANGE) == ((V4L2_CID_DV_CLASS_BASE + 5)), "V4L2_CID_DV_TX_RGB_RANGE != (V4L2_CID_DV_CLASS_BASE + 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5)
+#endif
+#if defined(V4L2_CID_DV_TX_IT_CONTENT_TYPE) || (defined(HAVE_DECL_V4L2_CID_DV_TX_IT_CONTENT_TYPE) && HAVE_DECL_V4L2_CID_DV_TX_IT_CONTENT_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DV_TX_IT_CONTENT_TYPE) == ((V4L2_CID_DV_CLASS_BASE + 6)), "V4L2_CID_DV_TX_IT_CONTENT_TYPE != (V4L2_CID_DV_CLASS_BASE + 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DV_TX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 6)
+#endif
+#if defined(V4L2_CID_DV_RX_RGB_RANGE) || (defined(HAVE_DECL_V4L2_CID_DV_RX_RGB_RANGE) && HAVE_DECL_V4L2_CID_DV_RX_RGB_RANGE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DV_RX_RGB_RANGE) == ((V4L2_CID_DV_CLASS_BASE + 101)), "V4L2_CID_DV_RX_RGB_RANGE != (V4L2_CID_DV_CLASS_BASE + 101)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
+#endif
+#if defined(V4L2_CID_DV_RX_IT_CONTENT_TYPE) || (defined(HAVE_DECL_V4L2_CID_DV_RX_IT_CONTENT_TYPE) && HAVE_DECL_V4L2_CID_DV_RX_IT_CONTENT_TYPE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DV_RX_IT_CONTENT_TYPE) == ((V4L2_CID_DV_CLASS_BASE + 102)), "V4L2_CID_DV_RX_IT_CONTENT_TYPE != (V4L2_CID_DV_CLASS_BASE + 102)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102)
+#endif
+#if defined(V4L2_CID_TUNE_DEEMPHASIS) || (defined(HAVE_DECL_V4L2_CID_TUNE_DEEMPHASIS) && HAVE_DECL_V4L2_CID_TUNE_DEEMPHASIS)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_TUNE_DEEMPHASIS) == ((V4L2_CID_FM_RX_CLASS_BASE + 1)), "V4L2_CID_TUNE_DEEMPHASIS != (V4L2_CID_FM_RX_CLASS_BASE + 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1)
+#endif
+#if defined(V4L2_CID_RDS_RECEPTION) || (defined(HAVE_DECL_V4L2_CID_RDS_RECEPTION) && HAVE_DECL_V4L2_CID_RDS_RECEPTION)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_RECEPTION) == ((V4L2_CID_FM_RX_CLASS_BASE + 2)), "V4L2_CID_RDS_RECEPTION != (V4L2_CID_FM_RX_CLASS_BASE + 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2)
+#endif
+#if defined(V4L2_CID_RDS_RX_PTY) || (defined(HAVE_DECL_V4L2_CID_RDS_RX_PTY) && HAVE_DECL_V4L2_CID_RDS_RX_PTY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_RX_PTY) == ((V4L2_CID_FM_RX_CLASS_BASE + 3)), "V4L2_CID_RDS_RX_PTY != (V4L2_CID_FM_RX_CLASS_BASE + 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_RX_PTY (V4L2_CID_FM_RX_CLASS_BASE + 3)
+#endif
+#if defined(V4L2_CID_RDS_RX_PS_NAME) || (defined(HAVE_DECL_V4L2_CID_RDS_RX_PS_NAME) && HAVE_DECL_V4L2_CID_RDS_RX_PS_NAME)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_RX_PS_NAME) == ((V4L2_CID_FM_RX_CLASS_BASE + 4)), "V4L2_CID_RDS_RX_PS_NAME != (V4L2_CID_FM_RX_CLASS_BASE + 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_RX_PS_NAME (V4L2_CID_FM_RX_CLASS_BASE + 4)
+#endif
+#if defined(V4L2_CID_RDS_RX_RADIO_TEXT) || (defined(HAVE_DECL_V4L2_CID_RDS_RX_RADIO_TEXT) && HAVE_DECL_V4L2_CID_RDS_RX_RADIO_TEXT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_RX_RADIO_TEXT) == ((V4L2_CID_FM_RX_CLASS_BASE + 5)), "V4L2_CID_RDS_RX_RADIO_TEXT != (V4L2_CID_FM_RX_CLASS_BASE + 5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_RX_RADIO_TEXT (V4L2_CID_FM_RX_CLASS_BASE + 5)
+#endif
+#if defined(V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT) || (defined(HAVE_DECL_V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT) && HAVE_DECL_V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT) == ((V4L2_CID_FM_RX_CLASS_BASE + 6)), "V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT != (V4L2_CID_FM_RX_CLASS_BASE + 6)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_RX_CLASS_BASE + 6)
+#endif
+#if defined(V4L2_CID_RDS_RX_TRAFFIC_PROGRAM) || (defined(HAVE_DECL_V4L2_CID_RDS_RX_TRAFFIC_PROGRAM) && HAVE_DECL_V4L2_CID_RDS_RX_TRAFFIC_PROGRAM)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_RX_TRAFFIC_PROGRAM) == ((V4L2_CID_FM_RX_CLASS_BASE + 7)), "V4L2_CID_RDS_RX_TRAFFIC_PROGRAM != (V4L2_CID_FM_RX_CLASS_BASE + 7)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (V4L2_CID_FM_RX_CLASS_BASE + 7)
+#endif
+#if defined(V4L2_CID_RDS_RX_MUSIC_SPEECH) || (defined(HAVE_DECL_V4L2_CID_RDS_RX_MUSIC_SPEECH) && HAVE_DECL_V4L2_CID_RDS_RX_MUSIC_SPEECH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RDS_RX_MUSIC_SPEECH) == ((V4L2_CID_FM_RX_CLASS_BASE + 8)), "V4L2_CID_RDS_RX_MUSIC_SPEECH != (V4L2_CID_FM_RX_CLASS_BASE + 8)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RDS_RX_MUSIC_SPEECH (V4L2_CID_FM_RX_CLASS_BASE + 8)
+#endif
+#if defined(V4L2_CID_RF_TUNER_BANDWIDTH_AUTO) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_BANDWIDTH_AUTO) && HAVE_DECL_V4L2_CID_RF_TUNER_BANDWIDTH_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_BANDWIDTH_AUTO) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 11)), "V4L2_CID_RF_TUNER_BANDWIDTH_AUTO != (V4L2_CID_RF_TUNER_CLASS_BASE + 11)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11)
+#endif
+#if defined(V4L2_CID_RF_TUNER_BANDWIDTH) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_BANDWIDTH) && HAVE_DECL_V4L2_CID_RF_TUNER_BANDWIDTH)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_BANDWIDTH) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 12)), "V4L2_CID_RF_TUNER_BANDWIDTH != (V4L2_CID_RF_TUNER_CLASS_BASE + 12)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12)
+#endif
+#if defined(V4L2_CID_RF_TUNER_RF_GAIN) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_RF_GAIN) && HAVE_DECL_V4L2_CID_RF_TUNER_RF_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_RF_GAIN) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 32)), "V4L2_CID_RF_TUNER_RF_GAIN != (V4L2_CID_RF_TUNER_CLASS_BASE + 32)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_RF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 32)
+#endif
+#if defined(V4L2_CID_RF_TUNER_LNA_GAIN_AUTO) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_LNA_GAIN_AUTO) && HAVE_DECL_V4L2_CID_RF_TUNER_LNA_GAIN_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_LNA_GAIN_AUTO) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 41)), "V4L2_CID_RF_TUNER_LNA_GAIN_AUTO != (V4L2_CID_RF_TUNER_CLASS_BASE + 41)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41)
+#endif
+#if defined(V4L2_CID_RF_TUNER_LNA_GAIN) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_LNA_GAIN) && HAVE_DECL_V4L2_CID_RF_TUNER_LNA_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_LNA_GAIN) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 42)), "V4L2_CID_RF_TUNER_LNA_GAIN != (V4L2_CID_RF_TUNER_CLASS_BASE + 42)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42)
+#endif
+#if defined(V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO) && HAVE_DECL_V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 51)), "V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO != (V4L2_CID_RF_TUNER_CLASS_BASE + 51)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51)
+#endif
+#if defined(V4L2_CID_RF_TUNER_MIXER_GAIN) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_MIXER_GAIN) && HAVE_DECL_V4L2_CID_RF_TUNER_MIXER_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_MIXER_GAIN) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 52)), "V4L2_CID_RF_TUNER_MIXER_GAIN != (V4L2_CID_RF_TUNER_CLASS_BASE + 52)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_MIXER_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 52)
+#endif
+#if defined(V4L2_CID_RF_TUNER_IF_GAIN_AUTO) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_IF_GAIN_AUTO) && HAVE_DECL_V4L2_CID_RF_TUNER_IF_GAIN_AUTO)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_IF_GAIN_AUTO) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 61)), "V4L2_CID_RF_TUNER_IF_GAIN_AUTO != (V4L2_CID_RF_TUNER_CLASS_BASE + 61)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_IF_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 61)
+#endif
+#if defined(V4L2_CID_RF_TUNER_IF_GAIN) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_IF_GAIN) && HAVE_DECL_V4L2_CID_RF_TUNER_IF_GAIN)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_IF_GAIN) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 62)), "V4L2_CID_RF_TUNER_IF_GAIN != (V4L2_CID_RF_TUNER_CLASS_BASE + 62)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62)
+#endif
+#if defined(V4L2_CID_RF_TUNER_PLL_LOCK) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_PLL_LOCK) && HAVE_DECL_V4L2_CID_RF_TUNER_PLL_LOCK)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_RF_TUNER_PLL_LOCK) == ((V4L2_CID_RF_TUNER_CLASS_BASE + 91)), "V4L2_CID_RF_TUNER_PLL_LOCK != (V4L2_CID_RF_TUNER_CLASS_BASE + 91)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91)
+#endif
+#if defined(V4L2_CID_DETECT_MD_MODE) || (defined(HAVE_DECL_V4L2_CID_DETECT_MD_MODE) && HAVE_DECL_V4L2_CID_DETECT_MD_MODE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DETECT_MD_MODE) == ((V4L2_CID_DETECT_CLASS_BASE + 1)), "V4L2_CID_DETECT_MD_MODE != (V4L2_CID_DETECT_CLASS_BASE + 1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DETECT_MD_MODE (V4L2_CID_DETECT_CLASS_BASE + 1)
+#endif
+#if defined(V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD) || (defined(HAVE_DECL_V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD) && HAVE_DECL_V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD) == ((V4L2_CID_DETECT_CLASS_BASE + 2)), "V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD != (V4L2_CID_DETECT_CLASS_BASE + 2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (V4L2_CID_DETECT_CLASS_BASE + 2)
+#endif
+#if defined(V4L2_CID_DETECT_MD_THRESHOLD_GRID) || (defined(HAVE_DECL_V4L2_CID_DETECT_MD_THRESHOLD_GRID) && HAVE_DECL_V4L2_CID_DETECT_MD_THRESHOLD_GRID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DETECT_MD_THRESHOLD_GRID) == ((V4L2_CID_DETECT_CLASS_BASE + 3)), "V4L2_CID_DETECT_MD_THRESHOLD_GRID != (V4L2_CID_DETECT_CLASS_BASE + 3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
+#endif
+#if defined(V4L2_CID_DETECT_MD_REGION_GRID) || (defined(HAVE_DECL_V4L2_CID_DETECT_MD_REGION_GRID) && HAVE_DECL_V4L2_CID_DETECT_MD_REGION_GRID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_CID_DETECT_MD_REGION_GRID) == ((V4L2_CID_DETECT_CLASS_BASE + 4)), "V4L2_CID_DETECT_MD_REGION_GRID != (V4L2_CID_DETECT_CLASS_BASE + 4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
+#endif
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_control_ids[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat v4l2_control_ids[] = {
- XLAT(0),
-#if defined(V4L2_CID_BRIGHTNESS) || (defined(HAVE_DECL_V4L2_CID_BRIGHTNESS) && HAVE_DECL_V4L2_CID_BRIGHTNESS)
- XLAT(V4L2_CID_BRIGHTNESS),
-#endif
-#if defined(V4L2_CID_CONTRAST) || (defined(HAVE_DECL_V4L2_CID_CONTRAST) && HAVE_DECL_V4L2_CID_CONTRAST)
- XLAT(V4L2_CID_CONTRAST),
-#endif
-#if defined(V4L2_CID_SATURATION) || (defined(HAVE_DECL_V4L2_CID_SATURATION) && HAVE_DECL_V4L2_CID_SATURATION)
- XLAT(V4L2_CID_SATURATION),
-#endif
-#if defined(V4L2_CID_HUE) || (defined(HAVE_DECL_V4L2_CID_HUE) && HAVE_DECL_V4L2_CID_HUE)
- XLAT(V4L2_CID_HUE),
-#endif
-#if defined(V4L2_CID_AUDIO_VOLUME) || (defined(HAVE_DECL_V4L2_CID_AUDIO_VOLUME) && HAVE_DECL_V4L2_CID_AUDIO_VOLUME)
- XLAT(V4L2_CID_AUDIO_VOLUME),
-#endif
-#if defined(V4L2_CID_AUDIO_BALANCE) || (defined(HAVE_DECL_V4L2_CID_AUDIO_BALANCE) && HAVE_DECL_V4L2_CID_AUDIO_BALANCE)
- XLAT(V4L2_CID_AUDIO_BALANCE),
-#endif
-#if defined(V4L2_CID_AUDIO_BASS) || (defined(HAVE_DECL_V4L2_CID_AUDIO_BASS) && HAVE_DECL_V4L2_CID_AUDIO_BASS)
- XLAT(V4L2_CID_AUDIO_BASS),
-#endif
-#if defined(V4L2_CID_AUDIO_TREBLE) || (defined(HAVE_DECL_V4L2_CID_AUDIO_TREBLE) && HAVE_DECL_V4L2_CID_AUDIO_TREBLE)
- XLAT(V4L2_CID_AUDIO_TREBLE),
-#endif
-#if defined(V4L2_CID_AUDIO_MUTE) || (defined(HAVE_DECL_V4L2_CID_AUDIO_MUTE) && HAVE_DECL_V4L2_CID_AUDIO_MUTE)
- XLAT(V4L2_CID_AUDIO_MUTE),
-#endif
-#if defined(V4L2_CID_AUDIO_LOUDNESS) || (defined(HAVE_DECL_V4L2_CID_AUDIO_LOUDNESS) && HAVE_DECL_V4L2_CID_AUDIO_LOUDNESS)
- XLAT(V4L2_CID_AUDIO_LOUDNESS),
-#endif
-#if defined(V4L2_CID_BLACK_LEVEL) || (defined(HAVE_DECL_V4L2_CID_BLACK_LEVEL) && HAVE_DECL_V4L2_CID_BLACK_LEVEL)
- XLAT(V4L2_CID_BLACK_LEVEL),
-#endif
-#if defined(V4L2_CID_AUTO_WHITE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_AUTO_WHITE_BALANCE) && HAVE_DECL_V4L2_CID_AUTO_WHITE_BALANCE)
- XLAT(V4L2_CID_AUTO_WHITE_BALANCE),
-#endif
-#if defined(V4L2_CID_DO_WHITE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_DO_WHITE_BALANCE) && HAVE_DECL_V4L2_CID_DO_WHITE_BALANCE)
- XLAT(V4L2_CID_DO_WHITE_BALANCE),
-#endif
-#if defined(V4L2_CID_RED_BALANCE) || (defined(HAVE_DECL_V4L2_CID_RED_BALANCE) && HAVE_DECL_V4L2_CID_RED_BALANCE)
- XLAT(V4L2_CID_RED_BALANCE),
-#endif
-#if defined(V4L2_CID_BLUE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_BLUE_BALANCE) && HAVE_DECL_V4L2_CID_BLUE_BALANCE)
- XLAT(V4L2_CID_BLUE_BALANCE),
-#endif
-#if defined(V4L2_CID_GAMMA) || (defined(HAVE_DECL_V4L2_CID_GAMMA) && HAVE_DECL_V4L2_CID_GAMMA)
- XLAT(V4L2_CID_GAMMA),
-#endif
-#if defined(V4L2_CID_WHITENESS) || (defined(HAVE_DECL_V4L2_CID_WHITENESS) && HAVE_DECL_V4L2_CID_WHITENESS)
- XLAT(V4L2_CID_WHITENESS),
-#endif
-#if defined(V4L2_CID_EXPOSURE) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE) && HAVE_DECL_V4L2_CID_EXPOSURE)
- XLAT(V4L2_CID_EXPOSURE),
-#endif
-#if defined(V4L2_CID_AUTOGAIN) || (defined(HAVE_DECL_V4L2_CID_AUTOGAIN) && HAVE_DECL_V4L2_CID_AUTOGAIN)
- XLAT(V4L2_CID_AUTOGAIN),
-#endif
-#if defined(V4L2_CID_GAIN) || (defined(HAVE_DECL_V4L2_CID_GAIN) && HAVE_DECL_V4L2_CID_GAIN)
- XLAT(V4L2_CID_GAIN),
-#endif
-#if defined(V4L2_CID_HFLIP) || (defined(HAVE_DECL_V4L2_CID_HFLIP) && HAVE_DECL_V4L2_CID_HFLIP)
- XLAT(V4L2_CID_HFLIP),
-#endif
-#if defined(V4L2_CID_VFLIP) || (defined(HAVE_DECL_V4L2_CID_VFLIP) && HAVE_DECL_V4L2_CID_VFLIP)
- XLAT(V4L2_CID_VFLIP),
-#endif
-#if defined(V4L2_CID_HCENTER) || (defined(HAVE_DECL_V4L2_CID_HCENTER) && HAVE_DECL_V4L2_CID_HCENTER)
- XLAT(V4L2_CID_HCENTER),
-#endif
-#if defined(V4L2_CID_VCENTER) || (defined(HAVE_DECL_V4L2_CID_VCENTER) && HAVE_DECL_V4L2_CID_VCENTER)
- XLAT(V4L2_CID_VCENTER),
-#endif
-#if defined(V4L2_CID_POWER_LINE_FREQUENCY) || (defined(HAVE_DECL_V4L2_CID_POWER_LINE_FREQUENCY) && HAVE_DECL_V4L2_CID_POWER_LINE_FREQUENCY)
- XLAT(V4L2_CID_POWER_LINE_FREQUENCY),
-#endif
-#if defined(V4L2_CID_HUE_AUTO) || (defined(HAVE_DECL_V4L2_CID_HUE_AUTO) && HAVE_DECL_V4L2_CID_HUE_AUTO)
- XLAT(V4L2_CID_HUE_AUTO),
-#endif
-#if defined(V4L2_CID_WHITE_BALANCE_TEMPERATURE) || (defined(HAVE_DECL_V4L2_CID_WHITE_BALANCE_TEMPERATURE) && HAVE_DECL_V4L2_CID_WHITE_BALANCE_TEMPERATURE)
- XLAT(V4L2_CID_WHITE_BALANCE_TEMPERATURE),
-#endif
-#if defined(V4L2_CID_SHARPNESS) || (defined(HAVE_DECL_V4L2_CID_SHARPNESS) && HAVE_DECL_V4L2_CID_SHARPNESS)
- XLAT(V4L2_CID_SHARPNESS),
-#endif
-#if defined(V4L2_CID_BACKLIGHT_COMPENSATION) || (defined(HAVE_DECL_V4L2_CID_BACKLIGHT_COMPENSATION) && HAVE_DECL_V4L2_CID_BACKLIGHT_COMPENSATION)
- XLAT(V4L2_CID_BACKLIGHT_COMPENSATION),
-#endif
-#if defined(V4L2_CID_CHROMA_AGC) || (defined(HAVE_DECL_V4L2_CID_CHROMA_AGC) && HAVE_DECL_V4L2_CID_CHROMA_AGC)
- XLAT(V4L2_CID_CHROMA_AGC),
-#endif
-#if defined(V4L2_CID_CHROMA_GAIN) || (defined(HAVE_DECL_V4L2_CID_CHROMA_GAIN) && HAVE_DECL_V4L2_CID_CHROMA_GAIN)
- XLAT(V4L2_CID_CHROMA_GAIN),
-#endif
-#if defined(V4L2_CID_COLOR_KILLER) || (defined(HAVE_DECL_V4L2_CID_COLOR_KILLER) && HAVE_DECL_V4L2_CID_COLOR_KILLER)
- XLAT(V4L2_CID_COLOR_KILLER),
-#endif
-#if defined(V4L2_CID_COLORFX) || (defined(HAVE_DECL_V4L2_CID_COLORFX) && HAVE_DECL_V4L2_CID_COLORFX)
- XLAT(V4L2_CID_COLORFX),
-#endif
-#if defined(V4L2_CID_COLORFX_CBCR) || (defined(HAVE_DECL_V4L2_CID_COLORFX_CBCR) && HAVE_DECL_V4L2_CID_COLORFX_CBCR)
- XLAT(V4L2_CID_COLORFX_CBCR),
-#endif
-#if defined(V4L2_CID_AUTOBRIGHTNESS) || (defined(HAVE_DECL_V4L2_CID_AUTOBRIGHTNESS) && HAVE_DECL_V4L2_CID_AUTOBRIGHTNESS)
- XLAT(V4L2_CID_AUTOBRIGHTNESS),
-#endif
-#if defined(V4L2_CID_BAND_STOP_FILTER) || (defined(HAVE_DECL_V4L2_CID_BAND_STOP_FILTER) && HAVE_DECL_V4L2_CID_BAND_STOP_FILTER)
- XLAT(V4L2_CID_BAND_STOP_FILTER),
-#endif
-#if defined(V4L2_CID_ROTATE) || (defined(HAVE_DECL_V4L2_CID_ROTATE) && HAVE_DECL_V4L2_CID_ROTATE)
- XLAT(V4L2_CID_ROTATE),
-#endif
-#if defined(V4L2_CID_BG_COLOR) || (defined(HAVE_DECL_V4L2_CID_BG_COLOR) && HAVE_DECL_V4L2_CID_BG_COLOR)
- XLAT(V4L2_CID_BG_COLOR),
-#endif
-#if defined(V4L2_CID_ILLUMINATORS_1) || (defined(HAVE_DECL_V4L2_CID_ILLUMINATORS_1) && HAVE_DECL_V4L2_CID_ILLUMINATORS_1)
- XLAT(V4L2_CID_ILLUMINATORS_1),
-#endif
-#if defined(V4L2_CID_ILLUMINATORS_2) || (defined(HAVE_DECL_V4L2_CID_ILLUMINATORS_2) && HAVE_DECL_V4L2_CID_ILLUMINATORS_2)
- XLAT(V4L2_CID_ILLUMINATORS_2),
-#endif
-#if defined(V4L2_CID_MIN_BUFFERS_FOR_CAPTURE) || (defined(HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_CAPTURE) && HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_CAPTURE)
- XLAT(V4L2_CID_MIN_BUFFERS_FOR_CAPTURE),
-#endif
-#if defined(V4L2_CID_MIN_BUFFERS_FOR_OUTPUT) || (defined(HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_OUTPUT) && HAVE_DECL_V4L2_CID_MIN_BUFFERS_FOR_OUTPUT)
- XLAT(V4L2_CID_MIN_BUFFERS_FOR_OUTPUT),
-#endif
-#if defined(V4L2_CID_ALPHA_COMPONENT) || (defined(HAVE_DECL_V4L2_CID_ALPHA_COMPONENT) && HAVE_DECL_V4L2_CID_ALPHA_COMPONENT)
- XLAT(V4L2_CID_ALPHA_COMPONENT),
-#endif
-#if defined(V4L2_CID_EXPOSURE_AUTO) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_AUTO) && HAVE_DECL_V4L2_CID_EXPOSURE_AUTO)
- XLAT(V4L2_CID_EXPOSURE_AUTO),
-#endif
-#if defined(V4L2_CID_EXPOSURE_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_ABSOLUTE) && HAVE_DECL_V4L2_CID_EXPOSURE_ABSOLUTE)
- XLAT(V4L2_CID_EXPOSURE_ABSOLUTE),
-#endif
-#if defined(V4L2_CID_EXPOSURE_AUTO_PRIORITY) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_AUTO_PRIORITY) && HAVE_DECL_V4L2_CID_EXPOSURE_AUTO_PRIORITY)
- XLAT(V4L2_CID_EXPOSURE_AUTO_PRIORITY),
-#endif
-#if defined(V4L2_CID_PAN_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_PAN_RELATIVE) && HAVE_DECL_V4L2_CID_PAN_RELATIVE)
- XLAT(V4L2_CID_PAN_RELATIVE),
-#endif
-#if defined(V4L2_CID_TILT_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_TILT_RELATIVE) && HAVE_DECL_V4L2_CID_TILT_RELATIVE)
- XLAT(V4L2_CID_TILT_RELATIVE),
-#endif
-#if defined(V4L2_CID_PAN_RESET) || (defined(HAVE_DECL_V4L2_CID_PAN_RESET) && HAVE_DECL_V4L2_CID_PAN_RESET)
- XLAT(V4L2_CID_PAN_RESET),
-#endif
-#if defined(V4L2_CID_TILT_RESET) || (defined(HAVE_DECL_V4L2_CID_TILT_RESET) && HAVE_DECL_V4L2_CID_TILT_RESET)
- XLAT(V4L2_CID_TILT_RESET),
-#endif
-#if defined(V4L2_CID_PAN_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_PAN_ABSOLUTE) && HAVE_DECL_V4L2_CID_PAN_ABSOLUTE)
- XLAT(V4L2_CID_PAN_ABSOLUTE),
-#endif
-#if defined(V4L2_CID_TILT_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_TILT_ABSOLUTE) && HAVE_DECL_V4L2_CID_TILT_ABSOLUTE)
- XLAT(V4L2_CID_TILT_ABSOLUTE),
-#endif
-#if defined(V4L2_CID_FOCUS_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_FOCUS_ABSOLUTE) && HAVE_DECL_V4L2_CID_FOCUS_ABSOLUTE)
- XLAT(V4L2_CID_FOCUS_ABSOLUTE),
-#endif
-#if defined(V4L2_CID_FOCUS_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_FOCUS_RELATIVE) && HAVE_DECL_V4L2_CID_FOCUS_RELATIVE)
- XLAT(V4L2_CID_FOCUS_RELATIVE),
-#endif
-#if defined(V4L2_CID_FOCUS_AUTO) || (defined(HAVE_DECL_V4L2_CID_FOCUS_AUTO) && HAVE_DECL_V4L2_CID_FOCUS_AUTO)
- XLAT(V4L2_CID_FOCUS_AUTO),
-#endif
-#if defined(V4L2_CID_ZOOM_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_ZOOM_ABSOLUTE) && HAVE_DECL_V4L2_CID_ZOOM_ABSOLUTE)
- XLAT(V4L2_CID_ZOOM_ABSOLUTE),
-#endif
-#if defined(V4L2_CID_ZOOM_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_ZOOM_RELATIVE) && HAVE_DECL_V4L2_CID_ZOOM_RELATIVE)
- XLAT(V4L2_CID_ZOOM_RELATIVE),
-#endif
-#if defined(V4L2_CID_ZOOM_CONTINUOUS) || (defined(HAVE_DECL_V4L2_CID_ZOOM_CONTINUOUS) && HAVE_DECL_V4L2_CID_ZOOM_CONTINUOUS)
- XLAT(V4L2_CID_ZOOM_CONTINUOUS),
-#endif
-#if defined(V4L2_CID_PRIVACY) || (defined(HAVE_DECL_V4L2_CID_PRIVACY) && HAVE_DECL_V4L2_CID_PRIVACY)
- XLAT(V4L2_CID_PRIVACY),
-#endif
-#if defined(V4L2_CID_IRIS_ABSOLUTE) || (defined(HAVE_DECL_V4L2_CID_IRIS_ABSOLUTE) && HAVE_DECL_V4L2_CID_IRIS_ABSOLUTE)
- XLAT(V4L2_CID_IRIS_ABSOLUTE),
-#endif
-#if defined(V4L2_CID_IRIS_RELATIVE) || (defined(HAVE_DECL_V4L2_CID_IRIS_RELATIVE) && HAVE_DECL_V4L2_CID_IRIS_RELATIVE)
- XLAT(V4L2_CID_IRIS_RELATIVE),
-#endif
-#if defined(V4L2_CID_AUTO_EXPOSURE_BIAS) || (defined(HAVE_DECL_V4L2_CID_AUTO_EXPOSURE_BIAS) && HAVE_DECL_V4L2_CID_AUTO_EXPOSURE_BIAS)
- XLAT(V4L2_CID_AUTO_EXPOSURE_BIAS),
-#endif
-#if defined(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) || (defined(HAVE_DECL_V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) && HAVE_DECL_V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE)
- XLAT(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE),
-#endif
-#if defined(V4L2_CID_WIDE_DYNAMIC_RANGE) || (defined(HAVE_DECL_V4L2_CID_WIDE_DYNAMIC_RANGE) && HAVE_DECL_V4L2_CID_WIDE_DYNAMIC_RANGE)
- XLAT(V4L2_CID_WIDE_DYNAMIC_RANGE),
-#endif
-#if defined(V4L2_CID_IMAGE_STABILIZATION) || (defined(HAVE_DECL_V4L2_CID_IMAGE_STABILIZATION) && HAVE_DECL_V4L2_CID_IMAGE_STABILIZATION)
- XLAT(V4L2_CID_IMAGE_STABILIZATION),
-#endif
-#if defined(V4L2_CID_ISO_SENSITIVITY) || (defined(HAVE_DECL_V4L2_CID_ISO_SENSITIVITY) && HAVE_DECL_V4L2_CID_ISO_SENSITIVITY)
- XLAT(V4L2_CID_ISO_SENSITIVITY),
-#endif
-#if defined(V4L2_CID_ISO_SENSITIVITY_AUTO) || (defined(HAVE_DECL_V4L2_CID_ISO_SENSITIVITY_AUTO) && HAVE_DECL_V4L2_CID_ISO_SENSITIVITY_AUTO)
- XLAT(V4L2_CID_ISO_SENSITIVITY_AUTO),
-#endif
-#if defined(V4L2_CID_EXPOSURE_METERING) || (defined(HAVE_DECL_V4L2_CID_EXPOSURE_METERING) && HAVE_DECL_V4L2_CID_EXPOSURE_METERING)
- XLAT(V4L2_CID_EXPOSURE_METERING),
-#endif
-#if defined(V4L2_CID_SCENE_MODE) || (defined(HAVE_DECL_V4L2_CID_SCENE_MODE) && HAVE_DECL_V4L2_CID_SCENE_MODE)
- XLAT(V4L2_CID_SCENE_MODE),
-#endif
-#if defined(V4L2_CID_3A_LOCK) || (defined(HAVE_DECL_V4L2_CID_3A_LOCK) && HAVE_DECL_V4L2_CID_3A_LOCK)
- XLAT(V4L2_CID_3A_LOCK),
-#endif
-#if defined(V4L2_CID_AUTO_FOCUS_START) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_START) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_START)
- XLAT(V4L2_CID_AUTO_FOCUS_START),
-#endif
-#if defined(V4L2_CID_AUTO_FOCUS_STOP) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_STOP) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_STOP)
- XLAT(V4L2_CID_AUTO_FOCUS_STOP),
-#endif
-#if defined(V4L2_CID_AUTO_FOCUS_STATUS) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_STATUS) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_STATUS)
- XLAT(V4L2_CID_AUTO_FOCUS_STATUS),
-#endif
-#if defined(V4L2_CID_AUTO_FOCUS_RANGE) || (defined(HAVE_DECL_V4L2_CID_AUTO_FOCUS_RANGE) && HAVE_DECL_V4L2_CID_AUTO_FOCUS_RANGE)
- XLAT(V4L2_CID_AUTO_FOCUS_RANGE),
-#endif
-#if defined(V4L2_CID_PRIVATE_BASE) || (defined(HAVE_DECL_V4L2_CID_PRIVATE_BASE) && HAVE_DECL_V4L2_CID_PRIVATE_BASE)
- XLAT(V4L2_CID_PRIVATE_BASE),
-#endif
+ XLAT(V4L2_CID_BRIGHTNESS),
+ XLAT(V4L2_CID_CONTRAST),
+ XLAT(V4L2_CID_SATURATION),
+ XLAT(V4L2_CID_HUE),
+ XLAT(V4L2_CID_AUDIO_VOLUME),
+ XLAT(V4L2_CID_AUDIO_BALANCE),
+ XLAT(V4L2_CID_AUDIO_BASS),
+ XLAT(V4L2_CID_AUDIO_TREBLE),
+ XLAT(V4L2_CID_AUDIO_MUTE),
+ XLAT(V4L2_CID_AUDIO_LOUDNESS),
+ XLAT(V4L2_CID_BLACK_LEVEL),
+ XLAT(V4L2_CID_AUTO_WHITE_BALANCE),
+ XLAT(V4L2_CID_DO_WHITE_BALANCE),
+ XLAT(V4L2_CID_RED_BALANCE),
+ XLAT(V4L2_CID_BLUE_BALANCE),
+ XLAT(V4L2_CID_GAMMA),
+ XLAT(V4L2_CID_EXPOSURE),
+ XLAT(V4L2_CID_AUTOGAIN),
+ XLAT(V4L2_CID_GAIN),
+ XLAT(V4L2_CID_HFLIP),
+ XLAT(V4L2_CID_VFLIP),
+ XLAT(V4L2_CID_HCENTER),
+ XLAT(V4L2_CID_VCENTER),
+ XLAT(V4L2_CID_POWER_LINE_FREQUENCY),
+ XLAT(V4L2_CID_HUE_AUTO),
+ XLAT(V4L2_CID_WHITE_BALANCE_TEMPERATURE),
+ XLAT(V4L2_CID_SHARPNESS),
+ XLAT(V4L2_CID_BACKLIGHT_COMPENSATION),
+ XLAT(V4L2_CID_CHROMA_AGC),
+ XLAT(V4L2_CID_COLOR_KILLER),
+ XLAT(V4L2_CID_COLORFX),
+ XLAT(V4L2_CID_AUTOBRIGHTNESS),
+ XLAT(V4L2_CID_BAND_STOP_FILTER),
+ XLAT(V4L2_CID_ROTATE),
+ XLAT(V4L2_CID_BG_COLOR),
+ XLAT(V4L2_CID_CHROMA_GAIN),
+ XLAT(V4L2_CID_ILLUMINATORS_1),
+ XLAT(V4L2_CID_ILLUMINATORS_2),
+ XLAT(V4L2_CID_MIN_BUFFERS_FOR_CAPTURE),
+ XLAT(V4L2_CID_MIN_BUFFERS_FOR_OUTPUT),
+ XLAT(V4L2_CID_ALPHA_COMPONENT),
+ XLAT(V4L2_CID_COLORFX_CBCR),
+
+
+ XLAT(V4L2_CID_MPEG_STREAM_TYPE),
+ XLAT(V4L2_CID_MPEG_STREAM_PID_PMT),
+ XLAT(V4L2_CID_MPEG_STREAM_PID_AUDIO),
+ XLAT(V4L2_CID_MPEG_STREAM_PID_VIDEO),
+ XLAT(V4L2_CID_MPEG_STREAM_PID_PCR),
+ XLAT(V4L2_CID_MPEG_STREAM_PES_ID_AUDIO),
+ XLAT(V4L2_CID_MPEG_STREAM_PES_ID_VIDEO),
+ XLAT(V4L2_CID_MPEG_STREAM_VBI_FMT),
+
+ XLAT(V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ),
+ XLAT(V4L2_CID_MPEG_AUDIO_ENCODING),
+ XLAT(V4L2_CID_MPEG_AUDIO_L1_BITRATE),
+ XLAT(V4L2_CID_MPEG_AUDIO_L2_BITRATE),
+ XLAT(V4L2_CID_MPEG_AUDIO_L3_BITRATE),
+ XLAT(V4L2_CID_MPEG_AUDIO_MODE),
+ XLAT(V4L2_CID_MPEG_AUDIO_MODE_EXTENSION),
+ XLAT(V4L2_CID_MPEG_AUDIO_EMPHASIS),
+ XLAT(V4L2_CID_MPEG_AUDIO_CRC),
+ XLAT(V4L2_CID_MPEG_AUDIO_MUTE),
+ XLAT(V4L2_CID_MPEG_AUDIO_AAC_BITRATE),
+ XLAT(V4L2_CID_MPEG_AUDIO_AC3_BITRATE),
+ XLAT(V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK),
+ XLAT(V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK),
+
+ XLAT(V4L2_CID_MPEG_VIDEO_ENCODING),
+ XLAT(V4L2_CID_MPEG_VIDEO_ASPECT),
+ XLAT(V4L2_CID_MPEG_VIDEO_B_FRAMES),
+ XLAT(V4L2_CID_MPEG_VIDEO_GOP_SIZE),
+ XLAT(V4L2_CID_MPEG_VIDEO_GOP_CLOSURE),
+ XLAT(V4L2_CID_MPEG_VIDEO_PULLDOWN),
+ XLAT(V4L2_CID_MPEG_VIDEO_BITRATE_MODE),
+ XLAT(V4L2_CID_MPEG_VIDEO_BITRATE),
+ XLAT(V4L2_CID_MPEG_VIDEO_BITRATE_PEAK),
+ XLAT(V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION),
+ XLAT(V4L2_CID_MPEG_VIDEO_MUTE),
+ XLAT(V4L2_CID_MPEG_VIDEO_MUTE_YUV),
+ XLAT(V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE),
+ XLAT(V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER),
+ XLAT(V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB),
+ XLAT(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEADER_MODE),
+ XLAT(V4L2_CID_MPEG_VIDEO_MAX_REF_PIC),
+ XLAT(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE),
+ XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES),
+ XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB),
+ XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE),
+ XLAT(V4L2_CID_MPEG_VIDEO_VBV_SIZE),
+ XLAT(V4L2_CID_MPEG_VIDEO_DEC_PTS),
+ XLAT(V4L2_CID_MPEG_VIDEO_DEC_FRAME),
+ XLAT(V4L2_CID_MPEG_VIDEO_VBV_DELAY),
+ XLAT(V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER),
+ XLAT(V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE),
+ XLAT(V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE),
+ XLAT(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME),
+ XLAT(V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H263_MIN_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H263_MAX_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_MIN_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_MAX_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_I_PERIOD),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_LEVEL),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_PROFILE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_ASO),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER),
+ XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE),
+ XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_QPEL),
+
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_MIN_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_MAX_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_VPX_PROFILE),
+
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_PROFILE),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LEVEL),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TIER),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR),
+ XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR),
+ XLAT(V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES),
+ XLAT(V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR),
+
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM),
+ XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP),
+ XLAT(V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS),
+
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_PADDING),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC),
+ XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P),
+
+ XLAT(V4L2_CID_EXPOSURE_AUTO),
+ XLAT(V4L2_CID_EXPOSURE_ABSOLUTE),
+ XLAT(V4L2_CID_EXPOSURE_AUTO_PRIORITY),
+ XLAT(V4L2_CID_PAN_RELATIVE),
+ XLAT(V4L2_CID_TILT_RELATIVE),
+ XLAT(V4L2_CID_PAN_RESET),
+ XLAT(V4L2_CID_TILT_RESET),
+ XLAT(V4L2_CID_PAN_ABSOLUTE),
+ XLAT(V4L2_CID_TILT_ABSOLUTE),
+ XLAT(V4L2_CID_FOCUS_ABSOLUTE),
+ XLAT(V4L2_CID_FOCUS_RELATIVE),
+ XLAT(V4L2_CID_FOCUS_AUTO),
+ XLAT(V4L2_CID_ZOOM_ABSOLUTE),
+ XLAT(V4L2_CID_ZOOM_RELATIVE),
+ XLAT(V4L2_CID_ZOOM_CONTINUOUS),
+ XLAT(V4L2_CID_PRIVACY),
+ XLAT(V4L2_CID_IRIS_ABSOLUTE),
+ XLAT(V4L2_CID_IRIS_RELATIVE),
+ XLAT(V4L2_CID_AUTO_EXPOSURE_BIAS),
+ XLAT(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE),
+ XLAT(V4L2_CID_WIDE_DYNAMIC_RANGE),
+ XLAT(V4L2_CID_IMAGE_STABILIZATION),
+ XLAT(V4L2_CID_ISO_SENSITIVITY),
+ XLAT(V4L2_CID_ISO_SENSITIVITY_AUTO),
+ XLAT(V4L2_CID_EXPOSURE_METERING),
+ XLAT(V4L2_CID_SCENE_MODE),
+ XLAT(V4L2_CID_3A_LOCK),
+ XLAT(V4L2_CID_AUTO_FOCUS_START),
+ XLAT(V4L2_CID_AUTO_FOCUS_STOP),
+ XLAT(V4L2_CID_AUTO_FOCUS_STATUS),
+ XLAT(V4L2_CID_AUTO_FOCUS_RANGE),
+ XLAT(V4L2_CID_PAN_SPEED),
+ XLAT(V4L2_CID_TILT_SPEED),
+
+ XLAT(V4L2_CID_RDS_TX_DEVIATION),
+ XLAT(V4L2_CID_RDS_TX_PI),
+ XLAT(V4L2_CID_RDS_TX_PTY),
+ XLAT(V4L2_CID_RDS_TX_PS_NAME),
+ XLAT(V4L2_CID_RDS_TX_RADIO_TEXT),
+ XLAT(V4L2_CID_RDS_TX_MONO_STEREO),
+ XLAT(V4L2_CID_RDS_TX_ARTIFICIAL_HEAD),
+ XLAT(V4L2_CID_RDS_TX_COMPRESSED),
+ XLAT(V4L2_CID_RDS_TX_DYNAMIC_PTY),
+ XLAT(V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT),
+ XLAT(V4L2_CID_RDS_TX_TRAFFIC_PROGRAM),
+ XLAT(V4L2_CID_RDS_TX_MUSIC_SPEECH),
+ XLAT(V4L2_CID_RDS_TX_ALT_FREQS_ENABLE),
+ XLAT(V4L2_CID_RDS_TX_ALT_FREQS),
+ XLAT(V4L2_CID_AUDIO_LIMITER_ENABLED),
+ XLAT(V4L2_CID_AUDIO_LIMITER_RELEASE_TIME),
+ XLAT(V4L2_CID_AUDIO_LIMITER_DEVIATION),
+ XLAT(V4L2_CID_AUDIO_COMPRESSION_ENABLED),
+ XLAT(V4L2_CID_AUDIO_COMPRESSION_GAIN),
+ XLAT(V4L2_CID_AUDIO_COMPRESSION_THRESHOLD),
+ XLAT(V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME),
+ XLAT(V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME),
+ XLAT(V4L2_CID_PILOT_TONE_ENABLED),
+ XLAT(V4L2_CID_PILOT_TONE_DEVIATION),
+ XLAT(V4L2_CID_PILOT_TONE_FREQUENCY),
+ XLAT(V4L2_CID_TUNE_PREEMPHASIS),
+ XLAT(V4L2_CID_TUNE_POWER_LEVEL),
+ XLAT(V4L2_CID_TUNE_ANTENNA_CAPACITOR),
+
+ XLAT(V4L2_CID_FLASH_LED_MODE),
+ XLAT(V4L2_CID_FLASH_STROBE_SOURCE),
+ XLAT(V4L2_CID_FLASH_STROBE),
+ XLAT(V4L2_CID_FLASH_STROBE_STOP),
+ XLAT(V4L2_CID_FLASH_STROBE_STATUS),
+ XLAT(V4L2_CID_FLASH_TIMEOUT),
+ XLAT(V4L2_CID_FLASH_INTENSITY),
+ XLAT(V4L2_CID_FLASH_TORCH_INTENSITY),
+ XLAT(V4L2_CID_FLASH_INDICATOR_INTENSITY),
+ XLAT(V4L2_CID_FLASH_FAULT),
+ XLAT(V4L2_CID_FLASH_CHARGE),
+ XLAT(V4L2_CID_FLASH_READY),
+
+ XLAT(V4L2_CID_VBLANK),
+ XLAT(V4L2_CID_HBLANK),
+ XLAT(V4L2_CID_ANALOGUE_GAIN),
+ XLAT(V4L2_CID_TEST_PATTERN_RED),
+ XLAT(V4L2_CID_TEST_PATTERN_GREENR),
+ XLAT(V4L2_CID_TEST_PATTERN_BLUE),
+ XLAT(V4L2_CID_TEST_PATTERN_GREENB),
+
+ XLAT(V4L2_CID_LINK_FREQ),
+ XLAT(V4L2_CID_PIXEL_RATE),
+ XLAT(V4L2_CID_TEST_PATTERN),
+ XLAT(V4L2_CID_DEINTERLACING_MODE),
+ XLAT(V4L2_CID_DIGITAL_GAIN),
+
+ XLAT(V4L2_CID_DV_TX_RGB_RANGE),
+ XLAT(V4L2_CID_DV_TX_IT_CONTENT_TYPE),
+ XLAT(V4L2_CID_DV_RX_RGB_RANGE),
+ XLAT(V4L2_CID_DV_RX_IT_CONTENT_TYPE),
+ XLAT(V4L2_CID_TUNE_DEEMPHASIS),
+ XLAT(V4L2_CID_RDS_RECEPTION),
+ XLAT(V4L2_CID_RDS_RX_PTY),
+ XLAT(V4L2_CID_RDS_RX_PS_NAME),
+ XLAT(V4L2_CID_RDS_RX_RADIO_TEXT),
+ XLAT(V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT),
+ XLAT(V4L2_CID_RDS_RX_TRAFFIC_PROGRAM),
+ XLAT(V4L2_CID_RDS_RX_MUSIC_SPEECH),
+ XLAT(V4L2_CID_RF_TUNER_BANDWIDTH_AUTO),
+ XLAT(V4L2_CID_RF_TUNER_BANDWIDTH),
+ XLAT(V4L2_CID_RF_TUNER_RF_GAIN),
+ XLAT(V4L2_CID_RF_TUNER_LNA_GAIN_AUTO),
+ XLAT(V4L2_CID_RF_TUNER_LNA_GAIN),
+ XLAT(V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO),
+ XLAT(V4L2_CID_RF_TUNER_MIXER_GAIN),
+ XLAT(V4L2_CID_RF_TUNER_IF_GAIN_AUTO),
+ XLAT(V4L2_CID_RF_TUNER_IF_GAIN),
+ XLAT(V4L2_CID_RF_TUNER_PLL_LOCK),
+
+ XLAT(V4L2_CID_DETECT_MD_MODE),
+ XLAT(V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD),
+ XLAT(V4L2_CID_DETECT_MD_THRESHOLD_GRID),
+ XLAT(V4L2_CID_DETECT_MD_REGION_GRID),
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_control_ids.in b/xlat/v4l2_control_ids.in
index 3dee933..0885944 100644
--- a/xlat/v4l2_control_ids.in
+++ b/xlat/v4l2_control_ids.in
@@ -1,77 +1,349 @@
-0
-V4L2_CID_BRIGHTNESS
-V4L2_CID_CONTRAST
-V4L2_CID_SATURATION
-V4L2_CID_HUE
-V4L2_CID_AUDIO_VOLUME
-V4L2_CID_AUDIO_BALANCE
-V4L2_CID_AUDIO_BASS
-V4L2_CID_AUDIO_TREBLE
-V4L2_CID_AUDIO_MUTE
-V4L2_CID_AUDIO_LOUDNESS
-V4L2_CID_BLACK_LEVEL
-V4L2_CID_AUTO_WHITE_BALANCE
-V4L2_CID_DO_WHITE_BALANCE
-V4L2_CID_RED_BALANCE
-V4L2_CID_BLUE_BALANCE
-V4L2_CID_GAMMA
-V4L2_CID_WHITENESS
-V4L2_CID_EXPOSURE
-V4L2_CID_AUTOGAIN
-V4L2_CID_GAIN
-V4L2_CID_HFLIP
-V4L2_CID_VFLIP
-V4L2_CID_HCENTER
-V4L2_CID_VCENTER
-V4L2_CID_POWER_LINE_FREQUENCY
-V4L2_CID_HUE_AUTO
-V4L2_CID_WHITE_BALANCE_TEMPERATURE
-V4L2_CID_SHARPNESS
-V4L2_CID_BACKLIGHT_COMPENSATION
-V4L2_CID_CHROMA_AGC
-V4L2_CID_CHROMA_GAIN
-V4L2_CID_COLOR_KILLER
-V4L2_CID_COLORFX
-V4L2_CID_COLORFX_CBCR
-V4L2_CID_AUTOBRIGHTNESS
-V4L2_CID_BAND_STOP_FILTER
-V4L2_CID_ROTATE
-V4L2_CID_BG_COLOR
-V4L2_CID_ILLUMINATORS_1
-V4L2_CID_ILLUMINATORS_2
-V4L2_CID_MIN_BUFFERS_FOR_CAPTURE
-V4L2_CID_MIN_BUFFERS_FOR_OUTPUT
-V4L2_CID_ALPHA_COMPONENT
+/* User-class control IDs */
+V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
+V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
+V4L2_CID_SATURATION (V4L2_CID_BASE+2)
+V4L2_CID_HUE (V4L2_CID_BASE+3)
+V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
+V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
+V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
+V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
+V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
+V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
+V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) /* Deprecated */
+V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
+V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
+V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
+V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
+V4L2_CID_GAMMA (V4L2_CID_BASE+16)
+V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
+V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
+V4L2_CID_GAIN (V4L2_CID_BASE+19)
+V4L2_CID_HFLIP (V4L2_CID_BASE+20)
+V4L2_CID_VFLIP (V4L2_CID_BASE+21)
+V4L2_CID_HCENTER (V4L2_CID_BASE+22)
+V4L2_CID_VCENTER (V4L2_CID_BASE+23)
+V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24)
+V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25)
+V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26)
+V4L2_CID_SHARPNESS (V4L2_CID_BASE+27)
+V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
+V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
+V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
+V4L2_CID_COLORFX (V4L2_CID_BASE+31)
+V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
+V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
+V4L2_CID_ROTATE (V4L2_CID_BASE+34)
+V4L2_CID_BG_COLOR (V4L2_CID_BASE+35)
+V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36)
+V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37)
+V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38)
+V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39)
+V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
+V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
+V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42)
+/* MPEG-class control IDs */
+/* MPEG streams, specific to multiplexed streams */
+V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
+V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
+V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
+V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
+V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
+V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
+V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
+V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
+/* MPEG audio controls specific to multiplexed streams */
+V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
+V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
+V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
+V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
+V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
+V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
+V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
+V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
+V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
+V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
+V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110)
+V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111)
+V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112)
+V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113)
+/* MPEG video controls specific to multiplexed streams */
+V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
+V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
+V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
+V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
+V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
+V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
+V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
+V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
+V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
+V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)
+V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
+V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
+V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212)
+V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213)
+V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214)
+V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215)
+V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216)
+V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217)
+V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218)
+V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219)
+V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220)
+V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221)
+V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222)
+V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223)
+V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224)
+V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225)
+V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226)
+V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227)
+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_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)
+V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303)
+V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304)
+V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350)
+V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351)
+V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352)
+V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353)
+V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354)
+V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355)
+V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356)
+V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357)
+V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358)
+V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359)
+V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360)
+V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361)
+V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362)
+V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363)
+V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364)
+V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365)
+V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366)
+V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367)
+V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368)
+V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369)
+V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370)
+V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371)
+V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372)
+V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373)
+V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374)
+V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375)
+V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376)
+V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377)
+V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378)
+V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379)
+V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380)
+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_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)
+V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403)
+V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404)
+V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405)
+V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406)
+V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407)
+/* Control IDs for VP8 streams */
+V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_MPEG_BASE+500)
+V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_MPEG_BASE+501)
+V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_MPEG_BASE+502)
+V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_MPEG_BASE+503)
+V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_MPEG_BASE+504)
+V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_MPEG_BASE+505)
+V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_MPEG_BASE+506)
+V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507)
+V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508)
+V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509)
+V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
+V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
+/* CIDs for HEVC encoding. */
+V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
+V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
+V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
+V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
+V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
+V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
+V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
+V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
+V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
+V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
+V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
+V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
+V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
+V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
+V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
+V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
+V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
+V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
+V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
+V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
+V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
+V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
+V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
+V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
+V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
+V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
+V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
+V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
+V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
+/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
+V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
+V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
+V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
+V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
+V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
+V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
+V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
+V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
+V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
+V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9)
+V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
+V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
+/* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */
+V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0)
+V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1)
+V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2)
+V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3)
+V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4)
+V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5)
+V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6)
+V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7)
+V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50)
+V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51)
+V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52)
+V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
+V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
/* Camera class control IDs */
-V4L2_CID_EXPOSURE_AUTO
-V4L2_CID_EXPOSURE_ABSOLUTE
-V4L2_CID_EXPOSURE_AUTO_PRIORITY
-V4L2_CID_PAN_RELATIVE
-V4L2_CID_TILT_RELATIVE
-V4L2_CID_PAN_RESET
-V4L2_CID_TILT_RESET
-V4L2_CID_PAN_ABSOLUTE
-V4L2_CID_TILT_ABSOLUTE
-V4L2_CID_FOCUS_ABSOLUTE
-V4L2_CID_FOCUS_RELATIVE
-V4L2_CID_FOCUS_AUTO
-V4L2_CID_ZOOM_ABSOLUTE
-V4L2_CID_ZOOM_RELATIVE
-V4L2_CID_ZOOM_CONTINUOUS
-V4L2_CID_PRIVACY
-V4L2_CID_IRIS_ABSOLUTE
-V4L2_CID_IRIS_RELATIVE
-V4L2_CID_AUTO_EXPOSURE_BIAS
-V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE
-V4L2_CID_WIDE_DYNAMIC_RANGE
-V4L2_CID_IMAGE_STABILIZATION
-V4L2_CID_ISO_SENSITIVITY
-V4L2_CID_ISO_SENSITIVITY_AUTO
-V4L2_CID_EXPOSURE_METERING
-V4L2_CID_SCENE_MODE
-V4L2_CID_3A_LOCK
-V4L2_CID_AUTO_FOCUS_START
-V4L2_CID_AUTO_FOCUS_STOP
-V4L2_CID_AUTO_FOCUS_STATUS
-V4L2_CID_AUTO_FOCUS_RANGE
-V4L2_CID_PRIVATE_BASE
+V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1)
+V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2)
+V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3)
+V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4)
+V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5)
+V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6)
+V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7)
+V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8)
+V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9)
+V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10)
+V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11)
+V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12)
+V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13)
+V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14)
+V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15)
+V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16)
+V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17)
+V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18)
+V4L2_CID_AUTO_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+19)
+V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (V4L2_CID_CAMERA_CLASS_BASE+20)
+V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21)
+V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22)
+V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23)
+V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24)
+V4L2_CID_EXPOSURE_METERING (V4L2_CID_CAMERA_CLASS_BASE+25)
+V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26)
+V4L2_CID_3A_LOCK (V4L2_CID_CAMERA_CLASS_BASE+27)
+V4L2_CID_AUTO_FOCUS_START (V4L2_CID_CAMERA_CLASS_BASE+28)
+V4L2_CID_AUTO_FOCUS_STOP (V4L2_CID_CAMERA_CLASS_BASE+29)
+V4L2_CID_AUTO_FOCUS_STATUS (V4L2_CID_CAMERA_CLASS_BASE+30)
+V4L2_CID_AUTO_FOCUS_RANGE (V4L2_CID_CAMERA_CLASS_BASE+31)
+V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32)
+V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33)
+/* FM Modulator class control IDs */
+V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1)
+V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2)
+V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3)
+V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5)
+V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6)
+V4L2_CID_RDS_TX_MONO_STEREO (V4L2_CID_FM_TX_CLASS_BASE + 7)
+V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (V4L2_CID_FM_TX_CLASS_BASE + 8)
+V4L2_CID_RDS_TX_COMPRESSED (V4L2_CID_FM_TX_CLASS_BASE + 9)
+V4L2_CID_RDS_TX_DYNAMIC_PTY (V4L2_CID_FM_TX_CLASS_BASE + 10)
+V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_TX_CLASS_BASE + 11)
+V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (V4L2_CID_FM_TX_CLASS_BASE + 12)
+V4L2_CID_RDS_TX_MUSIC_SPEECH (V4L2_CID_FM_TX_CLASS_BASE + 13)
+V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (V4L2_CID_FM_TX_CLASS_BASE + 14)
+V4L2_CID_RDS_TX_ALT_FREQS (V4L2_CID_FM_TX_CLASS_BASE + 15)
+V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64)
+V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65)
+V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66)
+V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80)
+V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81)
+V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82)
+V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83)
+V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84)
+V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96)
+V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97)
+V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98)
+V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112)
+V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113)
+V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114)
+/* Flash and privacy (indicator) light controls */
+V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1)
+V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2)
+V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3)
+V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4)
+V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5)
+V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6)
+V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7)
+V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8)
+V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9)
+V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10)
+V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11)
+V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12)
+/* Image source controls */
+V4L2_CID_VBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)
+V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)
+V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)
+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)
+/* 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)
+V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
+V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
+V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
+/* DV-class control IDs defined by V4L2 */
+V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5)
+V4L2_CID_DV_TX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 6)
+V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
+V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102)
+V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1)
+V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2)
+V4L2_CID_RDS_RX_PTY (V4L2_CID_FM_RX_CLASS_BASE + 3)
+V4L2_CID_RDS_RX_PS_NAME (V4L2_CID_FM_RX_CLASS_BASE + 4)
+V4L2_CID_RDS_RX_RADIO_TEXT (V4L2_CID_FM_RX_CLASS_BASE + 5)
+V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_RX_CLASS_BASE + 6)
+V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (V4L2_CID_FM_RX_CLASS_BASE + 7)
+V4L2_CID_RDS_RX_MUSIC_SPEECH (V4L2_CID_FM_RX_CLASS_BASE + 8)
+V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11)
+V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12)
+V4L2_CID_RF_TUNER_RF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 32)
+V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41)
+V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42)
+V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51)
+V4L2_CID_RF_TUNER_MIXER_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 52)
+V4L2_CID_RF_TUNER_IF_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 61)
+V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62)
+V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91)
+/* Detection-class control IDs defined by V4L2 */
+V4L2_CID_DETECT_MD_MODE (V4L2_CID_DETECT_CLASS_BASE + 1)
+V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (V4L2_CID_DETECT_CLASS_BASE + 2)
+V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
+V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
diff --git a/xlat/v4l2_control_types.h b/xlat/v4l2_control_types.h
index 872d061..3f5a03a 100644
--- a/xlat/v4l2_control_types.h
+++ b/xlat/v4l2_control_types.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_control_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_control_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -49,4 +55,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_device_capabilities_flags.h b/xlat/v4l2_device_capabilities_flags.h
index ef78c7a..17b0f5a 100644
--- a/xlat/v4l2_device_capabilities_flags.h
+++ b/xlat/v4l2_device_capabilities_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_device_capabilities_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_device_capabilities_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -97,4 +103,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_fields.h b/xlat/v4l2_fields.h
index a6c78db..e065a73 100644
--- a/xlat/v4l2_fields.h
+++ b/xlat/v4l2_fields.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_fields.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_fields[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -43,4 +49,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_format_description_flags.h b/xlat/v4l2_format_description_flags.h
index d82236d..9bf39a1 100644
--- a/xlat/v4l2_format_description_flags.h
+++ b/xlat/v4l2_format_description_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_format_description_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_format_description_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -19,4 +25,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_frameinterval_types.h b/xlat/v4l2_frameinterval_types.h
index 728c3c7..6b7b942 100644
--- a/xlat/v4l2_frameinterval_types.h
+++ b/xlat/v4l2_frameinterval_types.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_frameinterval_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_frameinterval_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_framesize_types.h b/xlat/v4l2_framesize_types.h
index 28a77c2..9f5dbfa 100644
--- a/xlat/v4l2_framesize_types.h
+++ b/xlat/v4l2_framesize_types.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_framesize_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_framesize_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_input_types.h b/xlat/v4l2_input_types.h
index 0b1ce6c..9c023f2 100644
--- a/xlat/v4l2_input_types.h
+++ b/xlat/v4l2_input_types.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_input_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_input_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -22,4 +28,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_memories.h b/xlat/v4l2_memories.h
index acbb395..e13190d 100644
--- a/xlat/v4l2_memories.h
+++ b/xlat/v4l2_memories.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_memories.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_memories[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -25,4 +31,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_pix_fmts.h b/xlat/v4l2_pix_fmts.h
index 585d580..26a13bf 100644
--- a/xlat/v4l2_pix_fmts.h
+++ b/xlat/v4l2_pix_fmts.h
@@ -1,473 +1,1098 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_pix_fmts.in; do not edit. */
-#if !(defined(V4L2_PIX_FMT_Y10) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y10) && HAVE_DECL_V4L2_PIX_FMT_Y10))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(V4L2_PIX_FMT_Y10) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y10) && HAVE_DECL_V4L2_PIX_FMT_Y10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Y10) == (v4l2_fourcc('Y', '1', '0', ' ')), "V4L2_PIX_FMT_Y10 != v4l2_fourcc('Y', '1', '0', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_Y12) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y12) && HAVE_DECL_V4L2_PIX_FMT_Y12))
+#if defined(V4L2_PIX_FMT_Y12) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y12) && HAVE_DECL_V4L2_PIX_FMT_Y12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Y12) == (v4l2_fourcc('Y', '1', '2', ' ')), "V4L2_PIX_FMT_Y12 != v4l2_fourcc('Y', '1', '2', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_Y4) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y4) && HAVE_DECL_V4L2_PIX_FMT_Y4))
+#if defined(V4L2_PIX_FMT_Y4) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y4) && HAVE_DECL_V4L2_PIX_FMT_Y4)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Y4) == (v4l2_fourcc('Y', '0', '4', ' ')), "V4L2_PIX_FMT_Y4 != v4l2_fourcc('Y', '0', '4', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_Y6) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y6) && HAVE_DECL_V4L2_PIX_FMT_Y6))
+#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', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_Y16) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y16) && HAVE_DECL_V4L2_PIX_FMT_Y16))
+#if defined(V4L2_PIX_FMT_Y16) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y16) && HAVE_DECL_V4L2_PIX_FMT_Y16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Y16) == (v4l2_fourcc('Y', '1', '6', ' ')), "V4L2_PIX_FMT_Y16 != v4l2_fourcc('Y', '1', '6', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_Z16) || (defined(HAVE_DECL_V4L2_PIX_FMT_Z16) && HAVE_DECL_V4L2_PIX_FMT_Z16))
+#if defined(V4L2_PIX_FMT_Z16) || (defined(HAVE_DECL_V4L2_PIX_FMT_Z16) && HAVE_DECL_V4L2_PIX_FMT_Z16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Z16) == (v4l2_fourcc('Z', '1', '6', ' ')), "V4L2_PIX_FMT_Z16 != v4l2_fourcc('Z', '1', '6', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_UV8) || (defined(HAVE_DECL_V4L2_PIX_FMT_UV8) && HAVE_DECL_V4L2_PIX_FMT_UV8))
+#if defined(V4L2_PIX_FMT_UV8) || (defined(HAVE_DECL_V4L2_PIX_FMT_UV8) && HAVE_DECL_V4L2_PIX_FMT_UV8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_UV8) == (v4l2_fourcc('U', 'V', '8', ' ')), "V4L2_PIX_FMT_UV8 != v4l2_fourcc('U', 'V', '8', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_Y8I) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y8I) && HAVE_DECL_V4L2_PIX_FMT_Y8I))
+#if defined(V4L2_PIX_FMT_Y8I) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y8I) && HAVE_DECL_V4L2_PIX_FMT_Y8I)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Y8I) == (v4l2_fourcc('Y', '8', 'I', ' ')), "V4L2_PIX_FMT_Y8I != v4l2_fourcc('Y', '8', 'I', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_MR97310A) || (defined(HAVE_DECL_V4L2_PIX_FMT_MR97310A) && HAVE_DECL_V4L2_PIX_FMT_MR97310A))
+#if defined(V4L2_PIX_FMT_MR97310A) || (defined(HAVE_DECL_V4L2_PIX_FMT_MR97310A) && HAVE_DECL_V4L2_PIX_FMT_MR97310A)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_MR97310A) == (v4l2_fourcc('M', '3', '1', '0')), "V4L2_PIX_FMT_MR97310A != v4l2_fourcc('M', '3', '1', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SN9C10X) || (defined(HAVE_DECL_V4L2_PIX_FMT_SN9C10X) && HAVE_DECL_V4L2_PIX_FMT_SN9C10X))
+#if defined(V4L2_PIX_FMT_SN9C10X) || (defined(HAVE_DECL_V4L2_PIX_FMT_SN9C10X) && HAVE_DECL_V4L2_PIX_FMT_SN9C10X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SN9C10X) == (v4l2_fourcc('S', '9', '1', '0')), "V4L2_PIX_FMT_SN9C10X != v4l2_fourcc('S', '9', '1', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10))
+#if defined(V4L2_PIX_FMT_SGRBG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG10) == (v4l2_fourcc('B', 'A', '1', '0')), "V4L2_PIX_FMT_SGRBG10 != v4l2_fourcc('B', 'A', '1', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10))
+#if defined(V4L2_PIX_FMT_SGBRG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGBRG10) == (v4l2_fourcc('G', 'B', '1', '0')), "V4L2_PIX_FMT_SGBRG10 != v4l2_fourcc('G', 'B', '1', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10DPCM8))
+#if defined(V4L2_PIX_FMT_SGRBG10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10DPCM8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG10DPCM8) == (v4l2_fourcc('B', 'D', '1', '0')), "V4L2_PIX_FMT_SGRBG10DPCM8 != v4l2_fourcc('B', 'D', '1', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10))
+#if defined(V4L2_PIX_FMT_SBGGR10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SBGGR10) == (v4l2_fourcc('B', 'G', '1', '0')), "V4L2_PIX_FMT_SBGGR10 != v4l2_fourcc('B', 'G', '1', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR10 v4l2_fourcc('B', 'G', '1', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10))
+#if defined(V4L2_PIX_FMT_SRGGB10) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB10) == (v4l2_fourcc('R', 'G', '1', '0')), "V4L2_PIX_FMT_SRGGB10 != v4l2_fourcc('R', 'G', '1', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_M420) || (defined(HAVE_DECL_V4L2_PIX_FMT_M420) && HAVE_DECL_V4L2_PIX_FMT_M420))
+#if defined(V4L2_PIX_FMT_M420) || (defined(HAVE_DECL_V4L2_PIX_FMT_M420) && HAVE_DECL_V4L2_PIX_FMT_M420)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_M420) == (v4l2_fourcc('M', '4', '2', '0')), "V4L2_PIX_FMT_M420 != v4l2_fourcc('M', '4', '2', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SN9C20X_I420) || (defined(HAVE_DECL_V4L2_PIX_FMT_SN9C20X_I420) && HAVE_DECL_V4L2_PIX_FMT_SN9C20X_I420))
+#if defined(V4L2_PIX_FMT_SN9C20X_I420) || (defined(HAVE_DECL_V4L2_PIX_FMT_SN9C20X_I420) && HAVE_DECL_V4L2_PIX_FMT_SN9C20X_I420)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SN9C20X_I420) == (v4l2_fourcc('S', '9', '2', '0')), "V4L2_PIX_FMT_SN9C20X_I420 != v4l2_fourcc('S', '9', '2', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SN9C20X_I420 v4l2_fourcc('S', '9', '2', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_JL2005BCD) || (defined(HAVE_DECL_V4L2_PIX_FMT_JL2005BCD) && HAVE_DECL_V4L2_PIX_FMT_JL2005BCD))
+#if defined(V4L2_PIX_FMT_JL2005BCD) || (defined(HAVE_DECL_V4L2_PIX_FMT_JL2005BCD) && HAVE_DECL_V4L2_PIX_FMT_JL2005BCD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_JL2005BCD) == (v4l2_fourcc('J', 'L', '2', '0')), "V4L2_PIX_FMT_JL2005BCD != v4l2_fourcc('J', 'L', '2', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_TM6000) || (defined(HAVE_DECL_V4L2_PIX_FMT_TM6000) && HAVE_DECL_V4L2_PIX_FMT_TM6000))
+#if defined(V4L2_PIX_FMT_TM6000) || (defined(HAVE_DECL_V4L2_PIX_FMT_TM6000) && HAVE_DECL_V4L2_PIX_FMT_TM6000)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_TM6000) == (v4l2_fourcc('T', 'M', '6', '0')), "V4L2_PIX_FMT_TM6000 != v4l2_fourcc('T', 'M', '6', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_TM6000 v4l2_fourcc('T', 'M', '6', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_STV0680) || (defined(HAVE_DECL_V4L2_PIX_FMT_STV0680) && HAVE_DECL_V4L2_PIX_FMT_STV0680))
+#if defined(V4L2_PIX_FMT_STV0680) || (defined(HAVE_DECL_V4L2_PIX_FMT_STV0680) && HAVE_DECL_V4L2_PIX_FMT_STV0680)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_STV0680) == (v4l2_fourcc('S', '6', '8', '0')), "V4L2_PIX_FMT_STV0680 != v4l2_fourcc('S', '6', '8', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_STV0680 v4l2_fourcc('S', '6', '8', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_VP8) || (defined(HAVE_DECL_V4L2_PIX_FMT_VP8) && HAVE_DECL_V4L2_PIX_FMT_VP8))
+#if defined(V4L2_PIX_FMT_VP8) || (defined(HAVE_DECL_V4L2_PIX_FMT_VP8) && HAVE_DECL_V4L2_PIX_FMT_VP8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_VP8) == (v4l2_fourcc('V', 'P', '8', '0')), "V4L2_PIX_FMT_VP8 != v4l2_fourcc('V', 'P', '8', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_VP9) || (defined(HAVE_DECL_V4L2_PIX_FMT_VP9) && HAVE_DECL_V4L2_PIX_FMT_VP9))
+#if defined(V4L2_PIX_FMT_VP9) || (defined(HAVE_DECL_V4L2_PIX_FMT_VP9) && HAVE_DECL_V4L2_PIX_FMT_VP9)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_VP9) == (v4l2_fourcc('V', 'P', '9', '0')), "V4L2_PIX_FMT_VP9 != v4l2_fourcc('V', 'P', '9', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
#endif
-#if !(defined(V4L2_PIX_FMT_SE401) || (defined(HAVE_DECL_V4L2_PIX_FMT_SE401) && HAVE_DECL_V4L2_PIX_FMT_SE401))
+#if defined(V4L2_PIX_FMT_SE401) || (defined(HAVE_DECL_V4L2_PIX_FMT_SE401) && HAVE_DECL_V4L2_PIX_FMT_SE401)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SE401) == (v4l2_fourcc('S', '4', '0', '1')), "V4L2_PIX_FMT_SE401 != v4l2_fourcc('S', '4', '0', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_SPCA501) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA501) && HAVE_DECL_V4L2_PIX_FMT_SPCA501))
+#if defined(V4L2_PIX_FMT_SPCA501) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA501) && HAVE_DECL_V4L2_PIX_FMT_SPCA501)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SPCA501) == (v4l2_fourcc('S', '5', '0', '1')), "V4L2_PIX_FMT_SPCA501 != v4l2_fourcc('S', '5', '0', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_OV511) || (defined(HAVE_DECL_V4L2_PIX_FMT_OV511) && HAVE_DECL_V4L2_PIX_FMT_OV511))
+#if defined(V4L2_PIX_FMT_OV511) || (defined(HAVE_DECL_V4L2_PIX_FMT_OV511) && HAVE_DECL_V4L2_PIX_FMT_OV511)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_OV511) == (v4l2_fourcc('O', '5', '1', '1')), "V4L2_PIX_FMT_OV511 != v4l2_fourcc('O', '5', '1', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_OV511 v4l2_fourcc('O', '5', '1', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_NV21M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV21M) && HAVE_DECL_V4L2_PIX_FMT_NV21M))
+#if defined(V4L2_PIX_FMT_NV21M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV21M) && HAVE_DECL_V4L2_PIX_FMT_NV21M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV21M) == (v4l2_fourcc('N', 'M', '2', '1')), "V4L2_PIX_FMT_NV21M != v4l2_fourcc('N', 'M', '2', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_YVU420M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU420M) && HAVE_DECL_V4L2_PIX_FMT_YVU420M))
+#if defined(V4L2_PIX_FMT_YVU420M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU420M) && HAVE_DECL_V4L2_PIX_FMT_YVU420M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YVU420M) == (v4l2_fourcc('Y', 'M', '2', '1')), "V4L2_PIX_FMT_YVU420M != v4l2_fourcc('Y', 'M', '2', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_MT21C) || (defined(HAVE_DECL_V4L2_PIX_FMT_MT21C) && HAVE_DECL_V4L2_PIX_FMT_MT21C))
+#if defined(V4L2_PIX_FMT_MT21C) || (defined(HAVE_DECL_V4L2_PIX_FMT_MT21C) && HAVE_DECL_V4L2_PIX_FMT_MT21C)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_MT21C) == (v4l2_fourcc('M', 'T', '2', '1')), "V4L2_PIX_FMT_MT21C != v4l2_fourcc('M', 'T', '2', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_NV21) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV21) && HAVE_DECL_V4L2_PIX_FMT_NV21))
+#if defined(V4L2_PIX_FMT_NV21) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV21) && HAVE_DECL_V4L2_PIX_FMT_NV21)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV21) == (v4l2_fourcc('N', 'V', '2', '1')), "V4L2_PIX_FMT_NV21 != v4l2_fourcc('N', 'V', '2', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_SPCA561) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA561) && HAVE_DECL_V4L2_PIX_FMT_SPCA561))
+#if defined(V4L2_PIX_FMT_SPCA561) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA561) && HAVE_DECL_V4L2_PIX_FMT_SPCA561)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SPCA561) == (v4l2_fourcc('S', '5', '6', '1')), "V4L2_PIX_FMT_SPCA561 != v4l2_fourcc('S', '5', '6', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_NV61M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV61M) && HAVE_DECL_V4L2_PIX_FMT_NV61M))
+#if defined(V4L2_PIX_FMT_NV61M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV61M) && HAVE_DECL_V4L2_PIX_FMT_NV61M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV61M) == (v4l2_fourcc('N', 'M', '6', '1')), "V4L2_PIX_FMT_NV61M != v4l2_fourcc('N', 'M', '6', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_YVU422M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU422M) && HAVE_DECL_V4L2_PIX_FMT_YVU422M))
+#if defined(V4L2_PIX_FMT_YVU422M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU422M) && HAVE_DECL_V4L2_PIX_FMT_YVU422M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YVU422M) == (v4l2_fourcc('Y', 'M', '6', '1')), "V4L2_PIX_FMT_YVU422M != v4l2_fourcc('Y', 'M', '6', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_NV61) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV61) && HAVE_DECL_V4L2_PIX_FMT_NV61))
+#if defined(V4L2_PIX_FMT_NV61) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV61) && HAVE_DECL_V4L2_PIX_FMT_NV61)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV61) == (v4l2_fourcc('N', 'V', '6', '1')), "V4L2_PIX_FMT_NV61 != v4l2_fourcc('N', 'V', '6', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR8) && HAVE_DECL_V4L2_PIX_FMT_SBGGR8))
+#if defined(V4L2_PIX_FMT_SBGGR8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR8) && HAVE_DECL_V4L2_PIX_FMT_SBGGR8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SBGGR8) == (v4l2_fourcc('B', 'A', '8', '1')), "V4L2_PIX_FMT_SBGGR8 != v4l2_fourcc('B', 'A', '8', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB332) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB332) && HAVE_DECL_V4L2_PIX_FMT_RGB332))
+#if defined(V4L2_PIX_FMT_RGB332) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB332) && HAVE_DECL_V4L2_PIX_FMT_RGB332)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_RGB332) == (v4l2_fourcc('R', 'G', 'B', '1')), "V4L2_PIX_FMT_RGB332 != v4l2_fourcc('R', 'G', 'B', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_H264_NO_SC) || (defined(HAVE_DECL_V4L2_PIX_FMT_H264_NO_SC) && HAVE_DECL_V4L2_PIX_FMT_H264_NO_SC))
+#if defined(V4L2_PIX_FMT_H264_NO_SC) || (defined(HAVE_DECL_V4L2_PIX_FMT_H264_NO_SC) && HAVE_DECL_V4L2_PIX_FMT_H264_NO_SC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_H264_NO_SC) == (v4l2_fourcc('A', 'V', 'C', '1')), "V4L2_PIX_FMT_H264_NO_SC != v4l2_fourcc('A', 'V', 'C', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_PWC1) || (defined(HAVE_DECL_V4L2_PIX_FMT_PWC1) && HAVE_DECL_V4L2_PIX_FMT_PWC1))
+#if defined(V4L2_PIX_FMT_PWC1) || (defined(HAVE_DECL_V4L2_PIX_FMT_PWC1) && HAVE_DECL_V4L2_PIX_FMT_PWC1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_PWC1) == (v4l2_fourcc('P', 'W', 'C', '1')), "V4L2_PIX_FMT_PWC1 != v4l2_fourcc('P', 'W', 'C', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_MPEG1) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG1) && HAVE_DECL_V4L2_PIX_FMT_MPEG1))
+#if defined(V4L2_PIX_FMT_MPEG1) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG1) && HAVE_DECL_V4L2_PIX_FMT_MPEG1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_MPEG1) == (v4l2_fourcc('M', 'P', 'G', '1')), "V4L2_PIX_FMT_MPEG1 != v4l2_fourcc('M', 'P', 'G', '1')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG12) && HAVE_DECL_V4L2_PIX_FMT_SGRBG12))
+#if defined(V4L2_PIX_FMT_SGRBG12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG12) && HAVE_DECL_V4L2_PIX_FMT_SGRBG12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG12) == (v4l2_fourcc('B', 'A', '1', '2')), "V4L2_PIX_FMT_SGRBG12 != v4l2_fourcc('B', 'A', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG12) && HAVE_DECL_V4L2_PIX_FMT_SGBRG12))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR12) && HAVE_DECL_V4L2_PIX_FMT_SBGGR12))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB12) && HAVE_DECL_V4L2_PIX_FMT_SRGGB12))
+#if defined(V4L2_PIX_FMT_SRGGB12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB12) && HAVE_DECL_V4L2_PIX_FMT_SRGGB12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB12) == (v4l2_fourcc('R', 'G', '1', '2')), "V4L2_PIX_FMT_SRGGB12 != v4l2_fourcc('R', 'G', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_HM12) || (defined(HAVE_DECL_V4L2_PIX_FMT_HM12) && HAVE_DECL_V4L2_PIX_FMT_HM12))
+#if defined(V4L2_PIX_FMT_HM12) || (defined(HAVE_DECL_V4L2_PIX_FMT_HM12) && HAVE_DECL_V4L2_PIX_FMT_HM12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_HM12) == (v4l2_fourcc('H', 'M', '1', '2')), "V4L2_PIX_FMT_HM12 != v4l2_fourcc('H', 'M', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_NV12M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12M) && HAVE_DECL_V4L2_PIX_FMT_NV12M))
+#if defined(V4L2_PIX_FMT_NV12M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12M) && HAVE_DECL_V4L2_PIX_FMT_NV12M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV12M) == (v4l2_fourcc('N', 'M', '1', '2')), "V4L2_PIX_FMT_NV12M != v4l2_fourcc('N', 'M', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_NV12MT) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12MT) && HAVE_DECL_V4L2_PIX_FMT_NV12MT))
+#if defined(V4L2_PIX_FMT_NV12MT) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12MT) && HAVE_DECL_V4L2_PIX_FMT_NV12MT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV12MT) == (v4l2_fourcc('T', 'M', '1', '2')), "V4L2_PIX_FMT_NV12MT != v4l2_fourcc('T', 'M', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_NV12MT_16X16) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12MT_16X16) && HAVE_DECL_V4L2_PIX_FMT_NV12MT_16X16))
+#if defined(V4L2_PIX_FMT_NV12MT_16X16) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12MT_16X16) && HAVE_DECL_V4L2_PIX_FMT_NV12MT_16X16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV12MT_16X16) == (v4l2_fourcc('V', 'M', '1', '2')), "V4L2_PIX_FMT_NV12MT_16X16 != v4l2_fourcc('V', 'M', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV420M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV420M) && HAVE_DECL_V4L2_PIX_FMT_YUV420M))
+#if defined(V4L2_PIX_FMT_YUV420M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV420M) && HAVE_DECL_V4L2_PIX_FMT_YUV420M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV420M) == (v4l2_fourcc('Y', 'M', '1', '2')), "V4L2_PIX_FMT_YUV420M != v4l2_fourcc('Y', 'M', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_ARGB444) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB444) && HAVE_DECL_V4L2_PIX_FMT_ARGB444))
+#if defined(V4L2_PIX_FMT_ARGB444) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB444) && HAVE_DECL_V4L2_PIX_FMT_ARGB444)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_ARGB444) == (v4l2_fourcc('A', 'R', '1', '2')), "V4L2_PIX_FMT_ARGB444 != v4l2_fourcc('A', 'R', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_XRGB444) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB444) && HAVE_DECL_V4L2_PIX_FMT_XRGB444))
+#if defined(V4L2_PIX_FMT_XRGB444) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB444) && HAVE_DECL_V4L2_PIX_FMT_XRGB444)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_XRGB444) == (v4l2_fourcc('X', 'R', '1', '2')), "V4L2_PIX_FMT_XRGB444 != v4l2_fourcc('X', 'R', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV420) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV420) && HAVE_DECL_V4L2_PIX_FMT_YUV420))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_NV12) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12) && HAVE_DECL_V4L2_PIX_FMT_NV12))
+#if defined(V4L2_PIX_FMT_NV12) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV12) && HAVE_DECL_V4L2_PIX_FMT_NV12)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV12) == (v4l2_fourcc('N', 'V', '1', '2')), "V4L2_PIX_FMT_NV12 != v4l2_fourcc('N', 'V', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_YVU420) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU420) && HAVE_DECL_V4L2_PIX_FMT_YVU420))
+#if defined(V4L2_PIX_FMT_YVU420) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU420) && HAVE_DECL_V4L2_PIX_FMT_YVU420)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YVU420) == (v4l2_fourcc('Y', 'V', '1', '2')), "V4L2_PIX_FMT_YVU420 != v4l2_fourcc('Y', 'V', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_YVU444M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU444M) && HAVE_DECL_V4L2_PIX_FMT_YVU444M))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_NV42) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV42) && HAVE_DECL_V4L2_PIX_FMT_NV42))
+#if defined(V4L2_PIX_FMT_NV42) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV42) && HAVE_DECL_V4L2_PIX_FMT_NV42)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV42) == (v4l2_fourcc('N', 'V', '4', '2')), "V4L2_PIX_FMT_NV42 != v4l2_fourcc('N', 'V', '4', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_PWC2) || (defined(HAVE_DECL_V4L2_PIX_FMT_PWC2) && HAVE_DECL_V4L2_PIX_FMT_PWC2))
+#if defined(V4L2_PIX_FMT_PWC2) || (defined(HAVE_DECL_V4L2_PIX_FMT_PWC2) && HAVE_DECL_V4L2_PIX_FMT_PWC2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_PWC2) == (v4l2_fourcc('P', 'W', 'C', '2')), "V4L2_PIX_FMT_PWC2 != v4l2_fourcc('P', 'W', 'C', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_MPEG2) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG2) && HAVE_DECL_V4L2_PIX_FMT_MPEG2))
+#if defined(V4L2_PIX_FMT_MPEG2) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG2) && HAVE_DECL_V4L2_PIX_FMT_MPEG2)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_MPEG2) == (v4l2_fourcc('M', 'P', 'G', '2')), "V4L2_PIX_FMT_MPEG2 != v4l2_fourcc('M', 'P', 'G', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR16) && HAVE_DECL_V4L2_PIX_FMT_SBGGR16))
+#if defined(V4L2_PIX_FMT_SBGGR16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR16) && HAVE_DECL_V4L2_PIX_FMT_SBGGR16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SBGGR16) == (v4l2_fourcc('B', 'Y', 'R', '2')), "V4L2_PIX_FMT_SBGGR16 != v4l2_fourcc('B', 'Y', 'R', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2')
#endif
-#if !(defined(V4L2_PIX_FMT_H263) || (defined(HAVE_DECL_V4L2_PIX_FMT_H263) && HAVE_DECL_V4L2_PIX_FMT_H263))
+#if defined(V4L2_PIX_FMT_H263) || (defined(HAVE_DECL_V4L2_PIX_FMT_H263) && HAVE_DECL_V4L2_PIX_FMT_H263)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_H263) == (v4l2_fourcc('H', '2', '6', '3')), "V4L2_PIX_FMT_H263 != v4l2_fourcc('H', '2', '6', '3')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB24) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB24) && HAVE_DECL_V4L2_PIX_FMT_RGB24))
+#if defined(V4L2_PIX_FMT_RGB24) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB24) && HAVE_DECL_V4L2_PIX_FMT_RGB24)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_RGB24) == (v4l2_fourcc('R', 'G', 'B', '3')), "V4L2_PIX_FMT_RGB24 != v4l2_fourcc('R', 'G', 'B', '3')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3')
#endif
-#if !(defined(V4L2_PIX_FMT_BGR24) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGR24) && HAVE_DECL_V4L2_PIX_FMT_BGR24))
+#if defined(V4L2_PIX_FMT_BGR24) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGR24) && HAVE_DECL_V4L2_PIX_FMT_BGR24)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_BGR24) == (v4l2_fourcc('B', 'G', 'R', '3')), "V4L2_PIX_FMT_BGR24 != v4l2_fourcc('B', 'G', 'R', '3')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3')
#endif
-#if !(defined(V4L2_PIX_FMT_HSV24) || (defined(HAVE_DECL_V4L2_PIX_FMT_HSV24) && HAVE_DECL_V4L2_PIX_FMT_HSV24))
+#if defined(V4L2_PIX_FMT_HSV24) || (defined(HAVE_DECL_V4L2_PIX_FMT_HSV24) && HAVE_DECL_V4L2_PIX_FMT_HSV24)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_HSV24) == (v4l2_fourcc('H', 'S', 'V', '3')), "V4L2_PIX_FMT_HSV24 != v4l2_fourcc('H', 'S', 'V', '3')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3')
#endif
-#if !(defined(V4L2_PIX_FMT_ARGB32) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB32) && HAVE_DECL_V4L2_PIX_FMT_ARGB32))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_HI240) || (defined(HAVE_DECL_V4L2_PIX_FMT_HI240) && HAVE_DECL_V4L2_PIX_FMT_HI240))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV444M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV444M) && HAVE_DECL_V4L2_PIX_FMT_YUV444M))
+#if defined(V4L2_PIX_FMT_YUV444M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV444M) && HAVE_DECL_V4L2_PIX_FMT_YUV444M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV444M) == (v4l2_fourcc('Y', 'M', '2', '4')), "V4L2_PIX_FMT_YUV444M != v4l2_fourcc('Y', 'M', '2', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_ABGR32) || (defined(HAVE_DECL_V4L2_PIX_FMT_ABGR32) && HAVE_DECL_V4L2_PIX_FMT_ABGR32))
+#if defined(V4L2_PIX_FMT_ABGR32) || (defined(HAVE_DECL_V4L2_PIX_FMT_ABGR32) && HAVE_DECL_V4L2_PIX_FMT_ABGR32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_ABGR32) == (v4l2_fourcc('A', 'R', '2', '4')), "V4L2_PIX_FMT_ABGR32 != v4l2_fourcc('A', 'R', '2', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_XBGR32) || (defined(HAVE_DECL_V4L2_PIX_FMT_XBGR32) && HAVE_DECL_V4L2_PIX_FMT_XBGR32))
+#if defined(V4L2_PIX_FMT_XBGR32) || (defined(HAVE_DECL_V4L2_PIX_FMT_XBGR32) && HAVE_DECL_V4L2_PIX_FMT_XBGR32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_XBGR32) == (v4l2_fourcc('X', 'R', '2', '4')), "V4L2_PIX_FMT_XBGR32 != v4l2_fourcc('X', 'R', '2', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_NV24) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV24) && HAVE_DECL_V4L2_PIX_FMT_NV24))
+#if defined(V4L2_PIX_FMT_NV24) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV24) && HAVE_DECL_V4L2_PIX_FMT_NV24)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV24) == (v4l2_fourcc('N', 'V', '2', '4')), "V4L2_PIX_FMT_NV24 != v4l2_fourcc('N', 'V', '2', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_XRGB32) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB32) && HAVE_DECL_V4L2_PIX_FMT_XRGB32))
+#if defined(V4L2_PIX_FMT_XRGB32) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB32) && HAVE_DECL_V4L2_PIX_FMT_XRGB32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_XRGB32) == (v4l2_fourcc('B', 'X', '2', '4')), "V4L2_PIX_FMT_XRGB32 != v4l2_fourcc('B', 'X', '2', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB444) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB444) && HAVE_DECL_V4L2_PIX_FMT_RGB444))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV444) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV444) && HAVE_DECL_V4L2_PIX_FMT_YUV444))
+#if defined(V4L2_PIX_FMT_YUV444) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV444) && HAVE_DECL_V4L2_PIX_FMT_YUV444)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV444) == (v4l2_fourcc('Y', '4', '4', '4')), "V4L2_PIX_FMT_YUV444 != v4l2_fourcc('Y', '4', '4', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_H264) || (defined(HAVE_DECL_V4L2_PIX_FMT_H264) && HAVE_DECL_V4L2_PIX_FMT_H264))
+#if defined(V4L2_PIX_FMT_H264) || (defined(HAVE_DECL_V4L2_PIX_FMT_H264) && HAVE_DECL_V4L2_PIX_FMT_H264)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_H264) == (v4l2_fourcc('H', '2', '6', '4')), "V4L2_PIX_FMT_H264 != v4l2_fourcc('H', '2', '6', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_H264_MVC) || (defined(HAVE_DECL_V4L2_PIX_FMT_H264_MVC) && HAVE_DECL_V4L2_PIX_FMT_H264_MVC))
+#if defined(V4L2_PIX_FMT_H264_MVC) || (defined(HAVE_DECL_V4L2_PIX_FMT_H264_MVC) && HAVE_DECL_V4L2_PIX_FMT_H264_MVC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_H264_MVC) == (v4l2_fourcc('M', '2', '6', '4')), "V4L2_PIX_FMT_H264_MVC != v4l2_fourcc('M', '2', '6', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB32) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB32) && HAVE_DECL_V4L2_PIX_FMT_RGB32))
+#if defined(V4L2_PIX_FMT_RGB32) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB32) && HAVE_DECL_V4L2_PIX_FMT_RGB32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_RGB32) == (v4l2_fourcc('R', 'G', 'B', '4')), "V4L2_PIX_FMT_RGB32 != v4l2_fourcc('R', 'G', 'B', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_MPEG4) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG4) && HAVE_DECL_V4L2_PIX_FMT_MPEG4))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_BGR32) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGR32) && HAVE_DECL_V4L2_PIX_FMT_BGR32))
+#if defined(V4L2_PIX_FMT_BGR32) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGR32) && HAVE_DECL_V4L2_PIX_FMT_BGR32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_BGR32) == (v4l2_fourcc('B', 'G', 'R', '4')), "V4L2_PIX_FMT_BGR32 != v4l2_fourcc('B', 'G', 'R', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_HSV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_HSV32) && HAVE_DECL_V4L2_PIX_FMT_HSV32))
+#if defined(V4L2_PIX_FMT_HSV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_HSV32) && HAVE_DECL_V4L2_PIX_FMT_HSV32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_HSV32) == (v4l2_fourcc('H', 'S', 'V', '4')), "V4L2_PIX_FMT_HSV32 != v4l2_fourcc('H', 'S', 'V', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_HSV32 v4l2_fourcc('H', 'S', 'V', '4')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV32) && HAVE_DECL_V4L2_PIX_FMT_YUV32))
+#if defined(V4L2_PIX_FMT_YUV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV32) && HAVE_DECL_V4L2_PIX_FMT_YUV32)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV32) == (v4l2_fourcc('Y', 'U', 'V', '4')), "V4L2_PIX_FMT_YUV32 != v4l2_fourcc('Y', 'U', 'V', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4')
#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_SPCA505) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA505) && HAVE_DECL_V4L2_PIX_FMT_SPCA505)
+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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5')
#endif
-#if !(defined(V4L2_PIX_FMT_ARGB555) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB555) && HAVE_DECL_V4L2_PIX_FMT_ARGB555))
+#if defined(V4L2_PIX_FMT_ARGB555) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB555) && HAVE_DECL_V4L2_PIX_FMT_ARGB555)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_ARGB555) == (v4l2_fourcc('A', 'R', '1', '5')), "V4L2_PIX_FMT_ARGB555 != v4l2_fourcc('A', 'R', '1', '5')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5')
#endif
-#if !(defined(V4L2_PIX_FMT_XRGB555) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB555) && HAVE_DECL_V4L2_PIX_FMT_XRGB555))
+#if defined(V4L2_PIX_FMT_XRGB555) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB555) && HAVE_DECL_V4L2_PIX_FMT_XRGB555)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_XRGB555) == (v4l2_fourcc('X', 'R', '1', '5')), "V4L2_PIX_FMT_XRGB555 != v4l2_fourcc('X', 'R', '1', '5')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5')
#endif
-#if !(defined(V4L2_PIX_FMT_ET61X251) || (defined(HAVE_DECL_V4L2_PIX_FMT_ET61X251) && HAVE_DECL_V4L2_PIX_FMT_ET61X251))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG16) && HAVE_DECL_V4L2_PIX_FMT_SGBRG16))
+#if defined(V4L2_PIX_FMT_SGBRG16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG16) && HAVE_DECL_V4L2_PIX_FMT_SGBRG16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGBRG16) == (v4l2_fourcc('G', 'B', '1', '6')), "V4L2_PIX_FMT_SGBRG16 != v4l2_fourcc('G', 'B', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB16) && HAVE_DECL_V4L2_PIX_FMT_SRGGB16))
+#if defined(V4L2_PIX_FMT_SRGGB16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB16) && HAVE_DECL_V4L2_PIX_FMT_SRGGB16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB16) == (v4l2_fourcc('R', 'G', '1', '6')), "V4L2_PIX_FMT_SRGGB16 != v4l2_fourcc('R', 'G', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6')
#endif
-#if !(defined(V4L2_PIX_FMT_NV16M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV16M) && HAVE_DECL_V4L2_PIX_FMT_NV16M))
+#if defined(V4L2_PIX_FMT_NV16M) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV16M) && HAVE_DECL_V4L2_PIX_FMT_NV16M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV16M) == (v4l2_fourcc('N', 'M', '1', '6')), "V4L2_PIX_FMT_NV16M != v4l2_fourcc('N', 'M', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV422M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV422M) && HAVE_DECL_V4L2_PIX_FMT_YUV422M))
+#if defined(V4L2_PIX_FMT_YUV422M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV422M) && HAVE_DECL_V4L2_PIX_FMT_YUV422M)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV422M) == (v4l2_fourcc('Y', 'M', '1', '6')), "V4L2_PIX_FMT_YUV422M != v4l2_fourcc('Y', 'M', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG16) && HAVE_DECL_V4L2_PIX_FMT_SGRBG16))
+#if defined(V4L2_PIX_FMT_SGRBG16) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG16) && HAVE_DECL_V4L2_PIX_FMT_SGRBG16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG16) == (v4l2_fourcc('G', 'R', '1', '6')), "V4L2_PIX_FMT_SGRBG16 != v4l2_fourcc('G', 'R', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6')
#endif
-#if !(defined(V4L2_PIX_FMT_NV16) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV16) && HAVE_DECL_V4L2_PIX_FMT_NV16))
+#if defined(V4L2_PIX_FMT_NV16) || (defined(HAVE_DECL_V4L2_PIX_FMT_NV16) && HAVE_DECL_V4L2_PIX_FMT_NV16)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_NV16) == (v4l2_fourcc('N', 'V', '1', '6')), "V4L2_PIX_FMT_NV16 != v4l2_fourcc('N', 'V', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6')
#endif
-#if !(defined(V4L2_PIX_FMT_PAC207) || (defined(HAVE_DECL_V4L2_PIX_FMT_PAC207) && HAVE_DECL_V4L2_PIX_FMT_PAC207))
+#if defined(V4L2_PIX_FMT_PAC207) || (defined(HAVE_DECL_V4L2_PIX_FMT_PAC207) && HAVE_DECL_V4L2_PIX_FMT_PAC207)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_PAC207) == (v4l2_fourcc('P', '2', '0', '7')), "V4L2_PIX_FMT_PAC207 != v4l2_fourcc('P', '2', '0', '7')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7')
#endif
-#if !(defined(V4L2_PIX_FMT_SPCA508) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA508) && HAVE_DECL_V4L2_PIX_FMT_SPCA508))
+#if defined(V4L2_PIX_FMT_SPCA508) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA508) && HAVE_DECL_V4L2_PIX_FMT_SPCA508)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SPCA508) == (v4l2_fourcc('S', '5', '0', '8')), "V4L2_PIX_FMT_SPCA508 != v4l2_fourcc('S', '5', '0', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_OV518) || (defined(HAVE_DECL_V4L2_PIX_FMT_OV518) && HAVE_DECL_V4L2_PIX_FMT_OV518))
+#if defined(V4L2_PIX_FMT_OV518) || (defined(HAVE_DECL_V4L2_PIX_FMT_OV518) && HAVE_DECL_V4L2_PIX_FMT_OV518)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_OV518) == (v4l2_fourcc('O', '5', '1', '8')), "V4L2_PIX_FMT_OV518 != v4l2_fourcc('O', '5', '1', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_OV518 v4l2_fourcc('O', '5', '1', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10ALAW8))
+#if defined(V4L2_PIX_FMT_SBGGR10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10ALAW8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SBGGR10ALAW8) == (v4l2_fourcc('a', 'B', 'A', '8')), "V4L2_PIX_FMT_SBGGR10ALAW8 != v4l2_fourcc('a', 'B', 'A', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10DPCM8))
+#if defined(V4L2_PIX_FMT_SBGGR10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10DPCM8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SBGGR10DPCM8) == (v4l2_fourcc('b', 'B', 'A', '8')), "V4L2_PIX_FMT_SBGGR10DPCM8 != v4l2_fourcc('b', 'B', 'A', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10ALAW8))
+#if defined(V4L2_PIX_FMT_SGBRG10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10ALAW8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGBRG10ALAW8) == (v4l2_fourcc('a', 'G', 'A', '8')), "V4L2_PIX_FMT_SGBRG10ALAW8 != v4l2_fourcc('a', 'G', 'A', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10DPCM8))
+#if defined(V4L2_PIX_FMT_SGBRG10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10DPCM8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGBRG10DPCM8) == (v4l2_fourcc('b', 'G', 'A', '8')), "V4L2_PIX_FMT_SGBRG10DPCM8 != v4l2_fourcc('b', 'G', 'A', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10ALAW8))
+#if defined(V4L2_PIX_FMT_SRGGB10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10ALAW8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB10ALAW8) == (v4l2_fourcc('a', 'R', 'A', '8')), "V4L2_PIX_FMT_SRGGB10ALAW8 != v4l2_fourcc('a', 'R', 'A', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB10ALAW8 v4l2_fourcc('a', 'R', 'A', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10DPCM8))
+#if defined(V4L2_PIX_FMT_SRGGB10DPCM8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10DPCM8) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10DPCM8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB10DPCM8) == (v4l2_fourcc('b', 'R', 'A', '8')), "V4L2_PIX_FMT_SRGGB10DPCM8 != v4l2_fourcc('b', 'R', 'A', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10ALAW8))
+#if defined(V4L2_PIX_FMT_SGRBG10ALAW8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10ALAW8) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10ALAW8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG10ALAW8) == (v4l2_fourcc('a', 'g', 'A', '8')), "V4L2_PIX_FMT_SGRBG10ALAW8 != v4l2_fourcc('a', 'g', 'A', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('a', 'g', 'A', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_PAL8) || (defined(HAVE_DECL_V4L2_PIX_FMT_PAL8) && HAVE_DECL_V4L2_PIX_FMT_PAL8))
+#if defined(V4L2_PIX_FMT_PAL8) || (defined(HAVE_DECL_V4L2_PIX_FMT_PAL8) && HAVE_DECL_V4L2_PIX_FMT_PAL8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_PAL8) == (v4l2_fourcc('P', 'A', 'L', '8')), "V4L2_PIX_FMT_PAL8 != v4l2_fourcc('P', 'A', 'L', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8')
#endif
-#if !(defined(V4L2_PIX_FMT_YVU410) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU410) && HAVE_DECL_V4L2_PIX_FMT_YVU410))
+#if defined(V4L2_PIX_FMT_YVU410) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU410) && HAVE_DECL_V4L2_PIX_FMT_YVU410)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YVU410) == (v4l2_fourcc('Y', 'V', 'U', '9')), "V4L2_PIX_FMT_YVU410 != v4l2_fourcc('Y', 'V', 'U', '9')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV410) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV410) && HAVE_DECL_V4L2_PIX_FMT_YUV410))
+#if defined(V4L2_PIX_FMT_YUV410) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV410) && HAVE_DECL_V4L2_PIX_FMT_YUV410)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV410) == (v4l2_fourcc('Y', 'U', 'V', '9')), "V4L2_PIX_FMT_YUV410 != v4l2_fourcc('Y', 'U', 'V', '9')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10P) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10P))
+#if defined(V4L2_PIX_FMT_SBGGR10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR10P) && HAVE_DECL_V4L2_PIX_FMT_SBGGR10P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SBGGR10P) == (v4l2_fourcc('p', 'B', 'A', 'A')), "V4L2_PIX_FMT_SBGGR10P != v4l2_fourcc('p', 'B', 'A', 'A')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR10P v4l2_fourcc('p', 'B', 'A', 'A')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10P) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10P))
+#if defined(V4L2_PIX_FMT_SGBRG10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG10P) && HAVE_DECL_V4L2_PIX_FMT_SGBRG10P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGBRG10P) == (v4l2_fourcc('p', 'G', 'A', 'A')), "V4L2_PIX_FMT_SGBRG10P != v4l2_fourcc('p', 'G', 'A', 'A')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG10P v4l2_fourcc('p', 'G', 'A', 'A')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10P) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10P))
+#if defined(V4L2_PIX_FMT_SRGGB10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB10P) && HAVE_DECL_V4L2_PIX_FMT_SRGGB10P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB10P) == (v4l2_fourcc('p', 'R', 'A', 'A')), "V4L2_PIX_FMT_SRGGB10P != v4l2_fourcc('p', 'R', 'A', 'A')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB10P v4l2_fourcc('p', 'R', 'A', 'A')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10P) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10P))
+#if defined(V4L2_PIX_FMT_SGRBG10P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG10P) && HAVE_DECL_V4L2_PIX_FMT_SGRBG10P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG10P) == (v4l2_fourcc('p', 'g', 'A', 'A')), "V4L2_PIX_FMT_SGRBG10P != v4l2_fourcc('p', 'g', 'A', 'A')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG10P v4l2_fourcc('p', 'g', 'A', 'A')
#endif
-#if !(defined(V4L2_PIX_FMT_CPIA1) || (defined(HAVE_DECL_V4L2_PIX_FMT_CPIA1) && HAVE_DECL_V4L2_PIX_FMT_CPIA1))
+#if defined(V4L2_PIX_FMT_CPIA1) || (defined(HAVE_DECL_V4L2_PIX_FMT_CPIA1) && HAVE_DECL_V4L2_PIX_FMT_CPIA1)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_CPIA1) == (v4l2_fourcc('C', 'P', 'I', 'A')), "V4L2_PIX_FMT_CPIA1 != v4l2_fourcc('C', 'P', 'I', 'A')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A')
#endif
-#if !(defined(V4L2_PIX_FMT_WNVA) || (defined(HAVE_DECL_V4L2_PIX_FMT_WNVA) && HAVE_DECL_V4L2_PIX_FMT_WNVA))
+#if defined(V4L2_PIX_FMT_WNVA) || (defined(HAVE_DECL_V4L2_PIX_FMT_WNVA) && HAVE_DECL_V4L2_PIX_FMT_WNVA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_WNVA) == (v4l2_fourcc('W', 'N', 'V', 'A')), "V4L2_PIX_FMT_WNVA != v4l2_fourcc('W', 'N', 'V', 'A')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A')
#endif
-#if !(defined(V4L2_PIX_FMT_Y10BPACK) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y10BPACK) && HAVE_DECL_V4L2_PIX_FMT_Y10BPACK))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB8) && HAVE_DECL_V4L2_PIX_FMT_SRGGB8))
+#if defined(V4L2_PIX_FMT_SRGGB8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB8) && HAVE_DECL_V4L2_PIX_FMT_SRGGB8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB8) == (v4l2_fourcc('R', 'G', 'G', 'B')), "V4L2_PIX_FMT_SRGGB8 != v4l2_fourcc('R', 'G', 'G', 'B')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB8 v4l2_fourcc('R', 'G', 'G', 'B')
#endif
-#if !(defined(V4L2_PIX_FMT_SQ905C) || (defined(HAVE_DECL_V4L2_PIX_FMT_SQ905C) && HAVE_DECL_V4L2_PIX_FMT_SQ905C))
+#if defined(V4L2_PIX_FMT_SQ905C) || (defined(HAVE_DECL_V4L2_PIX_FMT_SQ905C) && HAVE_DECL_V4L2_PIX_FMT_SQ905C)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SQ905C) == (v4l2_fourcc('9', '0', '5', 'C')), "V4L2_PIX_FMT_SQ905C != v4l2_fourcc('9', '0', '5', 'C')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C')
#endif
-#if !(defined(V4L2_PIX_FMT_SBGGR12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR12P) && HAVE_DECL_V4L2_PIX_FMT_SBGGR12P))
+#if defined(V4L2_PIX_FMT_SBGGR12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR12P) && HAVE_DECL_V4L2_PIX_FMT_SBGGR12P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SBGGR12P) == (v4l2_fourcc('p', 'B', 'C', 'C')), "V4L2_PIX_FMT_SBGGR12P != v4l2_fourcc('p', 'B', 'C', 'C')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG12P) && HAVE_DECL_V4L2_PIX_FMT_SGBRG12P))
+#if defined(V4L2_PIX_FMT_SGBRG12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG12P) && HAVE_DECL_V4L2_PIX_FMT_SGBRG12P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGBRG12P) == (v4l2_fourcc('p', 'G', 'C', 'C')), "V4L2_PIX_FMT_SGBRG12P != v4l2_fourcc('p', 'G', 'C', 'C')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
#endif
-#if !(defined(V4L2_PIX_FMT_SRGGB12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB12P) && HAVE_DECL_V4L2_PIX_FMT_SRGGB12P))
+#if defined(V4L2_PIX_FMT_SRGGB12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB12P) && HAVE_DECL_V4L2_PIX_FMT_SRGGB12P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SRGGB12P) == (v4l2_fourcc('p', 'R', 'C', 'C')), "V4L2_PIX_FMT_SRGGB12P != v4l2_fourcc('p', 'R', 'C', 'C')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG12P) && HAVE_DECL_V4L2_PIX_FMT_SGRBG12P))
+#if defined(V4L2_PIX_FMT_SGRBG12P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG12P) && HAVE_DECL_V4L2_PIX_FMT_SGRBG12P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG12P) == (v4l2_fourcc('p', 'g', 'C', 'C')), "V4L2_PIX_FMT_SGRBG12P != v4l2_fourcc('p', 'g', 'C', 'C')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
#endif
-#if !(defined(V4L2_PIX_FMT_XVID) || (defined(HAVE_DECL_V4L2_PIX_FMT_XVID) && HAVE_DECL_V4L2_PIX_FMT_XVID))
+#if defined(V4L2_PIX_FMT_HEVC) || (defined(HAVE_DECL_V4L2_PIX_FMT_HEVC) && HAVE_DECL_V4L2_PIX_FMT_HEVC)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_HEVC) == (v4l2_fourcc('H', 'E', 'V', 'C')), "V4L2_PIX_FMT_HEVC != v4l2_fourcc('H', 'E', 'V', 'C')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C')
+#endif
+#if defined(V4L2_PIX_FMT_XVID) || (defined(HAVE_DECL_V4L2_PIX_FMT_XVID) && HAVE_DECL_V4L2_PIX_FMT_XVID)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_XVID) == (v4l2_fourcc('X', 'V', 'I', 'D')), "V4L2_PIX_FMT_XVID != v4l2_fourcc('X', 'V', 'I', 'D')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D')
#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))
+#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
+static_assert((V4L2_PIX_FMT_VC1_ANNEX_G) == (v4l2_fourcc('V', 'C', '1', 'G')), "V4L2_PIX_FMT_VC1_ANNEX_G != v4l2_fourcc('V', 'C', '1', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_IPU3_SGRBG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SGRBG10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SGRBG10))
+#if defined(V4L2_PIX_FMT_IPU3_SGRBG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SGRBG10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SGRBG10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_IPU3_SGRBG10) == (v4l2_fourcc('i', 'p', '3', 'G')), "V4L2_PIX_FMT_IPU3_SGRBG10 != v4l2_fourcc('i', 'p', '3', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_SGRBG8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG8) && HAVE_DECL_V4L2_PIX_FMT_SGRBG8))
+#if defined(V4L2_PIX_FMT_SGRBG8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG8) && HAVE_DECL_V4L2_PIX_FMT_SGRBG8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGRBG8) == (v4l2_fourcc('G', 'R', 'B', 'G')), "V4L2_PIX_FMT_SGRBG8 != v4l2_fourcc('G', 'R', 'B', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_JPEG) || (defined(HAVE_DECL_V4L2_PIX_FMT_JPEG) && HAVE_DECL_V4L2_PIX_FMT_JPEG))
+#if defined(V4L2_PIX_FMT_JPEG) || (defined(HAVE_DECL_V4L2_PIX_FMT_JPEG) && HAVE_DECL_V4L2_PIX_FMT_JPEG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_JPEG) == (v4l2_fourcc('J', 'P', 'E', 'G')), "V4L2_PIX_FMT_JPEG != v4l2_fourcc('J', 'P', 'E', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_MPEG) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG) && HAVE_DECL_V4L2_PIX_FMT_MPEG))
+#if defined(V4L2_PIX_FMT_MPEG) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG) && HAVE_DECL_V4L2_PIX_FMT_MPEG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_MPEG) == (v4l2_fourcc('M', 'P', 'E', 'G')), "V4L2_PIX_FMT_MPEG != v4l2_fourcc('M', 'P', 'E', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_MJPEG) || (defined(HAVE_DECL_V4L2_PIX_FMT_MJPEG) && HAVE_DECL_V4L2_PIX_FMT_MJPEG))
+#if defined(V4L2_PIX_FMT_MJPEG) || (defined(HAVE_DECL_V4L2_PIX_FMT_MJPEG) && HAVE_DECL_V4L2_PIX_FMT_MJPEG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_MJPEG) == (v4l2_fourcc('M', 'J', 'P', 'G')), "V4L2_PIX_FMT_MJPEG != v4l2_fourcc('M', 'J', 'P', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_PJPG) || (defined(HAVE_DECL_V4L2_PIX_FMT_PJPG) && HAVE_DECL_V4L2_PIX_FMT_PJPG))
+#if defined(V4L2_PIX_FMT_PJPG) || (defined(HAVE_DECL_V4L2_PIX_FMT_PJPG) && HAVE_DECL_V4L2_PIX_FMT_PJPG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_PJPG) == (v4l2_fourcc('P', 'J', 'P', 'G')), "V4L2_PIX_FMT_PJPG != v4l2_fourcc('P', 'J', 'P', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_SGBRG8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG8) && HAVE_DECL_V4L2_PIX_FMT_SGBRG8))
+#if defined(V4L2_PIX_FMT_SGBRG8) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG8) && HAVE_DECL_V4L2_PIX_FMT_SGBRG8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SGBRG8) == (v4l2_fourcc('G', 'B', 'R', 'G')), "V4L2_PIX_FMT_SGBRG8 != v4l2_fourcc('G', 'B', 'R', 'G')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G')
#endif
-#if !(defined(V4L2_PIX_FMT_BGR666) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGR666) && HAVE_DECL_V4L2_PIX_FMT_BGR666))
+#if defined(V4L2_PIX_FMT_BGR666) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGR666) && HAVE_DECL_V4L2_PIX_FMT_BGR666)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_BGR666) == (v4l2_fourcc('B', 'G', 'R', 'H')), "V4L2_PIX_FMT_BGR666 != v4l2_fourcc('B', 'G', 'R', 'H')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H')
#endif
-#if !(defined(V4L2_PIX_FMT_Y12I) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y12I) && HAVE_DECL_V4L2_PIX_FMT_Y12I))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I')
#endif
-#if !(defined(V4L2_PIX_FMT_S5C_UYVY_JPG) || (defined(HAVE_DECL_V4L2_PIX_FMT_S5C_UYVY_JPG) && HAVE_DECL_V4L2_PIX_FMT_S5C_UYVY_JPG))
+#if defined(V4L2_PIX_FMT_S5C_UYVY_JPG) || (defined(HAVE_DECL_V4L2_PIX_FMT_S5C_UYVY_JPG) && HAVE_DECL_V4L2_PIX_FMT_S5C_UYVY_JPG)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_S5C_UYVY_JPG) == (v4l2_fourcc('S', '5', 'C', 'I')), "V4L2_PIX_FMT_S5C_UYVY_JPG != v4l2_fourcc('S', '5', 'C', 'I')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I')
#endif
-#if !(defined(V4L2_PIX_FMT_KONICA420) || (defined(HAVE_DECL_V4L2_PIX_FMT_KONICA420) && HAVE_DECL_V4L2_PIX_FMT_KONICA420))
+#if defined(V4L2_PIX_FMT_KONICA420) || (defined(HAVE_DECL_V4L2_PIX_FMT_KONICA420) && HAVE_DECL_V4L2_PIX_FMT_KONICA420)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_KONICA420) == (v4l2_fourcc('K', 'O', 'N', 'I')), "V4L2_PIX_FMT_KONICA420 != v4l2_fourcc('K', 'O', 'N', 'I')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_KONICA420 v4l2_fourcc('K', 'O', 'N', 'I')
#endif
-#if !(defined(V4L2_PIX_FMT_INZI) || (defined(HAVE_DECL_V4L2_PIX_FMT_INZI) && HAVE_DECL_V4L2_PIX_FMT_INZI))
+#if defined(V4L2_PIX_FMT_INZI) || (defined(HAVE_DECL_V4L2_PIX_FMT_INZI) && HAVE_DECL_V4L2_PIX_FMT_INZI)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_INZI) == (v4l2_fourcc('I', 'N', 'Z', 'I')), "V4L2_PIX_FMT_INZI != v4l2_fourcc('I', 'N', 'Z', 'I')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
#endif
-#if !(defined(V4L2_PIX_FMT_VC1_ANNEX_L) || (defined(HAVE_DECL_V4L2_PIX_FMT_VC1_ANNEX_L) && HAVE_DECL_V4L2_PIX_FMT_VC1_ANNEX_L))
+#if defined(V4L2_PIX_FMT_VC1_ANNEX_L) || (defined(HAVE_DECL_V4L2_PIX_FMT_VC1_ANNEX_L) && HAVE_DECL_V4L2_PIX_FMT_VC1_ANNEX_L)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_VC1_ANNEX_L) == (v4l2_fourcc('V', 'C', '1', 'L')), "V4L2_PIX_FMT_VC1_ANNEX_L != v4l2_fourcc('V', 'C', '1', 'L')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L')
#endif
-#if !(defined(V4L2_PIX_FMT_JPGL) || (defined(HAVE_DECL_V4L2_PIX_FMT_JPGL) && HAVE_DECL_V4L2_PIX_FMT_JPGL))
+#if defined(V4L2_PIX_FMT_JPGL) || (defined(HAVE_DECL_V4L2_PIX_FMT_JPGL) && HAVE_DECL_V4L2_PIX_FMT_JPGL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_JPGL) == (v4l2_fourcc('J', 'P', 'G', 'L')), "V4L2_PIX_FMT_JPGL != v4l2_fourcc('J', 'P', 'G', 'L')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB555) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB555) && HAVE_DECL_V4L2_PIX_FMT_RGB555))
+#if defined(V4L2_PIX_FMT_RGB555) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB555) && HAVE_DECL_V4L2_PIX_FMT_RGB555)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_RGB555) == (v4l2_fourcc('R', 'G', 'B', 'O')), "V4L2_PIX_FMT_RGB555 != v4l2_fourcc('R', 'G', 'B', 'O')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV555) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV555) && HAVE_DECL_V4L2_PIX_FMT_YUV555))
+#if defined(V4L2_PIX_FMT_YUV555) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV555) && HAVE_DECL_V4L2_PIX_FMT_YUV555)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV555) == (v4l2_fourcc('Y', 'U', 'V', 'O')), "V4L2_PIX_FMT_YUV555 != v4l2_fourcc('Y', 'U', 'V', 'O')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV411P) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV411P) && HAVE_DECL_V4L2_PIX_FMT_YUV411P))
+#if defined(V4L2_PIX_FMT_YUV411P) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV411P) && HAVE_DECL_V4L2_PIX_FMT_YUV411P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV411P) == (v4l2_fourcc('4', '1', '1', 'P')), "V4L2_PIX_FMT_YUV411P != v4l2_fourcc('4', '1', '1', 'P')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P')
#endif
-#if !(defined(V4L2_PIX_FMT_Y41P) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y41P) && HAVE_DECL_V4L2_PIX_FMT_Y41P))
+#if defined(V4L2_PIX_FMT_Y41P) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y41P) && HAVE_DECL_V4L2_PIX_FMT_Y41P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Y41P) == (v4l2_fourcc('Y', '4', '1', 'P')), "V4L2_PIX_FMT_Y41P != v4l2_fourcc('Y', '4', '1', 'P')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV422P) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV422P) && HAVE_DECL_V4L2_PIX_FMT_YUV422P))
+#if defined(V4L2_PIX_FMT_YUV422P) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV422P) && HAVE_DECL_V4L2_PIX_FMT_YUV422P)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV422P) == (v4l2_fourcc('4', '2', '2', 'P')), "V4L2_PIX_FMT_YUV422P != v4l2_fourcc('4', '2', '2', 'P')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB565) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB565) && HAVE_DECL_V4L2_PIX_FMT_RGB565))
+#if defined(V4L2_PIX_FMT_RGB565) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB565) && HAVE_DECL_V4L2_PIX_FMT_RGB565)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_RGB565) == (v4l2_fourcc('R', 'G', 'B', 'P')), "V4L2_PIX_FMT_RGB565 != v4l2_fourcc('R', 'G', 'B', 'P')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P')
#endif
-#if !(defined(V4L2_PIX_FMT_YUV565) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV565) && HAVE_DECL_V4L2_PIX_FMT_YUV565))
+#if defined(V4L2_PIX_FMT_YUV565) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV565) && HAVE_DECL_V4L2_PIX_FMT_YUV565)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUV565) == (v4l2_fourcc('Y', 'U', 'V', 'P')), "V4L2_PIX_FMT_YUV565 != v4l2_fourcc('Y', 'U', 'V', 'P')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB555X) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB555X) && HAVE_DECL_V4L2_PIX_FMT_RGB555X))
+#if defined(V4L2_PIX_FMT_RGB555X) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB555X) && HAVE_DECL_V4L2_PIX_FMT_RGB555X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_RGB555X) == (v4l2_fourcc('R', 'G', 'B', 'Q')), "V4L2_PIX_FMT_RGB555X != v4l2_fourcc('R', 'G', 'B', 'Q')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q')
#endif
-#if !(defined(V4L2_PIX_FMT_RGB565X) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB565X) && HAVE_DECL_V4L2_PIX_FMT_RGB565X))
+#if defined(V4L2_PIX_FMT_RGB565X) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB565X) && HAVE_DECL_V4L2_PIX_FMT_RGB565X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_RGB565X) == (v4l2_fourcc('R', 'G', 'B', 'R')), "V4L2_PIX_FMT_RGB565X != v4l2_fourcc('R', 'G', 'B', 'R')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R')
#endif
-#if !(defined(V4L2_PIX_FMT_YVYU) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVYU) && HAVE_DECL_V4L2_PIX_FMT_YVYU))
+#if defined(V4L2_PIX_FMT_YVYU) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVYU) && HAVE_DECL_V4L2_PIX_FMT_YVYU)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YVYU) == (v4l2_fourcc('Y', 'V', 'Y', 'U')), "V4L2_PIX_FMT_YVYU != v4l2_fourcc('Y', 'V', 'Y', 'U')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U')
#endif
-#if !(defined(V4L2_PIX_FMT_CIT_YYVYUY) || (defined(HAVE_DECL_V4L2_PIX_FMT_CIT_YYVYUY) && HAVE_DECL_V4L2_PIX_FMT_CIT_YYVYUY))
+#if defined(V4L2_PIX_FMT_CIT_YYVYUY) || (defined(HAVE_DECL_V4L2_PIX_FMT_CIT_YYVYUY) && HAVE_DECL_V4L2_PIX_FMT_CIT_YYVYUY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_CIT_YYVYUY) == (v4l2_fourcc('C', 'I', 'T', 'V')), "V4L2_PIX_FMT_CIT_YYVYUY != v4l2_fourcc('C', 'I', 'T', 'V')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V')
#endif
-#if !(defined(V4L2_PIX_FMT_YYUV) || (defined(HAVE_DECL_V4L2_PIX_FMT_YYUV) && HAVE_DECL_V4L2_PIX_FMT_YYUV))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V')
#endif
-#if !(defined(V4L2_PIX_FMT_YUYV) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUYV) && HAVE_DECL_V4L2_PIX_FMT_YUYV))
+#if defined(V4L2_PIX_FMT_YUYV) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUYV) && HAVE_DECL_V4L2_PIX_FMT_YUYV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_YUYV) == (v4l2_fourcc('Y', 'U', 'Y', 'V')), "V4L2_PIX_FMT_YUYV != v4l2_fourcc('Y', 'U', 'Y', 'V')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V')
#endif
-#if !(defined(V4L2_PIX_FMT_SN9C2028) || (defined(HAVE_DECL_V4L2_PIX_FMT_SN9C2028) && HAVE_DECL_V4L2_PIX_FMT_SN9C2028))
+#if defined(V4L2_PIX_FMT_SN9C2028) || (defined(HAVE_DECL_V4L2_PIX_FMT_SN9C2028) && HAVE_DECL_V4L2_PIX_FMT_SN9C2028)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_SN9C2028) == (v4l2_fourcc('S', 'O', 'N', 'X')), "V4L2_PIX_FMT_SN9C2028 != v4l2_fourcc('S', 'O', 'N', 'X')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X')
#endif
-#if !(defined(V4L2_PIX_FMT_GREY) || (defined(HAVE_DECL_V4L2_PIX_FMT_GREY) && HAVE_DECL_V4L2_PIX_FMT_GREY))
+#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')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y')
#endif
-#if !(defined(V4L2_PIX_FMT_VYUY) || (defined(HAVE_DECL_V4L2_PIX_FMT_VYUY) && HAVE_DECL_V4L2_PIX_FMT_VYUY))
+#if defined(V4L2_PIX_FMT_VYUY) || (defined(HAVE_DECL_V4L2_PIX_FMT_VYUY) && HAVE_DECL_V4L2_PIX_FMT_VYUY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_VYUY) == (v4l2_fourcc('V', 'Y', 'U', 'Y')), "V4L2_PIX_FMT_VYUY != v4l2_fourcc('V', 'Y', 'U', 'Y')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y')
#endif
-#if !(defined(V4L2_PIX_FMT_UYVY) || (defined(HAVE_DECL_V4L2_PIX_FMT_UYVY) && HAVE_DECL_V4L2_PIX_FMT_UYVY))
+#if defined(V4L2_PIX_FMT_UYVY) || (defined(HAVE_DECL_V4L2_PIX_FMT_UYVY) && HAVE_DECL_V4L2_PIX_FMT_UYVY)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_UYVY) == (v4l2_fourcc('U', 'Y', 'V', 'Y')), "V4L2_PIX_FMT_UYVY != v4l2_fourcc('U', 'Y', 'V', 'Y')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y')
#endif
-#if !(defined(V4L2_PIX_FMT_IPU3_SBGGR10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SBGGR10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SBGGR10))
+#if defined(V4L2_PIX_FMT_IPU3_SBGGR10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SBGGR10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SBGGR10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_IPU3_SBGGR10) == (v4l2_fourcc('i', 'p', '3', 'b')), "V4L2_PIX_FMT_IPU3_SBGGR10 != v4l2_fourcc('i', 'p', '3', 'b')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
#endif
-#if !(defined(V4L2_PIX_FMT_DV) || (defined(HAVE_DECL_V4L2_PIX_FMT_DV) && HAVE_DECL_V4L2_PIX_FMT_DV))
+#if defined(V4L2_PIX_FMT_DV) || (defined(HAVE_DECL_V4L2_PIX_FMT_DV) && HAVE_DECL_V4L2_PIX_FMT_DV)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_DV) == (v4l2_fourcc('d', 'v', 's', 'd')), "V4L2_PIX_FMT_DV != v4l2_fourcc('d', 'v', 's', 'd')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd')
#endif
-#if !(defined(V4L2_PIX_FMT_IPU3_SGBRG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SGBRG10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SGBRG10))
+#if defined(V4L2_PIX_FMT_IPU3_SGBRG10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SGBRG10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SGBRG10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_IPU3_SGBRG10) == (v4l2_fourcc('i', 'p', '3', 'g')), "V4L2_PIX_FMT_IPU3_SGBRG10 != v4l2_fourcc('i', 'p', '3', 'g')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g')
#endif
-#if !(defined(V4L2_PIX_FMT_IPU3_SRGGB10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SRGGB10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SRGGB10))
+#if defined(V4L2_PIX_FMT_IPU3_SRGGB10) || (defined(HAVE_DECL_V4L2_PIX_FMT_IPU3_SRGGB10) && HAVE_DECL_V4L2_PIX_FMT_IPU3_SRGGB10)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_IPU3_SRGGB10) == (v4l2_fourcc('i', 'p', '3', 'r')), "V4L2_PIX_FMT_IPU3_SRGGB10 != v4l2_fourcc('i', 'p', '3', 'r')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r')
#endif
-#if !(defined(V4L2_PIX_FMT_Y16_BE) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y16_BE) && HAVE_DECL_V4L2_PIX_FMT_Y16_BE))
+#if defined(V4L2_PIX_FMT_Y16_BE) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y16_BE) && HAVE_DECL_V4L2_PIX_FMT_Y16_BE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_Y16_BE) == (v4l2_fourcc_be('Y', '1', '6', ' ')), "V4L2_PIX_FMT_Y16_BE != v4l2_fourcc_be('Y', '1', '6', ' ')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ')
#endif
-#if !(defined(V4L2_PIX_FMT_ARGB555X) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB555X) && HAVE_DECL_V4L2_PIX_FMT_ARGB555X))
+#if defined(V4L2_PIX_FMT_ARGB555X) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB555X) && HAVE_DECL_V4L2_PIX_FMT_ARGB555X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_ARGB555X) == (v4l2_fourcc_be('A', 'R', '1', '5')), "V4L2_PIX_FMT_ARGB555X != v4l2_fourcc_be('A', 'R', '1', '5')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5')
#endif
-#if !(defined(V4L2_PIX_FMT_XRGB555X) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB555X) && HAVE_DECL_V4L2_PIX_FMT_XRGB555X))
+#if defined(V4L2_PIX_FMT_XRGB555X) || (defined(HAVE_DECL_V4L2_PIX_FMT_XRGB555X) && HAVE_DECL_V4L2_PIX_FMT_XRGB555X)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_PIX_FMT_XRGB555X) == (v4l2_fourcc_be('X', 'R', '1', '5')), "V4L2_PIX_FMT_XRGB555X != v4l2_fourcc_be('X', 'R', '1', '5')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5')
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_pix_fmts[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat v4l2_pix_fmts[] = {
XLAT(V4L2_PIX_FMT_Y10),
@@ -583,6 +1208,7 @@
XLAT(V4L2_PIX_FMT_SGBRG12P),
XLAT(V4L2_PIX_FMT_SRGGB12P),
XLAT(V4L2_PIX_FMT_SGRBG12P),
+ XLAT(V4L2_PIX_FMT_HEVC),
XLAT(V4L2_PIX_FMT_XVID),
XLAT(V4L2_PIX_FMT_VC1_ANNEX_G),
XLAT(V4L2_PIX_FMT_IPU3_SGRBG10),
@@ -626,4 +1252,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_pix_fmts.in b/xlat/v4l2_pix_fmts.in
index 72c6cea..c595d57 100644
--- a/xlat/v4l2_pix_fmts.in
+++ b/xlat/v4l2_pix_fmts.in
@@ -112,6 +112,7 @@
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_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */
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 */
diff --git a/xlat/v4l2_sdr_fmts.h b/xlat/v4l2_sdr_fmts.h
index 3a65fc8..a026909 100644
--- a/xlat/v4l2_sdr_fmts.h
+++ b/xlat/v4l2_sdr_fmts.h
@@ -1,38 +1,76 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_sdr_fmts.in; do not edit. */
-#if !(defined(V4L2_SDR_FMT_PCU20BE) || (defined(HAVE_DECL_V4L2_SDR_FMT_PCU20BE) && HAVE_DECL_V4L2_SDR_FMT_PCU20BE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(V4L2_SDR_FMT_PCU20BE) || (defined(HAVE_DECL_V4L2_SDR_FMT_PCU20BE) && HAVE_DECL_V4L2_SDR_FMT_PCU20BE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_PCU20BE) == (v4l2_fourcc('P', 'C', '2', '0')), "V4L2_SDR_FMT_PCU20BE != v4l2_fourcc('P', 'C', '2', '0')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_PCU20BE v4l2_fourcc('P', 'C', '2', '0')
#endif
-#if !(defined(V4L2_SDR_FMT_RU12LE) || (defined(HAVE_DECL_V4L2_SDR_FMT_RU12LE) && HAVE_DECL_V4L2_SDR_FMT_RU12LE))
+#if defined(V4L2_SDR_FMT_RU12LE) || (defined(HAVE_DECL_V4L2_SDR_FMT_RU12LE) && HAVE_DECL_V4L2_SDR_FMT_RU12LE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_RU12LE) == (v4l2_fourcc('R', 'U', '1', '2')), "V4L2_SDR_FMT_RU12LE != v4l2_fourcc('R', 'U', '1', '2')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_RU12LE v4l2_fourcc('R', 'U', '1', '2')
#endif
-#if !(defined(V4L2_SDR_FMT_CS14LE) || (defined(HAVE_DECL_V4L2_SDR_FMT_CS14LE) && HAVE_DECL_V4L2_SDR_FMT_CS14LE))
+#if defined(V4L2_SDR_FMT_CS14LE) || (defined(HAVE_DECL_V4L2_SDR_FMT_CS14LE) && HAVE_DECL_V4L2_SDR_FMT_CS14LE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_CS14LE) == (v4l2_fourcc('C', 'S', '1', '4')), "V4L2_SDR_FMT_CS14LE != v4l2_fourcc('C', 'S', '1', '4')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_CS14LE v4l2_fourcc('C', 'S', '1', '4')
#endif
-#if !(defined(V4L2_SDR_FMT_PCU16BE) || (defined(HAVE_DECL_V4L2_SDR_FMT_PCU16BE) && HAVE_DECL_V4L2_SDR_FMT_PCU16BE))
+#if defined(V4L2_SDR_FMT_PCU16BE) || (defined(HAVE_DECL_V4L2_SDR_FMT_PCU16BE) && HAVE_DECL_V4L2_SDR_FMT_PCU16BE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_PCU16BE) == (v4l2_fourcc('P', 'C', '1', '6')), "V4L2_SDR_FMT_PCU16BE != v4l2_fourcc('P', 'C', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_PCU16BE v4l2_fourcc('P', 'C', '1', '6')
#endif
-#if !(defined(V4L2_SDR_FMT_CU16LE) || (defined(HAVE_DECL_V4L2_SDR_FMT_CU16LE) && HAVE_DECL_V4L2_SDR_FMT_CU16LE))
+#if defined(V4L2_SDR_FMT_CU16LE) || (defined(HAVE_DECL_V4L2_SDR_FMT_CU16LE) && HAVE_DECL_V4L2_SDR_FMT_CU16LE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_CU16LE) == (v4l2_fourcc('C', 'U', '1', '6')), "V4L2_SDR_FMT_CU16LE != v4l2_fourcc('C', 'U', '1', '6')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6')
#endif
-#if !(defined(V4L2_SDR_FMT_CS8) || (defined(HAVE_DECL_V4L2_SDR_FMT_CS8) && HAVE_DECL_V4L2_SDR_FMT_CS8))
+#if defined(V4L2_SDR_FMT_CS8) || (defined(HAVE_DECL_V4L2_SDR_FMT_CS8) && HAVE_DECL_V4L2_SDR_FMT_CS8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_CS8) == (v4l2_fourcc('C', 'S', '0', '8')), "V4L2_SDR_FMT_CS8 != v4l2_fourcc('C', 'S', '0', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_CS8 v4l2_fourcc('C', 'S', '0', '8')
#endif
-#if !(defined(V4L2_SDR_FMT_CU8) || (defined(HAVE_DECL_V4L2_SDR_FMT_CU8) && HAVE_DECL_V4L2_SDR_FMT_CU8))
+#if defined(V4L2_SDR_FMT_CU8) || (defined(HAVE_DECL_V4L2_SDR_FMT_CU8) && HAVE_DECL_V4L2_SDR_FMT_CU8)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_CU8) == (v4l2_fourcc('C', 'U', '0', '8')), "V4L2_SDR_FMT_CU8 != v4l2_fourcc('C', 'U', '0', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8')
#endif
-#if !(defined(V4L2_SDR_FMT_PCU18BE) || (defined(HAVE_DECL_V4L2_SDR_FMT_PCU18BE) && HAVE_DECL_V4L2_SDR_FMT_PCU18BE))
+#if defined(V4L2_SDR_FMT_PCU18BE) || (defined(HAVE_DECL_V4L2_SDR_FMT_PCU18BE) && HAVE_DECL_V4L2_SDR_FMT_PCU18BE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((V4L2_SDR_FMT_PCU18BE) == (v4l2_fourcc('P', 'C', '1', '8')), "V4L2_SDR_FMT_PCU18BE != v4l2_fourcc('P', 'C', '1', '8')");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define V4L2_SDR_FMT_PCU18BE v4l2_fourcc('P', 'C', '1', '8')
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_sdr_fmts[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# endif
const struct xlat v4l2_sdr_fmts[] = {
XLAT(V4L2_SDR_FMT_PCU20BE),
@@ -46,4 +84,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_sliced_flags.h b/xlat/v4l2_sliced_flags.h
index 56634ba..4435859 100644
--- a/xlat/v4l2_sliced_flags.h
+++ b/xlat/v4l2_sliced_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_sliced_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_sliced_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -31,4 +37,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_streaming_capabilities.h b/xlat/v4l2_streaming_capabilities.h
index 839146a..479b7e2 100644
--- a/xlat/v4l2_streaming_capabilities.h
+++ b/xlat/v4l2_streaming_capabilities.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_streaming_capabilities.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_streaming_capabilities[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -16,4 +22,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_tuner_audmodes.h b/xlat/v4l2_tuner_audmodes.h
index 916b589..22f4b02 100644
--- a/xlat/v4l2_tuner_audmodes.h
+++ b/xlat/v4l2_tuner_audmodes.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_tuner_audmodes.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_tuner_audmodes[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -31,4 +37,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_tuner_capabilities.h b/xlat/v4l2_tuner_capabilities.h
index f900179..2471bd1 100644
--- a/xlat/v4l2_tuner_capabilities.h
+++ b/xlat/v4l2_tuner_capabilities.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_tuner_capabilities.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_tuner_capabilities[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -55,4 +61,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_tuner_rxsubchanses.h b/xlat/v4l2_tuner_rxsubchanses.h
index 5213498..5be8780 100644
--- a/xlat/v4l2_tuner_rxsubchanses.h
+++ b/xlat/v4l2_tuner_rxsubchanses.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_tuner_rxsubchanses.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_tuner_rxsubchanses[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -31,4 +37,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_tuner_types.h b/xlat/v4l2_tuner_types.h
index 67f12e5..73f6689 100644
--- a/xlat/v4l2_tuner_types.h
+++ b/xlat/v4l2_tuner_types.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_tuner_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_tuner_types[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -31,4 +37,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/v4l2_vbi_flags.h b/xlat/v4l2_vbi_flags.h
index 7924d3e..bba758d 100644
--- a/xlat/v4l2_vbi_flags.h
+++ b/xlat/v4l2_vbi_flags.h
@@ -1,14 +1,20 @@
/* Generated by ./xlat/gen.sh from ./xlat/v4l2_vbi_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
extern const struct xlat v4l2_vbi_flags[];
-#else
+# else
-# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
+# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
-# endif
+# 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),
@@ -31,4 +37,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/wait4_options.h b/xlat/wait4_options.h
index 4960200..2e288b5 100644
--- a/xlat/wait4_options.h
+++ b/xlat/wait4_options.h
@@ -1,21 +1,39 @@
/* Generated by ./xlat/gen.sh from ./xlat/wait4_options.in; do not edit. */
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
#ifndef WSTOPPED
#endif
-#if !(defined(__WCLONE) || (defined(HAVE_DECL___WCLONE) && HAVE_DECL___WCLONE))
+#if defined(__WCLONE) || (defined(HAVE_DECL___WCLONE) && HAVE_DECL___WCLONE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((__WCLONE) == (0x80000000), "__WCLONE != 0x80000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define __WCLONE 0x80000000
#endif
-#if !(defined(__WALL) || (defined(HAVE_DECL___WALL) && HAVE_DECL___WALL))
+#if defined(__WALL) || (defined(HAVE_DECL___WALL) && HAVE_DECL___WALL)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((__WALL) == (0x40000000), "__WALL != 0x40000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define __WALL 0x40000000
#endif
-#if !(defined(__WNOTHREAD) || (defined(HAVE_DECL___WNOTHREAD) && HAVE_DECL___WNOTHREAD))
+#if defined(__WNOTHREAD) || (defined(HAVE_DECL___WNOTHREAD) && HAVE_DECL___WNOTHREAD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((__WNOTHREAD) == (0x20000000), "__WNOTHREAD != 0x20000000");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define __WNOTHREAD 0x20000000
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat wait4_options in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat wait4_options in mpers mode
+
+# else
static
const struct xlat wait4_options[] = {
@@ -48,4 +66,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/waitid_types.h b/xlat/waitid_types.h
index ddee8ef..9261908 100644
--- a/xlat/waitid_types.h
+++ b/xlat/waitid_types.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/waitid_types.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat waitid_types in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat waitid_types in mpers mode
+
+# else
static
const struct xlat waitid_types[] = {
@@ -38,4 +44,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/whence_codes.h b/xlat/whence_codes.h
index aa3f862..a97a345 100644
--- a/xlat/whence_codes.h
+++ b/xlat/whence_codes.h
@@ -1,6 +1,12 @@
/* Generated by ./xlat/gen.sh from ./xlat/whence_codes.in; do not edit. */
-#ifndef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+
+#ifndef XLAT_MACROS_ONLY
+
+# ifndef IN_MPERS
const struct xlat whence_codes[] = {
#if defined(SEEK_SET) || (defined(HAVE_DECL_SEEK_SET) && HAVE_DECL_SEEK_SET)
@@ -21,4 +27,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/xattrflags.h b/xlat/xattrflags.h
index 36adfd0..57bc1d2 100644
--- a/xlat/xattrflags.h
+++ b/xlat/xattrflags.h
@@ -1,16 +1,30 @@
/* Generated by ./xlat/gen.sh from ./xlat/xattrflags.in; do not edit. */
-#if !(defined(XATTR_CREATE) || (defined(HAVE_DECL_XATTR_CREATE) && HAVE_DECL_XATTR_CREATE))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(XATTR_CREATE) || (defined(HAVE_DECL_XATTR_CREATE) && HAVE_DECL_XATTR_CREATE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XATTR_CREATE) == (1), "XATTR_CREATE != 1");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XATTR_CREATE 1
#endif
-#if !(defined(XATTR_REPLACE) || (defined(HAVE_DECL_XATTR_REPLACE) && HAVE_DECL_XATTR_REPLACE))
+#if defined(XATTR_REPLACE) || (defined(HAVE_DECL_XATTR_REPLACE) && HAVE_DECL_XATTR_REPLACE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XATTR_REPLACE) == (2), "XATTR_REPLACE != 2");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XATTR_REPLACE 2
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat xattrflags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat xattrflags in mpers mode
+
+# else
static
const struct xlat xattrflags[] = {
@@ -19,4 +33,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/xdp_flags.h b/xlat/xdp_flags.h
index 2ebe172..d1e9613 100644
--- a/xlat/xdp_flags.h
+++ b/xlat/xdp_flags.h
@@ -1,10 +1,16 @@
/* Generated by ./xlat/gen.sh from ./xlat/xdp_flags.in; do not edit. */
-#ifdef IN_MPERS
+#include "gcc_compat.h"
+#include "static_assert.h"
-# error static const struct xlat xdp_flags in mpers mode
-#else
+#ifndef XLAT_MACROS_ONLY
+
+# ifdef IN_MPERS
+
+# error static const struct xlat xdp_flags in mpers mode
+
+# else
static
const struct xlat xdp_flags[] = {
@@ -26,4 +32,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/xfs_dqblk_flags.h b/xlat/xfs_dqblk_flags.h
index b0a9184..2b2e874 100644
--- a/xlat/xfs_dqblk_flags.h
+++ b/xlat/xfs_dqblk_flags.h
@@ -1,19 +1,37 @@
/* Generated by ./xlat/gen.sh from ./xlat/xfs_dqblk_flags.in; do not edit. */
-#if !(defined(XFS_USER_QUOTA) || (defined(HAVE_DECL_XFS_USER_QUOTA) && HAVE_DECL_XFS_USER_QUOTA))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(XFS_USER_QUOTA) || (defined(HAVE_DECL_XFS_USER_QUOTA) && HAVE_DECL_XFS_USER_QUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_USER_QUOTA) == ((1<<0)), "XFS_USER_QUOTA != (1<<0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_USER_QUOTA (1<<0)
#endif
-#if !(defined(XFS_PROJ_QUOTA) || (defined(HAVE_DECL_XFS_PROJ_QUOTA) && HAVE_DECL_XFS_PROJ_QUOTA))
+#if defined(XFS_PROJ_QUOTA) || (defined(HAVE_DECL_XFS_PROJ_QUOTA) && HAVE_DECL_XFS_PROJ_QUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_PROJ_QUOTA) == ((1<<1)), "XFS_PROJ_QUOTA != (1<<1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_PROJ_QUOTA (1<<1)
#endif
-#if !(defined(XFS_GROUP_QUOTA) || (defined(HAVE_DECL_XFS_GROUP_QUOTA) && HAVE_DECL_XFS_GROUP_QUOTA))
+#if defined(XFS_GROUP_QUOTA) || (defined(HAVE_DECL_XFS_GROUP_QUOTA) && HAVE_DECL_XFS_GROUP_QUOTA)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_GROUP_QUOTA) == ((1<<2)), "XFS_GROUP_QUOTA != (1<<2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_GROUP_QUOTA (1<<2)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat xfs_dqblk_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat xfs_dqblk_flags in mpers mode
+
+# else
static
const struct xlat xfs_dqblk_flags[] = {
@@ -23,4 +41,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */
diff --git a/xlat/xfs_quota_flags.h b/xlat/xfs_quota_flags.h
index f635b96..96f0aab 100644
--- a/xlat/xfs_quota_flags.h
+++ b/xlat/xfs_quota_flags.h
@@ -1,28 +1,58 @@
/* Generated by ./xlat/gen.sh from ./xlat/xfs_quota_flags.in; do not edit. */
-#if !(defined(XFS_QUOTA_UDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_UDQ_ACCT) && HAVE_DECL_XFS_QUOTA_UDQ_ACCT))
+
+#include "gcc_compat.h"
+#include "static_assert.h"
+
+#if defined(XFS_QUOTA_UDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_UDQ_ACCT) && HAVE_DECL_XFS_QUOTA_UDQ_ACCT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_QUOTA_UDQ_ACCT) == ((1<<0)), "XFS_QUOTA_UDQ_ACCT != (1<<0)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_QUOTA_UDQ_ACCT (1<<0)
#endif
-#if !(defined(XFS_QUOTA_UDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_UDQ_ENFD) && HAVE_DECL_XFS_QUOTA_UDQ_ENFD))
+#if defined(XFS_QUOTA_UDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_UDQ_ENFD) && HAVE_DECL_XFS_QUOTA_UDQ_ENFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_QUOTA_UDQ_ENFD) == ((1<<1)), "XFS_QUOTA_UDQ_ENFD != (1<<1)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_QUOTA_UDQ_ENFD (1<<1)
#endif
-#if !(defined(XFS_QUOTA_GDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_GDQ_ACCT) && HAVE_DECL_XFS_QUOTA_GDQ_ACCT))
+#if defined(XFS_QUOTA_GDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_GDQ_ACCT) && HAVE_DECL_XFS_QUOTA_GDQ_ACCT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_QUOTA_GDQ_ACCT) == ((1<<2)), "XFS_QUOTA_GDQ_ACCT != (1<<2)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_QUOTA_GDQ_ACCT (1<<2)
#endif
-#if !(defined(XFS_QUOTA_GDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_GDQ_ENFD) && HAVE_DECL_XFS_QUOTA_GDQ_ENFD))
+#if defined(XFS_QUOTA_GDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_GDQ_ENFD) && HAVE_DECL_XFS_QUOTA_GDQ_ENFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_QUOTA_GDQ_ENFD) == ((1<<3)), "XFS_QUOTA_GDQ_ENFD != (1<<3)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_QUOTA_GDQ_ENFD (1<<3)
#endif
-#if !(defined(XFS_QUOTA_PDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_PDQ_ACCT) && HAVE_DECL_XFS_QUOTA_PDQ_ACCT))
+#if defined(XFS_QUOTA_PDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_PDQ_ACCT) && HAVE_DECL_XFS_QUOTA_PDQ_ACCT)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_QUOTA_PDQ_ACCT) == ((1<<4)), "XFS_QUOTA_PDQ_ACCT != (1<<4)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_QUOTA_PDQ_ACCT (1<<4)
#endif
-#if !(defined(XFS_QUOTA_PDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_PDQ_ENFD) && HAVE_DECL_XFS_QUOTA_PDQ_ENFD))
+#if defined(XFS_QUOTA_PDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_PDQ_ENFD) && HAVE_DECL_XFS_QUOTA_PDQ_ENFD)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((XFS_QUOTA_PDQ_ENFD) == ((1<<5)), "XFS_QUOTA_PDQ_ENFD != (1<<5)");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
# define XFS_QUOTA_PDQ_ENFD (1<<5)
#endif
-#ifdef IN_MPERS
+#ifndef XLAT_MACROS_ONLY
-# error static const struct xlat xfs_quota_flags in mpers mode
+# ifdef IN_MPERS
-#else
+# error static const struct xlat xfs_quota_flags in mpers mode
+
+# else
static
const struct xlat xfs_quota_flags[] = {
@@ -35,4 +65,6 @@
XLAT_END
};
-#endif /* !IN_MPERS */
+# endif /* !IN_MPERS */
+
+#endif /* !XLAT_MACROS_ONLY */